Your SlideShare is downloading. ×
Software development life_cycle
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Software development life_cycle


Published on

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Software Development Life Cycle The software Life Cycle encompasses all activities required to define, develop, test deliver, operate and maintain a software product. Planning the software development process involves several important considerations. The first is to define a product life cycle model. The SDLC activities are: 1. Feasibility: Determine if the software has significant contribution to business. It includes market analysis if similar software is in demand in market. Software is evaluated on the basis of cost, schedule and quality. 2. Requirements are determined such as functional properties desired by users, system requirements such as availability, performance and safety, establishing set of objectives the system should meet, characteristics that the system should not exhibit. Such requirements are obtained by various methods such as interviews, communication with stake holders, scenario discussions, use cases and ethnography. These requirements are then verified and tested. 3. Project Planning, cost analysis, scheduling, quality assurance plans are made 4. Designing i.e. Architectural design, Interface design and detailed design 5. Implementation includes writing the code for the project as per the designs and plan 6. Testing ensures accuracy and reliability 7. Delivery, Installation, Training, Help Desk 8. Maintenance, software configuration management. Another view of SDLC emphasizes the milestone, documents and reviews throughout product development. It is difficult for project managers to assess progress or anticipate problems. Establishing milestones, improves product visibility. The following are the milestones for the project. 1. Feasibility report 2. System definition, project plan 3. Software requirement specification, Preliminary user manual 4. Architectural design document 5. Detailed design document 6. Software verification plan 7. Product Schedule 8. Software test plan, Acceptance test 9. Software quality assurance plan 10. User manual 11. Source code 12. Test results 13. Defect report
  • 2. Every software engineering organization should describe a unique set of framework activities for the software process it adopts. Various models have been developed over the years to accommodate these activities. Models for Software Development Evolutionary models 1. Waterfall Model suggests a systematic sequential approach to software development that begins with customer specification of requirements. The principle stages of the model map onto fundamental development activities. a. Requirement Analysis and definition b. System and software design c. Implementation and unit testing d. Integration and system testing e. Operation and maintenance The verification at each stage ensures that the output is consistent with its input and overall requirement of the system. These outputs are often called work products and can be listed as: a. Requirements documents b. Project plan
  • 3. c. Design documents d. Test plan and test reports e. Final code f. Software manuals (e.g. user, installation, etc) Advantages 1. Simple method with clear steps 2. Easy to administer as it is systematic 3. Verification at each stage ensures early detection of errors / misunderstanding 4. Documentation helps in future maintenance and revisions Disadvantage 1. Unchanging requirements are not realistic 2. Document driven process 3. Change adaptability is very slow 2. Incremental Model: Customer identifies the services to be provided. The delivery increments are then defined, with each increment providing a sub-set of the system functionality. Once the system increments for the services have been identified, the requirements to be delivered in the first increment are defined in detail and the increment is developed. Define Assign Design Develop outline requirements System System requirement to increments Architecture increment Validate Integrate Validate Increment Increment System Final System 3. Prototyping: First a working prototype of the software is developed instead of developing the actual software. The developers use this prototype to refine the requirements and prepare final specification document. After the finalization of SRS document, the prototype is discarded and actual system is then developed using the waterfall approach.
  • 4. Requirements Quick Design / Prototype Implement Refinement of Customer Evaluation Requirements as per suggestions Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance There are 2 types of prototypes; throw-away, where the initial prototype is discarded after the requirements are defined and the evolutionary prototype, where the system is built further on the prototype itself. A prototype is built for those requirements which are critical for the project and are not understood well. If the number of requirements which need clarification is more, then a working prototype is built for them. The importance or criticality of such requirements is also a significant factor in determining the need of a prototype. Advantages of Prototyping 1. Users are actively involved in the development 2. It provides a better system to users, as users have natural tendency to change their mind in specifying requirements and this method of developing systems supports this user tendency. 3. Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed. 4. Errors can be detected much earlier as the system is mode side by side. 5. Quicker user feedback is available leading to better solutions. Disadvantages 1. Leads to implementing and then repairing way of building systems. 2. Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.
  • 5. 4. Spiral Model: Boehm tried to incorporate the ‘project risk’ factor into a life cycle model. Each phase is split roughly into four sections namely planning, risk analysis, development and assessment. There are 4 phases namely feasibility, requirements analysis, design and coding and testing. The development spiral consists of four quadrants as shown in the figure above The first step in each phase is to identify the objective, alternatives and constraints of that phase. The next stage involves identifying the best alternative, by comparing all and performing risk analysis. One the alternative is chose, prototypes are built using simulation and benchmarks. Each phase is completed with a review by the people concerned with the project. Specialized process models 1. Extreme programming includes creating a set of stories and assigning their priority. The commitment defines the order for development. The objects are organized for development. Designing occurs both after and before programming, in the form of design and refactoring. Programming happens in the form of pain programming where two people work together at one workstation. Writing test cases before starting the coding is a key feature of extreme programming. Acceptance testing is followed by system testing.
  • 6. 2. Component-Based Development uses commercial-off-the-shelf (COTS) software components. 3. Unified Process is a use-case driven, architecture centric, iterative and incremental software process. 4. Dynamic Systems Development Method (DSDM) suggests an iterative software process. After the feasibility study follows the business study that establishes the functional and information requirements for the application. The iteration steps include Functional model iteration which creates a prototype. New requirements might be generated through the prototype, by the user. Subsequently or simultaneously designs are built or rebuilt. Implementation iteration places the latest software increments. 5. Feature driven development emphasizes project management guidelines and techniques. The processes defined for such development are to develop an overall model, build a feature list, plan by feature, design by feature, build by feature.. Process improvement Process improvement is about understanding existing processes and introducing process changes to improve product quality reduce costs or accelerate schedules. Most process improvement work so far has focused on defect reduction. This reflects the increasing attention paid by industry to quality. However, other process attributes can also be the focus of improvement. Feedback is important for process improvement to initiate. Why is it difficult to improve a software process? 1. Not enough time: Developers, because of unrealistic schedules are left with no time to explore problems of development and find solutions. 2. Lack of knowledge: many developers are not aware of best practices 3. Wrong motivation: The basic motivation should be to eradicate current difficulties and not just to achieve a higher CMM level. 4. Insufficient commitment Pro Process duct Improvement ivit Begins Improved future state y Do not quit here Learning curve Time
  • 7. Process improvement stages Process measurement Attributes of the current process are measured. These are a baseline for assessing improvements. Process analysis The current process is assessed and bottlenecks and weaknesses are identified. Process change Changes to the process that have been identified during the analysis are introduced. Process choice Process used should depend on type of product which is being developed • For large systems, management is usually the principal problem so you need a strictly managed process; • For smaller systems, more informality is possible. There is no uniformly applicable process which should be standardised within an organisation • High costs may be incurred if you force an inappropriate process on a development team; • Inappropriate methods can also increase costs and lead to reduced quality. Process analysis and modelling 1. Study an existing process to understand its activities. 2. Produce an abstract model of the process. You should normally represent this graphically. Several different views (e.g. activities, deliverables, etc.) may be required. 3. Analyse the model to discover process problems. This involves discussing process activities with stakeholders and discovering problems and possible process changes. Process analysis techniques • Published process models and process standards: It is always best to start process analysis with an existing model. People then may extend and change this. • Questionnaires and interviews: Must be carefully designed. Participants may tell you what they think you want to hear. • Ethnographic analysis: Involves assimilating process knowledge by observation. Best for in-depth analysis of process fragments rather than for whole-process understanding.
  • 8. Process change stages • Improvement identification. • Improvement prioritization. • Process change introduction. • Process change training. • Change tuning.