Software Development Processes The Processes Software Development - - PowerPoint PPT Presentation

software development processes the processes
SMART_READER_LITE
LIVE PREVIEW

Software Development Processes The Processes Software Development - - PowerPoint PPT Presentation

Software Development Processes The Processes Software Development Process: a Waterfall defined by Royce (seventies) structured and progressive refinement Introduced to address the software from idea to an actual system


slide-1
SLIDE 1

Software Development Processes

slide-2
SLIDE 2

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

slide-3
SLIDE 3

spm

Waterfall Model

3

I SYSTE M

I ANALYSIS

PROGRAM DESIGN

I

coo,.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 will not fix these kinds of difficulties. The required design changes are likely 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 modified, 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 without these steps, but generally these phases are managed with relative ease and have little impact on requirements, design, and testing. In my experience there are whole departments consumed with the analysis of orbit mechanics, spacecraft attitude determination, mathematical optimization

  • f payload activity and so forth, but when these departments have completed their difficult and complex work,

the resultant program steps involvea few lines of serial arithmetic code. If in the execution of their difficult 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 fundamentally sound. The remainder of this discussion presents five additional 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)

slide-4
SLIDE 4

spm

Waterfall Model

4

/,

I0:

wZ

/oo i ,~

g ~

Irl

. .
  • i0 .

i

IIII ~,- ,,*,1 =

  • .
~

illl ~$~

m

z~_~ u, E

X

E

8

"0

Ill N

~, .~-

r"

.2

/ "

z_ ,,,. ~ ~ E

~OLU

a. .~

N

N

I Z , ~ ,

  • w

i-,<~

t- LL

333

  • Managing the development of

large software systems (Winston W. Royce)

slide-5
SLIDE 5

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

slide-6
SLIDE 6

spm

Waterfall Model

6

I SYSTEM ! REQUIREMENTSIBI~

~"'i so,w.,~ I

ANALYSIS

~1111~ I I p R I ~ O G R A M

~lll 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)

slide-7
SLIDE 7

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

slide-8
SLIDE 8

spm

V-Cycle

8

Requirements Specification Architectural Design Coding Unit Testing Integration Testing System Testing Acceptance Testing

  • Structural support

for backtracking

  • Focus on testing
  • German standard
slide-9
SLIDE 9

spm

Rational Unified Process

9

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

spm

Open Unified Process

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

wikis/openup/

12

slide-13
SLIDE 13

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)

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

spm

Prototype Approach

  • Once the high level requirements are fixed, a prototype
  • f 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

slide-17
SLIDE 17

spm

Prototype Approach

17

High Level Requirements Architectural Design Implementation Detailed Requirements Evaluation Prototype Testing (V&V)

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

spm

Incremental

20

Requirements Allocate Requirements to Increments Define Architecture Implement Increment Validate Increment Integrate Increment Validate System System

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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 Increments Planning Formal Design & Implementation Random Test Case Generation Statistical Testing Quality Certification Testing Results (Estimation of MTTF) Process Improvement Suggestions

[system not finished yet] [system built]

Functional Specification Usage Specification Customer Requirements

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

Develop

Project Artifacts

Initial Release Code Release Steer

System Roadmap Product Backlog Source Code Packaged Relase

Review Incorporate

Patch

slide-25
SLIDE 25

spm

Firefox Release Schedule

25

1 2 3 4 5 6 7 8 Task Name

mozilla-central mozilla-aurora mozilla-beta firefox check compatibility with extension security check quality assurance go/no go decision

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

slide-26
SLIDE 26

Some Additional Concerns

slide-27
SLIDE 27

spm spm

Project Management/SW Development

  • All development processes need to integrate

development and management workflows

  • For instance:

27

Requirements Design Implementation & Testing Deployment Requirement s Document System Architecture System System in Production High Level Planning Management Documents System Sizing and Detailed Plan Management Documents Monitoring and Control Closing Project Data

Development Activities Management Activities

slide-28
SLIDE 28

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

slide-29
SLIDE 29

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

slide-30
SLIDE 30

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

slide-31
SLIDE 31

Exercise

slide-32
SLIDE 32

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