Professional Documents
Culture Documents
Copy No :
DOCUMENT RELEASE NOTICE Notice No.: ADD-QMS-01 Client Project Name : TCS (Internal) : SEPG Version No. Description This document covers the various Software Development Life Cycle models approved for use in the SPI Pilot branches.
Revision details: Action taken (add/del/chg) Preceding page No. New page No. Revision Description
Change Register serial numbers covered : The documents or revised pages are subject to document control. Please keep them up-to-date using the release notices from the distributor of the document. These are confidential documents. Unauthorized access or copying is prohibited.
Approved by: ________________________________ Date: _______ Authorized by: ________________________________ Date: ________
PF2060C DOCUMENT REVISION LIST Client Project : TCS - INTERNAL : Software Engineering Process Group (SEPG)
Document Name : Software Development Life Cycle models Release Notice Reference (for release): ADD-QMS-01 Rev. No Revision date Revision description Page No. Prev page No Action taken Addenda/ New page Release Notice reference
Acknowledgement This document is prepared and released by TCS, SEEPZ. The SPI branches have received a copy of this document through QC, Mumbai. document has been reviewed, reformatted and is being released by SPI branches so that it can be used by these branches. Henceforth, the SPI branches will maintain this document and update if necessary. Pilot This Pilot Pilot
CONTENTS
Intergroup dependencies tracking procedure Software Development Life Cycle....................................................................................6 Introduction...................................................................................................................6 Purpose of this document.............................................................................................6 Scope of this document................................................................................................6 Life Cycle Models.............................................................................................................7 The Spiral Model..........................................................................................................7 The Modified Waterfall (Sashimi Model) Model............................................................8 Joint Application Design (JAD).....................................................................................9 Prototype....................................................................................................................10 Rapid Application Development (RAD).......................................................................10 Evolutionary................................................................................................................11 Throw Away................................................................................................................11 Comparison of Models...................................................................................................12 References.....................................................................................................................14
Version 1.0
Version 1.0
When to Use:
If the project is large and complex and if feedback is considered for the entire development cycle, then this type of life cycle model can be considered.
Version 1.0
When to Use:
This type of model is suitable for small projects or for projects where the needs are clearly specified. Generally, when this model is used, feedback is taken from the client, time to time (but not frequently).
Version 1.0
When to use:
This type of model is commonly used in projects where functionality is either not well defined or is complex. In such a case, the Contract finalisation should be done with well-defined conditions. The Contract should clearly mention the duration of the project, as the milestones are somewhat ambiguous in this type of model.
When to Use:
JAD can be used: To accelerate system analysis and design without going in for shortcut methods in the analysis and design phases. ______________________________________________________________________ Internal of 9 Page 9
Version 1.0
To avoid problems that arise from the conventional fact-finding method. If the management is ready to spare their employees for regular meetings during the development cycle of the project.
Prototype
The design-by-prototyping strategy is being used by an increasing number of businesses. Usually it gives a feel of the product in the early stage and how it will work in the future. End-users and the management, who make recommendations about requirements, methods and formats, review each prototype system. The prototype is then corrected, enhanced, or refined to reflect new requirements. Prototyping technology makes such revisions relatively straightforward. Prototyping can be classified as: Rapid Application Development (RAD) Evolutionary Throw away
When to use:
If the system requires a front end tool like Developer 2000, Visual Basics, Power Builder and if the user knows about his requirements, then this type of prototyping can be done efficiently, effectively and rapidly. Moreover Contract finalisation can be done according to the type of functionality and depending on the number of screens. ______________________________________________________________________ Internal of 9 Page 10
Version 1.0
Evolutionary
In an Evolutionary prototype, major functions are developed early in the project schedule, followed by a rigorous approach so that the user can get an early feeling of the product. These developed functions are further optimized to the expedient needs of users along with an addition of the remaining functions. Since continuous feedback is taken from the client, additional functionality may be added from time to time, as the product takes shape (as no software is perfect).
When to use:
This type of prototype will be extremely useful when the clients themselves do not know what they exactly want. So with continuous feedback from the clients, their needs can be taken care of. But in this case Contract finalisation is to be done with well-defined conditions. The contract should clearly mention the duration of the project. Baselines will be derived from functionality and time.
Throw Away
An Ad-hoc development approach is used after understanding the requirements and solutions. This ad-hoc development is done in a quick manner without strictly implementing the GUI standards as this is discarded after objectives are met. The requirements and solutions are finalized and fresh development is started with a rigorous approach.
When to use:
Sometimes the user knows about his requirements (not completely) but is hesitant about the type of solution and system provided. In such a case, a Throw Away prototype can be developed, and if the user is satisfied with the kind of service provided, then Contract finalisation can be done depending upon the work, time and effort required.
Version 1.0
Comparison of Models
Different Projects have different needs, even if they all need to be developed quickly. To choose the most effective lifecycle for your project, examine your project and the various conditions. Here are some of the strengths and weaknesses of various lifecycle models.
Spiral Excellent
JAD Excellent
RAD Fair
Poor
Excellent
Excellent
Fair
Excellent
Fair
Fair
Excellent
Fair
Fair to Excellent
Excellent
Version 1.0
Note: The ratings in the table are based on the models best potential. The actual effectiveness of any lifecycle model will depend on how you implement it. It is usually possible to do worse than the table indicates. On the other hand, if you know the model is weak in a particular area, you can address that weakness, early in your planning stage and compensate for it--perhaps by creating a hybrid of one or more of the models described. Many of the tables criteria will also be strongly influenced by development considerations other than your choice of lifecycle models. A detailed description of the lifecycle-model conditions described in table 1-1 is given below. Work with poorly understood requirements It refers to how well the lifecycle model works, when either you or your customer understands the systems requirements poorly or when your customer is prone to change requirements. It indicates how well suited the model is to exploratory software development. Work with poorly understood architecture It refers to how well the lifecycle model works when youre developing in a new application area or when youre developing in a familiar application area, but are developing unfamiliar capabilities. Produces highly reliable system It refers to how many defects a system developed with the lifecycle model is likely to have when put into operation. Produces system with large growth envelope It refers to how easily youre likely to modify the system, in size and in diversity over its lifetime. This includes modifying the system in ways that were not anticipated by the original designers. Can be constrained to a predefined schedule It refers to how well the lifecycle model supports delivery of software by an immovable drop-dead date. Has low overhead It refers to the amount of management and technical overhead required, to use the model effectively. Overhead includes planning, status tracking, document production, package acquisition, and other activities that arent directly involved in producing the software. Allows for midcourse corrections It refers to the ability to change significant aspects of the product midway through the development schedule. This does not include changing the products basic mission but does include extending the product. Provides customer with progress visibility ______________________________________________________________________ Internal of 9 Page 13
Version 1.0
It refers to the extent to which the model automatically generates signs of progress that the customer can use to track the projects status. Provides management with progress visibility It refers to the extent to which the model automatically generates signs of progress that the management can use to track the projects status.
References
1. McConnell, Steve: Rapid Development 2. Pressman, Roger S : Software Engineering - A Practitioners approach, Fourth Edition, McGraw Hill International Edition, 1997 3. Pfleeger, Shari Lawrence, Software Engineering Theory and Practice, Prentice-Hall International Inc. ,1998
Version 1.0
FEEDBACK FORM To: From: Project: The SEPG Head Tata Consultancy Services Date: Location:
Please use the space below to give your comments, suggestions, and queries or to point out errors. Please use additional sheet if necessary.
For SEPG Heads use Action assigned to: Details of action taken: Date assigned:
Internal