Software Development Life Cycle Software development life cycle

  • Slides: 30
Download presentation
Software Development Life Cycle: - Software development life cycle is an organizational process of

Software Development Life Cycle: - Software development life cycle is an organizational process of developing and maintaining systems. - It helps in establishing a system project plan. - It gives overall list of processes and sub-processes required for developing a system. - Following are different phases of software development life cycle: 1) System study 2) Feasibility study 3) System analysis 4) System design 5) System coding 6) System testing 7) Implementation 8) Maintenance

System study Maintenance Implementation Feasibility study Software Development Life Cycle Testing Analysis Design Coding

System study Maintenance Implementation Feasibility study Software Development Life Cycle Testing Analysis Design Coding

1) System study : - It is the first stage of SDLC. • •

1) System study : - It is the first stage of SDLC. • • - This stage gives a clear picture of what actually the physical system is. - The system study is done in two phases: First phase : - Preliminary survey of the system is done. - It helps in identifying the scope of the system. Second phase : - System study is more detailed and in-depth. - Identification of user’s requirements. - Limitations and problems of the present system are studied. - After completing the system study , a system proposal is prepared by the system analyst.

- - - A system analyst is a person who studies the system. System

- - - A system analyst is a person who studies the system. System proposal is placed before the user. Proposed system contains the findings of the present system and recommendations to overcome the limitations and problems of present system. It passes through following steps : i) Problem identification. ii) Background analysis. iii) Inference or findings.

2) Feasibility study : - On basis of result of initial study, feasibility study

2) Feasibility study : - On basis of result of initial study, feasibility study takes place. - Feasibility study involves: i) workability ii) meeting user’s requirements iii) effective use of resources iv) cost effectiveness. - It helps in achieving scope of system. - In this process, the cost and benefits are estimated with greater accuracy.

3) System analysis : - involved a detailed study (operations performed & their relationships)

3) System analysis : - involved a detailed study (operations performed & their relationships) of the current system, leading to specifications of a new system. - Interviews, on-site observations and questionnaire are the tools used for system analysis. - It also includes sub-dividing of complex processes and identification of data store and manual processes. - Points to be discussed : i) Specification of new system depending on user requirements. ii) Functional hierarchy showing functions to be performed & their relationships with each other. iii) List of entities and their attributes.

4) System Design : - Based on the user requirements • l and the

4) System Design : - Based on the user requirements • l and the detailed analysis, the new system must be designed. Preliminary or General design: - The features of the new system are specified. - The costs of implementing these features and the benefits to be derived are estimated. Structure or Detailed design: - At this stage, the design of the system becomes more structured. - Structure design is a blue print of a system. - Inter-relationship among the components - Input, output and processing specifications are drawn up in detail.

l There are several tools and techniques used for designing. These tools and techniques

l There are several tools and techniques used for designing. These tools and techniques are: - Flowchart - Data Flow Diagram (DFD) - Entity Relationship Diagram (ERD) - Data dictionary - Structured English - Decision table - Decision tree

5) Coding : - After designing the new system, the whole system is required

5) Coding : - After designing the new system, the whole system is required to be converted into computer understanding language. • It is an important stage where the defined procedures are transformed into control specifications by the help of a computer language. • This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer as programs. • The programs coordinate the data movements and control the entire process in a system.

6) Testing : - Before actually implementing the new system into operations, a test

6) Testing : - Before actually implementing the new system into operations, a test run of the system is done removing all the bugs. • After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. • The output of the test run should match the expected results. • Using the test data following test run are carried out: - • • Unit test System test

l l Unit test: - When the programs have been coded and compiled and

l l Unit test: - When the programs have been coded and compiled and brought to working conditions, they must be individually tested with the prepared test data. - Any undesirable happening must be noted and debugged (error corrections). System Test: - After carrying out the unit test for each of the programs of the system and when errors are removed, then system test is done. - At this stage the test is done on actual data.

At each stage of the execution, the results or output of the system is

At each stage of the execution, the results or output of the system is analyzed. - During the result analysis, it may be found that the outputs are not matching the expected output of the system. - In such case, the errors in the particular programs are identified and are fixed and further tested for the expected output. When it is ensured that the system is running error-free, the users are called with their own actual data so that the system could be shown running as per their requirements. - •

7) Implementation : - After having the user acceptance of the new system developed,

7) Implementation : - After having the user acceptance of the new system developed, the implementation phase begins. - Implementation is the stage of a project during which theory is turned into practice. - During this phase, all the programs of the system are loaded onto the user's computer. - After loading the system, training of the users starts. Main topics of such type of training are: • How to execute the package • How to enter the data • How to process the data (processing details) • How to take out the reports - After the users are trained about the computerized system, manual working has to shift from manual to computerized working.

Parallel run: - In such run for a certain defined period, both the systems

Parallel run: - In such run for a certain defined period, both the systems i. e. computerized and manual are executed in parallel. - This strategy is helpful because of the following: • Manual results can be compared with the results of the computerized system. • Failure of the computerized system at the early stage, does not affect the working of the organization, because the manual system continues to work, as it used to do. l Pilot run: - In this type of run, the new system is installed in parts. - Some part of the new system is installed first and executed successfully for considerable time period. - When the results are found satisfactory then only other parts are implemented. - This strategy builds the confidence and the errors are traced easily. l

8) Maintenance : - means the review of the system from time to time.

