SDLC

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 28

System Development Life Cycle Methodology

System Development Process: It refers to analyzing business, its activities,


problems, decisions in order to design, create, implement and maintain a suitable
information system.
System development process is divided into two portions:

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.

System Development Life Cycle (Software Development Life


Cycle): SDLC is a set of activities carried out by system analyst, designers and user to
develop and implement the information system. It consists of following activities:

 Preliminary investigation.
 Analysis(Requirement or System Analysis)
 Design
 Development Of Software(Coding)
 Testing
 Implementation and Maintenance.

 Preliminary Investigation: The objective of this step is to determine whether the


request is valid and feasible before making any recommendation to improve or
modify the existing system or build a new system.

 Requirement Analysis: Once the decision is made by management on the


recommendation of preliminary investigation, the second phase of SDLC start. The
objective of this step is to collect and analyze all data and information with a view
to understand customer requirement clearly and weeding (remove)
inconsistencies and incompleteness in these requirement.

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

 Testing: Before implementation, system must be tested. System testing is done to


ensure that system does not fail while running actually and it should function as per
requirement specification.

 Implementation and Maintenance: After the system is found to be fit, it is


implemented. Hardware is installed and users are then trained on new system and
word on it is carried out independently. Once the system is implemented it should be
maintained properly.
General Reasons of Failures to Achieve System Development
Objectives:

1. Lack of senior management support and involvement in information system


development.
2. Changing user’s needs, when user fails to specify exact requirement and his need
constantly changes, it become very difficult to develop a system successfully.
3. Lack of user participation and interaction with system analyst during development.
4. Inadequate testing of system before implementation.
5. Inadequate user training before installation.
6. Overworked or under-trained development staff.
7. Sometimes use of new technologies by organization to attain competitive advantages
becomes difficult to use, due to lack of skilled manpower and cost.

System Development Methodology:

SDLC methodology is formalized, standardized well documented set of activities used to


manage a system development project.
Characteristics:

1. Divide the project into number of task and processes.


2. Document every step and process and produced specific reports and other
documents during system development.
3. Assure the participation of users, managers in the project. The people generally
provide approvals and system being developed.
4. System must be tested thoroughly prior to implementation.
5. A training plan is developed for those who will operate and use new system.
6. A post implementation review of developed system must be performed.

Approaches to System Development:


In order to make sure that systems are analyzed and designed efficiently and effectively, it
is essential to adopt a suitable model. Following are the some approaches for system
development:
 Traditional Approach or Waterfall Model. Linear Framework Type
 Prototype Approach. Iterative Framework type
 Incremental Approach. Combination of Linear and iterative framework type
 Spiral Model. Combination of Linear and iterative framework type
 Agile Methodology.
 RAD (Rapid Application development) Approach. Iterative Framework Type

Traditional / Waterfall Approach: Traditional approach which is also known as


waterfall model becomes popular in 1970s. This approach follows the phases of SDLC one
by one. Classic traditional model of this approach states that the phases of SDLC should be
organized in linear order i.e. output of one phase becomes the input of the next phase. The
classic traditional model is an idealistic one since it assumes that no defect is introduced
during any of the phases of life cycle. However, in actual software development, the
defects are introduced in almost every phase of the life cycle. These defects usually get
detected much later in the life cycle. Thus for all practical purpose, the classical traditional
model was modified to incorporate feedback paths.
In software development, though errors can get introduced in almost every phase of
development, but it is preferable to detect and correct these errors in the phase in which
they get introduced. But it is not always possible to detect these errors in the same phase
thus provision of feedback should be there.
Preliminary
investigation

System analysis

F
E System design
E
D
B
A
System construction
C
K

System testing

Implementation and
maintenance

Weaknesses of Waterfall Model:

1. Project progresses forward, with only slight movement backward.


2. Problems are often not discovered until system testing.
3. Difficult respond to changes. Changes that occur later in the life cycle are more costly.
4. Little room for use of iteration.
5. Time frame will be more.
6. System performance cannot be tested untill the system is almost fully coded.

The Prototyping Model: A prototype model suggests that before development of


actual software a working prototype of the system should be built. A prototype is a toy
implementation of the system which usually provides limited functionality, low capabilities
and inefficient performance but it help to understand the exact requirements from system.

