Software Process set of activities required to develop a software system.
Software process model description that define the activities in each process and their ordering.
Software engineering Software engineering is an engineering discipline that is concerned with
all aspects of software production.
Software Specification process of establishing what services are required and the constraints on
the system’s operation and development
Software Development Process of converting the system specification into an executable
system.
Software design Design a software structure that realizes the specification.
Implementation Translate this structure into an executable program.
Debugging This often reveals program defects that must be removed from
the program.
Alpha testing Acceptance testing
Beta testing involves delivering a system to a number of potential
customers who agree to use that system
Software Evolution change existing software systems to meet new requirements
Rational Unified an example of a modern process model that has been derived
Process (RUP) from UML
1. Plan-driven processes: are processes where all of the process activities are planned in
advance.
2. Agile processes: are processes where the process activities may change to reflect
changing in customer requirements.
By: Ahmed El-kholy
1
– Set of activities
– Input and output of each activity.
– People reasonable for each activity.
– Pre- and post-conditions for each activity (e.g., time and order).
1. Waterfall model: Processes are separated and Plan-driven model.
2. Incremental development model: Processes are interleaved and plan-driven or agile
3. Reuse-oriented software engineering model: May be plan-driven or agile.
1 2-
By: Ahmed El-kholy
2
• When the requirements are well-understood
• Changes will be fairly limited during the design process.
• For large systems engineering projects.
1. Customer requirements are not clear.
2. Customer needs to be involved in software production.
3. Software are developed in versions with new features
*
1. Feasibility study.
2. Requirements elicitation and analysis
3. Requirements specification
4. Requirements validation
1. Architectural design.
2. Interface design.
3. Component design.
4. Database design.
1. Component testing
2. System testing.
3. Acceptance testing
By: Ahmed El-kholy
3
*
1. Business changes lead to new and changed system requirements.
2. New technologies open up new possibilities for improving implementations.
3. Changing hardware and platforms require application changes.
1. Change avoidance.
2. Change tolerance.
1. Software Prototyping
2. Incremental Delivery
3. Spiral Model.
1. Dynamic perspective that shows phases over time.
2. Static perspective that shows process activities (workflows).
3. Proactive perspective that suggests good practice.
By: Ahmed El-kholy
4
*
1. Inception: External Entities and Interaction between them and System.
2. Elaboration: Problem domain, Architectural Framework, Project Plan and Risks.
3. Construction: Design, Programming and Testing.
4. Transition: Move system to user community and Training.
Waterfall Model Incremental Development Model Reuse-Oriented Software Engineering
advantages • cost of changing customer • Reducing the amount of
requirements is reduced software to be developed
• easier to get customer • Reducing cost and risks
feedback on the development • Faster delivery of the software
• More rapid delivery and
deployment
drawbacks difficulty changes • process is not visible • Requirements are modified and
after the process • System structure tends to this may lead to a system that
is finished. degrade as new increments does not meet the real needs of
are added users.
Prototyping Incremental Delivery
By: Ahmed El-kholy
5
Prototyping Incremental Delivery Spiral Model
Definition initial version of a system broken down into Process is represented as a spiral rather
used to demonstrate increments with each than as a sequence of activities with
concepts and try out increment delivering part of backtracking.
design options the required functionality.
advantages • System match • Main system • Well-suited for large scale
user’s needs. functionality is projects
• Improve usability developed first. • Risk analysis helps to eliminate
of system. • Lower risk of overall and avoid risk.
• Improved design project failure • Strong emphasis on client
quality. approval.
• Reduced
development
effort.
drawbacks • don’t include error • Not suitable when • Not an ideal fit for smaller or
checking and the complete system low-risk projects
recovery. specification is • Documentation can be heavy
• focus on needed • expensive to implement for large
functional. • Requirements are not number of loops
• Undocumented defined in detail.
• not meet quality
standards.
Verification Validation
Check whether the software conforms to Check whether software meets the customer
specifications. requirements
Static practice of verifying documents, Dynamic mechanism of validating and testing
design, code and program. the actual product.
By: Ahmed El-kholy
6