Software Processes n What is a process? Sequence of steps required to develop or maintain software...

18
Software Processes What is a process? Sequence of steps required to develop or maintain software Characteristics prescribes major activities utilizes resources, subject to constraints such as schedule, to produce intermediate and final results constraints and controls apply to activities, resources, and products constraints on activities: time, budge, tools controls on activities: config. Mgmt, reports

Transcript of Software Processes n What is a process? Sequence of steps required to develop or maintain software...

Page 1: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Software Processes

What is a process? Sequence of steps required to develop or maintain

software

Characteristics prescribes major activities utilizes resources, subject to constraints such as

schedule, to produce intermediate and final results constraints and controls apply to activities,

resources, and products constraints on activities: time, budge, tools controls on activities: config. Mgmt, reports

Page 2: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Process should be

Visible: Activities should provide clear indications of progress (deadlines/milestones)

Understandable: Activities and their order of execution are well-defined

Supportable: Automated support for activities is available

Usable: Process is acceptable to and usable by developers

Page 3: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Defining Processes

A defined process: facilitates communication about the process provides a basis for process automation facilitates process reuse and evolution aids process management

Elements of process descriptions general description each activity has an entry and exit criteria activities are organized in “sequence” guiding principles explain goals of activities process may contain subprocesses resources, constraints

Page 4: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Evolution of Software Process Models

“Code and Fix” model code, test, debug

Problems requirements analysis and design ignored code does not evolve gracefully debugging is difficult

• Why? Unstructured, spaghetti coding, changes not localized, not modular, difficult to trace, relationships hard to determine

Page 5: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

SWEng Paradigms for Prescriptive Process Models

Chosen based on nature of project, methods, tools used, controls and deliverables required

Linear Sequential Models (Classic or Waterfall, V-shaped)

Prototyping RAD Model Evolutionary Process Models (Incremental, Spiral,

Concurrent) Formal Methods 4GL Combinations

Page 6: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Process Models

Linear Sequential Analysis, design, coding, testing, maintenance Difficulties:

• Projects rarely follow sequential flow

• Requirements defined up-front a must (rarely done)

• Patient customer/no immediate feedback

Page 7: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Waterfall Methods and Variants

Phases (similar to develop hardware) Analysis, Design, Code, Test, Maintain

Difficulties projects rarely follow sequential flow requirements defined up-front a must (rarely done) patient customers/no immediate feedback no insight given into how each activity transforms an

intermediate product into another Variants

V-shaped model: relationship between types of tests and phases before testing

Prototyping variant: requirements and design prototypes

Page 8: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Waterfall Model

Page 9: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Deliverables

http://www.solovatsoft.com/Development%20Standard%20Deliverables.pdf

Page 10: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 10

The V-Model

Page 11: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill,

2009). Slides copyright 2009 by Roger Pressman. 11

Evolutionary Models: Prototyping

Constructionof prototype

Communication

Quick plan

Construction of prototype

Modeling Quick design

Delivery & Feedback

Deployment

communication

Quickplan

ModelingQuick design

Constructionof prototype

Deploymentdelivery &feedback

Page 12: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Evolutionary Models: Prototyping

Prototyping quick design, build prototype, evaluate, refine

prototype, … engineer product Prototyping

Paper/working subset of features/existing program with some features

Requirements, quick design, build prototype, customer evaluation, refine prototype, engineered product

Problems:• Customer sees prototype, then wants a few fixes quick and

delivery• Implementation compromises made to get prototype done

quickly/forgets compromises and become part of the system

Page 13: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 14

The Incremental Model

C o m m u n i c a t i o n

P l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

D e p l o y m e n t

d e l i v e ry f e e d b a c k

analys is

des ign code

t es t

increment # 1

increment # 2

delivery of 1st increment

delivery of 2nd increment

delivery of nth increment

increment # n

project calendar time

C o m m u n i c a t i o nP l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

De p l o y m e n t

d e l i v e r y

f e e d b a c k

analys is

des ign code

t es t

C o m m u n i c a t i o nP l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

D e p l o y m e n t

d e l i v e r y

f e e d b a c k

analys is

des igncode t es t

Page 14: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Incremental/Iterative Development

Incremental: functionality developed in pieces

Iterative: put in all features, but they are limited

Page 15: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Benefits and Problems of Evolutionary Development

Incremental: Each build focuses on a subset of functionality, simplifying development

Opportunity to learn about problem as design develops customer get a product early and can provide feedback

for future builds customer can test software different releases can focus on enhancements that

require specialized expertise

improperly planned builds result in complex system backward compatibility limits elegance of future

releases (and can force hacking) error in basic system architecture may require changes

to basic structure that invalidate earlier releases

Page 16: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Other Process Models

Transformation (4GLs) Requirements, “design”, implementation using

4GL (specifications into code generator) Advantage

• Reduces time to produce SW

Problems• Design/Analysis reduced

• Some CASE tools produce skeletonized code

Limited to certain domains• Business IS

• Compilers (lex, YACC, SDL)

Page 17: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Choosing a Process Models

Choice depends on nature of project requirements clearly defined and stable? Pressure to produce a working product quickly? Consequences of operational errors serious?

Classified along a spectrum ranging from radical: all activities carried out in parallel

• suitable when quick results needed and requirements fuzzy

conservative: all activities carried out in a strict sequence with no overlap

• suitable when consequences of errors serious and requirements are clear and stable

None of the extremes are viable

Page 18: Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities

Process Maturity

Processes should be tailored to development environment

The software process maturity framework allows organizations to determine the capabilities of their current processes and establish priorities for improvement