Strengths:

 Prototype model helps to find the customers actual requirements.


 Useful for resolving unclear objectives.
 Helps to easily identify confusing or difficult functions and missing functionality.
 Prototype makes requirement more clear and more transparent.
 In general, it is difficult to develop a new type of product without going through many
revisions; and prototype approach helps to develop such products with lower cost and
time requirement.

Prototype model can be viewed as series of following steps:


1. Requirement gathering.
2. Quick Design.
3. Develop prototype.
4. Customer evaluation.
5. Refine Requirements as per customer evaluation.
Once user approves the prototype actual system development starts using traditional
approach.
Weaknesses:

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

Rapid Application Development (RAD): Rapid application development (RAD)


refers to a type of software development methodology that uses minimal planning in favor
of rapid prototyping. The lack of extensive pre-planning generally allows software to be
written much faster. RAD (rapid application development) is a concept that products can
be developed faster and of higher quality through:

 Gathering requirements using workshops instead of interview.


 The re-use of software components.
 Less formality in reviews and other team communication.
 Aims to produce high quality systems quick, primarily through the use of iterative
prototyping, active user involvement, CASE (computer aided software engineering)
tools, DBMS, Fourth generation programming languages, Code generators etc.
 It includes JAD (Joint Application Development), a small team compromising
developers and users empowered to make the decisions.

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:

 Better planning and control by project manager.


 Documentation is an important measure of communication.
 Compliance to prescribed standards ensuring better quality.

Disadvantages:

 The development team may find it cumbersome.


 The user may find that the end product is not visible for long time.
 It may not be suitable for small and medium sized projects.

SDLC is used in all the system development approaches.

PHASES OF SDLC:

 Preliminary investigation. (PHASE 1): The purpose of this step is to


evaluate the project request coming from users who need a change in the system or
develop a new system. The analyst working on this step should accomplish following
objectives.

1. Clarify & understand the project request.


2. Determine the size of the project.
3. Determine the technical and operational feasibility.
4. Conduct cost benefit analysis: what is the estimated cost for developing a
particular system? Will the proposed system provide better service to
customer?
5. Submit reports to management with recommendation outlining the acceptance
or rejection of proposal.
Conducting the investigation:
Data can be collected by two primary methods:
 Reviewing internal documents: In this step analyst learn and find out how the
organization maintains the data presently.
 Conducting Interviews: In this step analyst ask user about various problems user
is facing in working.

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?

 Schedule Feasibility: Estimating how long it will take a new system


to become operational.
 Legal Feasibility: It is concerned with whether there will be any
conflict between a newly proposed system and organizations legal obligations.

Cost Benefit Analysis (performed in economic feasibility)


System cost can be divided into 3 categories:
Development Cost:
1. Salaries of system analyst.
2. Cost of testing the system.
3. Cost of training of employees.
Operational Cost:
1. Hardware/ Software Cost.
2. Maintenance cost (Like power, light, AC, Building rental and other facility charges.)
Intangible Cost:
They cannot be easily measured in terms of money. It includes gain / loss of employee
morale, goodwill etc.

Benefits can be tangible or intangible:


 Increase in sales.
 Improved customer service through timely service.
 Improved employee morale.
 Better decision making.
 Decrease in operating cost.

Reporting Results to Management:


In this analyst defines the problem and its scope, provide one or more solution and
estimates cost and benefits. This report is submitted to management for approvals. The
next phase for system development starts after the approval is given by management.

 SYSTEM ANALYSIS OR REQUIREMENT ANALYSIS: (PHASE 2)


If the management decides to continue developing the system after reading the analyst
report, the requirement analysis phase of system development begins. During the
requirement analysis phase the focus is on determining user needs, studying the
application area in depth, assessing the strength and weaknesses of the present system.
This is very important phase of software development, since any error in this phase would
affect all subsequent phases of development.
After analyst collects all information and removes all inconsistencies, he starts, to
systematically organize the requirement into SRS (system requirement specification)
document. This SRS is submitted to user for approval and it becomes a reference
document for further development.
In this phase system analysis carried out following activities:

Fact Finding Techniques:


 Collecting Documents: The analyst can collect information by studying the
