Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Life Cycle (SDLC)

Similar presentations


Presentation on theme: "Software Development Life Cycle (SDLC)"— Presentation transcript:

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

2 Software is computer programs.
What is software ? Software is computer programs. Software products may be developed for a particular customer or may be developed for a general market. Software products may be Generic - developed to be sold to a range of different customers. Bespoke (custom) - developed for a single customer according to their specification.

3 Costs of Hardware & Software
Time 2012 1960

4 One cannot touch software (Intangibility).
What are the distinctive characteristics of software ? One cannot touch software (Intangibility). Increase use will not introduce any defects. Software is configurable (One can build software by combining a basic set of software components in different ways.) One can change the product easily by re - implementing it without changing the design. Custom built (Most software are made upon order.)

5 Failure curve for hardware
Failure rate Infant mortality Deterioration Time

6 Failure curve for software
Increase failure rates due to side effects Failure rate Actual curve change Idealized curve Time

7 Software development life cycle
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.

8 Requirements capture and Analysis Design Implementation/ Coding
Steps of SDLC Requirements capture and Analysis Design Implementation/ Coding Testing Maintenance

9 Software costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs. Software engineering is concerned with cost effective software development.

10 Requirements capture and Analysis Design Implementation/ Coding
Distribution of software cost over life cycle Requirements capture and Analysis Design Implementation/ Coding Testing Maintenance 40% 60%

11 Project manager Systems analyst Designer Programmer Tester
Members of a software engineering team Project manager Systems analyst Designer Programmer Tester Technical clerk

12 Software process models
Waterfall model - Separate and distinct phases of specification and development. Spiral model - This model couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model. to arrange in or as if in alternate layers

13 Rapid Application Development (RAD) - This is a process model that emphasizes an extremely short development cycle. V-Shaped SDLC Model- A variant of the Waterfall that emphasizes the verification and validation of the product.

14 (1) Waterfall model Requirement analysis Design Coding Testing
Maintain

15 (1) Requirement analysis and specification
The system services, constraints and goals are established with the discussion with the users. This includes understanding the information domain of the software, functionality requirements, performance requirements, interface requirements and security requirements. Requirements are then specified in a manner which is understandable by both users and the development staff.

16 (2) Software design The design process translates requirements into a representation of the software that can be implemented using software development tools. 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.

17 (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.

18 (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).

19 Some Problems with the Waterfall Model
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. The customers must have patience. A working version of the program will not be available until late in the project time span.

20 Inflexible partitioning of the project into distinct stages (This makes it difficult to respond to changing customer requirements). Thus the Waterfall model is suitable for projects which have clear and stable requirements.

21 (2) Spiral model 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. 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.

22 Spiral model and Test

23 Spiral model activities :
Determine objectives, alternatives and constraints (Specific objectives for the phase are identified). Evaluate alternatives , identify, resolve risks (Risks are assessed and activities put in place to reduce the key risks). Development and test (A development model for the system is chosen, which can be any of the generic models). Planning (The project is reviewed and the next phase of the spiral is planned).

24 (3) Rapid application development
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.

25

26 DEFINITION a software development process that allows usable systems to be built in as little as days, often with some compromises. Key Objectives are: High Speed High Quality Low Cost Key Ingredients are: Management Tools Methodology High Skilled People

27 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.

28 Problems with RAD RAD requires sufficient human resources to create right number of RAD teams. 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. If a system cannot be properly modularized, building the components necessary for RAD will be problematic.

29 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.

30 V-Shaped SDLC Model Testing of the product is planned in parallel with a corresponding phase of development

31 V-Shaped Steps 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 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

32 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

33 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

34 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


Download ppt "Software Development Life Cycle (SDLC)"

Similar presentations


Ads by Google