MohamedAhmed686097
53 views
41 slides
Aug 28, 2024
Slide 1 of 41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
About This Presentation
Chapter 2 Software Process.pdf
Size: 1.36 MB
Language: en
Added: Aug 28, 2024
Slides: 41 pages
Slide Content
Advanced to
Software Engineering
Software Engineering Process Models
Topics covered
2.1. Software process models
2.2. Process activities
2.3. Understand why processes should be organized
2.4. Understand how the Rational Unified Process integrates
good software engineering
What is the Software Process Models?
Software process models are structured approaches to software
development that describe the stages of software creation,
maintenance, and the relationships between these stages.
The goal of a software process model is to guide controlling and
coordinating the tasks to achieve the end product and objectives as
effectively as possible.
A software process model is a simplified representation of a software
process in which each process model represents a process from a
particular perspective and thus provides only partial information
about that process.
Types of Software Process Models
The waterfall model
Incremental development
Integration and configuration
V-Model (Verification and Validation Model)
Iterative Model
Spiral Model
Agile Methodologies
RAD Model (Rapid Application Development)
DevOp
6
What is the Waterfall model?
The waterfall approach was the first SDLC Model widely used in Software
Engineering.
The Waterfall Model isa sequential model that divides software
development into pre-defined phases.
The waterfall model is a breakdown of project activities into linear
sequential phases,
they are passed down onto each other, where each phase depends on the
deliverables of the previous oneand corresponds to a specialization of
tasks
8
Waterfall Model Phases
1.Requirements analysis and definition
The system’s services, constraints, and goals are established by consultation
with system users.
2. System and software design
The systems design process allocates the requirements to either hardware or
software systems by establishing an overall system architecture.
3. Implementation and unit testing
testing involves verifying that each unit meets its specifications.
4. Integration and system testing
The individual program units or programs are integrated and tested as a
complete system to ensure that the software requirements have been met.
5. Operation and maintenance
Maintenance involves correcting errors not discovered in earlier life cycle
stages.
Waterfall Model Problems
•Inflexibility: Difficult to accommodate changes once a phase is completed ,
that makes it difficult to respond to changing customer requirements.
•Late Issue Detection: Problems are often discovered late in the development
process.
•Not Ideal for Complex Projects: Poor adaptability to projects with evolving
requirements or high complexity.
■This model is only appropriate when the requirements are well-
understoodand changes will be fairly limitedduring the design process.
■The waterfall model is mostly used for large systems engineering projects
where a system is developed at several sites.
Incremental Development
The Incremental Model is a software development process that
breaks down the system into smaller, manageable modules.
Each module is developed and deliveredincrementally, allowing
parts of the system to be implemented and tested independently.
When We Use the Incremental Model?
When the requirements are superior.
A project has a lengthy development schedule.
When the Software team is not very well-skilled or trained.
When the customer demands a quick release of the product.
Incremental development benefits
1. The cost of accommodating changing customer
requirements is reduced.
2. It is easier to get customer feedback on the development
work that has been done.
3. More rapid delivery and deployment of useful software to
the customer is possible.
12
Incremental Development Problems
1.Lack of process visibility
2.Systems are often poorly structured
3.Special skills (e.g. in languages for rapid prototyping)
may be required.
Applicability
–For small or medium-size interactive systems;
–For parts of large systems (e.g. the user interface);
–For short-lifetime systems.
Integration and Configuration Model
The Integration and Configuration Model focuses on assembling and
configuring pre-existing software components and systems to meet specific
user requirements. This model emphasizes integrating various components
and systems, often sourced from different vendors or developed in-house, to
create a cohesive software solution.
is a model basedonreuse, systemsare adaptedfrom existingcomponentsas
muchas possible.
(sometimes called COTS -Commercial-off-the-shelfsystems).
Use Cases
■Enterprise Systems: Ideal for integrating various enterprise applications
(e.g., CRM, ERP) to create a unified solution.
■Software Solutions with Pre-built Components: Suitable for projects that
involve configuring and assembling pre-existing software components.
Strengths
■Leveraging Existing Solutions: Utilizes existing components and systems, reducing development time
and cost.
■Flexibility: Allows for customization and configuration to meet specific user needs.
■Reduced Development Effort: Minimizes the need for custom development by reusing and integrating
existing solutions.
■Faster Time to Market: Accelerates deployment by using pre-built components and systems.
Weaknesses
■Integration Complexity: Managing the integration of diverse components can be complex and
challenging.
■Dependency Management: Reliance on external components may introduce risks related to
compatibility and updates.
■Customization Limitations: May face limitations in customizing components if they are not designed for
flexibility.
■Potential for Overhead: Integration and configuration may introduce additional overhead and
complexity.
Reuse-oriented Software Engineering
Reuse-oriented software engineering (ROSE) is an approach that focuses on
the systematic reuse of existing software components.
It emphasizes the use of pre-existing software artifacts rather than
developing new components from scratch, aiming to improve
productivity, reduce costs, and enhance software quality.
Stages :
1. Component analysis
2. Requirements modification.
3. System design.
4. implementation and integration Software
5. Maintenance
Cont…
Strengths
■Cost Reduction: By reusing existing components, development costs can be significantly reduced.
■Faster Development: Reusing components can speed up the development process since less time is spent
creating new code.
■Improved Quality: Reused components are often well-tested and reliable, which can lead to higher
overall system quality.
■Consistency: Reuse can lead to more consistent and standardized software systems.
Weaknesses
■Component Mismatch: Existing components may not fit perfectly with the new system’s requirements,
leading to adaptation challenges.
■Integration Complexity: Integrating disparate components can be complex and may require significant
effort.
■Dependency Management: Managing dependencies between reused components can be difficult,
especially when components are updated or replaced.
■Licensing and Legal Issues: Using third-party components may involve navigating complex licensing
agreements and ensuring compliance with legal requirements.
V-Model(Verification and Validation Model)
The V-Model, known as the Verification and Validation Model, is a software
development process that emphasizes the relationship between each phase
of the development life cycle and its corresponding testing phase.
The V-Model is structured to ensure that each development activity is
directly linked to a testing activity, promoting a thorough and systematic
approach to quality
Applications
The V-Model is often used in safety-critical and mission-critical systems,
such as aerospace, medical devices, and automotive systems.
It is also used in projects where requirements are well understood and
unlikely to change significantly during the development process
Strengths
■Structured Approach: Provides a clear, structured process with well-
defined phases and deliverables.
■Early Detection of Defects: Emphasizes early development of test plans
and testing activities, allowing for early defect detection and resolution.
■Traceability: Ensures that each development activity is directly linked to a
corresponding testing activity, improving traceability and accountability.
Weaknesses
■Inflexibility: The sequential nature of the V-Model makes it difficult to
accommodate changes once the project is underway.
■Time-Consuming: Detailed documentation and rigorous testing can be
time-consuming and may slow down the development process.
■Not Suitable for All Projects: Best suited for projects with well-defined
requirements. Projects with evolving requirements may find the V-Model
too rigid.
20
Iteration Model
■The Iteration Model is a software development approach where the project is
broken down into segments called iterations. Iteration can be applied to any
of the generic process models.
Key Characteristics of the Iteration Model
■Incremental Development: The software is developed in small, incremental
releases, each adding more functionality until the complete system is built.
■Repeated Cycles: Each iteration follows a similar cycle of activities
(planning, design, implementation, testing, and evaluation).
■Feedback Loop: After each iteration, feedback is gathered and used to
improve the next iteration, ensuring that the final product better meets user
needs and requirements.
■Risk Management: Early iterations address high-risk elements, reducing
uncertainty and potential issues later in the development process
21
Spiral Development model
The Spiral Model is a software development process that combines
elements of both iterative development and the Waterfall model,
emphasizing risk management and continuous refinement through
repeated cycles called spirals.
■Application
•Large and Complex Projects: Projects with high levels of complexity
and significant risk factors.
•High-Risk Projects: Systems where failure could have severe
consequences (e.g., aerospace, defense, medical systems).
•Innovative Projects: Projects involving new technologies or
innovative approaches where risks are not well understood.
22
Spiral model of the software process
Strengths
■Risk Reduction: Early and continuous risk identification and mitigation.
■Flexibility: Can handle changes in requirements and adapt to new
information.
■User Involvement: Continuous feedback from stakeholders and users
helps ensure the final product meets their needs.
■Incremental Refinement: The system is developed and refined in
incremental steps, allowing for continuous improvement.
Weaknesses
■Complexity: The model can be complex to manage and requires skilled
project management.
■Cost: Iterative risk analysis and prototyping can be expensive and time-
consuming.
■Expertise Required: Requires expertise in risk management and iterative
development.
Plan-driven and Agile Processes
Plan-driven processes are processes where all of the
process activities are planned and progress is measured
against this plan.
In agile processes, planning is incremental and it is easier
to change the process to reflect changing customer
requirements.
In practice, most practical processes include elements of
both plan-driven and agile approaches.
25
Process Activities?
Real software processes are inter-leaved sequences of technical,
collaborative,and managerialactivities with the overall goal
of specifying, designing, implementing,and testinga software
system.
The four basic process activities
1.Software requirement specifications
2.Software design and implementation
3.Software validation
4.Software evolution
The Requirements Engineering Process
27
1. Software specification
1.Feasibility study: An estimate is made of whether the identified user
needs may be satisfied, hardware technologies and cost-effective
2.Requirements elicitation and analysis This is the process of deriving
the system requirements through observation of existing systems,
discussions with potential users and procurers, task analysis, and so on.
3.Requirements specification is the activity of translating the information
gathered during the analysis activity into a document
4.Requirements validation: this activity checks the requirements for
realism, consistency, and completeness..
28
2. Software design and implementation
■Software design and implementation is the process of converting
the system specification into an executable system.
■Software design
–Design a software structure that realises the specification;
■Implementation
–Translate this structure into an executable program;
Software Design Process
30
Design process activities
1.Architectural design, where you identify the overall structure of the
system, relationships and how they are distributed.
3. Interface design, where you define the interfaces between system
components.
4. Component selection and design, where you search for reusable
components. If unavailable, you design how it will operate.
Database design, where you design the system data structures and how
these are to be represented in a database.
31
The Software Design Process
32
3. Software validation
■Verification and validation (V & V) is intended to show that a system
conforms to its specification and meets the requirements of the system
customer.
■Involves checking and review processes and system testing.
■System testing involves executing the system with test cases that are
derived from the specification of the real data to be processed by the
system.
33
Testing Stages
1. Component or unit testing
–Individual components are tested independently;
–Components may be functions or objects or coherent
groupings of these entities.
2. System testing
–Testing of the system as a whole. Testing of emergent
properties is particularly important.
3. Acceptance testing
–Testing with customer data to check that the system meets
the customer’s needs.
34
Testing phases
35
4. Software Evolution
■Software is inherently flexible and can change.
■As requirements change through changing business circumstances, the
software that supports the business must also evolve and change.
■Although there has been a demarcation between development and
evolution (maintenance) this is increasingly irrelevant as fewer and
fewer systems are completely new.
36
System Evolution
Understand why processes should be
organized?
•Efficiency and Productivity: Organized processes streamline tasks, leading
to faster and more productive workflows.
•Consistency and Quality: They ensure consistent performance and high-
quality outcomes across tasks.
•Resource and Risk Management: Proper organization optimizes resource
use and helps manage risks effectively.
•Communication and Collaboration: Clear processes improve teamwork and
communication, aligning efforts towards common goals.
•Adaptability and Continuous Improvement: Organized processes are
easier to adapt and enhance, supporting growth and innovation.
38
The Rational Unified Process
■A modern process model derived from the work
on the UML and associated process.
■Normally described from 3 perspectives
1.A dynamic perspective, which shows the
phases of the model over time
2.A static perspective, which shows the
process activities that are enacted.
3.A practice perspective, which suggests good
practices to be used during the process.
39
RUP Phase Model
Chapter Assessment
As a Software engineer, you are developing a system to SOBA
Company which operates in several countries in the world.
1.Select the appropriate software process model that you will
follow.
2.Explain what you selected it.
3.Also, list and explain the basic activities required to develop
the Software System.