documents maintained by the company like manuals, input forms vouchers), output
reports etc.
 Questionnaires: Questionnaires are pre printed lists of questions distributed
amongst users and managers of the system to be filled in. The questionnaires help in
collecting large amount of data on problem with the existing system and requirement
for new system.
 Interviews: Users and managers are interviewed personally to extract information in
depth. The data gathered through interviews provide system developer with clear
picture of problems with existing system.
 Onsite Observation: In the analyst personally visits the place of the works of users
and managers and observes their working of the system and environment to get a
clear picture of the users work. It plays an important role in analysis of system. The
purpose of onsite observation is to get as close as possible to the “real” system being
studied.

Analysis of the Current System:


This step helps in analyzing the user’s present system which helps in analyzing the user
requirement for the proposed system.
The analysis covers the following areas:

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

Analysis of Proposed System:


After the analysis of present system, the proposed system analysis and specification
starts. The proposed system analysis is done, using the data collected in the above steps.
The requirement specified from the proposed system by users and weaknesses of present
system are used to prepare the specification for proposed system in terms of
 Outputs produced with great emphasis on timely managerial repots that utilize the
management by exception principle.
 Database to be maintained with desired capabilities like online working etc.
 Work load carefully considered for present system and future periods including peak
periods.
 Methods and procedures that shows relationship of inputs and outputs to the
database, utilizing data communications were deemed appropriate.

Preparing Management Report:


After completing all the above steps, all information gathered and analysis done there on
is documented known as SRS document and submitted to a management for approval
and approved document become the contract (reference) document for further
development. System Requirement Specification contains the following:
 Introduction: description about the system to be developed.
 Information Description: Input / Output.
 Functional Description: Process/ Database.
 Behavioral Description: Controls/ external Connectivity.
 Validation Criteria: Classes of test to be performed.

 SYSTEM DEVELOPMENT TOOLS:


System development tools refer to a variety of graphical, statistical and software tools
that help in designing a new system before the actual development begins.
These tools can be grouped into 4 categories:
 System components and Flow Tools:
Systems flowcharts, Data Flow Diagrams, system Component Matrix etc are used
to represent system component and flows.

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

 Data Attributes and Relationships:


Database is very important part od a system. The database in the system are defined
and designed by this category of tools.
Example are Data Dictionary, Entity relationship Diagrams, File Layout Forms
etc.

 Detailed System Process: These tools help programmer to develop detailed


procedures and processes.
Examples are Decision TREE and DECISION TABLE.

 SYSTEM DEVELOPMENT TOOLS:


 System Flowchart: System flowchart is the graphical representation of the flow of
data in the system, and represents the work process of system. Different symbols
connected by arrows are used to describe the sequence of information processing
activities. System flowchart represents a graphical model of physical information
system, present or proposed.
Benefits:
 System flowcharts are extensively used for communicating the overall
structure and flow of system to users.
 The flowchart act as a guide or blueprint during program development phase.
 Flowcharts serve as a good program documentation, which is needed for
various purposes.
Limitations:
 If alterations are required the flowchart may require re-drawing completely.
 Sometimes, the program logic is quite complicated. In that case, flowchart
becomes complex and clumsy.

 DFD (Data Flow Diagram): Data flow diagram is a graphical representation of


logical flow of data through a system. It helps in expressing system requirement in
simple and understandable form. A DFD is composed of four elements:
Data Sources and Data source sends data and
destinations data destination receive
data.

Data Flows Flow of data is represented


by a line with arrow

Transformation Process Process transform data


from inputs to outputs and
represented by circles or
bubbles

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.

 System component matrix: It shows information system as matrix of


component that highlights basic activities of input, processing, output, storage
and control. It represents different resources and their utility in Matrix form
which is easy to understand and implement.
Activities Hardware Software Users Database
Input Bar code reader Data entry Sales clerk Customer,
program product
database
Processing Computer Program sales clerk Customer,
processor inventory
Output Point of sales Report Computer Same
terminal generator operator, DBA
program
Storage Hard disk DBMS DBA
Controls Point of sale Performance Auditor Customer,
terminal monitoring, Inventory.
security
program
 Data Dictionary: A data dictionary contains Metadata i.e. data about data. A
