38
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

Software Process

Embed Size (px)

Citation preview

Page 1: Software Process

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

Page 2: Software Process

Software Development

Life Cycle

System study

Feasibility study

Analysis

Design

Coding

Testing

Implementation

Maintenance

Page 3: Software Process

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.

Page 4: Software Process

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

Page 5: Software Process

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.

Page 6: Software Process

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.

Page 7: Software Process

4) System Design :- Based on the user requirements 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.

Page 8: Software Process

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

Page 9: Software Process

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.

Page 10: Software Process

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

Page 11: Software Process

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.

Page 12: Software Process

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

Page 13: Software Process

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.

Page 14: Software Process

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.

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.

Page 15: Software Process

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 are always some errors found in the system that must be noted and corrected.

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

Page 16: Software Process

Linear Sequential Model Sometimes called the classic life cycle or

the waterfall model.

analysis design code test

System/informationengineering

Page 17: Software Process

The Linear Sequential Model

Activities:-

System/information engineering & modeling:- Requirements gathering Interface with other elements: HW, SW,

database

Software requirement analysis:- Understand nature of SW to be built

Function, behavior, performance and interface. Documented and reviewed with the customer

Page 18: Software Process

Design:-

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.

Page 19: Software Process

Code generation:- Design must be translated into machine readable

form.

Testing:- Test all functions, both internal and external.

Support/maintenance:- Deal with all kinds of changes that may be

occurred after SW delivery. Tune the system to new variations in working

environment.

Page 20: Software Process

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.

Page 21: Software Process

The Prototyping Model 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)

Page 22: Software Process

Steps in Prototyping:-

Requirement Gathering & Refinement

Develop Working Model

Customer Evaluation

Review Prototype

Is It Satisfactory?

Is It necessary to redevelop

Implement Prototype

Yes

No

Yes

Abandon process

No

Page 23: Software Process

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.

Page 24: Software Process

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.

Page 25: Software Process

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.

- It gives just the idea about the system and it does not contain all features of final system.

Page 26: Software Process

Rapid Application Development

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.

Page 27: Software Process

Phases of RAD Model:- 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

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.

Page 28: Software Process

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.

Application generation :- Automated tools are used to facilitate construction of the software.

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.

Page 29: Software Process

The RAD Model

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

team #1

team #2team #3

60 - 90 days

RAD

Page 30: Software Process

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

Page 31: Software Process

31

Invented by Dr. Barry Boehm in 1988 that couples the iterative nature of prototyping model with systematic aspects of the linear sequential model.

Spiral model is divided into number of framework activities called task regions.

It contains six sages and each stage is represented by one quadrant of cartesian diagram.

The radius of the spiral represents the cost incurred so far in the process.

It is an evolutionary model having most realistic approach to the development of large systems.

The Spiral Model

Page 32: Software Process

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

Page 33: Software Process

33

Customer communication :- tasks required to establish effective communication between developer and customer.

Planning :- tasks required to define resources, timelines and other project related information.

Risk analysis :- tasks required to assess both technical and management risks.

Engineering :- tasks required to build one or more representations of the application.

Construction & release :- tasks required to construct, test, install and provide user support (e.g. documentation and training).

Customer evaluation :- tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.

Page 34: Software Process

Advantages :-

- Risk reduction mechanisms are placed. - Provides iteration and systematic approach. - Changes made in one module will not have any

impact on other module.

Drawbacks:-

- Requires expertise in risk evolution and reduction.

- Applicable to only large projects. - Complex, relatively difficult to follow.

Page 35: Software Process

35

It combines elements of the linear sequential model with the iterative philosophy of prototyping.

When an incremental model is used, the first increment is often a core product.

i.e. basic requirements are addressed, but many supplementary features remain undelivered.

The core product is used by the customer. As a result of use and revolution, a plan is developed

for the next increment. The plan addresses the modification of the core

product to better meet the needs of the customer and the delivery of additional features and functionality.

This process is repeated following the delivery of each increment, until the complete product is produced.

The Incremental Model

Page 36: Software Process

analysis design code test

System/informationengineering

analysis design code test

analysis design code test

analysis design code test

increment 2

increment 3

increment 4

increment 1

delivery of1st increment

delivery of2nd increment

delivery of3rd increment

delivery of4th increment

calendar time

Page 37: Software Process

37

The figure shows, the incremental model applies linear sequential in a systematic fashion as calendar time progresses.

Each linear sequence produces a deliverable “increment” of the system.

E.g. word processor 1st:- File management, editing & documentation 2nd:- More sophisticated editing & documenting 3rd:- Spelling and grammar checking 4th:- Advanced page layout capability

Page 38: Software Process

Advantages :-

- Generates software quickly. - More flexible and less expensive. - Easier to test and debug. - Easier to manage risk.

Drawbacks:-

- Each phase of an iteration is rigid and do not overlap each other.

- Problems may arise as all requirements are not gathered through entire life cycle.