天天看点

Chapter 2 The Software Development Process

The Software

Development Process

Chapter 2

Highlights

 What major components go into a software

product

 What different people and skills contribute to

a software product

 How software progresses from an idea to a

final product

What Efforts Goes into a Software

Product

Product

Product

specification

Product

reviews

Design

Document

Schedules Feedback Competitive

information

Test plan Customer surveys Usability Data

Look and Feel Software code

Software

architecture

Customer Requirements

 Collect detailed information in the form

 Surveys

 Feedback

 Competitive product information

 Magazine reviews

 Focus groups

 Etc.

Specification

 The result of the customer requirements

studies is really just raw data

 Especially for

 Government

 Aerospace

 Financial

 Medical industries

Schedules

 Some mechanism to track the software’s

progress

 Simple task list

 Gantt Chart

 Goal of scheduling

 Know which work has been completed

 How much work is still left

 When it will all be finished

Software Deign Documents

 Architecture

 Data Flow Diagram

 State Transition Diagram

 Flowchart

 Commented Code

Test Documents

 Test plan

 Quality objectives, resource needs, schedules,

assignments, methods, etc.

 Test cases

 Specific items and detailed steps

 Bug reports

 Problem found

 Test tools and automation

 Metrics, statistics, and summaries

What Parts Make Up a Software

Product

Software Project Staff

 Project manager

 Writing spec, managing schedule, and making the

critical decisions and trade-offs

 Architect

 Design the overall systems architecture

 Programmers

 Write software and fix the bugs

 Tester or QA

 Finding and reporting problems

 Technical writers

 Create paper and online documentation

 Configuration management

 Pulling together the software and all the documentation

Software Development Lifecycle

Models

 “Three things that never be seen in the process of

being created: laws, sausage, and software”

 Software development lifecycle

 The process used to create a software product from its

initial conception to its public release

 Classical models

 Big-Bang

 Code-and-Fix

 Waterfall

 Spiral

Big-Bang Model

 Beauty of big-bang is that it’s simple

 There is little to no formal testing done

 Testing become both an easy and a difficult task

BOOM

B O M

Final Product

?

Code-and-Fix Model

 Usually the project teams fall into by default

 “there’s never time to do it right, but there’s always

time to do it over”

 Well for small project such as prototypes and demos

 Good introduction to software development, and help

you appriaciate the more formal methods

Informal Product

Specification

Code, Fix and

Repeat Until?

Waterfall Model

 Simple, elegant and make senses

 IdeaAnalysisDesignDevelopmentTestFinal

Product

 At the end of each step, a review is held

 Three important things

 There’s large emphasis on specifying what the product

will be

 Discrete, no overlap

 No way to back up

 HOWEVER, requirement is fast changing

 A fundamental problem could creep in early on and

not be detected until days before product release

Spiral Model

 Start small

 Each spiral involves six steps

 Determine objectives, alternatives and

constraints

 Identify and resolve risks

 Evaluate alternatives

 Develop and test the current level

 Plan the next level

 Decide on the approach for the next level

 Been testing all along

New trends

 Unified Process

 Agile Software Development

 ICONIX 

继续阅读