database system consult data dictionary before reading or modifying actual data. It is the
most common powerful component of DBMS. A data dictionary contains the details of data
like table names, field’s name etc.
Advantages:
 This file can be used for security purpose.
 It describes which program will store and use data.
 Data dictionary serves as an important aid when documenting internal control
procedures.

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

Role of Different Persons during SDLC phases:


Following are the key persons/ groups involved in a system development:
 Steering Committee: Steering committee provides overall direction and is
responsible for all costs and time schedule. Also it makes regular review of project
development and takes corrective actions accordingly.
 Project Manager: A project manager is normally responsible for more than one
project and liaison with the client. He is responsible for delivery of the project within
time and budget and periodically reviews the progress with the project leader and
team members.
 Project Leader: A project manager may be responsible for many projects at the
same instance, and project leader is solely dedicated to particular project. He
monitors day to day progress of the project.
 Module Leader/ Team Leader: A project is divided into following modules and
development responsibility for each module is assigned to module leader.
 System Analyst/ Business Analyst: System analyst is a person responsible to
understand user’s requirements and communicate that to programmer.
 Programmer/ Coder/ Developer: Programmers writes programs and converts
design into programs by coding using programming language. They also responsible
for initial testing or debugging activities.
 Database Administrator (DBA): This person is responsible for creating an
efficient and secured database. He is also responsible to monitor the performance of
database.
 Quality Assurance: This team sets the standards for development of project and
team check the compliance for standards from time to time.
 Tester: Tester is junior level quality assurance person. Tester tests the program
and modules and prepares test reports.
 Domain Specialist: Whenever a project team develops a project in the field new to
them, they take help of domain specialist. For example: it a team undertakes
application development in insurance then they take the help of a person who has
expert knowledge of insurance system working.
 IS Auditor: IS auditor ensures that adequate controls are observed while
developing and testing applications.
 SYSTEM DESIGN (PHASE 3): After completion of requirement analysis for a
system, system design activities take place. System design is considered one of the
most important phase of SDLC because success of new system depends upon good
system design. The design phase usually consists of following activities:

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.

Design of Data/ Information Flow:


In this design, the linking or flow of inputs, processes and outputs are designed.

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.

Designing System Input:


Input design means the activity of putting the data into the computer for processing. The
following factors should be considered while designing any input:

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

Design of hardware and system software platform:


Finally the hardware and system software platform is designed as per the requirement of new
application.
System Manual:
The output of system design phase is description of various tasks to be performed and all
these tasks are documented in manual form and this manual is known as System Manual,
and its contains following details:
 General description of existing system, its flow and outputs.
 General description of new system, stating the purposes and functions of the new
system along with major differences from the existing system together with a brief
justification for a change.
 Flow of Proposed system: contains various flowcharts, DFD etc.
 Outputs of Proposed System: contains Reports format etc.
 Input Layouts: Contains Design of various data entry form.
 Macro logics giving a brief description of overall logic of the internal flows.
 Database structure.
 Communication System for data communication.
 Controls included.
 Glossary of terms used etc.

 Phase 4 (System Acquisition):

At the end of the design stage the organization has a good idea about the type of hardware
and software required for the system.

 Procuring Computer Hardware: The following factors are important while


selecting computer hardware:
1. Due to rapid development in computer technology whereas possible one should
go for latest technology.
2. Select input/ output and storage devices that gives maximum efficiency like bar
code reader, high speed hard disks etc.
3. Hardware purchased should be easily expandable, upgradeable in future for
increasing processing requirement.
4. There should be good support from supplier both for operational as well as
technical requirements.

 Software Acquisition (Make or buy Decision): At this stage system


developer should determine whether the application software should be created in house
or buy the readymade package if available.
Advantages and Disadvantages of Application Package:

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.

 Steps involved in selection of computer system: The selection of an


appropriate computer system, both hardware and application package require a good
expertise. The steps involved in selection of computer system are:
1. Prepare Design Specification.
2. Select a group of vendors with whom orders may be placed.
3. Prepare and distribute RFP (request for proposal containing design
specifications) to selected computer vendors.
4. Ask vendors present their proposals with live demo etc.
5. Conduct further analysis of their proposal.
6. Contact present users of vendors to check the performance of their system.
7. Conduct equipment benchmark tests.
8. Select the equipments.

 Vendors Proposal Validations:


