• No results found

Software Process Models. Xin Feng

N/A
N/A
Protected

Academic year: 2021

Share "Software Process Models. Xin Feng"

Copied!
36
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Process Models

(2)

Questions to Answer in Software Engineering?

09/17/2014 Software Engineering 2

Questions to answer in

software engineering

– What is the problem to be solved?

– What are the characteristics of the software to solve?

– How will the software be constructed?

– What approach will be used to uncover errors that were made in the design and construction of the

software?

– How will the software be supported over the long term, when corrections, adaptations and

enhancements are requested by users of the softwre?

Definition

Design and Implementation

Maintenance

Validation

(3)

Software Development Life Cycle

Requirements definition System and software design Integration testing System testing Operation and maintenance Specification Design and Implementation Evolution Specification documents Design documents

(4)

Fundamental Activities

09/17/2014 Software Engineering 4

• Software requirements specification (规格说明) (Requirements engineering)

– understand and define the services

– Identify the constraints (约束 )

• Software design and implementation

– Convert specifications to executable systems

• Software validation

– Check if a system conforms to its specification (verification (验证 )) and meets the customer’s expectation

(validation(确认 ))

• Software evolution

– Evolve to meet the required changes from customers and bug corrections.

(5)

Software Requirements Specification

Customers /Clients

developer /engineer

(6)

Design and Implementation

09/17/2014 Software Engineering 6

Design the architecture (

结构

)

&

(7)
(8)

Maintenance

09/17/2014 Software Engineering 8

1. More functions added

2. Bugs corrected

(9)

Software Engineering

Process model

Methods and tools(CASE) Methods and tools(CASE)

(10)

Software Process and Process Model

09/17/2014 Software Engineering 10

A software process is

– a set of activities whose goal is the development

or evolution (演变) of software • Software process model

– a simplified representation of a software process from a specific perspective.

(11)

Process Models

• The waterfall (瀑布) model

• The incremental (增量)process model

• Prototype

(12)

Process Models

09/17/2014 Software Engineering 12

Formal method

– VDM (Vienna Development Method) – The B method

(13)

The Waterfall Model

Analysis

Design

Coding

Test

Software architectures (结构 ) Source code Test reports Software specifications

(14)

An Example

09/17/2014 Software Engineering 14 Requirements statement:

Develop a software program that can calculate

arithmetic expressions and display the result in a micro second.

(15)

The Waterfall Model

Analysis

– Functions – Behaviors – Interfaces – Performance (性能) – Specification forms • Tables • Diagrams

(16)

The Waterfall Model -

Specification

09/17/2014 Software Engineering 16 • Functions Calculation • Behaviors Input Output Display • Interfaces

A window for displaying input and output Buttons

• Performance (性能)

(17)

The Waterfall Model

Design

– Software architecture – Data structure – Design forms • Diagrams • Tables • Pseudo-code (伪代码)

(18)

The Waterfall Model -

Architecture

09/17/2014 Software Engineering 18 control module output result calculate input read transform

(19)

The Waterfall Model -

Coding

• Code

– Code generation

• automatically

• manually (手工)

char* transform(char *expression) {

}

(20)

Defect (错误)report:

Module (模块) name: transform

Test data 1: 10 + 30

Output: 4

Test data 2: 20 * 30

Output 50

The Waterfall Model

Test Reports

09/17/2014 Software Engineering 20

Test

– Detect defects in the programs

(21)

The Waterfall Model –

Maintenance Records

Maintenance

(维护)

– Correct bugs

– Implement the changes

Maintenance report: Time: 1 January 2000 Module: transform Reason: Fix bugs

(22)

The Waterfall Model

09/17/2014 Software Engineering 22

Advantages

– Straightforward (率直的) – Disciplined (严格)

Arguments

争拗

– Users cannot describe their requirements very clearly

– It is hard to follow

– The projects developed with this process are often delayed (延迟)

(23)

Incremental Development

• Clients do not need the requirements for the whole system

• Clients can specify the most important parts to finish first

(24)

Incremental Development Process

09/17/2014 Software Engineering 24 Define outline requirement Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system

(25)

The Incremental Model

Advantages

– The risk that the whole system fails is lower (compared to the waterfall model)

– Shorten the delivery (交付)time

Disadvantages

– The system structure is loose

(26)

The Prototyping Model

• A quick design -> the construction of a prototype

• Identify software requirements

(27)

The Prototyping Model

Customer

Developer

(refined) requirements

(28)

An Example

09/17/2014 Software Engineering 28 Requirements statement:

Develop a software system that can calculate arithmetic expressions and display the result in a micro second.

(29)

An Example

1 + 2 3 4 5 6 7 8 9 0 - * / C 1 + 2 3 4 5 6 7 8 9 0 - / * C ( ) On/off On/off .

Updated requirement statement:

Develop a software system that can calculate arithmetic

Several rounds of interview

(30)

Types of Prototypes

09/17/2014 Software Engineering 30

Paper work

Prototype

Computer programs

(31)

The Prototyping Model

Advantages

– Users can have an initial look of the system

– Developers have a quick design

– The prototype can be developed to a system

Arguments

– Rush to get it work

(32)

The Spiral Model

• An evolutionary(演变) (iterative) software process model

• Combine both waterfall model and prototyping model

(33)
(34)

A Variant of the Spiral Model

09/17/2014 Software Engineering 34 Communication between customer and developer Define resource,

time schedule Assess technical risk, cost Analyze the methods and techniques Construct, test and release Obtain the feedback from customer 沟通 评估

(35)

The Spiral Model

Advantages

– Developers can using prototyping in each evolutionary level

– Reduce the risk

Arguments

– Continual risk analysis

(36)

Summary

• Software development is not only programming

• Software development must follow certain process

• There are different models

• Each model has its advantages and disadvantages

• Software development life cycle gives the main stages in a software development process

References

Related documents

Analele Universit ăţ ii “Constantin Brâncu ş i” din Târgu Jiu, Seria Economie, Nr.. Necesitatea de a utiliza software- ul în modelarea

Use sterile forceps to transfer about 12 nitrocellulose pieces onto PDA augmented with -100 µl of Cefotaxime (stock solution 200 mg/ml) added to each 100 mls of media

Interviewer note: If the student is or was taking courses in an entirely different field that is or was unrelated to their previous education and that previous education was

An interviewee associated with the resident companies expressed the perception that the arts organizations “formed partnerships within the arts community that are largely still

Appendix A – Peer-reviewed scienti fi c publications relevant to the risk assessment and/or management of MON 810 assessed by the EFSA GMO Panel as part of the annual 2014 PMEM report

The corn and wheat treatments were derived from a factorial combination of application dates (October and November), N rates (75 and 100% rate of location N requirements), N

Recently the fineness of POFA has been studied by some researchers on the pore size distribution and microstructure of cement paste (Ranjbar, Mehrali, Alengaram, Metselaar,

Clouds servicing models Private (On-Premise) Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Y ou manag e