SlideShare une entreprise Scribd logo
1  sur  29
Chapter 2 – Software Processes
Lecture-3
1
Chapter 2 Software Processes
Software Engineering
(ICE 4211)
Presented By
Lecturer Md. Arafat Hossain
Dept. of Information & Communication Engineering,
Faculty of Science & Technology,
Bangladesh Army University of Engineering and Technology
Contents
 Software process models
 Incremental development
 Incremental development benefits
 Incremental development problems
 Reuse-oriented software engineering
 Reuse-oriented software engineering stages
 Types of software component
 Process activities
 Software specification
 Software design and implementation
 Software validation
 Software evolution
2
Chapter 2 Software Processes
Incremental development
3
Chapter 2 Software Processes
Incremental development (cont.)
 Incremental software development, which is a fundamental
part of agile approaches, is better than a waterfall approach
for most business, e-commerce, and personal systems.
 Incremental development reflects the way that we solve
problems.
 Each increment or version of the system incorporates some
of the functionality that is needed by the customer.
Generally, the early increments of the system include the
most important or most urgently required functionality.
Chapter 2 Software Processes 4
 This means that the customer can evaluate the system at a
relatively early stage in the development to see if it delivers
what is required. If not, then only the current increment has
to be changed and, possibly, new functionality defined for
later increments.
Chapter 2 Software Processes 5
Incremental development (cont.)
Incremental development benefits
 The cost of accommodating changing customer
requirements is reduced.
 The amount of analysis and documentation that has to be redone is
much less than is required with the waterfall model.
 It is easier to get customer feedback on the development
work that has been done.
 Customers can comment on demonstrations of the software and see
how much has been implemented.
 More rapid delivery and deployment of useful software to
the customer is possible.
 Customers are able to use and gain value from the software earlier
than is possible with a waterfall process.
6
Chapter 2 Software Processes
Incremental development problems
 The process is not visible.
 Managers need regular deliverables to measure progress. If systems
are developed quickly, it is not cost-effective to produce documents
that reflect every version of the system.
 System structure tends to degrade as new increments are
added.
 Unless time and money is spent on refactoring to improve the
software, regular change tends to corrupt its structure.
Incorporating further software changes becomes increasingly
difficult and costly.
7
Chapter 2 Software Processes
Reuse-oriented software
engineering
 Based on systematic reuse where systems are integrated from
existing components or COTS (Commercial-off-the-shelf) systems.
 In the 21st century, software development processes that focus on
the reuse of existing software have become widely used.
 Process stages
 Component analysis;
 Requirements modification;
 System design with reuse;
 Development and integration.
 Reuse is now the standard approach for building many types of
business system
 Reuse covered in more depth in Chapter 16. 8
Chapter 2 Software Processes
Reuse-oriented software engineering
(cont.)
9
Chapter 2 Software Processes
 Reuse-oriented approaches rely on a large base of reusable
software components and an integrating framework for the
composition of these components.
 Sometimes, these components are systems in their own right
(COTS or commercial off-the-shelf systems) that may
provide specific functionality such as word processing or a
spreadsheet.
10
Chapter 2 Software Processes
Reuse-oriented software engineering
(cont.)
 1. Component analysis Given the requirements
specification, a search is made for components to implement
that specification. Usually, there is no exact match and the
components that may be used only provide some of the
functionality required.
 2. Requirements modification During this stage, the
requirements are analyzed using information about the
components that have been discovered. They are then
modified to reflect the available components. Where
modifications are impossible, the component analysis
activity may be re-entered to search for alternative
solutions.
11
Chapter 2 Software Processes
Reuse-oriented software engineering
stages
 3. System design with reuse During this phase, the
framework of the system is designed or an existing
framework is reused. The designers take into account the
components that are reused and organize the framework to
cater for this. Some new software may have to be designed if
reusable components are not available.
 4. Development and integration Software that cannot be
externally procured is developed, and the components and
COTS systems are integrated to create the new system.
System integration, in this model, may be part of the
development process rather than a separate activity.
12
Chapter 2 Software Processes
Reuse-oriented software engineering
stages (cont.)
Types of software component
 Web services that are developed according to service
standards and which are available for remote invocation.
 Collections of objects that are developed as a package to be
integrated with a component framework such as .NET or
J2EE.
 Stand-alone software systems (COTS) that are configured
