Você está na página 1de 13

Feasibility Analysis

Mostly waterfall model is used for developments of projects. This model


consists of following phases:
1. Requirement Specification and Analysis
2. Design
3. Implementation and Unit Testing
4. Integration and System testing
5. Operation and Maintenance






















WATER FALL MODEL



Requirement
specification &
analysis
Design

Implementation &
Unit testing
Integration &Unit
Testing
Operation &
Maintenance
SOFTWARE REQUIREMENT
SEPCIFICATION (SRS)

The requirements gathering process is intensified and focused
specifically on software. To understand the nature of the program(s) to
be built, the software engineer (analyst) must understand the
information domain for the software, as well as required function,
behavior, performance, and interfacing. Requirements for both the
system and the software are documented and reviewed with the
customer.

DESIGN
Software design is actually a multi-step process that focuses on four
distinct attributes of a program: data structures, software architecture,
interface representations, and procedural (algorithm) detail. The design
process translates requirement into a representation of the software that
can be assessed for quality before code generation begins. Like
requirements, the design is documented and becomes part of the
software configuration.

CODE GENERATION

The design must be translated in to a machine-readable form. The testing
process focuses on the logical internals of the software, assuring that all
statements have been tested and on the functional externals that is,
conducting tests to uncover errors and ensure that defined inputs will
produce actual results that agree with required results.

TESTING

Once code has been generated, program testing begins. The testing
process focuses on the logical internals of the software, assuring that all
statements have been tested and on the functional externals that is,
conducting tests to uncover errors and ensure that defined inputs will
produce actual results that agree with required results.




MAINTENANCE:

Software will undoubtedly undergo change after it is delivered to the
customer (A possible exception is embedded software).Change will
occur because errors have been encountered, because the software must
be adapted to accommodate change in its external environment (e.g. A
change required because of a new operating system or peripheral
device), or because the customer requires functional or performance
enhancements. Software maintenance reapplies each of the preceding
phases to an existing program rather than a new one.








DEVELOPMENT PROCESS PHASES

Project Startup.
Requirement Analysis.
High Level Design.
Low Level Design.
Coding.
System & Integration Testing.
System Acceptance Testing.
Release of Product.
Project Windup.
Software Warranty Support Maintenance.
Review Documents prepared in Software Development
Product Feasibility Reviews (PFR).
Software Requirement Review (SRR).
Preliminary Design Review (PDR).
Source Code Review (SCR).
Acceptance Test Review (ATR).
Product Release Review (PRR).
Product Post-Mortem (PPM).


PROJECT STARTUP

A complete understanding of software requirements is essential to the
success of a software development effort. No matter how well designed
or well coded, a poorly analyzed and specified program will disappoint
the user and bring grief to the developer.
The requirement analysis task is a process of discovery, refinement,
modeling, and specification. The software scope, initially established in
the system- engineering step and refined during software project
planning, is refined in detail. Models of the required data, information
and control flow, and operational behavior are created. Alternative
solutions are allocated to various software elements. Actually
requirements analysis is a software-engineering task that bridges the
gap between system-level software allocation and software designs as
shown in figure below:






REQUIREMENT ANALYSIS

Requirement analysis enables the system engineer to specify function
and performance, indicate softwares interface with other system
elements, and establish constraints that software must meet.
Requirements allow the software engineer (often called analyst in this
role) to refine the software are allocation and build modules of the data,
functional, and behavioral domains that will be treated by software.
Analysis provides the software designer with models that can be
translated in to data, architectural, interface, and procedural design.
Finally, the requirement specification provides the developer and the
customer with the means to assess quality once software is built.
Developer and the customer with the analysis may be divided into five
areas of effort:

