Software Engineering solve

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

1. What is SRS?

SRS (Software Requirements Specification) is a detailed document that outlines the


functional and non-functional requirements of a software system. It serves as a contract
between stakeholders (clients, users, and developers) and guides the development process.

2. Different Types of SRS

1.​ Functional Requirements:


○​ Specifies what the system should do, e.g., features, inputs, outputs, and data
manipulation.
2.​ Non-Functional Requirements:
○​ Defines system qualities like performance, security, reliability, scalability, and
usability.
3.​ Domain Requirements:
○​ Captures industry-specific needs or constraints, e.g., compliance with
regulations.

3. Characteristics of SRS

1.​ Correctness: Clearly specifies the required functionality without ambiguities.


2.​ Completeness: Covers all aspects of the software's functionality and constraints.
3.​ Consistency: Avoids conflicts between requirements.
4.​ Verifiability: Requirements can be tested to verify implementation.
5.​ Modifiability: Easy to update as project needs evolve.
6.​ Traceability: Each requirement is traceable to its origin.

4. Major Responsibilities of a Software Project Manager

1.​ Planning: Define the project scope, objectives, timelines, and resources.
2.​ Team Management: Assign tasks, coordinate team members, and resolve conflicts.
3.​ Risk Management: Identify potential risks and develop mitigation strategies.
4.​ Budget Management: Monitor expenses and ensure the project stays within budget.
5.​ Quality Assurance: Ensure the product meets quality standards and user expectations.

5. Black Box Testing vs. White Box Testing


Feature Black Box Testing White Box Testing

Definition Focuses on testing software Tests internal structures and


functionality without logic of the code.
knowledge of internal code.

Tester Knowledge No knowledge of code is Requires deep understanding


required. of code.

Techniques Used Equivalence partitioning, Code coverage, control flow,


boundary value analysis. and data flow.

Focus Validates outputs for given Validates internal logic and


inputs. processes.

Conducted By QA engineers, end-users. Developers or testers with


programming skills.

6. Difference Between Quality Control (QC) and Quality Assurance (QA)


Aspect Quality Control (QC) Quality Assurance (QA)

Definition Focuses on identifying Focuses on improving


defects in the final product. processes to prevent defects.

Objective Product-oriented. Process-oriented.

When Conducted After the product is During development and


developed (testing phase). throughout the SDLC.

Responsibility Detects and fixes errors. Ensures processes meet


quality standards.

Examples Functional testing, regression Process audits, quality


testing. standards reviews.

7. Types of Software Maintenance

1.​ Corrective Maintenance:


○​ Fixes bugs or defects in the software post-deployment.
2.​ Adaptive Maintenance:
○​ Adjusts software to accommodate changes in the environment (e.g., OS
updates).
3.​ Perfective Maintenance:
○​ Enhances performance or adds new features based on user feedback.
4.​ Preventive Maintenance:
○​ Anticipates potential issues and makes changes to avoid future problems.

8. Five Key Roles of a Project Manager

1.​ Planner: Define project goals, timelines, and milestones.


2.​ Communicator: Act as a liaison between stakeholders and the team.
3.​ Problem Solver: Address challenges and implement solutions.
4.​ Leader: Motivate and guide the team toward achieving project goals.
5.​ Risk Manager: Identify, analyze, and mitigate project risks.

9. Eliciting Requirements in Software Engineering

Eliciting Requirements is the process of gathering and understanding user needs for a
software system. Methods include:

1.​ Interviews: Direct discussions with stakeholders.


2.​ Questionnaires: Collecting structured input from multiple users.
3.​ Observation: Monitoring users in their environment to identify needs.
4.​ Prototyping: Creating mock-ups to gather feedback.
5.​ Workshops: Group discussions to refine requirements.

10.What is CASE Tools?

CASE Tools stands for Computer-Aided Software Engineering. It is system software that
provides automated support for software process activities. It contains program used to support
software process operations such as Requirement Analysis, System Modeling. Debugging and
Testing.

Mid term
Question 1:

Part A: Define Software Engineering. Write down the characteristics of good


software. (6 marks)
Software engineering is the application of engineering principles to the design, development,
testing, and maintenance of software. It aims to produce high-quality software that is reliable,
efficient, and maintainable.

Characteristics of good software:

Correctness: The software should perform its intended functions accurately and without errors.

Reliability: The software should be dependable and consistent in its operation.

Efficiency: The software should use resources efficiently, such as CPU time and memory.

Usability: The software should be easy to use and understand by its intended users.

Maintainability: The software should be easy to modify and update as requirements change.

Portability: The software should be able to run on different hardware and software platforms.

Part B: Distinguish the difference between verification vs validation. (4 marks)

Verification and validation are two important processes in software engineering that ensure the
quality of the software.

Verification: This process involves checking that the software meets its specified requirements.
It is concerned with ensuring that the software is built correctly according to the design.

Validation: This process involves checking that the software meets the user's needs and
expectations. It is concerned with ensuring that the right software is built.

Question 2:

Part A: What are the five phases of the waterfall model? Briefly describe. (8
marks)

The waterfall model is a linear sequential approach to software development where each phase
must be completed

before the next begins. The five phases of the waterfall model are:

1. Requirements analysis: This phase involves understanding the user's needs and defining the
requirements for the software.

2. Design: This phase involves designing the architecture and components of the software.

3. Implementation: This phase involves writing the code for the software.
4. Testing: This phase involves testing the software to ensure that it meets the requirements and
is free of defects.

5. Deployment: This phase involves deploying the software to the production environment.

Part B: Write down the advantages of the waterfall model. (2 marks)

The advantages of the waterfall model include:

Simple and easy to understand.

Suitable for small projects with well-defined requirements.

Provides a clear timeline for the project.

Question 3:

Part A: What are the five phases of the SDLC model? Briefly describe. (7 marks)

The SDLC (Software Development Life Cycle) is a framework that defines the stages involved in
the development of software. There are many different SDLC models, but one of the most
common is the Agile model. The five phases of

the Agile model are:

1. Planning: This phase involves planning the project and defining its scope.

2. Requirements gathering: This phase involves gathering the requirements from the users.

3. Design: This phase involves designing the software architecture and components.

4. Development: This phase involves writing the code for the software.

5. Testing: This phase involves testing the software to ensure that it meets the requirements and
is free of defects.

Part B: Briefly describe the software evolution law. (3 marks)

The software evolution law states that software tends to evolve over time, and the rate of
evolution tends to increase. This is because as software is used, new features are added and
existing features are modified. This can make the software more complex and difficult to
maintain.

You might also like