SDLC
SDLC
SDLC
1. System Analysis: In this the problem, situation for which system is to be developed
is analyzed thoroughly.
2. System Design: System Design includes all the Blue Print (all the drawings and
documentation) preparation required to implement the system.
Preliminary investigation.
Analysis(Requirement or System Analysis)
Design
Development Of Software(Coding)
Testing
Implementation and Maintenance.
System Design: The goal of system design phase is to transform the requirement
into a structure that is suitable for implementing in some programming language.
System Construction (Coding): The goal of this step is to translate the design of
the system into code in a given programming language.
System analysis
F
E System design
E
D
B
A
System construction
C
K
System testing
Implementation and
maintenance
Strengths:
Prototype model can be successful only if the system developers are ready for
providing significant time to experiment and build prototype and get it checked from
actual users again and again, until user approves the prototype.
To save development time developer do not thoroughly test and document the
system because of time consumed in experimenting with prototype, which may cause
inefficient and erroneous system development.
If end user is not satisfied with initial prototype, he may loose interest in the project.
Prototype may not have sufficient checks and balance incorporated.
Designers may prototype too quickly, without proper users need analysis, resulting in
an inflexible design that limits future system potential.
The Incremental Model: In this model the product is decomposed into number of
components, each of which are designed and built separately. Each component is
delivered to the client when it is complete. First the development team develops the core
module of the system and then it is later modified to better meet the need of customer
and delivery of additional features and functionality. System is developed in step by step
manner.
Strengths:
The feedbacks from early increments improve the later stages.
Smaller sub projects are easier to control and manage.
The project can be temporarily abandoned if more urgent work crops up.
Smaller sub projects are easier to develop.
Weaknesses:
Testing of modules result into overhead and increased cost.
Some problems are difficult to divide into functional units (modules).
Since some modules will be completed much earlier than others, well defined
interfaces are required.
Spiral Model: Spiral model is similar to incremental model but with more thrust on risk
analysis and resolution. In this model, project development activities are represented as
spiral. Each loop in the spiral acts as phase in the process. The risks are explicitly assessed
in each spiral’s loops and risks are resolved throughout the spiral process.
Spiral model is primarily used for complex and large projects.
Example: In the first cycle there was shortage of developers to develop programs. Thus in
next iteration enough developers will be appointed such that delay should not occur again
to develop the programs.
Advantages:
This model is used as a risk reduction mechanism.
After final iteration, all risks are resolved.
It is risk driven model.
Disadvantages:
Model is not suitable for small projects.
Model requires expertise risk management skills.
Complex.
Agile Methodology: This approach does not follow any predefined steps. This approach
describe that software development is essentially a human activity and will always include
variation in processes and inputs; therefore model should be flexible enough to handle the
variations. Thus the Agile Methodology incorporates iteration and continuous feedback. As
important, it focuses on empowering people to collaborate and make decisions together
quickly and effectively. Agile software development focuses on keeping code simple,
testing often, and delivering functional bits of the application as soon as they're ready. The
goal of ASD is to build upon small client-approved parts as the project progresses, as
opposed to delivering one large application at the end of the project.
Characteristics
Includes iterative cycles.
Include modular development process.
Users or people oriented approach.
Collaborative working approach.
Advantages:
Using RAD model a product can be developed withing a very short time duration.
As customer is involved at all stages of development it leads to product
achieving customer satisfaction.
Feedback from customer is available at the initial stages.
Quick initial reviews are possible.
Because RAD produces system more quickly and to business focus, this
approach tends to produce systems at lower cost.
Generally produces a dramatic savings in time, money and human effort.
Disadvantages:
More speed and lower cost may lead to lower overall system quality.
If customer and developers are not committed to the activities to complete the
system in a much abbrivated time frame, RAD projects will fail.
If the system cannot be properly modularized,building the components necessary
for RAD will be problematic.
RAD my not be appropriate when technical risks are high.
System Development Life Cycle (SDLC): SDLC is a popular system development
frmework which provides sequence of steps to developers for efficient system
development. Each step of SDLC is known as phase and each phase uses results of
previous phase. The SDLC is document driven framework which means at every steps of
SDLC documentation is produced. A phase of the SDLC is not complete untill the
appropriate documentation is produced.
Advantages:
Disadvantages:
PHASES OF SDLC:
Project Feasibility:
Technical feasibility: It is concerned with hardware and software. In this analyst
evaluate whether proposed system is feasible with existing or expected computer
hardware and software technology. Some of the technical issue raised are:
1. Capacity of existing hardware or software is enough.
2. Expansion of the system in future.
Economic Feasibility: It includes comparison of cost of project with
its benefits. Obviously a project should be taken if benefits exceed the cost.
Operational Feasibility: It includes how people are able to work with
the system. Some issues raised:
1. Support from managers and users.
2. Are current business methods acceptable to users? If not users
may welcome a change.
3. Involvement of user in planning and development of project?
History of organization: How organization has grown over the years, what type of
system changes has taken place from time to time in organization and how
adaptable is organization is for changes etc.
Inputs: In this analyst analyze the various inputs of organization in terms of their
contents, format etc and how they are captured and entered for processing.
Data Files Maintained: In this analyst analyze the data files maintained by
organization. This helps analyst to design an efficient database for proposed
system.
Methods, procedures and data communication: Methods and procedures
means business logics which transform input into outputs. To develop a correct and
error free system a correct understanding of business logic is very important.
Outputs: In this analyst analyze what type of outputs generated and how they
meet the organization needs.
Internal Controls: an examination of the present system of internal controls may
indicate weaknesses that should be removed in the new system.
Model the existing physical system and logical system: After analyzing the
existing system in terms of input, methods, datafiles, outputs, controls all these
items are properly documented. This is done with the help of system flow charts and
data flow diagrams. This step provides a blue print of existing system.
Undertake overall analysis of present system: In terms of present work load,
various processes and personnel involved etc.
User Interface:
Such tools help in designing the interface between end users and computer systems,
such as:
Layout forms and screen are used to construct the content and format of input and
output form.
Dialogue Flow diagrams are used for describing the flow of dialogue between
computers and users.
Storage of data is
Data Stores represented by two
horizontal lines.
Layout Forms and Screens: Layout forms and screens are used to design source
documents, input / output and storage records, files and output displays and reports. 4GL
packages, CASE tools and other software packages provide electronic version of layout
forms. These are tools knows as report generators, form generator etc help to design data
entry forms and output reports.
CASE tools: The data flow diagram and system flowcharts that users review are
commonly generated by system developers using the on-screen drawing modules
found in CASE (Computer Aided Software Engineering) software package. The
software that helps the user to generate Data Flow Diagram and System Flowcharts.
CASE helps in Automation of anything that system analyst perform in system
development process.
Decision Table: Decision table is a table that is created before a flowchart, defining all
the possible conditions that may be considered within the program and all appropriate
action for each condition. A decision table is divided into four parts:
Condition Stub
Action Stub
Condition Entries.
Action Entries.
Architectural Design: This design deals with the organization of application in terms of
hierarchy of modules and sub modules. At this stage we identify
Major modules.
Function and scope of each module.
Interlinking between modules.
Data inputs, processing and output from modules.
The architectural design is made with the help of a tool called “Functional Decomposition”
which can be used to represent hierarchies of modules. It has three elements:
Module
Connection
Couple (Data that move from one module to another)
The module is represented by box, connection between them by arrows and data that move
from one module to another is represented by an arrow with circular trail.
Designing System Outputs: output refers to any information in the form of report,
document or message produced in printed or displayed form by an information system.
Output Objectives:
Convey required information.
Signal important events, problems, warning e.g. exception reports, error messages
etc.
Trigger an action on receiving some request from users.
Confirmation of an action to indicate completion of task.
System analyst should consider the following factors when designing user outputs:
Content: Content should be in appropriate volume. Too much or Too Less contents
will make output undesirable.
Format: Format refers to the way the content is presented to user. Data can be
presented in various forms to users like text, graphics, video etc.
E.G. Various department managers often prefer both summary and detailed
information to be presented in terms of chart form such Pie Chart, Bar chart etc.
Volumes: Amount of data is required at one time. This factor also helps in deciding
the type of output device required to produce such volume.
Timeliness: Timeliness refers to when users needs outputs. Some output is required
on regular basis- daily, monthly etc. Other output is generated on request.
E.G. Sales Manager may be required a monthly report.
Other user such as airline agents, require output within few seconds.
Media: Media refers to medium for output for example paper, display, CD, DVD etc.
Content: Content means the type of data required to be input into the system. It is
very crucial aspect because the input captured will ultimately provide the desired
output from the system.
Timeliness: If output is required in a specific time, input has to be provided in a timely
manner.
Media: Choice of input device is an important factor for data input to system, like
keyboard, touch screen, scanner etc.
Format: Format means the size and type of data fields selected for data input records;
it is normally done with user friendly, easy to understand data entry form.
Input Volume: Input volume refers to the amount of data that has to be entered into
the computer system at one time.
The main components of Input Design are Form Design normally known as data entry
form.
Design of Database:
Storing data is an important stage in the design of an information system. The system analyst
and database administrator determines how the data will be stored and what methods will be
used for their retrieval.
In conventional approach, data used to store in a file system, normally in individual files. But
these days database approach for storing data using DBMS is applied.
Database approach gives lots of advantages over conventional file system approach in
terms of security, concurrent access, data integrity etc. Following are the key activities
performed in the database design:
Conceptual Modeling: In this step DBA design the database by creating E-R diagram
i.e. entity relationship diagram which contains entities as tables of database with
attributes (i.e. fields) and relationship between tables.
Data Modeling: In this step, the conceptual models are translated into data models
by using DBMS i.e. actual tables and fields which can be accessed by programs or
applications are created by designer.
Physical Layout Design: In this activity, designer decides how the database will be
physically located at different locations. For Example: Computers in LAN or WAN.
Physical Design: In this design, all the functions and interfaces designs created above
are converted into physical units or modules. These modules are finally programmed and
linked together as per the designs to provide a working software or system in the next phase.
This design should be created such that effective and efficient system should be available to
the users and auditor should ensure that a structured approach by using CASE tool etc have
be followed to create physical design.
At the end of the design stage the organization has a good idea about the type of hardware
and software required for the system.
1. Rapid Implementation: Being ready for use it is possible to implement and use
these packages immediately without any wastage of time.
2. Quality: software development organizations which provide these packages use
specialists in this field for the development of different application. These
specialists have extensive experience hence can provide better software.
3. Cost: As the software vendors are selling the same software to several people
the cost will generally be lower than a package developed in house.
However in the case of ready made packages there may be following drawbacks:
1. Lack of flexibility: The package may not be as flexible as the organization
required.
2. Partly useful application: The package maybe useful in part only, and may not
cover the entire requirement of organization.
3. Documentation: Absence of proper documentation may result in poor utilization/
understanding of the package.
In this way, organization prepare a detailed check list from the details provided in vendor
proposal and select the proposal, meeting the requirement as per cost v/s offered
parameters.
2. Point Scoring Method:
In this method every evaluation criteria is given certain point weight age and marks are
allocated to each vendor for these criteria as per the submitted details in their proposals.
Example:
S No. Evaluation Possible Vendor 1 Vendor 2 Vendor 3
Criteria Points
1 Software 10 8 9 8
meet all
mandatory
requirement
s
2 Software 10 5 8 9
Flexibility
3 Controls 10 8 9 7
Applied
4 Performance 10 8 8 8
5 User 10 8 8 8
Friendliness
Total 50 37 42 40
Programming Language:
Software includes statements or instructions written in some programming languages. These
set of instructions or programs code is also known as source program which is converted to
object program with the help of compiler.
There are different types of programming languages are as follows:
1. High level Programming language such as COBOL, C.
2. Object Oriented Language such as JAVA, C++.
3. Scripting Language such as JAVA SCRIPT, VB SCRIPT.
4. Expert System Language like PROLOG.
Program Debugging:
Debugging is the most primitive form of testing activity which refers to correcting
programming language syntax and diagnostic errors so that program compiles cleanly. A
clean compile means that the program can be successfully converted from source code
written by the programmer into machine language instructions. Debugging consists of
following four steps:
1. Input source program to the compiler.
2. Letting the compiler find errors in the program.
3. Correcting lines of code that are erroneous.
4. Resubmitting the corrected source program as input to compiler.
Phase 6 (Testing):
Testing is a process used to identify the correctness, completeness, and quality of developed
computer software. Testing is used to find out the errors rather than to tell the exact nature of
the errors. Testing helps to verify that developed software or product would be working as it is
intended to be working.
Levels of testing:
Unit Testing: In unit testing individual components are tested to ensure that they
operate correctly. It only tests the functionality of the units themselves. Therefore it will
not catch integration errors. Unit is the piece of code; usually it is referred to as the
smallest piece of code whose further sub-division is not possible.
Benefits: The goal of unit testing is to test each part of program and show that the individual
parts are correct. It provides various benefits:
The size of a single module is small enough that we can locate an error fairly easily.
Documents the code of each unit on side by side.
Encourage programmers to make changes to the code if the code is not working properly,
which if not corrected, then at later stages can make it difficult to do after integration with
other programs.
There are five categories of tests that a programmer typically performs on a program unit:
1. Functional Test: Functional tests checks whether programs do what they
supposed to do or not. This test involves only observation of the output for certain
input values, and there is no attempt to analyze the code, which produces the
output.
2. Performance Test: Performance is generally assessed in terms of response time
and throughput rates under different processing and configuration conditions.
3. Stress Tests: The purpose of stress testing is to find defects in the system
capacity of handling large numbers of transactions during peak periods. For
example, we know during CBSE results declarations the NIC server on which results
are posted some time get crashes due to heavy traffic. The stress level at which NIC
server can operate is overloaded at the time of results declaration, and results in a
crash.
4. Structural Tests: Structural tests are concerned with examining the internal
processing logic of software.
5. Parallel Tests: Parallel testing is testing a new version of software together with
processing of its previous version to ensure that the new version of application
performs correctly.
Inputs Outputs
White Box Testing: White box testing is used when tester has access to the internal
data structure and algorithm, as well as access to code that implement these
algorithm. White box testing approach is considered very detailed testing approach
and this approach provides testing internal structure of programs.
Grey Box Testing: It is a software testing technique that uses a combination of black
box testing and white box testing.
Integration Testing:
In this testing, functionalities which link one unit with another are tested. After creating many
different units, the developer integrates them. The developers then have to test that multiple
unit are working fine after integration or not. This testing includes the following:
o Bottom up Integration: It is easy to implement. It consists of unit testing, followed by
sub-system testing, and then testing of the entire system.
o Top down Integration: In top-down integration testing, the highest-level modules are
tested first and progressively lower-level modules are tested after that.
o Regression Testing: When we make changes in some part of existing software,
sometimes this may introduce problems in other parts of software. To test all parts of
program work without error we use the regression testing technique. Regression testing
ensures that changes have not introduced new errors i.e. the older programs still works
with new changes.
System Testing:
System testing is nothing but testing the whole application which was integrated all the
modules. When the testing is done by the testing team, then the application has to be tested
in their real environment .That is called “system testing". This covers the functionality of
entire project or system. The system testing may include the following tests:
o Recovery Testing: This is to check that system developed is able to recover from any
crashes, hardware failure etc. Recovery of system is supported by backup of data and
components.
o Security Testing: This testing is done to check whether implemented security
features are able to protect data and information.
o Stress or Volume Testing:
It is the testing of the system when the maximum numbers of users are simultaneously
active and when the database contains the greatest data volume. Stress testing may
be performed to test system performance during peak hours.
o Performance Testing: This testing is used to test System performance in terms of
response time and throughput rates under different processing and configuration
conditions.
Phase 7 (Implementation):
Implementation phase is less creative than system design. It is mainly concerned with user
training, site selection and file conversion etc. Implementation ensures that information system
is properly operational and allows its users to take over its operation for use and evaluation.
The system implemented can be totally new system or a major modification to existing system.
The system implementation consists of the following activities:
Equipment Installation: The hardware required to support the new system is selected
prior to the implementation phase. The following steps are involved in Equipment
installation:
o Site Preparation: In this step , layout is prepared regarding where the
equipment etc will installed in terms of their place (location), users sitting
arrangement, wiring arrangement, air conditioned setting etc.
Site preparation is very important step of implementation; a poorly designed site
can drastically reduce productivity of users.
One must find out an approximate location with conductive operating environment
for the equipment i.e. right temperature, humidity and dust control specification.
Complete the site preparation prior to the delivery of the equipment, as vendors
deliver equipment only on a neat layout than in a place under construction.
o Install Equipment: The equipment must be physically installed by the
manufacturer, connected to power source and wired to communication lines etc.
o Equipment checkout: Installed equipments are checked for proper working like
turn on/ off, booting of computers and communication channels working etc. and
also various routine test and diagnostic routine are carried out for testing the
equipments installed.
Training: A system can be succeeded or fail depending on the way it is operated and
used. Therefore, the quality of training received by the personnel involved with the
system in various capacities helps or hinders the successful implementation of
information system.
o Whenever a new system is installed in the organization, a need of training arises
for both general users and computer professionals as the new system often
contains some new types of hardware and software.
Conversion and start-up from Manual to Computerized System: This involves the
activities carried out for successful conversion from old system to new system. Following
activities are carried out for conversion from old to new system:
o Procedure Conversion: Every system has its own procedure for input data
preparation, output generation, controls etc. Therefore for implementation of new
system the procedure, method for working on new system must be clearly defined
and converted from old procedure and methods to as per the requirement of new
system.
o File Conversion: The old data files should be converted to as per the
requirement of new system and these conversions should be done before system
is implemented. Data file conversion is one of the most important tasks and it
should be done with utmost care.
o System Conversion: After data files are converted from old to new system and
system components are properly in place, users in organization should start
working on new system. If required for some time old system may be continuous
for verification purpose. But once every thing is ok users can start using new
system completely.
o Scheduling Personnel and Equipment: Schedule should set up for both
equipments and personnel for data processing activities so the required outputs
are available always at time.
Disadvantages:
Duplications of work and efforts.
High costs, difficulty in running two systems.
o Pilot Conversion: This approach is utilized when the same system is to install at
several places e.g. banks etc. The conversion of one installation is completed and
then next one is implemented.
Advantages:
Problems detected in the initial installation can be avoided in subsequent
installations.
Disadvantages:
Each site has its own peculiarities; therefore successful conversion of one site may
not work with other.
Post implement Evaluation: Evaluation is also one of the very important step as it
provide the information about how successful is system in satisfying user needs and it
also provide the information on drawbacks / problems encountered in system
development.
Evaluation covers the following:
o Development Evaluation: This evaluation is done to check whether system
developed is on schedule and with in the budget. If system is not developed on a
schedule and within budget, and then what were the possible reasons for delay
and over cost etc. are identified and noted as evaluation remarks.
o Corrective Maintenance: Corrective maintenance deals with fixing bugs in the code
or defects found.
o Adaptive Maintenance: Refers to change in the system as per the changes in the
environment.
o Perfective Maintenance: This maintenance deals with accommodating to new or
changed user requirements that helps to increase the performance of system.
A Proper system operation require proper maintenance of system and system staff should
continuously plan and implement the require changes to provide the system in optimum
manner.
Unit 2: SDLC
Question Bank
As a system analyst, you need to assess the successful implementation and stakeholders
actual requirements of an enterprise system in a retail chain organization across its branches
to provide the following features:
1. Lower operational costs,
2. Better information for managers, and
3. Smooth operations for users or better levels of service to customers.
Justify your answer with necessary techniques used to determine the requirements of a
system.
1. Identify system development approach and the steps to be followed in the above stated
conditions.
2. State the reasons for choosing the particular approach for system development.
3. Identify the risks, when end users are involved in the system development process.
Discuss the system development approach whose components are time boxing,
incremental prototyping and clean rooms.
Describe briefly four categories of the major tools that are used for system development.
Explain with example in each category.
If you are the Project manager of a software company with the responsibility for developing
a break through product, combining state of art hardware and software, will you opt for
prototyping as a process model for a product meant for the intensely competitive entertainment
market?
A company is offering a wide range of products and services to its customers. It relies
heavily on its existing information system to provide up to date information. The company
wishes to enhance its existing system. You being an information system auditor, suggest how
the investigation of the present system should be conducted so that it can be further improved
upon.
The top management of a company has decided to develop a computer information system
for its operations. Is it essential to conduct the feasibility study of system before implementing
it? If answer is yes, state the reasons. Also discuss three different angles through which the
feasibility study of the system is to be conducted.
Various software packages serve as aids in analysis of program logic. Explain briefly.
Describe any five functional areas of a system which needs to be analyzed by system
analyst for detailed investigation of the present system.
Bring out the reasons s to why the organizations fail to achieve their Systems Development
Objectives?
At the end of Analysis phase, the System Analyst Prepare a Document. Write the Contents
of that document.
1. Project Manager.
2. System Analyst.
3. DBA.
4. IS Auditor.
How would you use Data Dictionary as a tool for File security and audit Trails?
From the perspective of IS audit, what are the advantages of System Development Life
Cycle?
ABC Technologies Ltd. Is in the development of application software for various domains.
For the development purposes, the company is committed to follow the best practices
suggested by SDLC. SDLC provides the guidelines to follow a sequence of activities. It
consists of a set of steps and phases in which each phase of the SDLC uses the results of the
previous one. The SDLC is document driven which means that at crucial stages during the
process, documentation is produced. A phase of the SDLC is not complete until the
appropriate documentation is produced. These are sometimes referred to as deliverables.
A deliverable may be a substantial written document, a system test plan or even a physical
object such as a new piece of technology that has been ordered and delivered. This feature of
the SDLC is critical to the successful management of an IS project.
Read the above carefully and answer the following:
There are various advantages by following SDLC, but there are some
shortcomings also. Briefly explain those shortcomings.
Feasibility study is a key activity in the SDLC. What are the issues which are
typically considered in feasibility study?