System Investigati ON System Analysis Maintanen CE: G. Raja Sekhar 1
System Investigati ON System Analysis Maintanen CE: G. Raja Sekhar 1
System Investigati ON System Analysis Maintanen CE: G. Raja Sekhar 1
SDLC Overview
Unit - 3
SDLC is the acronym of Software Development Life Cycle. It is also called as Software
development process. The software development life cycle (SDLC) is a framework defining
tasks performed at each step in the software development process. ISO/IEC 12207 is an
international standard for software life-cycle processes. It aims to be the standard that defines
all the tasks required for developing and maintaining software.
SDLC is a process followed for a software project, within a software organization. It consists of
a detailed plan describing how to develop, maintain, replace and alter or enhance specific
software. The life cycle defines a methodology for improving the quality of software and the
overall development process.
No doubt, the process of developing a small system may be very simple, but for the
large complicated system, which is supposed to support thousands of business processes for
a large number of users both within and outside an organization, the development process
becomes very complex.
System development uses a systematic approach for problem solving, in which a
complex problem is broken up into smaller manageable problems using a systems hierarchy
and then developing solution for each problem within the hierarchy.
System development includes both top down as well as bottom up approaches while for
the problem identification, it uses top down approach, the system development uses bottom
up approach for solution.
System development process can be divided into following stages
SYSTEM
INVESTIGATI
ON
MAINTANEN
CE
SYSTEM
ANALYSIS
SYSTEM
INVESTIGATION: A business
organization may have some
problem which may not be clear
to
the
managers
of
the
organization.
Examples:
Improve
IMPLEMENTATI
ON
SYSTEM
DESIGN
operational
efficiency.
Improve
effectiveness.
Gain
TESTING
SYSTEM
DEVELOPME
NT
competitive
advantage.
Expand
the
G. RAJA SEKHAR
To do nothing.
To improve or modify the existing system.
To build / acquire altogether a new system.
System investigation is not a design, nor does it include the collection of details to completely
describe the business system. System investigation includes the following two sub-stages
Problem Definition
Feasibility Study
Problem definition:
To identify and understand the problem at hand or an opportunity becomes very crucial
as it sets the stage to understand the problem or the opportunity. It has been observed that
this step is often skipped in the entire system development process and becomes a major
reason for the failure of information system.
Thus the business analyst most prepares written statement of the objectives and scope
of the problem.
Based on interviews with the user the business analyst writes brief description of his /
her understanding of the problem and reviews it with both groups meeting.
Some of the statements of the problem may be like
Unit - 3
Technical feasibility: The technical feasibility is conducted to analyze whether the hardware and software
required for the proposed system can be acquired or developed by an organization in the
given time.
Technical feasibility should answer the following questions
Does the necessary technology exist to do what is suggested and can it be acquired?
Does the proposed equipment have the technical capacity to hold the data required to
use the new system?
Will the proposed system provide adequate responses to inquiries, regardless of the
number of locations and users?
Can the system be expanded?
Is there any technical surety of accuracy, reliability, ease of access and data security?
Economic Feasibility:
In this study, expected costs and expected benefits are evaluated to know whether
benefits justify the investment in the proposed system. The economic questions raised by
analysts during the preliminary investigation are for the purpose of estimating the following
The cost of conducting a full system investigation
The cost of hardware and software for the class of application being considered for the
entire life of the proposed project.
The operating expenses required during the life period of the suggested project(s).
The benefits in the form of reduced costs, improved customer service, improved
resource utilization or fewer costly errors.
Legal Feasibility: Legal feasibility is undertaken to evaluated the legal aspects to implement a solution
for the identified problem. The various questions raised by the analysts during the preliminary
investigation for the purpose of legal feasibility. Legal feasibility includes
Whether any legal permission is required to implement the system?
Whether the required permission, if any, can be obtained from the concerned agency?
Whether the system abides by all laws and regulations of the land?
Operational feasibility:
This study covers the willingness and ability of the management, employees,
customers, suppliers etc. to operate, use and support the proposed system. Operational
feasibility asks if the system will work when it is developed and installed. The three major
barriers to implementation? Is there a resistance to the new systems? The following questions
are asked in operational feasibility
Is there sufficient support from the management? From employees, customers &
suppliers?
Are current business methods acceptable to the users?
Have the users been involved in the planning and development of the system project?
If the users and all others stakeholders agrees to the new system and thus the new system is
developed as per rules, regulations, laws, organizational cultural, union agreements etc. and
above all with the active involvement of the users.
Schedule feasibility:
The identified solution would be value if it can be completed within the time framework.
Thus, the system is assessed in terms of schedule feasibility the schedule feasibility evaluates
the probability of completing the system in the time allowed fir its development.
SYSTEM ANALYSIS:
G. RAJA SEKHAR
Requirements determination:
Requirement determination which is also termed as a part of software requirements
specifications (SRS) in the starting point of the system development activity.
The requirement determination is a means of translating the ideas given by the user into a
formal document and thus to bridge the communication gap.
A good SRS provides the following benefits
It bridges the communication gap between the user and the developers by acting as as
a basis of agreement between the two parties.
It reduces the development cost by overcoming errors and misunderstanding early in
the development.
It becomes a basis of reference for validation of the final product and thus acts as a
benchmark.
Requirement determination consists of three activities
Requirement anticipation
Requirement investigation
Requirement specification
REQUIREMENT ANTICIPATION activates include the past experience of the analysis, which
influence the study, they may foresee the like hood of certain problems or features and
requirements for a new system.
REQUIREMENT INVESTIGATION is at the center of system analysis in this the existing
system is studied and documented for further analysis. Various methods like fact-finding
techniques are used for the purpose.
REQUIREMENT SPECIFICATION activates, the data produced during the fact-finding
investigation in analyzed to determine requirements specification, which is the description of
the features for a proposed system.
SYSTEM DESIGN:
System design is another important step in the system development process. This
phase starts start the system analysis phase is over.
System design Objectives:
A system designed with the following main objectives
Practicality: The system should be designed in such a way that it may be learnt and
operated with ease by the users. The design should be user oriented.
Flexibility: The business organization are dynamic in nature. Therefore, a system must
be responsive to the change inevitably requested by its users.
G. RAJA SEKHAR
Unit - 3
Efficiency: A system must be efficient i.e., it should perform jobs within their specified
time. The efficiency of a system may be measured in terms of the following parameters
o Throughput: it is the ability to handle a specified number of jobs per unit of
time
o Response time: the ability to respond to a request made by the user within a
given time limit
o Runtime: it is the ability to undertake the complete job within a given time limit.
Security:
Conceptual
The internal logic of the system/software, ensuring that all statements have been
tested;
The external functions, by conducting tests to find errors and ensuring that the defined
input will actually produce the required results.
In some cases, a 'parallel run' of the new system is performed, where both the current and the
proposed system are run in parallel for a specified time period and the current system is used
to validate the proposed system.
Testing is classified into the following categories
G. RAJA SEKHAR
Unit - 3
Validation /
Testing
Unit Testing
Integration
Testing
System
Testing
Acceptance
Testing
Unit Testing: Unit tests designed in the module design phase are executed on the
code during this validation phase. Unit testing is the testing at code level and helps
eliminate bugs at an early stage, though all defects cannot be uncovered by unit
testing.
Integration Testing: Integration testing is associated with the architectural design
phase. Integration tests are performed to test the coexistence and communication of
the internal modules within the system.
System Testing: System testing is directly associated with the System design phase.
System tests check the entire system functionality and the communication of the
system under development with external systems. Most of the software and hardware
compatibility issues can be uncovered during system test execution.
Acceptance Testing: Acceptance testing is associated with the business requirement
analysis phase and involves testing the product in user environment. Acceptance tests
uncover the compatibility issues with the other systems available in the user
environment. It also discovers the non-functional issues such as load and performance
defects in the actual user environment.
SYSTEM IMPLEMENTATION:
Once the development of MIS is complete, it is ready for implementation is a process of
installing a newly developed MIS at the users premises and continuously getting the output
it was designed to generate. The new system may be replacement of manual system or a
major modification to an already existing computer-based information system.
Before implementation the designer or developer has to make an environment to get support
from all levels of management.
System
Implementat
ion
Parallel
Pilot
Phased
Plunge
PARALLEL: When new and old system are run in parallel for a trail period and a
comparison of both is done. If the proposed system gives a satisfactory solution to
information need, it is accepted and old one become obsolete.
PILOT: In this the new system is introduced at one location or site only for trail. If its
performance is according to the need it is introduced in whole of the company or
organization.
G. RAJA SEKHAR
6
G. RAJA SEKHAR
Unit - 3
There are various software development life cycle models defined and designed which are
followed during software development process. These models are also referred as "Software
Development Process Models". Each process model follows a Series of steps unique to its
type, in order to ensure success in process of software development. Following are the most
important and popular SDLC models followed in the industry:
Waterfall Model
Iterative Model
Spiral Model
V-Model
Prototype model
The other related methodologies are Agile Model, RAD Model Rapid Application Development
and Prototyping Models.
WATERFALL MODEL
The Waterfall Model was first Process Model to be introduced. It is also referred to as a linearsequential life cycle model. It is very simple to understand and use. In a waterfall model, each
phase must be completed before the next phase can begin and there is no overlapping in the
phases.
aterfall model is the earliest SDLC approach that was used for software
development. The waterfall Model illustrates the software development process
in a linear sequential flow; hence it is also referred to as a linear-sequential life
cycle model. This means that any phase in the development process begins only
if the previous phase is complete. In waterfall model phases do not overlap.
Waterfall Model design
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In Waterfall model, typically, the outcome of
one phase acts as the input for the next phase sequentially.
The
G. RAJA SEKHAR
PROS
Simple and easy to understand and
use.
Easy to manage due to the rigidity
of the model each phase has
specific deliverables and a review
G. RAJA SEKHAR
CONS
No working software is produced
until late during the life cycle.
High amounts of risk and
uncertainty.
9
Unit - 3
G. RAJA SEKHAR
10
G. RAJA SEKHAR
Unit - 3
11
Unit - 3
ITERATIVE MODEL
In Iterative model, iterative process starts with a simple implementation of a small set of the
software requirements and iteratively enhances the evolving versions until the complete
system is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of requirements.
Instead, development begins by specifying and implementing just part of the software, which
is then reviewed in order to identify further requirements. This process is then repeated,
producing a new version of the software at the end of each iteration of the model.
ITERATIVE MODEL DESIGN
Iterative process starts with a simple implementation of a subset of the software requirements
and iteratively enhances the evolving versions until the full system is implemented. At each
iteration, design modifications are made and new functional capabilities are added. The basic
idea behind this method is to develop a system through repeated cycles (iterative) and in
smaller portions at a time (incremental).
Iterati
Requirement
s
Design &
Development
Testing
Implementati
on
Design &
Development
Testing
Implementati
on
Design &
Development
Testing
Implementati
on
G. RAJA SEKHAR
12
PROS
Some working functionality can be
developed quickly and early in the
life cycle.
Results are obtained early and
periodically.
CONS
More resources may be required.
13
Unit - 3
Large projects where requirements are not well understand or are changing due to
external changes, changing expectations, budget changes or rapidly changing
technology.
Web information system and event driven systems
Leading-edge applications
G. RAJA SEKHAR
14
Unit - 3
The Prototyping refers to building software application prototypes which display the
functionality of the product under development but may not actually hold the exact logic of
the original software.
Prototype is a working model of software with some limited functionality. The prototype does
not always hold the exact logic used in the actual software application and is an extra effort to
be considered under effort estimation. Prototyping is used to allow the users evaluate
developer proposals and try them out before implementation. It also helps understand the
requirements which are user specific and may not have been considered by the developer
during product design.
Following is the stepwise approach to design a prototype:
Basic Requirement Identification: This step involves understanding the very basics
product requirements especially in terms of user interface. The more intricate details of
the internal design and external aspects like performance and security can be ignored
at this stage.
Developing the initial Prototype: The initial Prototype is developed in this stage,
where the very basic requirements are showcased and user interfaces are provided.
These features may not exactly work in the same manner internally in the actual
software developed and the workarounds are used to give the same look and feel to the
customer in the prototype developed.
Review of the Prototype: The prototype developed is then presented to the
customer and the other important stakeholders in the project. The feedback is collected
in an organized manner and used for further enhancements in the product under
development.
Revise and enhance the Prototype: The feedback and the review comments are
discussed during this stage and some negotiations happen with the customer based on
factors like, time and budget constraints and technical feasibility of actual
implementation. The changes accepted are again incorporated in the new Prototype
developed and the cycle repeats until customer expectations are met.
Prototypes can have horizontal or vertical dimensions. Horizontal prototype displays the user
interface for the product and gives a broader view of the entire system, without concentrating
on internal functions. A vertical prototype on the other side is a detailed elaboration of a
specific function or a sub system in the product.
The purpose of both horizontal and vertical prototype is different. Horizontal prototypes are
used to get more information on the user interface level and the business requirements. It can
even be presented in the sales demos to get business in the market. Vertical prototypes are
technical in nature and are used to get details of the exact functioning of the sub systems. For
example, database requirements, interaction and data processing loads in a given sub
system.
SOFTWARE PROTOTYPING TYPES
There are different types of software prototypes used in the industry. Following are the major
software prototyping types used widely:
G. RAJA SEKHAR
15
PROS
Increased user involvement in the
product
even
before
implementation
Since a working model of the
system is displayed, the users get
a better understanding of the
system being developed.
Reduces time and cost as the
defects can be detected much
earlier.
Quicker user feedback is available
leading to better solutions.
G. RAJA SEKHAR
CONS
Risk of insufficient requirement
analysis owing to too much
dependency on prototype
Users may get confused in the
prototypes and actual systems.
Practically, this methodology may
increase the complexity of the
system as scope of the system
may expand beyond original plans.
Developers may try to reuse the
existing prototypes to build the
actual system, even when its not
technically feasible
16
be
Unit - 3
The effort invested in building
prototypes may be too much if not
monitored properly
G. RAJA SEKHAR
17
Unit - 3
The V-model is SDLC model where execution of processes happens in a sequential manner in
V-shape. It is also known as Verification and Validation model.
phase.
V-MODEL DESIGN
Under V-Model, the corresponding testing phase of the development phase is planned in
parallel. So there are Verification phases on one side of the V and Validation phases on the
other side. Coding phase joins the two sides of the V-Model.
Following are the Verification phases in V-Model:
Business Requirement Analysis: This is the first phase in the development cycle
where the product requirements are understood from the customer perspective. This
phase involves detailed communication with the customer to understand his
expectations and exact requirement. This is a very important activity and need to be
managed well, as most of the customers are not sure about what exactly they need.
The acceptance test design planning is done at this stage as business requirements can
be used as an input for acceptance testing.
System Design: Once you have the clear and detailed product requirements, its time
to design the complete system. System design would comprise of understanding and
detailing the complete hardware and communication setup for the product under
development. System test plan is developed based on the system design. Doing this at
an earlier stage leaves more time for actual test execution later.
Architectural Design: Architectural specifications are understood and designed in
this phase. Usually more than one technical approach is proposed and based on the
technical and financial feasibility the final decision is taken. System design is broken
down further into modules taking up different functionality. This is also referred to as
High Level Design (HLD).
The data transfer and communication between the internal modules and with the
outside world (other systems) is clearly understood and defined in this stage. With this
information, integration tests can be designed and documented during this stage.
G. RAJA SEKHAR
18
Unit - 3
Module Design: In this phase the detailed internal design for all the system modules
is specified, referred to as Low Level Design (LLD). It is important that the design is
compatible with the other modules in the system architecture and the other external
systems. Unit tests are an essential part of any development process and helps
eliminate the maximum faults and errors at a very early stage. Unit tests can be
designed at this stage based on the internal module designs.
Coding Phase: The actual coding of the system modules designed in the design phase
is taken up in the Coding phase. The best suitable programming language is decided
based on the system and architectural requirements. The coding is performed based on
the coding guidelines and standards. The code goes through numerous code reviews
and is optimized for best performance before the final build is checked into the
repository.
Validation Phases: Following are the Validation phases in V-Model:
o Unit Testing: Unit tests designed in the module design phase are executed on
the code during this validation phase. Unit testing is the testing at code level and
helps eliminate bugs at an early stage, though all defects cannot be uncovered
by unit testing.
o Integration Testing: Integration testing is associated with the architectural
design phase. Integration tests are performed to test the coexistence and
communication of the internal modules within the system.
o System Testing: System testing is directly associated with the System design
phase. System tests check the entire system functionality and the
communication of the system under development with external systems. Most of
the software and hardware compatibility issues can be uncovered during system
test execution.
o Acceptance Testing: Acceptance testing is associated with the business
requirement analysis phase and involves testing the product in user
environment. Acceptance tests uncover the compatibility issues with the other
systems available in the user environment. It also discovers the non-functional
issues such as load and performance defects in the actual user environment.
V-MODEL APPLICATION
V- Model application is almost same as waterfall model, as both the models are of sequential
type. Requirements have to be very clear before the project starts, because it is usually
G. RAJA SEKHAR
19
PROS
This is a highly disciplined model
and Phases are completed one at a
time.
Works well for smaller projects
where requirements are very well
understood.
Simple and easy to understand and
use.
Easy to manage due to the rigidity
of the model each phase has
specific deliverables and a review
process.
G. RAJA SEKHAR
CONS
High risk and uncertainty.
20
Unit - 3
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model.
Spiral model is a combination of iterative development process model and sequential linear
development model i.e. waterfall model with very high emphasis on risk analysis.
It allows for incremental releases of the product, or incremental refinement through each
iteration around the spiral.
SPIRAL MODEL DESIGN
The spiral model has four phases. A software project repeatedly passes through these phases
in iterations called Spirals.
Identification: This phase starts with gathering the business requirements in the
baseline spiral. In the subsequent spirals as the product matures, identification of
system requirements, subsystem requirements and unit requirements are all done in
this phase. This also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the spiral
the product is deployed in the identified market.
Design: Design phase starts with the conceptual design in the baseline spiral and
involves architectural design, logical design of modules, physical product design and
final design in the subsequent spirals.
Construct or Build: Construct phase refers to production of the actual software
product at every spiral. In the baseline spiral when the product is just thought of and
the design is being developed a POC (Proof of Concept) is developed in this phase to
get customer feedback. Then in the subsequent spirals with higher clarity on
requirements and design details a working model of the software called build is
produced with a version number. These builds are sent to customer for feedback.
Evaluation and Risk Analysis: Risk Analysis includes identifying, estimating, and
monitoring technical feasibility and management risks, such as schedule slippage and
cost overrun. After testing the build, at the end of first iteration, the customer evaluates
the software and provides feedback.
Following is a diagrammatic representation of spiral model listing the activities in each phase:
Based on the customer evaluation, software development process enters into the next
iteration and subsequently follows the linear approach to implement the feedback suggested
by the customer. The process of iterations along the spiral continues throughout the life of the
software.
G. RAJA SEKHAR
21
Unit - 3
1. Project Start: this is in the 1st
quadrant (blue) determine objectives,
consider alternatives and constraints.
2. If project is moved on it goes into the
2nd quadrant (purple) strategy is
analysed from the viewpoint of risk and
solutions to minimise these risks are
investigated.
3. 3rd quadrant (pink) a solution to
achieve the goals set out in first
quadrant is put into place
4. 4th quadrant (yellow) The results of
the
risk-reduction
strategies
are
assessed, and if all risks are resolved,
the next phase is planned and started.
Cons
22
Unit - 3
Management is more complex.
End of project may not be known early.
Not suitable for small or low risk
projects and could be expensive for
small projects.
Process is complex
Spiral may go indefinitely.
Large number of intermediate stages
requires excessive documentation.
G. RAJA SEKHAR
23