Software Process Models Xin Feng
Questions to Answer in Software Engineering? Questions to answer in software engineering What is the problem to be solved? Definition What are the characteristics of the software to solve? How will the software be constructed? Design and Implementation What approach will be used to uncover errors that were made in the design Validation and construction of the software? How will the software be supported over the long term, when corrections, Maintenance adaptations and enhancements are requested by users of the softwre? 09/17/2014 Software Engineering 2
Software Development Life Cycle Specification Requirements definition System and software design Specification documents Design and Implementation Design documents Evolution System testing Integration testing Operation and maintenance Implementation Executable programs Unit testing Validation 09/17/2014 Software Engineering 3
Fundamental Activities 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. 09/17/2014 Software Engineering 4
Software Requirements Specification Customers /Clients ( 客 户 ) /Users developer /engineer /analyst 09/17/2014 Software Engineering 5
Design and Implementation Design the architecture ( 结 构 ) & write program 09/17/2014 Software Engineering 6
Software Validation ( 确 认 ) Is the system right??? 09/17/2014 Software Engineering 7
Maintenance 1. More functions added 2. Bugs corrected 3. New versions delivered 09/17/2014 Software Engineering 8
Software Engineering Process model Methods and tools(case) Methods and tools(case) Methods and tools(case) 09/17/2014 Software Engineering 9
Software Process and Process Model A software process is a set of activities whose goal is the development or evolution( 演 变 ) of software Software process model a simplifiedrepresentationof a software process from a specific perspective. 09/17/2014 Software Engineering 10
Process Models The waterfall ( 瀑 布 ) model The incremental ( 增 量 )process model Prototype Spiral ( 蜘 蛛 )model 09/17/2014 Software Engineering 11
Process Models Formal method VDM (Vienna Development Method) The B method 09/17/2014 Software Engineering 12
The Waterfall Model Analysis Design Coding Test Software specifications Software architectures ( 结 构 ) Source code Test reports Maintenance Maintenance ( 维 护 ) records 09/17/2014 Software Engineering 13
An Example Requirements statement: Develop a software program that can calculate arithmetic expressions and display the result in a micro second. 09/17/2014 Software Engineering 14
The Waterfall Model Analysis Functions Behaviors Interfaces Performance ( 性 能 ) Specification forms Tables Diagrams ( 图 表 ) Natural languages 09/17/2014 Software Engineering 15
The Waterfall Model -Specification Functions Calculation Behaviors Input Output Display Interfaces A window for displaying input and output Buttons Performance ( 性 能 ) Response time: a micro-second 09/17/2014 Software Engineering 16
The Waterfall Model Design Software architecture Data structure Design forms Diagrams Tables Pseudo-code ( 伪 代 码 ) 09/17/2014 Software Engineering 17
The Waterfall Model -Architecture control module read calculate output result input transform 09/17/2014 Software Engineering 18
The Waterfall Model -Coding Code Code generation automatically manually ( 手 工 ) char* transform(char *expression) { } 09/17/2014 Software Engineering 19
The Waterfall Model Defect ( 错 误 )report: Module ( 模 块 )name: transform Test data 1: 10 + 30 Output: 4 Test data 2: 20 * 30 Output 50 Test Reports Test Detect defects in the programs Automatically or manually ( 手 工 的 ) 09/17/2014 Software Engineering 20
The Waterfall Model Maintenance Records Maintenance ( 维 护 ) Correct bugs Implement the changes Maintenance report: Time: 1 January 2000 Module: transform Reason: Fix bugs Bug description: 09/17/2014 Software Engineering 21
Advantages The Waterfall Model Straightforward ( 率 直 的 ) Disciplined ( 严 格 ) Arguments ( 争 拗 ) Users cannot describe their requirements very clearly It is hard to follow The projects developed with this process are often delayed ( 延 迟 ) 09/17/2014 Software Engineering 22
Incremental Development Clients do not need the requirements for the whole system Clients can specify the most important parts to finish first A number of increments ( 增 加 )are defined 09/17/2014 Software Engineering 23
Incremental Development Process Define outline requirement Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system 09/17/2014 Software Engineering 24
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 Hard to define the increments 09/17/2014 Software Engineering 25
The Prototyping Model A quick design -> the construction of a prototype Identify software requirements 09/17/2014 Software Engineering 26
The Prototyping Model (refined) requirements Customer Developer refined ( 精 化 的 ) prototypes ( 原 型 ) 09/17/2014 Software Engineering 27
An Example Requirements statement: Develop a software system that can calculate arithmetic expressions and display the result in a micro second. 09/17/2014 Software Engineering 28
An Example 1 2 3 4 5 6 7 8 9 0 + - * / On/off C Several rounds of interview 1 2 3 4 5 6 7 8 9 0 ) ( + C - / * On/off. Initial requirements Updated requirement statement: Refined requirements Develop a software system that can calculate arithmetic expressions and display the result in a micro second. The operands can be real and the precedence of the calculation can be designated using () 09/17/2014 Software Engineering 29
Types of Prototypes Paper work Prototype Computer programs Prototype 09/17/2014 Software Engineering 30
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 Hard to ensure the quality and to maintain 09/17/2014 Software Engineering 31
The Spiral Model An evolutionary( 演 变 )(iterative) software process model Combine both waterfall model and prototyping model 09/17/2014 Software Engineering 32
The Spiral Model (Bohem) 09/17/2014 Software Engineering 33
A Variant of the Spiral Model Communication between customer and developer Define resource, time schedule Assess technical risk, cost 沟 通 Obtain the feedback from customer 评 估 Construct, test and release Analyze the methods and techniques 09/17/2014 Software Engineering 34
Advantages The Spiral Model Developers can using prototyping in each evolutionary level Reduce the risk Arguments Continual risk analysis Document maintenance 09/17/2014 Software Engineering 35
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 09/17/2014 Software Engineering 36