Software Engineering
Software Engineering
Verification and Validation are two crucial processes in software engineering to ensure that the
software meets requirements and works as intended.
• Verification:
o Ensures that the software development process and intermediate products conform
to specifications.
• Validation:
o Ensures the final product meets the user’s needs and intended use.
Key Difference:
Requirement Engineering (RE) is the process of defining, documenting, and maintaining software
requirements. It ensures that the system meets stakeholder needs.
1. Elicitation:
3. Specification:
4. Validation:
5. Management:
The SDLC is a structured process used to design, develop, and test high-quality software. It outlines
the stages of software creation.
Phases of SDLC:
1. Planning:
2. Requirement Analysis:
3. Design:
o Design the architecture and system models (high-level and low-level designs).
4. Implementation (Coding):
5. Testing:
o Types: Unit testing, integration testing, system testing, and acceptance testing.
6. Deployment:
7. Maintenance:
o Handle bug fixes, updates, and enhancements post-deployment.
STLC is a sequence of activities performed during the testing process to ensure software quality. It is
integrated into SDLC but focuses purely on testing.
Phases of STLC:
1. Requirement Analysis:
2. Test Planning:
o Develop the test plan document, define scope, objectives, and timelines.
5. Test Execution:
o Execute test cases, log defects, and compare actual results with expected ones.
6. Test Closure:
o Evaluate test completion criteria, document test summary reports, and ensure all
defects are addressed.
Q5.
The COCOMO (Constructive Cost Model) is a method used to estimate how much time, effort, and
money is needed to develop software. It was created by Barry Boehm in 1981 and is still used
because it helps predict project costs based on the size of the software (measured in lines of code).
• Estimate cost – How much money will be needed for the project.
This makes planning and budgeting easier, reducing the risk of surprises during development.
1. Basic COCOMO
• A simple model that estimates effort based only on the size of the software (KLOC – Kilo
Lines of Code).
Formula:
3. Embedded – Large, complex systems that require strict rules (e.g., software for aircraft).
2. Intermediate COCOMO
• Adds more accuracy by considering factors like team experience, software complexity, and
development tools.
• Uses cost drivers (like how reliable the software needs to be) to adjust the estimate.
Formula:
3. Detailed COCOMO
• The most advanced version that breaks the project into smaller parts and estimates each
part separately.
• Provides very accurate estimates by looking at every phase of development (design, coding,
testing).
Let’s say you are developing software that will take 50,000 lines of code (50 KLOC) and the project is
semi-detached.
1. Effort Calculation:
2. Time to Develop:
3. Cost:
If the cost per person-month is $10,000:
Advantages of COCOMO
• Customizable – More accurate for complex projects if you use Intermediate or Detailed
models.
Why is it Important?
2. Consistency – Developers follow the same approach, resulting in predictable and uniform
output.
3. Error Reduction – By following a structured paradigm, the chances of errors and defects are
minimized.
5. Risk Management – Helps in identifying and addressing risks early in the development
process.
6. Better Resource Management – Helps in estimating time, cost, and manpower efficiently.
Example Paradigms:
BRS and SRS are requirement documents that guide software development, but they address
different needs and audiences.