8) Maintenance : - means the review of the system from time to time. - Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environment. - It has been seen that there always some errors found in the system that must be noted and corrected. l The review of the system is done for: • knowing the full capabilities of the system • knowing the required changes or the additional requirements • studying the performance

Linear Sequential Model l Sometimes called the classic life cycle or the waterfall model.

Linear Sequential Model l Sometimes called the classic life cycle or the waterfall model.

The Linear Sequential Model Activities: l System/information engineering & modeling: l l l Requirements

The Linear Sequential Model Activities: l System/information engineering & modeling: l l l Requirements gathering Interface with other elements: HW, SW, database Software requirement analysis: l Understand nature of SW to be built l l Function, behavior, performance and interface. Documented and reviewed with the customer

l Design: l l A multi-step process that focuses on four different attributes of

l Design: l l A multi-step process that focuses on four different attributes of a program: i) data structure ii) software architecture iii) interface representations iv) procedural (algorithmic) detail. The design process translates requirements into a representation of the SW that can be assessed for quality before coding begins.

l Code generation: l l Testing: l l Design must be translated into machine

l Code generation: l l Testing: l l Design must be translated into machine readable form. Test all functions, both internal and external. Support/maintenance: l l Deal with all kinds of changes that may be occurred after SW delivery. Tune the system to new variations in working environment.

l Advantages: - It provides disciplined approach. - Simple and desirable, when the requirements

l Advantages: - It provides disciplined approach. - Simple and desirable, when the requirements are clear and well understood at beginning. - It provides a clear cut template for various phases. • Disadvantages: - - Difficult for customer to state requirements at beginning. - Difficult to change when changes occur at later stage. - Depends on previous stage for the completion of work. - It is expensive.

The Prototyping Model l l Prototyping is the process that enables the developer to

The Prototyping Model l l Prototyping is the process that enables the developer to create a working model of an information system application. It gives just the idea about the system and it does not contain all features of final system. Customer or user evaluates the prototype and they suggest what is to be added or modified. It is an iterative process as it is revised to satisfy customer needs. A prototype doesn't require lot of cost to build. It can be prepared using paper and pencil or computer software like: i) screen generators (Input validation screen) ii) report generators (Output screen) iii) application generators (Develop applications)

Steps in Prototyping: Requirement Gathering & Refinement Develop Working Model Customer Evaluation Yes Review

Steps in Prototyping: Requirement Gathering & Refinement Develop Working Model Customer Evaluation Yes Review Prototype Is It Satisfactory? Yes Implement Prototype No Is It necessary to redevelop No Abandon process

1) Requirement Gathering & Refinement : - Both developer and customer work together and

1) Requirement Gathering & Refinement : - Both developer and customer work together and define the overall objectives for the software, identify whatever requirements must be fulfilled. 2) Develop Working Model : - Developer and user jointly identify the data that are needed in the system and specify the output that the application must produce. - Prototypes are prepared to represent input screen formats and output formats. – Prototyping cost is estimated by system analyst.

3) Customer Evaluation of prototype: - User works on the prototype to evaluate its

3) Customer Evaluation of prototype: - User works on the prototype to evaluate its features and operations. 4) Review Prototype : - The prototype is reviewed, after getting information from users about what they liked and disliked. - Developers should understand the need of the customer for making modifications in the prototype. 5) Repeat as needed : - The process is repeated till both the users and developers find that all necessary features are fulfilled and there is no need (benefit) in further repeating the steps.

Advantages : - Misunderstanding between development team and user may be identified clearly. -

Advantages : - Misunderstanding between development team and user may be identified clearly. - Helps to build the system as per customers satisfaction and avoids wrong system delivery. - Low cost is required for development of prototype. - System can be delivered in proper time and delays are minimized. - As prototype is developed quickly, demonstration to the management is possible for checking feasibility and usefulness of the application. Disadvantage : - In this approach, user gets only the feel of the system. But the final product is delivered at the end.

Rapid Application Development l l Is a “high-speed” adaptation of the linear sequential model

Rapid Application Development l l Is a “high-speed” adaptation of the linear sequential model in which rapid development is achieved by using a component-based construction approach. Is an incremental software development process model that emphasizes an extremely short development cycle.

Phases of RAD Model: l Business modeling : - The information flow among business

Phases of RAD Model: l Business modeling : - The information flow among business functions is defined by answering questions like : - what information drives the business process - what information is generated - who generates it - where does the information go - who process it l Data modeling : - The information collected from business modeling is refined into a set of data objects (entities) that are needed to support the business. - The attributes are identified and the relation between these data objects is defined.

l Process modeling : - The data objects defined in the data modeling phase

l Process modeling : - The data objects defined in the data modeling phase are transformed to achieve the information flow necessary to implement a business function. - Processing descriptions are created for adding, modifying, deleting, or retrieving a data object. l Application generation : - Automated tools are used to facilitate construction of the software. l Testing and turnover : - Many of the programming components have already been tested since RAD emphasizes reuse. This reduces overall testing time. - But new components must be tested and all interfaces must be fully exercised.

The RAD Model RAD

The RAD Model RAD

Advantages : - RAD reduces the development time. - Reusability of components helps to

Advantages : - RAD reduces the development time. - Reusability of components helps to speed up development. - All functions are modularized so it is easy to work with them. Drawbacks: l l For a large project RAD requires highly skilled human resources in the team. RAD requires strong commitment from developers and customers in much abbreviated time frame. If commitment is lacking RAD will fail. A system must be properly modularized. RAD is not appropriate when technical risks are high.