for use in a particular environment.
13
Chapter 2 Software Processes
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 of specification,
development, validation and evolution are organized
differently in different development processes. In the
waterfall model, they are organized in sequence, whereas in
incremental development they are inter-leaved.
14
Chapter 2 Software Processes
Software specification
 Software Specification or requirements engineering is the
process of establishing what services are required and the
constraints on the system’s operation and development.
 Requirements engineering process
 Feasibility study
• Is it technically and financially feasible to build the system?
• Does it satisfies user needs using current software and hardware technologies,
cost-effective?
• The analysis should be cheap and quick.
 Requirements elicitation and analysis
• What do the system stakeholders require or expect from the system?
• 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.
• This may involve the development of one or more system models and prototypes.
15
Software specification (cont.)
 Requirements specification
 Defining the requirements in detail into a document. Considers two types
of requirements. User requirements are abstract statements of the system
requirements for the customer and end-user of the system; system
requirements are a more detailed description of the functionality to be
provided.
 Requirements validation
• Checking the validity of the requirements. Errors in the
requirements are then modified to correct them.
16
Chapter 2 Software Processes
The requirements engineering
process
17
Chapter 2 Software Processes
Software design and implementation
 A software design is a description of the structure of the software to be
implemented, the data models and structures used by the system, the
interfaces between system components and, sometimes, the algorithms
used. Designers do not arrive at a finished design immediately but
develop the design iteratively.
 In other words, 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;
 The activities of design and implementation are closely related and may
be inter-leaved.
18
Chapter 2 Software Processes
A general model of the design
process
19
Chapter 2 Software Processes
Design activities
 Architectural design, where you identify the overall
structure of the system, the principal components
(sometimes called sub-systems or modules), their
relationships and how they are distributed.
 Interface design, where you define the interfaces between
system components.
 Component design, where you take each system component
and design how it will operate.
 Database design, where you design the system data
structures and how these are to be represented in a
database.
20
Chapter 2 Software Processes
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.
 Testing is the most commonly used V & V activity.
21
Chapter 2 Software Processes
Stages of testing
22
Chapter 2 Software Processes
Testing stages
 Development or component testing
 Individual components are tested independently;
 Components may be functions or objects or coherent groupings of
these entities.
 System testing
 Testing of the system as a whole. Testing of emergent properties is
particularly important.
 Acceptance testing
 Testing with customer data to check that the system meets the
customer’s needs.
23
Chapter 2 Software Processes
Testing phases in a plan-driven
software process
24
Chapter 2 Software Processes
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.
25
Chapter 2 Software Processes
System evolution (cont.)
26
Chapter 2 Software Processes
Key points
 Software processes are the activities involved in producing a
software system. Software process models are abstract
representations of these processes.
 General process models describe the organization of
software processes. Examples of these general models
include the ‘waterfall’ model, incremental development, and
reuse-oriented development.
27
Chapter 2 Software Processes
Key points (cont.)
 Requirements engineering is the process of developing a
software specification.
 Design and implementation processes are concerned with
transforming a requirements specification into an
executable software system.
 Software validation is the process of checking that the
system conforms to its specification and that it meets the
real needs of the users of the system.
 Software evolution takes place when you change existing
software systems to meet new requirements. The software
must evolve to remain useful.
28
Chapter 2 Software Processes
Thank you
29
Chapter 2 Software Processes

Contenu connexe

Similaire à Lecture - 7-10.pptx

Similaire à Lecture - 7-10.pptx (20)

Software process
Software processSoftware process
Software process
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Software Engineering Process
Software Engineering ProcessSoftware Engineering Process
Software Engineering Process
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
SE2.ppt
SE2.pptSE2.ppt
SE2.ppt
 
Ch2 - SW Processes
Ch2 - SW ProcessesCh2 - SW Processes
Ch2 - SW Processes
 
Ch2 software engineering and Processes.pdf
Ch2 software engineering and Processes.pdfCh2 software engineering and Processes.pdf
Ch2 software engineering and Processes.pdf
 
Chapter 2 Software Processes.pdf
Chapter 2 Software Processes.pdfChapter 2 Software Processes.pdf
Chapter 2 Software Processes.pdf
 
