Software Engineering-1
Eng : Sara Nour
When we describe and discuss software processes, we focus on:
1⃣ Process Activities
2⃣ Process Descriptions
❖ Process Activities
▪ Software Specification – Defining the software requirements.
▪ Software Development – Designing and implementing the software.
▪ Software Validation (Testing) – Ensuring the software meets the required standards.
▪ Software Evolution(Maintenance) – Modifying and updating the software over time
2
❖ Process Description
Products: which are the outcomes of a process activity.
Roles: which reflect the responsibilities of the people involved in the
process.
Pre- and post-conditions: which are statements that are true before and
after a process activity has been enacted or a product produced.
3
20XX Presentation title 4
20XX Presentation title 5
Waterfall model
Waterfall Model : is a sequential software development process where each phase
must be completed before moving to the next one.
It is one of the oldest and most straightforward models, often used when
requirements are well-defined and fixed from the start.
20XX Presentation title 6
Waterfall model
20XX Presentation title 7
Waterfall model
20XX Presentation title 8
Incremental Development
The Incremental Model is a software development approach where the
product is designed, implemented, and tested incrementally (a little more
is added each time) until the product is finished.
It involves building the software in small, manageable sections called
increments. Each increment adds new functionality, and the product is
tested and validated after each iteration
20XX Presentation title 9
Incremental Development
20XX Presentation title 10
Incremental Development
Advantages:
•Easy to change.
•It is easier to get customer feedback .
•More rapid delivery and deployment of useful software.
Disadvantages:
• the process is not visible.
• Risk of integration issues.
• Not ideal for small projects.
11
Reuse-oriented software engineering
The Reuse-Oriented Model is a software development approach that reuse of
existing software components, frameworks, or libraries to build a new system.
Instead of developing everything from scratch, developers integrate pre-built
modules to speed up development and reduce costs.
20XX 12
Reuse-oriented software engineering
20XX 13
20XX Presentation title 14
Reuse-oriented software engineering
Advantages:
• Reduces development time and cost.
• Improves software reliability as reused components are tested and proven.
Disadvantages:
• Limited flexibility if existing components do not fully meet requirements.
• Compatibility issues may arise when integrating different components.
20XX 15
THANK YOU
16