SlideShare a Scribd company logo
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
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 is a 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 one and corresponds to a specialization of
tasks
Chapter 2 of advanced Software Process.pdf
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-
understood and changes will be fairly limited during 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 delivered incrementally, 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 based on reuse, systems are adapted from existing components as
much as possible.
(sometimes called COTS -Commercial-off-the-shelf systems).
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
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
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 managerial activities with the overall goal
of specifying, designing, implementing, and testing a 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.
THANK YOU!

More Related Content

PPTX
Unit1_Software_EngineeringGGGGGGGGGG.pptx
PPTX
SE-03.pptx
DOCX
Software engineering 25 models details
PDF
Software Process Models
PPTX
Manual Testing Module 3-SDLC.pptx sdlc cycle most important part in manual
PPTX
Software Engg. process models
PDF
Software Development Taxonomy
PPT
Chapter 1- Introduction to software engineering for CS.ppt
Unit1_Software_EngineeringGGGGGGGGGG.pptx
SE-03.pptx
Software engineering 25 models details
Software Process Models
Manual Testing Module 3-SDLC.pptx sdlc cycle most important part in manual
Software Engg. process models
Software Development Taxonomy
Chapter 1- Introduction to software engineering for CS.ppt

Similar to Chapter 2 of advanced Software Process.pdf (20)

PPT
Chapter 1- Introduction for software.ppt
PPT
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
PPTX
SDLC (Software development life Cycle)
PPTX
Unit 1 sepm process models
PPT
Software Engineering (Process Models)
PPTX
Object Oriented Software engineering.pptx
PPT
187202477-Models-of-SDLC-ppt-Original.ppt
PPTX
Software process models shaukat wasi
PDF
Software Engineering Perspective and Specialized Process Models
PPTX
Software Process Models
PPTX
2-models.pptx
PPT
Software Processes
PDF
Software Engineering : Process Models
DOCX
Assignment
PPTX
Introduction to software Engineering slides
PPTX
Software process
PPT
Software Engineering Process Models important
PPTX
Introduction to Software Engg SDLC, SDLC Models
PDF
FSE Chap 2.pdf fundamental of software engineering for second year software e...
PPTX
Software Development Process Models in Software Engineering.pptx
Chapter 1- Introduction for software.ppt
20IT402 - SOFTWARE ENGINEERING ALL UNITS PPT
SDLC (Software development life Cycle)
Unit 1 sepm process models
Software Engineering (Process Models)
Object Oriented Software engineering.pptx
187202477-Models-of-SDLC-ppt-Original.ppt
Software process models shaukat wasi
Software Engineering Perspective and Specialized Process Models
Software Process Models
2-models.pptx
Software Processes
Software Engineering : Process Models
Assignment
Introduction to software Engineering slides
Software process
Software Engineering Process Models important
Introduction to Software Engg SDLC, SDLC Models
FSE Chap 2.pdf fundamental of software engineering for second year software e...
Software Development Process Models in Software Engineering.pptx
Ad

More from MohamedAhmed686097 (20)

PPT
malnutrition in adults in malnutrition lecture.ppt
PPTX
spirochetes microbiology lecture in medical.pptx
PPTX
management_of_acute_malnutrition(malnutrition)-.pptx
PPTX
Chapter 3 Nutrition Assessment (nutrition).pptx
PPTX
management_of_acute_malnutrition(malnutrition)-.pptx
PPTX
TISSUES AND HOMEOSTASIS introduction cytology.pptx
PPTX
Introduction and features to Django.pptx
PPT
Chapter One Java Swings GUA programming.ppt
PPT
Amino_acids_and_protein_biochemistry_ppt-1.ppt
PPTX
Chapter 4 Linked List introduction lessons.pptx
PPTX
RESPIRATORY SYSTEM HISTOLOGY introduction (2).pptx
DOCX
Chemistry of Carbohydrates introduction lesson.docx
PPT
Research Methodology for Computing & ICT , Abaarso Tech 2025.ppt
DOCX
BioChemstry introduction lesson CH1-1.docx
PPTX
LIVER, GALLBLADDER slides of medicine,.pptx
PDF
Chapter 1 Introduction to Software Engineering.pdf
PPT
introductiontomedicalterminology-hssedition11-2009-111102154411-phpapp02 (1).ppt
PPTX
Important_Terms_in_Embryology slides .pptx
PPTX
Veretebrea upper limb and lower limb.pptx
PPT
Chapter 1 Skeletal Morphogenesis and Embryonic Development.ppt
malnutrition in adults in malnutrition lecture.ppt
spirochetes microbiology lecture in medical.pptx
management_of_acute_malnutrition(malnutrition)-.pptx
Chapter 3 Nutrition Assessment (nutrition).pptx
management_of_acute_malnutrition(malnutrition)-.pptx
TISSUES AND HOMEOSTASIS introduction cytology.pptx
Introduction and features to Django.pptx
Chapter One Java Swings GUA programming.ppt
Amino_acids_and_protein_biochemistry_ppt-1.ppt
Chapter 4 Linked List introduction lessons.pptx
RESPIRATORY SYSTEM HISTOLOGY introduction (2).pptx
Chemistry of Carbohydrates introduction lesson.docx
Research Methodology for Computing & ICT , Abaarso Tech 2025.ppt
BioChemstry introduction lesson CH1-1.docx
LIVER, GALLBLADDER slides of medicine,.pptx
Chapter 1 Introduction to Software Engineering.pdf
introductiontomedicalterminology-hssedition11-2009-111102154411-phpapp02 (1).ppt
Important_Terms_in_Embryology slides .pptx
Veretebrea upper limb and lower limb.pptx
Chapter 1 Skeletal Morphogenesis and Embryonic Development.ppt
Ad

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
cuic standard and advanced reporting.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation theory and applications.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Big Data Technologies - Introduction.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PPT
Teaching material agriculture food technology
DOCX
The AUB Centre for AI in Media Proposal.docx
Cloud computing and distributed systems.
cuic standard and advanced reporting.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation theory and applications.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Big Data Technologies - Introduction.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
sap open course for s4hana steps from ECC to s4
Teaching material agriculture food technology
The AUB Centre for AI in Media Proposal.docx

Chapter 2 of advanced Software Process.pdf

  • 3. 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
  • 4. 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
  • 5. 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. 6 What is the Waterfall model? The waterfall approach was the first SDLC Model widely used in Software Engineering. The Waterfall Model is a 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 one and corresponds to a specialization of tasks
  • 8. 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.
  • 9. 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- understood and changes will be fairly limited during the design process. ■ The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
  • 10. Incremental Development The Incremental Model is a software development process that breaks down the system into smaller, manageable modules. Each module is developed and delivered incrementally, allowing parts of the system to be implemented and tested independently.
  • 11. 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. 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.
  • 13. 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 based on reuse, systems are adapted from existing components as much as possible. (sometimes called COTS -Commercial-off-the-shelf systems). 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.
  • 14. 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.
  • 15. 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
  • 17. 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.
  • 18. 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
  • 19. 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
  • 20. 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. 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. 22 Spiral model of the software process
  • 23. 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
  • 24. 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. 25 Process Activities? Real software processes are inter-leaved sequences of technical, collaborative, and managerial activities with the overall goal of specifying, designing, implementing, and testing a software system. The four basic process activities 1. Software requirement specifications 2. Software design and implementation 3. Software validation 4. Software evolution
  • 27. 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. 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;
  • 30. 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.
  • 32. 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. 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.
  • 35. 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.
  • 37. 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. 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.
  • 40. 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.