Analysis Concept and Principles
Analysis Concept and Principles
REQUIREMENTS ANALYSIS
Requirements analysis is a software engineering task that bridges the gap between
system level requirements engineering and software design.
Evaluation and solution synthesis is the next major area of effort for
analysis.
The analyst must define all externally observable data objects,
evaluate the flow and content of information, define and
elaborate all software functions.
Upon evaluating current problems and desired information (input and output), the
analyst begins to synthesize one or more solutions.
Throughout evaluation and solution synthesis, the analyst's primary focus is on "what,"
not “how." What data does the system produce and consume, what
functions must the system perform, what behaviors does the system
exhibit, what interfaces are defined and what constraints apply?
During the evaluation and solution synthesis activity, the analyst creates models of
the system in an effort to better understand data and control flow, functional processing,
operational behavior, and information content.
The model serves as a foundation for software design and as
the basis for the creation of specifications for the software.
Modeling helps the analyst to understand the functionality of the system, system flow
information and the process flow in the system.
Review is necessary to find out that whether the objectives of the project have been
achieved or not. It is used for detecting and correcting defects in software artifacts, and
preventing their leakage into field operations. Most common method used is FTR.
Use-Cases
Provide a description of how the system will be used.
The use-case describes the manner in which an actor
interacts with the system.
To create a use-case, the analyst must first identify the different types of people (or
devices) that use the system or product.
These actors actually represent roles that people (or devices) play as the system
operates. It is important to note that an actor and a user are not the same thing. A
typical user may play a number of different roles when using a system, whereas an
actor represents a class of external entities that play just one role.
Because requirements elicitation is an evolutionary
activity, not all actors are identified during the first
iteration.
Primary actors interact to achieve required system function and derive the
intended benefit from the system. They work directly and frequently with the
software.
Secondary actors support the system so that primary actors can do their
work.
Once actors have been identified, use-cases can be developed.
**************************************************************
1. Understand the problem before you begin to create the analysis model.
There is a tendency to rush to a solution, even before the problem is understood. This
often leads to elegant software that solves the wrong problem!
2. Develop prototypes that enable a user to understand how human/machine
interaction will occur.
Since the perception of the quality of software is often based on the perception of the
“friendliness” of the interface, prototyping (and the iteration that results) are highly
recommended.
Information flow represents the manner in which data and control change
as each move through a system.
The transformations applied to the data are functions or sub functions that a program
must perform. Data and control that move between two transformations (functions)
define the interface for each function.
Information structure represents the internal organization of various data and control
items. Data Structure refers to the design and implementation of information structure
within the software.
1.2.3 PARTITIONING
SOFTWARE PROTOTYPING
Requirements elicitation is conducted, analysis principles are applied, and a model of the
software to be built, called a prototype, is constructed for customer and developer
assessment.
Finally, some circumstances require the construction of a prototype at the beginning of
analysis, since the model is the only means through which requirements can be
effectively derived. The model then evolves into production software.
Today, developers of these formal languages are in the process of developing interactive
environments that
(1) Enable an analyst to interactively create language-based specifications of a system or
software,
(2) Invoke automated tools that translate the language-based specifications into
executable code, and
(3) Enable the customer to use the prototype executable code to refine formal
requirements.
*****************************************************
SPECIFICATION
Developed as a consequence of analysis.
Software Engineering Fundamentals, Compiled by: Prakash Paudel
Mode of specification has much to do with the quality of solution.
Software engineers who have been forced to work with incomplete, inconsistent, or
misleading specifications have experienced the frustration and confusion that invariably
results.
The quality, timeliness, and completeness of the software suffer as a consequence.
Specification Principles
Specification, regardless of the mode through which we accomplish it, may be viewed
as a representation process.
Requirements are represented in a manner that ultimately leads to successful software
implementation.
A number of specification principles, can be proposed:
1. Separate functionality from implementation.
2. Develop a model of the desired behavior of a system that encompasses data and the
functional responses of a system to various stimuli from the environment.
3. Establish the context in which software operates by specifying the manner in which
other system components interact with software.
4. Define the environment in which the system operates and indicate how “a highly
intertwined collection of agents react to stimuli in the
environment (changes to objects) produced by those agents”
5. Create a cognitive model rather than a design or implementation model. The cognitive
model describes a system as perceived by its user community.
6. Recognize that “the specifications must be tolerant of incompleteness and
augmentable.” A specification is always a model—an abstraction—of some real (or
envisioned) situation that is normally quite complex. Hence, it will be incomplete and
will exist at many levels of detail.
7. Establish the content and structure of a specification in a way that will enable it to be
amenable to change.
Representation
Requirements are committed to paper or an electronic presentation medium a simple set
of guidelines is well worth following:
Representation format and content should be relevant to the
problem.
A general outline for the contents of a Software Requirements Specification can be
developed. However, the representation forms contained within the specification are
likely to vary with the application area. For example, a specification for a manufacturing
automation system might use different symbology, diagrams and language than the
specification for a programming language compiler.
Information contained within the specification should be
nested.
Representations should reveal layers of information so that a reader can move to the level
of detail required. Paragraph and diagram numbering schemes should indicate the level
*******************************************************************
The function and performance allocated to software as part of system engineering are
refined by establishing a complete information description, a detailed
functional description, a representation of system behavior, an
indication of performance requirements and design constraints,
appropriate validation criteria, and other information pertinent to
requirements.
The Introduction of the software requirements specification states the goals and
objectives of the software, describing it in the context of the computer-based
system.
SPECIFICATION REVIEW
A review of the Software Requirements Specification (and/or prototype)
is conducted by both the software developer and the
customer.
Because the specification forms the foundation of the development
phase, extreme care should be taken in conducting the review.
The review is first conducted at a macroscopic level; that is, reviewers
attempt to ensure that the specification is complete, consistent, and accurate when the
overall information, functional, and behavioral domains are considered. However, to fully
explore each of these domains, the review becomes more detailed, examining not only
broad descriptions but the way in which requirements are worded.
Once the review is complete, the Software Requirements Specification is
"signed off" by both the customer and the developer.
The specification becomes a "contract" for software development.
Requests for changes in requirements after the specification is finalized will not be
eliminated.
But the customer should note that each after the fact change is an extension of software
scope and therefore can increase cost and/or protract the schedule.