+ All Categories
Home > Documents > Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The...

Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The...

Date post: 21-Mar-2018
Category:
Upload: dangdat
View: 213 times
Download: 1 times
Share this document with a friend
32
Software Development Processes
Transcript
Page 1: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

Software Development Processes

Page 2: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

The Processes• Software Development Process: a

structured and progressive refinement from idea to an actual system

• Processes – Waterfall – Prototype – Incremental – Spiral – V-Model – Cleanroom – RUP – XP – SCRUM – RAD – ASAP – MSF – DFDM

• Waterfall defined by Royce (seventies)

• Introduced to address the “software crisis”

• New processes proposed to: – Increase flexibility in the organization of

development activities – Improve:

* User satisfaction (building systems that are closer to user needs)

* Efficiency (building systems faster) * Time and costs (being more reliable with estimations) * Quality

• Heavy-weight vs. Agile

!2

Page 3: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Waterfall Model

!3

I SYSTE M

I ANALYSIS

PROGRAM DESIGN

I c o o , . o

TESTING

I OPERATIONS

Figure 2. Implementation steps to develop a large computer program for delivery to a customer.

I believe in this concept, but the implementation described above is risky and invites failure. The

problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the

first event for which timing, storage, input /output transfers, etc., are experienced as distinguished from

analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial

differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various

external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated

code wil l not f ix these kinds of diff icult ies. The required design changes are l ikely to be so disruptive that the

software requirements upon which the design is based and which provides the rationale for everything are

violated. Either the requirements must be modif ied, or a substantial change in the design is required. In effect

the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule

and/or costs.

One might note that there has been a skipping-over of the analysis and code phases. One cannot, of

course, produce software wi thout these steps, but generally these phases are managed wi th relative ease and

have l i tt le impact on requirements, design, and testing. In my experience there are whole departments

consumed with the analysis of orbi t mechanics, spacecraft att i tude determination, mathematical opt imizat ion

of payload activity and so forth, but when these departments have completed their di f f icul t and complex work,

the resultant program steps involvea few lines of serial arithmetic code. If in the execution of their d i f f icul t

and complex work the analysts have made a mistake, the correction is invariably implemented by a minor

change in the code with no disruptive feedback into the other development bases.

However, I believe the illustrated approach to be fundamental ly sound. The remainder of this

discussion presents five addit ional features that must be added to this basic approach to eliminate most of the

development risks.

329

• Managing the development of large software systems (Winston W. Royce)

Page 4: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Waterfall Model

!4

/,

I0: wZ

/oo i ,~ g

~

Irl ..

o

i0 . i

IIII ~,- ,,*,1

=

• .

~

illl ~$

~

m z

~_

~

u,

E

X

E

8 "

0

Ill N

~

, .~- r"

.2

/ "

z_ ,,,. ~ ~

E

~O

LU

a

. .~

N

N

IZ

,~,-

w

i-,<~

t-

LL

333

• Managing the development of large software systems (Winston W. Royce)

Page 5: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Waterfall Model• Inflexible partitioning of the project into distinct stages • This makes it difficult to respond to changing customer

requirements • This model is only appropriate when:

– The requirements are well-understood and/or – The level of formality is high (e.g. it is essential to “freeze” the

requirement document)

!5

Page 6: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Waterfall Model

!6

I SYSTEM ! REQUIREMENTSIBI~

~ " ' i so,w.,~ I

ANALYSIS

~1111~ I I pRI~OGRAM

~ l l l I CODING Ii

TESTING

OPERATIONS

Figure 3. Hopefully, the ~terat=ve interact=on between the various phases is confined to successive steps.

I SYSTEM "1 .~oo,.~-,..Sl.,~ I so,w..~ !.

I ANALYSIS

PROGRAM DESIGN

I coo,.G I ,~

! TESTING I

I O .ATO.S !

Figure 4. Unfortunately, for the process illustrated, the design iterations are never confined to the successive steps.

330

• Managing the development of large software systems (Winston W. Royce)

Page 7: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Waterfall Variations• Sashimi waterfall: activities are allowed to overlap • Waterfall with sub projects: implementation of

different components proceeds in parallel • Waterfall with risk reduction: an initial risk analysis

helps mitigate risks in later phases of implementation

!7

Page 8: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

V-Cycle

!8

Requirements

Specification

ArchitecturalDesign

