Software EngineeringProcess
Learning Goals
• Distinguish among development processes
– Benefits and disadvantages
• Understand USDP / RUP
• Understand documentation needed
– Plan for iterative update with each cycle
• Define software “quality” quantitatively
– Must be measurable, plan for collection
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Typical Project Roadmap
1. Understand nature & scope of proposed product
2. Select the development process, and create a plan-- section 4 and chapter 2
4. Design and build the product -- chapters 5, 6, and 7
6. Deliver and maintain the product -- chapter 10
3. Gather requirements -- chapters 3 and 4
5. Test the product -- chapters 8 and 9
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Plan project
Integrate & test system
Analyze requirements
Design
Maintain
Test unitsImplement
Software Engineering Roadmap: Chapter 1 Focus
Identify corpor-ate practices- assess capability- specify standards- e.g. CMM level
Development phases
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
next chapter: Plan development process
Plan configuration management- how to manage documents & code- document: SCMP
Plan quality assurance - how to ensure quality- document: SQAP
Integrate & test system
Analyze requirements
Design
Maintain
Test unitsImplement
Software Engineering Roadmap:
Chapter 1 Focus
Identify corpor-ate practices- assess capability- specify standards- e.g. CMM level
Development phases
Plan verification & validation - verify the product satisfies requirements- validate each phase by showing it succeeded document: SVVP
Plan project
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
1. & 2. Introduction to the Software Engineering process
• Stand-alone– residing on a single computer – not connected to other software or hardware– e.g., word processor
• Embedded– part of unique application involving hardware– e.g., automobile controller
• Real-time– functions must execute within small time limit
• typically microseconds– e.g., radar software
• Network (Web) Centric– consist of parts interacting across a network – e.g., Web-based video game
Some Application Types
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Structured Programming (Function Oriented)
Function definition handleAccount(…)getDetailsFromUser(…)getAccount(…)doTransaction(…)……
Function definition getDetailsFromUser (…)getName(…)…...
Function definition getAccount(…)getFirstName(…)…...
…...
TOP
DOWNAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Object Orientation
Real world concepts
Software design entities
SkljkvjkvjfkavjafkksaovjsdvjfvkfjvkfjkSkljkvjkvjfkavjafkksaovjsdvjfvkfjvkfjkSkljkvjkvjfkavjafkksaovjsdvjfvkfjvkfjkSkljkvjkvjfkavjafkksaovjsdvjfvkfjvkfjk
AccountgetDetails()
Transactionexecute()
CustomergetFirstName()
Direct correspondence
Graphics reproduced with permission from Corel.Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Advantages of OO
• Simplicity: software objects model real world objects
• Modularity: data abstraction mean components are decoupled
• Modifiability: component changes that respect the public interface do not affect the system
• Extensibility: easy to add new objects or extend
functionality of existing ones through inheritance • Maintainability: can be maintained separately and on
different computers
• Re-usability: objects can be reused in different programs and across a network
Components and Reuse
account
getName()
setName()
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Common Object Model Idea(Java Bean or Python lib object)
• Meant to revolutionize software development• Promotes reusable code, design, architectures• Based on defined public interfaces• Internal attributes and functions are abstracted (hidden) from external access• Can be written in different langauges• Reside on different platforms
Interface Methods
Distributed / Network Centric Systems (n-tiered architecture)
Internet
Browser
Customer Desktopwebserve.acadiau.ca
ApacheHTTPServer
TomcatApp. Server
DB.html, .php,.class, .jsp
Admin
Browser
Admin Desktop
Admin
port 80
port 8080
DBserve.acadiau.ca
PostgreSQL
DBMSServer
Admin
3. Expectations for SE process, project, product and people
Five Key Expectations (Humphrey)
Influencedby people
Used forprocess development
Part oftheproject
Aspectof the product
3. Keep all work visible
5. Measure quality
4. A. Design onlyagainst requirements
B. Programonly against designsC. Test only against
requirements and designs
1. Predetermine quantitative quality goals
2. Accumulate data for subsequent use
4. Process alternatives
The Project Roadmap
1. Understand nature & scope of proposed product
2. Select the development process, and create a plan
4. Design the product
7. Deliver and maintain the product
3. Gather requirements
6. Test the product
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
5. Build/Implement the product Various Approaches
The Waterfall Model
Requirementsanalysis
Design
Implementation
Integration
Produces … specification (text)
... diagrams & text
... code & comments
... entire code
Test... test report, including defect descriptions
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
completetargeted
requirements
Step n:Analyzerequirements
Step n+3: Test
Step n+2: Implement
Step n+1: Design
Product:classmodels +
Product: requirementsspecifications
Product: code + Product: test results +
Spiral Development
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Iteration No.
Incremental Development
Analyzerequirements
Test whole
Implement
Design
Test units
Integrate
1 2 3 867 868
Update SRS3
Update SDD2
Update source code
Update Test documentation
Update SPMP1
1 Software Project Mangement Plan (chapter 2); 2 Software Design Document (chapter 5); 3 Software Requirements Specification (chapter 3);
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
USDP / RUP Methods
• USDP – Unified Software Development Process – An iterative and incremental development process. Time-boxed
iterations are grouped in to phases. Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release.
– http://en.wikipedia.org/wiki/Unified_Process
• RUP – Rational Unified Process– Defines nine disciplines: – Engineering disciplines - Business Modeling, Requirements,
Analysis and Design, Implementation, Test, Deployment;– Supporting disciplines - Configuration and Change Management,
Project Management, and Environment.– Four development life-cycle phases …– http://en.wikipedia.org/wiki/Rational_Unified_Process
USDP/RUP: Four Phases of Software Life Cycle
• Inception iterations– preliminary interaction with stakeholders (customer, users,
owners, financial backers)– Define objectives/requirements
• Elaboration iterations– finalization of what is wanted and needed– Define architecture
• Construction iterations– focus moves to detailed design, implementation and testing– Complete version of operational system
• Transition iterations– Complete documentation – Release product
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
ElaborationInception Construction Transition
Requirements
Analysis
Iter.#1
Iter.#n
Iter.#n+1
Iter.#m
Iter.#m+1
Iter.#k
….. …..Prelim.iterations
USDP/RUP vs. Standard Terminology (Booch, Jacobson & Rumbaugh)
Design
Implemen-tation
Test
“discipline’ or “core workflows” of s/w
process (Classically called
“phases”)
Phase of s/w life cycle
Individual iteration
Requirements
Analysis
USDP/RUP vs. Standard Terminology
Design
Implementation
Test
Requirements analysis
Implementation
USDP/RUP Terminology Classical Terminology
Integration
Design
Test
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Where basic classes areselected and related
Integration iscontinual
Elaboration
USDP/RUP Matrix
Inception Construction Transition
Requirements
Analysis
Jacobson et al: USDP
Prelim.iterations
Iter.#1
Iter.#n
Iter.#n+1
Iter.#m
Iter.#m+1
Iter.#k
….. …..
Design
Implemen-tation
Test
..
Amount of effort expendedon the requirements phaseduring the first Constructioniteration
OverviewPresentation Sys. Demo.
http://www.upedu.org/process/ovu_proc.htm
Advantages of USDP/RUP
• Focus on important risks / disciplines of each iteration
• Detail plan only for current iteration• Coarse planning for next iterations• Allows incremental buildup of system• Reduces risks by identifying major issues
early• Iterations allows people time to learn to
work more efficiently / effectively
Waterfall versus Iterative (USDP and RUP)
• Process Trade-offsFactor Waterfall IterativeEase of Doc. Easier HarderCustomer Interaction
Harder Easier
Prob. of good design
Medium Easier (Spiral)
Harder (Increm.)
Leverage proj. data
Harder Medium/Easier
Project Management
Easier Medium
Influencial Factors in Customizinga S/W/ Process
• Application domain factors• People and organizational factors• Product life-cycle factors• Process factors
Identify the Process You Will Use
1. Decide which of waterfall, spiral, and incremental processes is appropriateUsually a spiral for a semester project Combine: start with spiral, end with incremental
2. Decide how many iterationsUsually two for a semester project (there are many
artifacts to coordinate at the end of each iteration)Three provides lots of practice -- but this is a challenge;
make the first increment as minor as possibleThree promotes the collection and use of metric data -- use
metric data collected from each iteration on next.3. Rough out a weekly schedule
Coordinate with course assignments.
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
5. Documentation
IEEE Project Documentation
SRSsoftware requirements specifications
STDsoftware test documention
SCMPsoftware configuration management plan
SDDsoftware design document
SPMPsoftware project management plan
Source Code
Project status
Configuration
Testing
Requirements
Design
Code
User’s manualOperation
SQAPsoftware quality assurance planQuality assurance
SVVPsoftware validation & verification planVerification & validation
Customer-orientedDeveloper-orientedArchitectureDetailed design
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Comp3663 Project Documentation
SRSsoftware requirements specifications
STDsoftware test documention
SCMPsoftware configuration management plan
SDDsoftware design document
SPMPsoftware project management plan
Source Code
Detailed Design& Test Plan
User’s manualUser Manual
SQAPsoftware quality assurance plan
SVVPsoftware validation & verification plan
Requirements Specification& Management Plan
Customer-orientedDeveloper-orientedArchitectureDetailed design
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Example of Hyperlinked Documentation Set
SRSsoftware requirements specifications
STPsoftware test plan
SCMPsoftware configuration management plan
SDDsoftware design document
SPMPsoftware project management plan
Source Code
References to all other documents
Projectstatus*
Configuration*
Testresults*
Direction of hyperlink
*Dynamic component
Updates*
Updates*Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
6. Quality
Verification:are we building the thing right?
Validation:are we building the right thing?
Meaning of “V&V” (Boehm)
Graphics reproduced with permission from Corel.
Produce a Quality Product
1. Quantify your quality goalsteam: # defective requirements, # classes missing from design, #
defects in testing, # defects found in operation, # defects per KLOC (1000 lines of code)
personal: # defects; code, compile, unit test separately
2. Build inspections and reviews into the schedule– follow the inspection procedure (see figure 1.27)
3. Document your quality goals and procedures– use a documentation standard to avoid missing issues– SQAP and SVVP (see case study for example
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.