Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 47

System Analysis and Design

What is a System?
• A set of interacting or interdependent
components forming an integrated whole.

Inputs Processing Outputs


System Analysis
• Process of studying a procedure in order to
identify its goals and purposes.

• System Investigation
• Problem Identification
• Improvements recommendation using the
information
System Development Life Cycle
• System development begins with the
recognition of user needs.
• Describes the stages involved in system
development project.
• Describes activities and functions of system
developers.
Stages of SDLC
• Planning
• System analysis
• System Design
• Implementation
• Integration and Testing
• Maintenance
Planning
• Required to determine the feasibility of
whether the project should proceed or not.

• Produces high level overview of project


relating requirements and scope.

• Overall technical goals are established.


Analysis
• Refines project goals into defined functions
and operations.
• Includes understanding of software product
limitation, problems or changes to be done in
existing system.
• Analyzes end-user information needs.
• Emphasizes on what the system is to do.
Design
• Describes how the proposed system is to be
built.
• Major data structures, file formats, output
formats are described.
• Describes features and operations in detail.
• Includes process diagrams, pseudocode and
other documentation.
Implementation
• Real code is written.

• System is first developed in small programs


called units.

• System is created, tested, installed and rolled


out with training program.
Maintenance
• Continuous improvement of the system via
feedback from the users.

• Changes, corrections, additions to the systems


Importance of procedural lifecycle
in system investigation.
• Importance of System Investigation
• Importance of Planning
• Importance of Information collection
• Importance of Requirement Specification
• Importance of Analysis
• Importance of Feasibility study
• Importance of Design
• Importance of Development
• Importance of Testing and Implementation
• Importance of maintenance
Waterfall Model
•One of the earliest SDLC approach that was
used for software development .

•Illustrates the software development process in


a linear sequential flow.

•Each phase is completed and its outputs are


certified which become the inputs for the other
phase.
Advantages
• Simple and easy to understand and use.

• Stages and activities are well defined.

• Verification at each stage ensures early


detection of errors and misunderstanding.

• Process and results are well documented.


Limitations
• No working software is produced until late
during the life cycle.

• Not suitable when requirements are at a


moderate to high risk of changing.

• High amounts of risk and uncertainty.

• Time consuming as phases are completed one


after another.
Is most appropriate when
• Requirements are very well documented, clear
and fixed.

• Technology is understood and is not dynamic.

• There are no ambiguous requirements

• The project is short with ample resources and


expertise.
Incremental Model
• Combines the elements of waterfall model
with iteration.
• Divides the overall project into a number of
increments.
• At each iteration, design modifications are
made and new functional capabilities are
added.
• Increments are sequential, uses waterfall
model in each increment.
Advantages
• Some working functionality can be developed
quickly and early in the life cycle.
• Less costly to change scope and requirements.
• Easier to test and debug during a smaller
iteration.
• Issues, challenges & risks identified from each
increment can be utilized to the next
increment.
Disadvantages
• Defining increments may require definition of
the complete system.
• End of project may not be known which is a
risk.
• With each increment, problems may arise
related to system architecture which were not
evident in earlier prototypes.
• Each phase of an iteration is rigid and do not
overlap each other.
Most appropriate when
• Major requirements are defined however,
some functionalities or enhancements may
evolve with time.
• Results are needed early and periodically.
• Software is to be produced early and
customer evaluation and feedback are to be
considered.
• Resources with needed skill set are not
available and are planned to be used on
specific iterations.
Prototyping
• Working model of software with some limited
functionality.

• Used to allow the users evaluate developer


proposals and try them out before
implementation.

• Interactions with prototype can enable the


client to better understand the requirements
of the desired system.
Advantages
• Increased user involvement in the product even
before implementation.

• Users get a better understanding of the system being


developed.

• Errors can be detected much earlier as the system is


made side by side.

• Quicker user feedback is available leading to better


solutions.
Limitations
• Risk of insufficient requirement analysis leads
to higher dependency on prototype.

• May increase the complexity of the system as


scope of the system may expand.

• Leads to implementing and then repairing way


of building systems.
Is most appropriate when
• In Development of systems having high level
of user interactions such as online systems.

• Systems which need users to fill out forms or


go through various screens before data is
processed.

• Where exact look and feel of the final system