Problem Recognition
Evaluation and Synthesis
Modeling
Specification
Review
Initially, the analyst studies the system specification (if one exists) and
the software project plan. It is important to important to understand
software in a system context and to review the software scope that was
used to generate planning estimates. Next, communication for analysis
must be established so that problem recognition is ensured. The goal of
the analyst is recognition of the basic problem elements as perceived by
the user/customer.
Problem evaluation and solution synthesis is the next major area of
effort for analysis. The analyst must define all extremely observable data
objects, evaluate the flow and content of information; define and
elaborate all software function; understand software behavior in the
context of events that effects the system; estimate system interface
Characteristics and uncover additional design constraints. Each of these
tasks serves to describe the problem so that an overall approach or
solution may be synthesized.
Upon evaluating current problems and desired information (input and
output), the analyst begins to synthesize one or more solutions. To
begins, the data, processing functions and behaviors of the system are
defined in detail. Once this information has been established, basic
architecture for implementation is considered. A client/server approach
would seem to be appropriate, but does it fall within the scope outlined
in the software plan? A database management system (DBMS) would
seem to be required, but is the user/clients need for associatively
justified? The process of evaluation and synthesis continues until both
analyst and customer feels confident that software can be adequately
specified for subsequent development steps.
Throughout evaluation and solution synthesis, the analysts primary
focus is on what, not how. What data does the system produce and
consume what constraints apply? During the evaluation and solution
synthesis activity, the analyst creates models of the system man effort to
better understand the data and control flow, functional processing and
behavioral operation, and information content. The model serves as a
foundation, for software design and as the basis for the creation of a
specification for the software.


ELEMENTS OF ANALYSIS MODEL

The analysis model must achieve three primary objectives:
1. To describe what the customer requires
2. To establish a basis for the creation of software design,
3. To define a set of requirements that can be validated once the
software is built.

SOFTWARE DESIGN

Design is the first phase in the development phase for any system. It
may be defined as the process of applying various techniques and
principles for the purpose of defining a device a process or a system in
sufficient detail to permit physical realization. The designers goal is to
produce a model or representation of an entity that will later be built.
The process by which the model is developed combines intuition and
judgment based on experience in building similar entities, a set of
principles and/or heuristic that guides the way in which the model
evolves, a set of Criteria that enables quality to be judged, and a process
of iteration that ultimately leads to a final design representation.
Actually software design sites at the technical kernel of the software
engineering process and is applied regardless of the software process
model that is used. Beginning once software requirements have been
analyzed and specified, software design is the first of three technical
activity designs, code generation and testing which are required to build
and verify the software.
Each activity transforms information in a manner that ultimately results
in validated computer software. Each of the elements of the analysis
model provides information that is required to create a design model.
Software requirements manifested by the data, functional and behavioral
model feed the design steps. Using one of a number of design methods,
the design step produces a data design an architectural design an
interface design, and a procedural design.

This data design transforms the information domain model created
during analysis into the data structures that will be required to
implement the software. The data objects and the relationships defined
in the entity-relationship diagram and the detailed design depicted in the
data dictionary provides the basis for the data design activity.
The architectural design defines the relationship among those major
structural elements of the program. This design representation- the
modular framework of a computer program- can be derived from the
analysis model(s) and the interaction of sub-system defined within the
analysis model.
The interface design describes how the software communication within
itself, to systems that inter-operate with it, and with humans who use it.
An interface implies a flow of information (e.g. data and /or
control).Therefore, the data and flow diagrams provide the information
required for the interface design.
The procedural design transforms structural elements of the program
architecture into a procedural description of software components.
Information obtained from the PSPEC, CSPEC, and STD serves as the
basis for procedural design. During design, we make decisions that will
ultimately affect the success of software construction, and as important,
the ease with which software can be maintained.
Actually, the importance of software can be stated in a single word-
quality. Design is the place where quality is fostered in software
development. Design provides us with representations of software that
can be assessed for quality. Design is the only way we can accurately
translates a customers requirements into a finished software product or
system. Software design serves as the foundation of all the software
engineering and software maintenance steps that follow. Without design,
we risk building an unstable system-one that will fail when small
changes are made; one that may be difficult to test; one whose utility can
not be
Accessed until the late in the software engineering process, when time is
short and many dollars have already been spent.

Você também pode gostar