28
Trường Đạihc Công nghip Tp.HCM Trung tâm Công nghThông tin http://ttcntt.wordpress.com GV: Lê Ngc Tiến Email: [email protected] Blog: http://tienhuong.wordpress.com The Phases in Software Development process

2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

Trường Đại học Công nghiệp Tp.HCMTrung tâm Công nghệ Thông tinhttp://ttcntt.wordpress.com

GV: Lê Ngọc TiếnEmail: [email protected]: http://tienhuong.wordpress.com

The Phases in Software Development process

Page 2: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

2

Software Life Cycle Models

• Software Life Cycle:– The period of time that start when a software is

conceived and end when the product no longer available for use.

– The Software Life Cycle typically includes: Requirement phaseDesign phaseImplementation phaseTest phaseInstallation and check out phaseOperation and maintenance phase

Page 3: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

3

Software Life Cycle Models (cont)

• Software Life Cycle Models:Is a particular abstraction that represents a software life cycle. A software life cycle model is often called a Software Development Life Cycle (SDLC).

Page 4: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

4

Requirement Phase

• The goal is: Understand exact requirements of the customer and document them properly

• Executed together with the customer• Produces documents, written in natural language -

description “What the system will do” (not “How” the system will be done)

• The resultant document is know as “Software Requirement Specification” (SRS)

Page 5: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

5

Design Phase

• The goal is: Transform the requirements specification into a structure that suitable for implementation in some programming language

• Overall software architecture is defined• Produce “Software Design Description” (SDD)

document • SDD contains sufficient information to begin coding

phase

Page 6: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

6

Implementation Phase

• Design representations are translated into actual programs (Design is implemented)

• Programmers are responsible for documenting the program, providing an explanation of how procedures are coded.

• Documentation is essential to test the program and carry on maintenance once the application has been installed

Page 7: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

7

Test Phase

• After a system has been developed, it is very important to check if it the customer requirements. For this purpose, testing of the system is done.

• The major activities are centered around the examination and modification the code.

Page 8: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

8

Installation and Check Out Phase

• Implementation of system means putting up system on user's site. Acceptance testing ensures that the system meets all the requirements. If it fulfils the needs then the system is accepted by the customer and put into use

Page 9: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

9

Operation and Maintenance Phase

• The purpose of this phase is to preserve the value of software over time. This phase may span for 5 to 50 years whereas development may be 1 to 3 years.

• Software maintenance is a very board activity that includes error correction, enhancement of capabilities, deletion of obsolete capabilities, and optimization.

• This is very crucial for the system's life.

Page 10: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

10

SDLC MODELS - Build and Fix Model

• An adhoc approach and not well defined• Product is constructed without specification and design• May work well on small programming (100-200 lines of

code)• Maintenance can be extremely difficult without

specification or design documents

Fix

BuildCode

Page 11: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

11

Requirement Analysis& Specification

Requirement Analysis& Specification

DesignDesign

Implementation & Unit Testing

Implementation & Unit Testing

Integration & System Testing

Integration & System Testing

Operation &Maintenance

Operation &Maintenance

SDLC MODELS - Waterfall Model (1)

Page 12: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

12

SDLC MODELS - Waterfall Model (2)

• The phases always occur in fixed order and not overlap• This model is only appropriate when the requirements

are well-understood and changes will be fairly limited during the design process

• Difficult to define all requirements at beginning of the project

• Real project rarely sequential• Difficult to accommodate change after the process is

underway

Page 13: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

13

Quick DesignQuick Design

RequirementRequirement

ImplementImplement

Customer EvaluationCustomer Evaluation

DesignDesign

Implementation & Unit TestingImplementation & Unit Testing

Integration & System TestingIntegration & System Testing

Operation & MaintenanceOperation & Maintenance

Refinement of Requirements as Per suggestions

Refinement of Requirements as Per suggestions

Not accepted by customer accepted by customer

SDLC MODELS - Prototyping Model (1)

Page 14: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

14

SDLC MODELS - Prototype Model (2)

• A quick partial implementation of the system is created before or during the requirements definition phase.

• The end users of the system use the rapid prototype and then supply feedback to the project team for further refinement of the requirements of the system.

• This refinement process continues until the user is satisfied.

• When the requirements definition process has been completed, through the development of rapid prototypes, the detailed design is derived and the rapid prototype is fine-tuned using code or external utilities to create a final working product.

Page 15: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

15

SDLC MODELS - Prototype Model (3)

• Customer get early interaction with system.• Developers learn from customers’ reaction to

demonstrations of one or more facets of system behavior

• Suitable for the projects whose requirements that frequently changing

• Sometimes a system with poor performance is produced, especially if the tuning stage is skipped

• The customer may want to have the prototype delivered rather than waiting for full, well engineered system.

Page 16: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

16

RequirementRequirement DesignDesignImplementation

& UnitTesting

Implementation & UnitTesting

Integration & System

Testing

Integration & System

TestingOperationOperation

DesignDesignImplementation

& UnitTesting

Implementation & UnitTesting

Integration & System Testing

Integration & System Testing

OperationOperation

DesignDesignImplementation

& UnitTesting

Implementation & UnitTesting

Integration & System Testing

Integration & System Testing

OperationOperation

Release 1

Release 2

Release 3

SDLC MODELS Iterative Enhancement Model (1)

Page 17: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

17

SDLC MODELS Iterative Enhancement Model (2)

• In the first phase, customers & Developers specify as many requirements as possible. Then prioritize these requirements.

• Developers implement the specified requirements in one or more cycles of design, implementation and test based on priorities

• Delivery an operational quality product at each release and one that satisfies only a subset of the customer’s requirements.

Page 18: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

18

SDLC MODELS Evolutionary Development Model (1)

• Resembles Iterative Enhancement model, but in this model the requirements are implemented by category rather than by priority.

• Example: in a sample database application, one cycle implement GUI, another File manipulation, another queries, another updates. All four cycles must be complete before there is working produce available.

Page 19: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

19

SDLC MODELS Evolutionary Development Model (2)

• Should be used when it is not necessary to provide a minimal version of the system quickly.

• Useful for projects using new technology that not well understood also used for complex projects where all functionality must be delivered at one time, but the requirements not well understood at the beginning.

Page 20: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

20

SDLC MODELS Spiral Model (1)

• Originally proposed by Berry Boehm in 1988.• Each cycle of the spiral consists of four stages, and

each stage is represented by one quadrant.• The radius of the spiral represents the cost

accumulated so far in the process and the angular dimension represents the progress in the process.

• The focus is the identification of problems and the classification of these into different levels of risks -aim eliminate high-risk problems before they threaten.

Page 21: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

21

SDLC MODELS Spiral Model (2)

Page 22: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

22

SDLC MODELS Spiral Model (3)

Page 23: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

23

Selection of Life Cycle Model

Based on following characteristic:– Requirements– Development Team– Users– Project type and Associated Risk

Page 24: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

24

Selection of Life Cycle Model Based on Characteristics Requirements

RequirementsRequirements WaterfallWaterfall PrototypePrototypeIterativeIterative

enhancementenhancementEvolutionary Evolutionary developmentdevelopment

SpiralSpiral

Are requirements easily Are requirements easily understandable and define? understandable and define? YesYes NoNo NoNo NoNo NoNo

Do we change requirements Do we change requirements quite often?quite often? NoNo YesYes NoNo NoNo YesYes

Can we define requirements Can we define requirements early in the cycle? early in the cycle? YesYes NoNo YesYes YesYes NoNo

Requirements are indicating Requirements are indicating a complex system to be a complex system to be build?build?

NoNo YesYes YesYes YesYes YesYes

Page 25: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

25

Selection of Life Cycle Model Based on Status of Development Team

Development TeamDevelopment Team WaterfallWaterfall PrototypePrototypeIterativeIterative

enhancementenhancementEvolutionary Evolutionary developmentdevelopment

SpiralSpiral

Less experience on similar Less experience on similar projectsprojects NoNo YesYes NoNo NoNo YesYes

Less domain knowledgeLess domain knowledge(new to the technology)(new to the technology) YesYes NoNo YesYes YesYes YesYes

Less experience on tool to Less experience on tool to be usedbe used YesYes NoNo NoNo NoNo YesYes

Available of training if Available of training if requiredrequired NoNo NoNo YesYes YesYes NoNo

Page 26: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

26

Selection of Life Cycle Model Based on User’s participation

Involvement of UsersInvolvement of Users WaterfallWaterfall PrototypePrototypeIterativeIterative

enhancementenhancementEvolutionary Evolutionary developmentdevelopment

SpiralSpiral

User involvement in all User involvement in all phasesphases NoNo YesYes NoNo NoNo YesYes

Limited user participationLimited user participationYesYes NoNo YesYes YesYes YesYes

User have no previous User have no previous experience of participation in experience of participation in similar projectssimilar projects

NoNo YesYes YesYes YesYes YesYes

Users are experts of problem Users are experts of problem domaindomain NoNo YesYes YesYes YesYes NoNo

Page 27: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

27

Selection of Life Cycle Model Based on Type of Project with Associated Risk

Project Type and RiskProject Type and Risk WaterfallWaterfall PrototypePrototypeIterativeIterative

enhancementenhancementEvolutionary Evolutionary developmentdevelopment

SpiralSpiral

Project is the enhancement Project is the enhancement of the existing systemof the existing system NoNo NoNo YesYes YesYes NoNo

Funding is stable for the Funding is stable for the projectproject YesYes YesYes NoNo NoNo NoNo

High reliability requirementsHigh reliability requirements NoNo NoNo YesYes YesYes YesYes

Tight project scheduleTight project schedule NoNo YesYes YesYes YesYes YesYes

Use of reusable componentsUse of reusable components NoNo YesYes NoNo NoNo YesYes

Are resource (time, money, Are resource (time, money, people, etc) scare?people, etc) scare? NoNo YesYes NoNo NoNo YesYes

Page 28: 2 Phases in software development - WordPress.com · 9/2/2009  · conceived and end when the product no longer available for use. – The Software Life Cycle typically includes:

Trường Đại học Công nghiệp Tp.HCMTrung tâm Công nghệ Thông tinhttp://ttcntt.wordpress.com

Thank You Thank You

GV: Lê Ngọc TiếnEmail: [email protected]: http://tienhuong.wordpress.com