to be developed is needed.
Reuse Oriented
• Program is refined by producing a sequence of
prototypes called models.
• Each model is derived from the preceding one
according to a sequence of defined rules.
Advantages
• Reduces the overall cost of software
development compared with manual
methods.
• Saves time as each phase of the process builds
on the previous phase which has already been
refined.
• Can minimize the likelihood of errors or bugs
making their way into the final product.
• Requirements are knows as the analyzer is
using a previous software.
Disadvantages
• Not always practical as a full collection of
reusable components may not be available.
• Some new program components may be
designed which may change the system
architecture.
• Can lead to compromise in requirements and
differ from the intended user product.
Rapid Application Development

Requirement
Planning

User Design Construction

Cutover
• Follows iterative and incremental model.
• Uses minimal planning in favor of rapid
prototyping.

• Uses a combination of Joint Application


Development (JAD) techniques and CASE tools
to translate user needs into working models.

• Focuses on gathering customer requirements


through workshops, testing and reuse of the
prototypes, continuous integration and rapid
delivery.
Advantages
• Changing requirements can be
accommodated.

• Iteration time can be short with use of


powerful RAD tools.

• Reduced development time.

• Increases reusability of components.


Limitations
• Only systems that can be modularized can be
built using RAD.
• Inapplicable to cheaper projects as cost of
modeling and automated code generation is
very high.
• Requires user involvement throughout the life
cycle.
• Requires highly skilled developers.
Is most appropriate when
• When a system can be modularized to be
delivered in incremental manner.

• If the budget permits use of automated code


generating tools.

• Where requirements change and working


prototypes are to be presented to customer in
small iterations of 2-3 months.
Spiral Model
• Combines the idea of iterative development
with aspects of the waterfall model.

• Very high emphasis on risk analysis.

• When previous prototypes have resolved all


the risks, the next step will follow the basic
waterfall approach.

• Each cycle of the spiral is completed by a


review including plans for the next cycle.
Advantages
• High amount of risk analysis reduces rework
effort and cost.

• Project monitoring is very easy and effective.

• Changing requirements can be accommodated

• Project estimates become realistic as the project


moves forward and loops in spiral get completed.
Limitations
• Risk analysis is important phase so requires
expert people.

• Spiral may go indefinitely.

• Complicated approach especially for projects


with a clear system requirement specifications

• Cost involved in this model is usually high.


Is most appropriate when
• Used for large projects which involves
continuous enhancements.

• The software needs continuous risk


evaluation.
• Requirements are complex and require
continuous clarification.

• Significant changes are expected in the


product during the development.
Agile
• Combination of iterative and incremental
process models
• Individuals and interactions over processes
and tools
• Working software over comprehensive
documentation
• Customer collaboration over contract
negotiation
• Responding to change over following a plan
• Every iteration involves cross functional teams
working simultaneously
Advantages
• Promotes teamwork and cross training.

• Minimal rules, documentation easily


employed.

• Good model for environments that change


steadily.

• Easy to manage and gives flexibility to


developers
Limitations
• Minimum documentation leads to high
individual dependencies.

• An overall plan, an agile leader and agile PM


practice is a must without which it will not
work.

• Strict delivery management dictates the


scope, functionality to be delivered, and
adjustments to meet the deadlines.
Is most appropriate when
• Used for time critical applications.
• No detailed planning and there is clarity on
features needed to be developed.

• Customer interaction, open communication


with minimum documentation
• Teams work in close collaboration and are
most often located in the same geographical
location.
Dynamic System Development
Method
• A RAD method that uses incremental
prototyping.
• Embraces principles of Agile development,
including continuous user involvement.
• Team is empowered to make decisions.
• Fixes cost, quality and time at the start and
uses the MoSCoW prioritization.
• Analysis, design and development phase can
overlap.
• Assumes that all previous steps may be
revisited and the changes are reversible.
Advantages
• Improves quality with active user participation
and iterative nature.

• Rapid delivery ensures early implementation


to business problems.

• More functionality being delivered at frequent


intervals.
• Projects are delivered on time and within a
specific budget.
Limitations
• Not a very common method, so is difficult to
understand.
• Costly to implement, as it requires users and
developers both to be trained to employ it
effectively.
• Only appropriate to particular classification of
applications.
• Emphasis on RAD may result to decline in
code robustness.
Is most appropriate when
• Systems that are time constrained
• Requirements can be prioritized
• The requirements are unclear or subject to
frequent change
• Systems with a clearly defined user group
• Interactive systems, where functionality is
clearly demonstrable at the user interface

You might also like