Coding Unit Testing

Integration Testing

System Testing

Acceptance Testing

• Structural support for backtracking

• Focus on testing • German standard

Page 9: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Rational Unified Process

!9

Page 10: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Rational Unified Process• Process introduced by Rational in the eighties

(the same company of UML) [Rational is now IBM] !

• Process organized in two dimension: – phases, organized in iterations, correspond to different levels of

maturity – workflows, focusing on a specific software development concern

• Phases are organized in iterations • Workflows are overlapping and characterized by levels of

intensity

!10

Page 11: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Rational Unified Process Best Practices• Six main practices define guiding principles of RUP:

– Develop software iteratively – Manage requirements (including evaluation of product

alternatives) – Use component-based architectures (robust components) – Visually model software (simple and unambiguous

representation to build a shared vision) – Verify software quality – Control changes to the software (both for quality and

management)

!11

Page 12: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Open Unified Process• The evolution of RUP • Open source • “Agile” • http://epf.eclipse.org/

wikis/openup/

!12

Page 13: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Spiral

!13

Review

Evaluate alternatives,

risks

Commitment

partition

\ \ DeveloD- 1 Reauirements besign /T---i

Plan next phases

!‘,“I’p-y 1 Design validation

verify I next-level product

Figure 2. Spiral model of the software process.

difficulties. Automatic transformation

capabilities are only available for small products in a few limited areas: spread-

sheets, small fourth-generation language

applications, and limited computer-

science domains. The transform model

also shares some of the difficulties of the

evolutionary development model, such as

the assumption that users’ operational sys-

tems will always be flexible enough to sup-

port unplanned evolution paths.

The spiral model Additionally, it would face a formidable

knowledge-base-maintenance problem in

dealing with the rapidly increasing and

evolving supply of reusable software com-

ponents and commercial software

products. (Simply consider the problem of

tracking the costs, performance, and fea-

tures of all commercial database manage-

ment systems, and automatically choosing

the best one to implement each new or

changed specification.)

The spiral model of the software process

(see Figure 2) has been evolving for several

years, based on experience with various

refinements of the waterfall model as

applied to large government software

projects. As will be discussed, the spiral

model can accommodate most previous

models as special cases and further pro-

64 COMPUTER

• A Spiral Model of Software Development and Enhancement (Barry W. Boehm)

Page 14: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Spiral• Defined by Barry W. Boehm (end of the ‘80s) • Iterative: software is developed in cycles • Each loop in the spiral represents a phase in the process. • No fixed phases such as specification or design - loops in the

spiral are chosen depending on what is required • Alternative and risk-aware: first phases include an evaluation of

possible alternatives and an assessment of the risks • The paper includes a list of common project risks (*)(not only

process, also practices)(*) which we will look at during the Risk Management lessons

!14

Page 15: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Spiral• Advantages

– Alternative and Risk driven – It accommodates different

software development practices (among which reuse and automatic code generation)

– Intrinsically fit for software evolution (maintenance is another loop in the spiral)

• Disadvantages

– Matching to contract software

– Difficulties in coming out with estimations at the beginning

– Flexibility

!15

Page 16: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Prototype Approach• Once the high level requirements are fixed, a prototype

of the application is developed (e.g. the GUI) and evaluated with the client

• Breadth and depth of the prototype – Horizontal prototype: focus on the application – Vertical prototype: focus on a specific function

• Types of prototypes: – Throw-away: the prototype demonstrates the system (but it is

not the system!) – Evolutionary: the prototype evolves to become the system

!16

Page 17: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Prototype Approach

!17

High Level Requirements

ArchitecturalDesign

Implementation

Detailed Requirements

EvaluationPrototypeTesting (V&V)

Page 18: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Prototype Approach• Advantages

– Shared view on requirements: the client has a better understanding of the final product and can provide more specific comments.

– Difficult and risky components can be developed early to verify the feasibility of critical parts of the system

!

• Disadvantages – Lack of process visibility – Re-work (and frustration) – The evolutionary approach

leads to poor architectures (because they are built with incomplete information)

• Applicability – For small or medium-size

interactive systems – For parts of large systems

(e.g. the user interface) – For short-lifetime systems

!18

Page 19: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Incremental• Development and delivery is broken down into

increments • Each increment delivers part of the required

functionality • Requirements are prioritized and the highest priority

requirements are included in early increments • Once the development of an increment is started, the