ch2swprocesses-150102101840-conversion-gate02.pdf
ch2swprocesses-150102101840-conversion-gate02.pdfch2swprocesses-150102101840-conversion-gate02.pdf
ch2swprocesses-150102101840-conversion-gate02.pdf
 
Ch2 sw processes
Ch2 sw processesCh2 sw processes
Ch2 sw processes
 
Lecture - 11-15.pptx
Lecture - 11-15.pptxLecture - 11-15.pptx
Lecture - 11-15.pptx
 
Ch2.Part2.Modified.ppt
Ch2.Part2.Modified.pptCh2.Part2.Modified.ppt
Ch2.Part2.Modified.ppt
 
Software Process Model
Software Process ModelSoftware Process Model
Software Process Model
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Bridge Process Model
Bridge Process ModelBridge Process Model
Bridge Process Model
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
 
Software Engineering Past Papers (Short Questions)
Software Engineering Past Papers (Short Questions)Software Engineering Past Papers (Short Questions)
Software Engineering Past Papers (Short Questions)
 
se02_SW_Process.ppt
se02_SW_Process.pptse02_SW_Process.ppt
se02_SW_Process.ppt
 

Plus de FarHana74914 (6)

Use-Case-Diagram.ppt
Use-Case-Diagram.pptUse-Case-Diagram.ppt
Use-Case-Diagram.ppt
 
DFD_Context-_zero-level.ppt
DFD_Context-_zero-level.pptDFD_Context-_zero-level.ppt
DFD_Context-_zero-level.ppt
 
Lecture-1-3.pptx
Lecture-1-3.pptxLecture-1-3.pptx
Lecture-1-3.pptx
 
Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptx
 
Lecture - 20-23.pptx
Lecture - 20-23.pptxLecture - 20-23.pptx
Lecture - 20-23.pptx
 
Lecture - 16-19.pptx
Lecture - 16-19.pptxLecture - 16-19.pptx
Lecture - 16-19.pptx
 

Dernier

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
Health
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

Dernier (20)

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Rums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdfRums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdf
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 

