Software Engineering-I : Software Development process

Software Development process : SDLC 

Definition: Software Development Life Cycle (SDLC) is well defined process by which the system can be conceived, developed & implemented. It can be performed in two stages. Each stage involves three steps. 

Two phases :-  1. System Analysis  2. System Design 


SYSTEM ANALYSIS System analysis means identification, identification & critically examining the system & its parts(subsystem) for the purpose of achieving the goals(objective) set for the system as a whole, through modifications, changed interrelationships of components, deleting or merging & separating of components. It may involve upgrading of system as


a whole. System Analysis is important because 

1. It helps to understand complex structures.
2. It specifies functional requirements of the subsystems to the
total system.
3. It helps in understanding & comparing functional impacts of
subsystem to the total system.
4. It provides inter-compatibility & unity of purpose of subsystems
5. Finally it helps in placing each subsystem in its proper
perspective (place) so that system as a whole can effectively achieve the central
objective with minimum resources.

System Analysis:
In order to analyze the system properly it is performed in three steps,
I Problem identification
II Feasibility study & cost benefit analysis
III System requirement analysis

I. Problem identification:
Problem identification is the most difficult but important task in system analysis .Because,
if the problem is not properly identified it may lead to wastage of time & energy in later
stage. For problem identification the focus is on three aspects.
1. Source (cause) of the problem
2. Type of the problem
3. Nature of the problem
1.Source (cause) of the problem : The root cause of the problem may be internal or
external. Sources listed in different environments
Internal Environment                External Environment
1) Company Management               1) Customer
2) Employs of different department 2) Consultancy services
3) Internal auditors                        3) External auditors
4) Financial services                       4) Government policies
2. Types of the problem:
The normally encountered problems in the system are related to the
I Reliability of the system.
II Validity
III Accuracy
IV Economy
V Timeliness
VI Capacity
VII Throughput 

I Reliability: This problem arises, if for the same procedures the system gives different
results or it may not work properly all the time.
II Validity: Reports show misleading information or results.
III Accuracy: Reports display many errors.
IV Economy: The system is costly to maintain.
Timeliness: Reports are late or queries are not answered in time.

v Capacity: Inadequate processing, transmission or storing capacity.
V I Throughput: Exactly contradictory problem of capacity means more capacity is
available but less work is being done, which affects the efficiency in other way.
3. Nature of problem :
Some questions must be posed to find out the exact nature of the problem such as,
I What is the actual problem?
II How complex it is?
III What are the causes of the problem?
IV What are the likely solutions?
V Once the problem is solved what type of benefit is expected?
Answers to all these questions provide the exact nature of the problem. Once the exact
nature of the problem with its cases & type is identified, the possible opportunities or
solutions are checked and here the feasibility study starts.

Feasibility study
Feasibility study is useful to evaluate the cost & benefits of the system requested.
There are three major aspects of feasibility study.
I. Technical feasibility: It focuses on the existing computer hardware, software &
personnel. The need of these three factors is verified & procurement or installation
is done accordingly.
II. Economical feasibility: It considers cost & benefit analysis of the proposed system.
If the benefit overweighs the cost then only project is approved. The economic
feasibility helps to find out development cost.
Development cost can be categorized under two heads.
i) One time cost such as
 Investigation or survey cost,
 Cost of converting present system to new one
ii) Recurring cost such as
 Salaries of personnel,
 Training of staff,
 equipment maintenance
III. Operational or Behavioral feasibility: It considers the acceptability of the system.
It checks pre & post implementation procedures & thereby tries to find out the
troubleshooting areas of the system. If any business is to be computerized then proposed
system requires efforts to
i) Convince the user of the system for the acceptance
ii) Educate the staff means to give knowledge of the system
iii) Train the staff means to provide all the skill set for the required system.

Requirement Analysis
Requirement analysis is basically determination of requirements for new system.
Determination of requirements means studying the existing system & collecting the
details about it to find out the users requirement first. Requirement analysis can be
done with the help of three activities,
1. Identification of basic requirements
2. Investigation of basic requirements
3. Specification of basic requirements
1. Identification of basic requirements: In order to identify the basic requirements
it is necessary to find out how the system works & where the improvement is
required. This can be done by imposing major questions such as
I What are the problems in existing system?
II What users expect from proposed system?
III What are the various process involved related with the
problem?
IV What data is used & produced during the process?
V Which controls are used currently?

Investigation of requirements : Requirement investigation uses fact findingmethods
such as
I Interview
II Questionnaire
III Observations
I v Record review

