+ All Categories
Home > Documents > Software Engineering Process

Software Engineering Process

Date post: 05-Jan-2016
Category:
Upload: melina
View: 45 times
Download: 0 times
Share this document with a friend
Description:
Software Engineering Process. Outline. [Chapter 2 of UPEDU text plus slides] Understanding the Development and Evolution of Software Defining the Software Life cycle and the Software Process Defining Elements of the Software Process - PowerPoint PPT Presentation
35
Software Engineering Process
Transcript
Page 1: Software Engineering Process

Software EngineeringProcess

Page 2: Software Engineering Process

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.

Page 3: Software Engineering Process

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.

Page 4: Software Engineering Process

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.

Page 5: Software Engineering Process

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.

Page 6: Software Engineering Process

1. & 2. Introduction to the Software Engineering process

Page 7: 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.

Page 8: Software Engineering Process

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.

Page 9: Software Engineering Process

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.

Page 10: Software Engineering Process

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

Page 11: Software Engineering Process

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

Page 12: Software Engineering Process

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

Page 13: Software Engineering Process

3. Expectations for SE process, project, product and people

Page 14: Software Engineering Process

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

Page 15: Software Engineering Process

4. Process alternatives

Page 16: Software Engineering Process

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

Page 17: Software Engineering Process

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.

Page 18: Software Engineering Process

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.

Page 19: Software Engineering Process

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.

Page 20: Software Engineering Process

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

Page 21: Software Engineering 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.

Page 22: Software Engineering Process

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

Page 23: Software Engineering Process

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

Page 24: Software Engineering Process

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

Page 25: Software Engineering Process

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

Page 26: Software Engineering Process

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

Page 27: Software Engineering Process

Influencial Factors in Customizinga S/W/ Process

• Application domain factors• People and organizational factors• Product life-cycle factors• Process factors

Page 28: Software Engineering Process

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.

Page 29: Software Engineering Process

5. Documentation

Page 30: Software Engineering Process

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.

Page 31: Software Engineering Process

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.

Page 32: Software Engineering Process

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.

Page 33: Software Engineering Process

6. Quality

Page 34: Software Engineering Process

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.

Page 35: Software Engineering Process

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.


Recommended