lecture 2 (software processes)
DESCRIPTION
Learn about software processes.TRANSCRIPT
![Page 1: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/1.jpg)
Introduction to Software Engineering(CSC291)
InstructorHumaira Afzal
![Page 2: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/2.jpg)
What is a Process … ?•When we provide a service or create a product we
always follow a sequence of steps to accomplish a set of tasks
▫You do not usually bake a cake before all the ingredients are mixed together
•We can think of a series of activities as a process
2
![Page 3: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/3.jpg)
What is a Process … ?•Any process has the following characteristics▫It prescribes all of the major activities▫It uses resources and produces intermediate and final
products▫It may include sub-processes and has entry and exit
criteria▫The activities are organized in a sequence▫Constraints or controls may apply to activities
(budget constraints, availability of resources , etc.)
3
![Page 4: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/4.jpg)
The software process• A structured set of activities that leads to the development of
a software product. From scratch By extending and modifying existing systems
• Basic Process activities(common to all software Processes)▫Specification▫Design▫Validation▫Evolution
![Page 5: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/5.jpg)
Software specification/requirement engineering
• The process of understanding and defining
- what services are required from the system
- Identify the constraints on the system’s operation and development
- Critical Stage of the software process
- The “what” of the software life cycle
![Page 6: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/6.jpg)
Software specification(contd..)•Four main phases in requirements engineering
process▫Feasibility study▫Requirements elicitation and analysis▫Requirements specification▫Requirements validation
![Page 7: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/7.jpg)
1.Feasibility study :- an estimate is made of whether the identified user needs may be satisfied using current software and hardware technologies.
- whether the proposed system will be cost effective
- the decision of whether to go ahead with a more detailed analysis.
Software specification(contd..)
![Page 8: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/8.jpg)
Software specification(contd..)
Requirements elicitation and analysis:
This is the process of deriving the system requirements through - observation of existing systems
- discussions with potential users- task analysis, etc.
This may involve the development of one or more different system models and prototypes. These help analyst
understand the system to be specified.
![Page 9: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/9.jpg)
Requirements specification: is the activity of translating the information gathered during the analysis activity into a document that defines a set of requirements.
Two types of requirements : • User requirements• System requirements
Requirements validation : This activity checks the requirements for realism, consistency
and completeness.
Software specification(contd..)
![Page 10: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/10.jpg)
The requirements engineering process
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
![Page 11: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/11.jpg)
Note : Of course the activities in the requirements process are not simply carried out in a strict sequence. Therefore, the activities of analysis, definition and specification are interleaved.
The requirements engineering process
![Page 12: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/12.jpg)
Software design and implementation•The process of converting the system specification
into an executable system•Software design▫Description of the structure of software to be
implemented• Implementation▫Translate this structure into an executable program
•The activities of design and implementation are closely related and may be inter-leaved
•The “how” of the software life cycle
![Page 13: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/13.jpg)
Design process activities
•Architectural design•Abstract specification• Interface design•Component design•Data structure design•Algorithm design
![Page 14: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/14.jpg)
1.Architectural design The sub-systems making up the system and their relationships are identified and documented.
2.Abstract specification For each sub-system, an abstract specification of its services and the constraints under which it must operate is produced.
The software design process
![Page 15: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/15.jpg)
The software design process
• Interface design For each sub-system, its interface with other sub-system is designed and documented. This interface specification must be unambiguous as it allows the sub-system to be used without knowledge of the sub-system operation.
1.Component design Services are allocated to different components and the interfaces of these components are designed.
![Page 16: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/16.jpg)
The software design process
1.Data Structure design The data structures used in the system implementation are designed in detail and specified.
2.Algorithm design The algorithms used to provide services are designed in detail and specified.
![Page 17: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/17.jpg)
The software design process
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
![Page 18: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/18.jpg)
In many software development projects, software design is still an ad hoc process. Starting from a set of requirements, usually in natural language, an informal design is prepared.
A more methodical approach to software design is proposed by “structured methods” which are sets of notations and guidelines for software design.
The software design process
![Page 19: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/19.jpg)
Design methods•Systematic approaches to developing a software
design•The design is usually documented as a set of
graphical models•Possible models▫Data-flow model▫Entity-relation-attribute model▫Structural model▫Object models
![Page 20: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/20.jpg)
Programming and debugging•Translating a design into a program and removing
errors from that program•Programming is a personal activity - there is no
generic programming process•Programmers carry out some program testing to
discover faults in the program and remove these faults in the debugging process
![Page 21: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/21.jpg)
The debugging process
Locateerror
Designerror repair
Repairerror
Re-testprogram
![Page 22: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/22.jpg)
Software validation•Verification and validation 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
![Page 23: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/23.jpg)
The testing process
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptancetesting
Componenttesting
Integration testing Usertesting
![Page 24: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/24.jpg)
Testing stages• Unit testing
▫ Individual components are tested• Module testing
▫ Related collections of dependent components are tested• Sub-system testing
▫ Modules are integrated into sub-systems and tested. The focus here should be on interface testing
• System testing▫ Testing of the system as a whole. Testing of emergent properties
• Acceptance testing▫ Testing with customer data to check that it is acceptable
![Page 25: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/25.jpg)
Testing phasesRequirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegration test
Sub-systemintegration test
![Page 26: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/26.jpg)
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
![Page 27: Lecture 2 (Software Processes)](https://reader034.vdocuments.mx/reader034/viewer/2022052321/5479f582b4af9f86618b4606/html5/thumbnails/27.jpg)
System evolution
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems