34
Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Embed Size (px)

Citation preview

Page 1: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Lecture-3

Software Development Life Cycle (SDLC)

Thepul Ginige

Page 2: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Software is computer programs. 2. Software products may be

developed for a particular customer or may be developed for a general market.

3. Software products may bea)Generic - developed to be sold to a

range of different customers.b)Bespoke (custom) - developed for a

single customer according to their specification.

What is software ?

Page 3: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Time

Cost

softwarehardware

1960 2012

Costs of Hardware & Software

Page 4: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1.One cannot touch software (Intangibility).

2.Increase use will not introduce any defects.

3.Software is configurable (One can build software by combining a basic set of software components in different ways.)

4.One can change the product easily by re - implementing it without changing the design.

5.Custom built (Most software are made upon order.)

What are the distinctive characteristics of software ?

Page 5: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Infant mortality

Deterioration

Failure rate

Time

Failure curve for hardware

Page 6: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Idealized curve

change

Actual curve

Increase failure rates due to side effects

Time

Failure rate

Failure curve for software

Page 7: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

The software development life cycle (SDLC) (sometimes referred to as the system development life cycle) is the process of creating or altering software systems, and the models and methodologies that people use to develop these systems.

In any such lifecycle, people, process and technology all play a role in success.

Software development life cycle

Page 8: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Requirements capture and Analysis

2. Design3. Implementation/ Coding4. Testing5. Maintenance

Steps of SDLC

Page 9: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost.

2. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs.

3. Software engineering is concerned with cost effective software development.

Software costs

Page 10: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Requirements capture and Analysis

2. Design3. Implementation/ Coding4. Testing5. Maintenance

Distribution of software cost over life cycle

40%

60%

Page 11: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Project manager2. Systems analyst3. Designer4. Programmer5. Tester6. Technical clerk

Members of a software engineering team

Page 12: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

1. Waterfall model - Separate and distinct phases of specification and development.

2. Spiral model - This model couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model.

Software process models

Page 13: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

3. Rapid Application Development (RAD) - This is a process model that emphasizes an extremely short development cycle.

4. V-Shaped SDLC Model- A variant of the Waterfall that emphasizes the verification and validation of the product.

Page 14: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Requirement analysis

Design

Coding

Testing

Maintain

(1) Waterfall model

Page 15: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

(1) Requirement analysis and specification

1. The system services, constraints and goals are established with the discussion with the users.

2. This includes understanding the information domain of the software, functionality requirements, performance requirements, interface requirements and security requirements.

3. Requirements are then specified in a manner which is understandable by both users and the development staff.

Page 16: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

(2) Software design

1. The design process translates requirements into a representation of the software that can be implemented using software development tools.

2. The major objectives of the design process are the identification of, the software components, the software architecture, interfaces and the data structures & algorithms to be used.

Page 17: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

(3) Coding / Implementation

The design must be translated to a machine readable form. During this stage the software design is realized as a set of programs.

(4)Testing

The testing process must ensure that the system works correctly and satisfies the specified requirements. After testing the software system is delivered to the customer.

Page 18: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

(5) Maintenance

Software will undoubtedly undergo changes after it is delivered to the customer.

Errors in the system should be corrected (corrective maintenance), the system may need to be adapted to new technologies (adaptive maintenance) and the system may needed to be modified and updated to suit new user requirements (perfective maintenance).

Page 19: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Some Problems with the Waterfall Model1. It is often very difficult for the customer

to state all requirements clearly. The Waterfall model has the difficulty of accommodating the natural uncertainty that exists at the beginning of many projects.

2. The customers must have patience. A working version of the program will not be available until late in the project time span.

Page 20: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

3. Inflexible partitioning of the project into distinct stages (This makes it difficult to respond to changing customer requirements).

4. Thus the Waterfall model is suitable for projects which have clear and stable requirements.

Page 21: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

(2) Spiral model

a) Spiral model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.

b) Using the spiral model software is developed in a series of incremental releases. During early iterations the incremental release might be a paper model or prototype. Each loop in the spiral represents a phase in the process.

Page 22: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

and Test

Spiral model

Page 23: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Spiral model activities :

1.Determine objectives, alternatives and constraints (Specific objectives for the phase are identified).

2.Evaluate alternatives , identify, resolve risks (Risks are assessed and activities put in place to reduce the key risks).

3.Development and test (A development model for the system is chosen, which can be any of the generic models).

4.Planning (The project is reviewed and the next phase of the spiral is planned).

Page 24: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Rapid Application Development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle.

If requirements are well understood and project scope is controlled, the RAD process enables a development team to create a fully functional system within very short time periods.

(3) Rapid application development

Page 25: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige
Page 26: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

26

DEFINITION a software development process that allows usable systems to be built in as little as 60-90 days, often with some compromises.

Key Objectives are:High SpeedHigh QualityLow Cost

Key Ingredients are:ManagementToolsMethodologyHigh Skilled People

Page 27: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Principles behind the definition

• In certain situations, a usable 80% solution can be produced in 20% of the time that would have been required to produce a total solution.

• In certain situations:– The business requirements for a system can be fully

satisfied even if some of its operational requirements are not satisfied.

– The acceptability of a system can be assessed against the agreed minimum useful set of requirements rather than all requirements.

27

Page 28: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

Problems with RAD1. RAD requires sufficient human resources

to create right number of RAD teams.

2. RAD requires developers and customers who are committed to the rapid fire activities necessary to get a system completed in a much abbreviated (shortened )time frame.

3. If a system cannot be properly modularized, building the components necessary for RAD will be problematic.

Page 29: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

4. RAD is not applicable when technical risks are high.

• This occurs when a new application makes heavy use of new technology or when the new software requires a high degree of interoperability with existing computer programs.

Page 30: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

V-Shaped SDLC Model

• Testing of the product is planned in parallel with a corresponding phase of development

Page 31: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

V-Shaped Steps• Project and Requirements

Planning – allocate resources

• Product Requirements and Specification Analysis – complete specification of the software system

• Architecture or High-Level Design – defines how software functions fulfill the design

• Detailed Design – develop algorithms for each architectural component

• Production, operation and maintenance – provide for enhancement and corrections

• System and acceptance testing – check the entire software system in its environment

• Integration and Testing – check that modules interconnect correctly

• Unit testing – check that each module acts as expected

• Coding – transform algorithms into software

Page 32: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

V-Shaped Strengths

• Emphasize planning for verification and validation of the product in early stages of product development

• Each deliverable must be testable• Project management can track progress by

milestones• Easy to use

Page 33: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

V-Shaped Weaknesses

• Does not easily handle concurrent events• Does not handle iterations or phases• Does not easily handle dynamic changes in

requirements• Does not contain risk analysis activities

Page 34: Lecture-3 Software Development Life Cycle (SDLC) Thepul Ginige

When to use the V-Shaped Model

• Excellent choice for systems requiring high reliability – hospital patient control applications

• All requirements are known up-front• When it can be modified to handle changing

requirements beyond analysis phase • Solution and technology are known