Friday, 4 October 2013

C Introduction - Phases of Software Development

PHASES OF SOFTWARE DEVELOPMENT:

Since software is abstract in nature, there are very few rules for development. In most of the cases we have only guidelines. To develop efficient software we required a lot of planning activities. Software development is multi-step and group activity.


Following are the major steps used in software development:

        I.            Problem definition   

      II.            Analysis    

    III.            Design    

    IV.            Coding     

      V.            Testing and Debugging   

    VI.            Implementation   

  VII.            Modification & Maintenance

 

It is called “System Development Life Cycle” (SDLC) model of software development. It also called water-fall model.


I.                     Problem Definition – The problem is precisely defined first then domain of the problem is fixed. So two things are to be decided in problem definition phase:

(a) What is to be done?

(b) How much is to be done?


The definition can be decided. The definition is the brief description of the problem.

II.                  Analysis – The main task of analysis phase is “information gathering”. The detail information of the domain for which we are developing the software is collected.


It may require following activities-

(a) Interviewing the person involved. 

(b) Question / Answer. 

(c)  Documents reading. 

(d) Observation monitoring etc.


Every information is kept in writing. Moreover, above information is converted in to more formal, figurative of diagrammatic approach.


The tools are:   

·         ER Diagram [Entity Relationship Diagram]. 

·         Data Flow Diagram [D. F. D.].

·         Condition table. 

·         System flow chart.

 
Where:

o   ER Diagram represents various entities involved in the system and their inter-relationship.

o   Data Flow Diagram represents data-stores and flow of data from one store to another.

o   Condition table represents various conditions and their associative actions in the form of two-dimensional matrix.

o   Flow chart represents major step to be perform.


III.                Design – The designing process, we define the steps to be performed. In analysis, the major activity is of modularization. It means the breaking of big tasks into smaller one. The breaking process continues till the maintainable module is reached. In modulation the related steps are kept together and independent steps are separated.


Another important task is database designing. It requires normalization, key selection decision, functional dependences etc. The database is the most important part for the user because the complete data is kept in the database. The database requires proper backup and recovery techniques.


IV.                Coding – The programming environment is selected according to the             requirement. We convert tools prepared in the analysis and design phase into the programming language. Coding requires less expertise and less experience as compare to analysis and design.

V.                  Testing and Debugging – Testing is to identify errors in our program. Debugging means:

·         To identify the position of errors.

·         To remove the error.

The testing is done on the basis of already available input an manually processed output data. We have the old input and corresponding output. The input data is fed in our software. Its output is compared with the output available. If there is a mismatch, there are errors in our program.


Now test cases are prepared to find out the errors. The test cases should be such that, they should be able to exploit each and every path in the flow diagram. The position of errors is identified. The errors should be removed in such a way, so that further errors are not introduced.

 
Note: Testing is the most uncertain phase from the point of view of effort and time.

·         If analysis and design is proper, testing requires less time and efforts.

·         Testing only show the present of defects it does not show the absence of defects.


VI.                Implementation – The software prepared at developer site is installed at client site. The developer should keep in1 mind the hardware and software configuration at the client site.

VII.              Modification and Maintenance – Some uncovered errors are reported by the user. These errors must be removed. Moreover, there are changes in the user’s working environment. The user requests the changes in the software according to his changing needs. The developer modifies the software.

 
Note: If analysis and design done properly, modification and maintenance require less effort. The success of the software project depends upon the efficiency of analysis and design phase.

No comments:

Post a Comment