Lecture - 7-10.pptx

  • 1. Chapter 2 – Software Processes Lecture-3 1 Chapter 2 Software Processes Software Engineering (ICE 4211) Presented By Lecturer Md. Arafat Hossain Dept. of Information & Communication Engineering, Faculty of Science & Technology, Bangladesh Army University of Engineering and Technology
  • 2. Contents  Software process models  Incremental development  Incremental development benefits  Incremental development problems  Reuse-oriented software engineering  Reuse-oriented software engineering stages  Types of software component  Process activities  Software specification  Software design and implementation  Software validation  Software evolution 2 Chapter 2 Software Processes
  • 4. Incremental development (cont.)  Incremental software development, which is a fundamental part of agile approaches, is better than a waterfall approach for most business, e-commerce, and personal systems.  Incremental development reflects the way that we solve problems.  Each increment or version of the system incorporates some of the functionality that is needed by the customer. Generally, the early increments of the system include the most important or most urgently required functionality. Chapter 2 Software Processes 4
  • 5.  This means that the customer can evaluate the system at a relatively early stage in the development to see if it delivers what is required. If not, then only the current increment has to be changed and, possibly, new functionality defined for later increments. Chapter 2 Software Processes 5 Incremental development (cont.)
  • 6. Incremental development benefits  The cost of accommodating changing customer requirements is reduced.  The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model.  It is easier to get customer feedback on the development work that has been done.  Customers can comment on demonstrations of the software and see how much has been implemented.  More rapid delivery and deployment of useful software to the customer is possible.  Customers are able to use and gain value from the software earlier than is possible with a waterfall process. 6 Chapter 2 Software Processes
  • 7. Incremental development problems  The process is not visible.  Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system.  System structure tends to degrade as new increments are added.  Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. 7 Chapter 2 Software Processes
  • 8. Reuse-oriented software engineering  Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.  In the 21st century, software development processes that focus on the reuse of existing software have become widely used.  Process stages  Component analysis;  Requirements modification;  System design with reuse;  Development and integration.  Reuse is now the standard approach for building many types of business system  Reuse covered in more depth in Chapter 16. 8 Chapter 2 Software Processes
  • 10.  Reuse-oriented approaches rely on a large base of reusable software components and an integrating framework for the composition of these components.  Sometimes, these components are systems in their own right (COTS or commercial off-the-shelf systems) that may provide specific functionality such as word processing or a spreadsheet. 10 Chapter 2 Software Processes Reuse-oriented software engineering (cont.)
  • 11.  1. Component analysis Given the requirements specification, a search is made for components to implement that specification. Usually, there is no exact match and the components that may be used only provide some of the functionality required.  2. Requirements modification During this stage, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available components. Where modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions. 11 Chapter 2 Software Processes Reuse-oriented software engineering stages
  • 12.  3. System design with reuse During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused and organize the framework to cater for this. Some new software may have to be designed if reusable components are not available.  4. Development and integration Software that cannot be externally procured is developed, and the components and COTS systems are integrated to create the new system. System integration, in this model, may be part of the development process rather than a separate activity. 12 Chapter 2 Software Processes Reuse-oriented software engineering stages (cont.)
  • 13. Types of software component  Web services that are developed according to service standards and which are available for remote invocation.  Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE.  Stand-alone software systems (COTS) that are configured for use in a particular environment. 13 Chapter 2 Software Processes
  • 14. 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 of specification, development, validation and evolution are organized differently in different development processes. In the waterfall model, they are organized in sequence, whereas in incremental development they are inter-leaved. 14 Chapter 2 Software Processes
  • 15. Software specification  Software Specification or requirements engineering is the process of establishing what services are required and the constraints on the system’s operation and development.  Requirements engineering process  Feasibility study • Is it technically and financially feasible to build the system? • Does it satisfies user needs using current software and hardware technologies, cost-effective? • The analysis should be cheap and quick.  Requirements elicitation and analysis • What do the system stakeholders require or expect from the system? • 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. • This may involve the development of one or more system models and prototypes. 15
  • 16. Software specification (cont.)  Requirements specification  Defining the requirements in detail into a document. Considers two types of requirements. User requirements are abstract statements of the system requirements for the customer and end-user of the system; system requirements are a more detailed description of the functionality to be provided.  Requirements validation • Checking the validity of the requirements. Errors in the requirements are then modified to correct them. 16 Chapter 2 Software Processes
  • 18. Software design and implementation  A software design is a description of the structure of the software to be implemented, the data models and structures used by the system, the interfaces between system components and, sometimes, the algorithms used. Designers do not arrive at a finished design immediately but develop the design iteratively.  In other words, 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;  The activities of design and implementation are closely related and may be inter-leaved. 18 Chapter 2 Software Processes
  • 19. A general model of the design process 19 Chapter 2 Software Processes
  • 20. Design activities  Architectural design, where you identify the overall structure of the system, the principal components (sometimes called sub-systems or modules), their relationships and how they are distributed.  Interface design, where you define the interfaces between system components.  Component design, where you take each system component and design how it will operate.  Database design, where you design the system data structures and how these are to be represented in a database. 20 Chapter 2 Software Processes
  • 21. 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.  Testing is the most commonly used V & V activity. 21 Chapter 2 Software Processes
  • 22. Stages of testing 22 Chapter 2 Software Processes
  • 23. Testing stages  Development or component testing  Individual components are tested independently;  Components may be functions or objects or coherent groupings of these entities.  System testing  Testing of the system as a whole. Testing of emergent properties is particularly important.  Acceptance testing  Testing with customer data to check that the system meets the customer’s needs. 23 Chapter 2 Software Processes
  • 24. Testing phases in a plan-driven software process 24 Chapter 2 Software Processes
  • 25. 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. 25 Chapter 2 Software Processes
  • 26. System evolution (cont.) 26 Chapter 2 Software Processes
  • 27. Key points  Software processes are the activities involved in producing a software system. Software process models are abstract representations of these processes.  General process models describe the organization of software processes. Examples of these general models include the ‘waterfall’ model, incremental development, and reuse-oriented development. 27 Chapter 2 Software Processes
  • 28. Key points (cont.)  Requirements engineering is the process of developing a software specification.  Design and implementation processes are concerned with transforming a requirements specification into an executable software system.  Software validation is the process of checking that the system conforms to its specification and that it meets the real needs of the users of the system.  Software evolution takes place when you change existing software systems to meet new requirements. The software must evolve to remain useful. 28 Chapter 2 Software Processes
  • 29. Thank you 29 Chapter 2 Software Processes