v Brainstorming
v I Desk research
These fact finding techniques are used for gathering information about the system. This
activity is very important and documentation description of features of the system is
also done for future analysis. Requirements are documented & presented using special
tools like system flow charts, data flow diagrams and presentation graphics which in
turn helps the designer to design the system.
3. Specification of requirements: Requirement specification is a deal between
developer & end user. The data collected from end-user is not always sufficient. So it
has to be analyzed to verify whether it meets the organization’s demands or not.
Sometimes user may specify additional features that should be included in new system.
This process of requirement specification is done by identifying
I Data used in various activities
II Different controls needed in system
III User’s transactional requirements
I v User’s decisional requirements
v User’s organization dependent requirements
This activity requirement specification can be well demonstrated with help of following
case.

          

In Material Procurement System :-

 i. Data used is:- Sales forecast annual requirement, ordering cost, storing cost, lead time.

 ii. Controls required such as reorder level. 

iii. Transactional requirement:- Lead time 

iv. Decisional requirement-Some decisions are structured that is rule based, manageable and some decisions are unstructured that is not as per rule. 

    Decisions are taken by considering present or future situations. Important is right decisions should be taken at right time. For example in material procurement system, if material reaches re-order level then purchase indent must be raised that is the structured decision which must be taken in appropriate time. 

ADVANTAGES: System Analysis 

1. It helps in setting proper system goals 

2. Determines the boundary of the project by giving due consideration to the limitations of the available resources.

 3. It focuses on the boundary and scope of the project undertaken. 

4. Also checks limitations of available resources. 

SYSTEM DESIGN

System analysis defines ‘What is to be done, and system Design defines ‘How it is to be done’ System design is the most challenging and creative phase of SDLC. System analysis is the fundamental process of the system development life cycle while design is the concluding phase of SDLC.System design processes through following three steps, 

1. System design specification and programming 

2. System testing ,implementation & follow-up 

3. System maintenance &Evaluation of the system. 

1. System Design Specification 

        System design has to focus on four important aspects 

        1. Architecture design 

        2. Interface design 

        3. Database design 

        4. Program design 

1.Architecture design: Architecture design focuses on the basic infrastructure hardware, software & networking infrastructures that the system will use. 

2.Interface design: Interface design specifies how the user will move through the system. It means the navigation methods such as menu, forms, and reports. 

3.Database design: The database & file design defines what data will be stored & where it will be stored. 

4.Program design: Program design defines the programs that are required to be written & exactly what is program will do. 

The collection of derivable such architecture design, interface design program design and file design is the system specification. 

Program Specification: (Coding) 

Once the design is completed it must be translated into machine language. Proper choice of software is made on the basis of

 I. Clearly outlined software specification provided by designer. 

II. Need & cost of the software, availability of programmers. 

The basic activities involved in this phase are

                 i. Checking of program specification

                 ii Expanding (detailing) of specification. 

                 iii Breaking the system modules into smaller programs.

                 i v Allocating these programs to the respective team members of the development team

                 v  Writing codes in selected software language. 

                v i Documentation of each program.

Testing: 

      Basic objective of testing is to find the errors. Testing gives the guarantee that the software does not fail & it will run according to the specification and in the way the user expects it. 

1. The basic activities involved in testing are Testing individual program, its logic and interfaces among the various programs. 

2. Running on specific data so as to check quality of code and thereby establishes the standards. 

3. To check accuracy of desired result. 

Implementation : 

Once the system is tested it is ready for implementation. Implementation includes following activities. 

I Planning the implementation schedule. 

II Procurement of hardware. 

III Installation of software. 

IV Recruitment of operating personnel. 

V Motivation and training to the personnel. 

VI Educating user through meetings & seminars. 

VII Conversion of data files from old one to new one. 

VIII After final change over gradually phasing out of the old system.

Follow-up: 

There is need to have personnel to look after the system during operation and production which we call as follow-up. 

Maintenance: 

After new system has been Implemented problems and errors appear as no system can be considered as full proof. This requires system maintenance which is ongoing process. Normally hardware and software venders look after their products. Since documentation helps in maintenance, documents maintenance is the demanding task of system analyst. Maintenance ‘tail end ‘of the life cycle but it is the most expensive as it consumes energy, cost time in long run which can be made clear by the graph.

When system maintenance becomes more costly and time demanding it leads the urge (birth) of new system. Here SDLC gets completed. 
Types of maintenance: 
1. Corrective maintenance: It has to do with the diagnosis and the removal of residual errors in the system when it is delivered ( means immediate problems till operational set up) as well as the intentionally introduced errors in software during maintenance. 
2. Adaptive Maintenance: It is concerned with adjustment of the application with the environment .For example: newly introduced hardware or operating system.
3. Perfective maintenance: It involves changing the software to improve some of its qualities. For example: To add more features related to usability of software such as user friendliness etc.
Evaluation of the System: 
Evaluation is done to estimate the weakness and strength of the system. 
I Development evaluation: This decides whether the system is developed on time and within the budget. II Technical evaluation: It includes assessment of development methods & tools.
 III Operational evaluation: It focuses on 1) response time for getting results, 2) ease to use, 3) reliability of process,4) adequacy of storage capacity 5) assessment of users attitudes.