Evaluation and ranking of proposals submitted by vendors is based on the following
considerations:
1. Performance Capability, Benefits V/s Cost of each proposal: Operating
efficiency of each system (Like processing speed, number of users supported etc)
must be examined using a benchmark test.
2. Maintainability or adaptability: With the changing dynamics of business, it is
essential that offered system should be flexible to meet the changing requirement.
E.G. It should be able to alter a portion of payroll system to reflect new tax laws.
3. Vendor Support: Vendors offers various types of support services like training,
maintenance, help in implementation and testing etc.

 Methods of validating Proposals:


There are various methods for validations of vendor’s proposal to check whether the
submitted proposals are as per asked specifications or not. Following are some of the
common methods for validating vendor’s proposals.
1. Checklists Method: In this method a list is prepared for required specification from
system in terms of hardware, software and support services etc and all the proposals
are checked against these list of specification and accordingly a decision can be taken
for selection of vendor
Example:
Description Vendor1 Vendor2 Vendor3
Hardware Check List:
 CPU type
 CPU Speed P4 P4 P4
 RAM 2.2 GHz 2.8 2.4
 Hard Disk 256 MB 256 256
80 GB 160 80
Software Check List
 Language used COBOL JAVA C++
 Controls Included
Moderate HIGH LOW
Support Services Check
List
 Past Performance Good Moderate Excellent
 Training Support
Provided Provided Provided

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

3. Public Evaluation Reports: Information about products may be gathered from


sources as:
 Published information in newspapers, computer magazines etc.
 Internet.
 Other Users of similar products.

4. Bench Marking Test: In this approach a job mix of possible transactions to be


executed on required system is prepared and same is used on the vendor system and
then various performance parameter are checked like processing speed, response
time, number of users supported simultaneously etc.
Bench marking test is not a simple procedure this require an expert technical
knowledge and help of various specialized testing software.

 Phase 5 (Software Development: Programming Techniques


and Languages): The objective of software development is to convert designs into
a fully functional system. In the software development activity, various application
programs are written, tested and documented.
Characteristics of good coded programs: A good coded or written program
normally has the following characteristics:
1. Reliability: Program code should be reliable i.e. it should work consistently over a
period of time.
2. Robustness: It should take into account all the possible inputs and accordingly there
should be validations built in the program.
3. Accuracy: Provide should provide accurate outputs.
4. Efficient: Program should work efficiently i.e. with high performance.
5. Usability: Program should be user friendly.
6. Readability: Program should be easy to maintain or upgrade.

Program Coding Standards:


These standards guide programmer for writing an efficient, robust and maintainable program.
Program coding standards are set of rules that the programmer has to follow strictly. Program
coding standards help in the following:
1. Provide simplicity.
2. Provide efficient utilization of storage.
3. Least processing time.

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.

Choice of Programming Language:


The following are the important criteria for selecting the language for program code:
1. Type of application (web application, accounting application).
2. Environment (client/ server, local application)
3. Skills available with staff.

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.

Test the Program:


In this step, a thorough testing of object program is done with the test data to find out any
run time errors, which could not be detected by compiler. Now days there are various testing
software in market which help in efficient testing of programs.
Program Documentation:
The writing of narrative procedure and instruction for people who will use software is done
throughout the program life cycle. Managers and users should carefully review
documentation in order to ensure that the software and system behave as the documentation
indicates. If they do not, documentation should be revised. Documentation should be
prepared in such a way that the user can clearly understand the instructions.

Program Maintenance: The requirements of business data processing applications


are subject to continual change. This calls for modification of various programs. There are,
usually separate categories of programmers called maintenance programmers who are
entrusted with this task.

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

Software Testing Fundamentals:

 Testing Objectives: following are the key objectives of software testing:


1. Testing is a process of executing a program with an intension to find error.
2. The main objective of software testing is to find a yet undiscovered error.
3. A successful test is one that uncovers a yet undiscovered error.
Testing should systematically uncover different classes of errors in a minimum amount of
time and a minimum amount of effort.

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.

Types of unit testing:


1. Static Analysis Testing:
 Desk check: This is done by the programmer himself. He checks for logical syntax
errors.
 Structured Walk-through: The application developers lead other programmers