requirements are frozen • Requirements for later increments can continue to

evolve

!19

Page 20: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Incremental

!20

Requirements

Allocate Requirements to Increments

Define Architecture

Implement Increment

Validate Increment

Integrate Increment

Validate SystemSystem

Page 21: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Incremental• Advantages

– System functionality is available earlier and customer does not have to wait as long

– Early increments act as a prototype to help elicit requirements for later increments

– Lower risk of overall project failure

– The highest priority system services tend to receive the most testing !!

• Disadvantages – System architecture tends to

degrade (as with other evolutive approaches)

– Some increments might cause significant re-work

!21

Page 22: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Clean Room Software Engineering• A process for zero-defect

software • Based on formal methods

and statistical testing • Quick and clean … an

incremental done right

!22

Specification

IncrementsPlanning

Formal Design & Implementation

Random Test Case Generation

Statistical Testing

Quality Certification

Testing Results (Estimation of MTTF)

Process Improvement Suggestions

[system not finished yet]

[systembuilt]

Functional Specification Usage Specification

Customer Requirements

Page 23: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Open Source Development Process• The development of open source software has various

distinguishing features: – The project often starts from an existing code based

(sometimes large) – Community of developers working on a volunteer-basis (not all);

with different experience; geographically distributed – Some challenges: involvement with different roles; quality

control; difficult to plan releases

!23

Page 24: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Open Source Development Process• General model:

– A roadmap defines software evolution

– Coding starts from a product backlog and is released as a patch

– Code review ensures quality

• Two models: – fix features (deliver when

ready) – deliver at fixed dates (with

the features you have)

!24

Dev

elop

Project Artifacts

Initial Release

Code

Release

SteerSystem

Roadmap

Product Backlog

SourceCode

Packaged Relase

Review

Incorporate

Patch

Page 25: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Firefox Release Schedule

!25

1

2

3

4

5

6

7

8

Task Namemozilla-centralmozilla-auroramozilla-betafirefoxcheck compatibility with extensionsecurity checkquality assurancego/no go decision

W52 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W14 W15 W16 W17 W18 W19 W20 W21 W22

Page 26: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

Some Additional Concerns

Page 27: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spmspm

Project Management/SW Development• All development processes need to integrate

development and management workflows • For instance:

!27

Requirements Design Implementation & Testing Deployment

Requirements Document

System Architecture

System System in Production

High LevelPlanning

Management Documents

System Sizing and Detailed

Plan

Management Documents

Monitoring and Control Closing

Project Data

Dev

elop

men

tA

ctiv

ities

Man

agem

ent

Act

iviti

es

Page 28: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

System Organization and Decomposition• Complex systems are

structured in more elementary components

• Different strategies: – Top-down decomposition

(system/component/item): the development of upper levels is achieved by composing more elementary components

– Bottom-up Composition (different components can be developed independently and then integrated)

!28

System

Component N...Component 1

Item 1 ... Item M

Hierarchical decomposition

Components

Component 1

Component 2 Component N

Page 29: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Product Families• Issues

– Operating System – User experience on different platforms – Devices (screen sizes, capabilities) – Available technologies

• Approaches – Single architecture (e.g. Java) – “Adaptable” components (e.g.

responsive designs) – Different products with shared

components – Independent development with

common interfaces/APIs

!29

Core Components (Business Logic/Model)

Views for OS1

Views for OS2

Adaptors for OS1

Adaptors for OS1

Support Artifacts

(e.g. docs)

Support Artifacts

(e.g. docs)

Different products with shared components

Page 30: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Some Consequences• For complex systems:

– software development activities are “recursive” and carried at increasing levels of granularity

– software development is composed of various development processes running in parallel

!30

V&V

Implementation

Design

Requirements

Design

Implementation

V&V

Requirements

System 1

V&V

Implementation

Design

Requirements

System 2

...

Requirements

Design

Implementation

V&V

Requirements

Design

Implementation

V&V

Requirements

Design

Implementation

V&V

System Reqquirements

Page 31: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

Exercise

Page 32: Software Development Processes - SPMBOOKspmbook.com/downloads/slides/pdf/C07.01-02-SW... · spm The Processes • Software Development Process: a ... differential equations of mathematical

spm

Customizing a Process• We want to build a web application for managing the

books of small businesses • Questions

– What process? – What activities? – What products?

!32


Recommended