through the text of the program and explanation.
 Code inspection: The program is reviewed by a formal committee. Review is done
with formal checklists.

2. Dynamic Analysis Testing:


 Black Box Testing: Black box testing refers to testing, which involves only
observation of the output for certain input values, and there is no attempt to analyze
the code, which produces the output. The internal structure of the program is ignored.
For this reason it is known as black box testing (also called behavioral and functional
testing) in which the content of the black box is not known and function of the black
box is understood completely in terms of its input and outputs.

Inputs Outputs

No need to test internal structure

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

 Final Acceptance Testing:


Final acceptance testing is conducted when the system is just ready for use. During this
testing, it is ensured that the new system satisfies the user’s requirements.
Final testing has two major parts
1. Quality Assurance Testing: It ensures that the development process is as per the
organization quality assurance methodology.
2. User Acceptance Testing: The user performs the acceptance testing at his place to
ensure whether the software is acceptable to him or not. There are two types of user
acceptance testing:
o Alpha testing: This is the first stage, often performed by the users within the
organization.
o Beta Testing: This is the second stage, generally performed by the external
users. This is the last stage of testing, and normally involves sending the product
outside the development environment for real world exposure.

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

 Conversion Strategies or Conversion Modes: Following are the strategies or modes


for conversion from old to new system:
o Direct Conversion: In this method, on a given date the old system is totally
discontinued and the new system is put into use. It is comparatively a risky way of
conversion because if errors are there in the new system then a lot of delay and
losses can be there. The advantages of this method is that no duplication of work
and efforts and low cost, use of only efficient new system. However, the
disadvantages are Errors that may result in long delay; User can not compare
the result of new system with old.

o Parallel Conversion: This is most useable conversion strategy. In this method


the old system and the new system both are used for some time in parallel. The
results of both the systems are compared and after satisfaction; the use of old
system is stopped and new system is used only.
Advantages:
Recover from any processing error immediately.
User can compare the result of new system with old.

Disadvantages:
Duplications of work and efforts.
High costs, difficulty in running two systems.

o Phased Conversion: In this approach each part of the system is developed,


refined, implemented and then the next one and so on until the entire system is
implemented. The advantage of this method is that each part is thoroughly tested
before being used, but it has the disadvantage that the linking up between
different modules has to be carried out several times to ensure that it works as a
system, which is a difficult task.

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 Operation Evaluation: It is very essential that developed system should be easy


to operate and should work as per user requirements. This evaluation includes:
1. Whether the transaction are processed on time and accurately.
2. Is system easy to work?
3. Are reports available on time?
4. Is there sufficient storage capacity etc?

o Information Evaluation: This is most difficult evaluation. This evaluation is


related to find out the value of information that developed system is providing to
user or to find out how the information provided by system is changing the quality
of decision making of users.

 Phase (8) System Maintenance: System maintenance refers to the


necessary changes to the information system as required from time to time. It may
involve:
1. Adding new data elements.
2. Modifying reports.
3. Adding new reports.
4. Changing calculations etc.
Maintenance can be of following types:

o Schedule Maintenance: Schedule maintenance is planned maintenance i.e. changes/


modifications which are planned in advance. This type of maintenance is also known
as preventive maintenance like running every morning anti virus, the implementation
of new inventory coding scheme can be planned in advance if number of items are
increasing.
o Rescue Maintenance: Rescue maintenance refers to errors/ situations which were
not anticipated but which has arisen now and require immediate solution like
breakdown of a system due to hard disk crash, an undetected bug or run time error
and so on.

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.

o Preventive Maintenance: In this maintenance, time to time system components and


functionalities are reviewed and needed changes are done to maintain system in good
working conditions.

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.

 An organization is in the stage of system development to implement an enterprise wide


information system, where the following conditions exist:
1. End users are not aware of the information needs.
2. The new system is mission critical and there is a hasty need.
3. The business risks associated in implementing the wrong system are high.
Read the above case carefully and answer the following with proper justifications:

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.

 Write Short notes on the following:

1. Guidelines for input form design.


2. Factors for validation of vendor’s proposal.
3. Point-Scoring Analysis.
4. Advantages of Application Packages.

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

 Following are involved in SDLC. Discuss their Roles:

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?

You might also like