UNIT2
UNIT2
Requirement Engineering,
Collaborative Requirements Gathering,
Quality Function Deployment,
Elicitation Work Product,
Developing use cases,
Building the requirement model,
Validating requirements,
Analysis: Scenario Based Modeling,
UML Models, Class-Based Modelling,
Requirements Modeling Strategies: Flow oriented modelling,
SRS plan, Case study
Requirement Engineering
• Requirements engineering provides the appropriate mechanism for
understanding what the customer wants, analyzing need, assessing
feasibility, negotiating a reasonable solution, specifying the solution
unambiguously, validating the specification, and managing the
requirements as they are transformed into an operational system.
• Def1: Requirement Engineering is a process of discovery,
refinement, modeling, and specification.
• Def2: Requirements engineering is the systematic use of proven
principles, techniques, languages, and tools for the cost effective
analysis, documentation, and on-going evolution of user needs and
the specification of the external behavior of a system to satisfy those
user needs.
The requirements engineering process can be described
in six distinct steps
1. Requirements Elicitation — determining what the customer requires
2. Requirements Analysis & negotiation — understanding the relationships among
various customer requirements and shaping those relationships to achieve a
successful result
3. Requirements specification — building a tangible model of requirements
4. System Modeling — building a representation of requirements that can be
assessed for correctness, completeness, and consistency
5. Requirements Validation — reviewing the model
6. Requirements Management — identify, control and track requirements and the
changes that will be made to them
What Are the Real Problems?
requirements develop
the problem elicitation Specification Review
create
analysis
models
Requirement Analysis operational Principles
1. The information domain of a problem must be represented and
understood.
2. The functions that the software is to perform must be defined.
3. The behavior of the software (as a consequence of external events)
must be represented.
4. The models that depict information, function, and behavior must be
partitioned in a manner that uncovers detail in a layered (or
hierarchical) fashion.
5. The analysis process should move from essential information
toward implementation detail.
Requirements Analysis Guidelines (Davis’ Principles)
• Understand the problem before you begin to create the
analysis model.
• Develop prototypes that enable a user to understand how
human-machine interaction will occur.
• Record the origin of and the reason for every requirement.
• Use multiple views of requirements(Models).
• Prioritize(rank) requirements.
• Work to eliminate ambiguity.
Analysis Modeling
1. The Information Domain
• software applications can be collectively called data
processing.
• process data, to transform data from one form to another; that is,
to accept input, manipulate it in some way, and produce output.
• key to our understanding of software requirements.
• Software also processes events.
• An event represents some aspect of system control and is really
nothing more than Boolean data—it is either on or off, true or
false.
Analysis Modeling
1. Functional models.
2. Behavioral models.
• Most software responds to events from the outside world.
• This stimulus/response characteristic forms the basis of the behavioral model.
• A computer program always exists in some state—(e.g., waiting, computing,
printing, polling) that is changed only when some event occurs.
For example, software will remainin the wait state until
(1) an internal clock indicates that some time interval has passed,
(2) an external event (e.g., a mouse movement) causes an interrupt, or
(3) an external system signals the software to act in some manner.
A behavioral model creates a representation of the states of the software and the
events that cause a software to change state.
Use of Models created during requirements analysis
• The model aids the analyst in understanding the information,
function, and behavior of a system, thereby making the
requirements analysis task easier and more systematic.
• The model becomes the focal point for review and,
therefore, the key to a determination of completeness,
consistency, and accuracy of the specifications.
• The model becomes the foundation for design, providing the
designer with an essential representation of software that can
be "mapped" into an implementation context
Partitioning
• Partitioning decomposes a problem into its constituent parts.
• Hierarchical representation
• Partition the uppermost element by (1) exposing increasing detail by
moving vertically in the hierarchy (2) functionally decomposing the
problem by moving horizontally in the hierarchy .
Essential and Implementation Views
An essential view:
• Presents the functions to be accomplished and information to be
processed without regard to implementation details.
• SafeHome function read sensor status does not concern itself with the
physical form of the data or the type of sensor that is used.
The implementation view:
• presents the real world manifestation of processing functions and
information structures.A SafeHome input device is a perimeter sensor
(not a watch dog, a human guard).
• The sensor detects illegal entry by sensing a break in an electronic
circuit.
• The general characteristics of the sensor should be noted as part of a
software requirements specification.
SOFTWARE PROTOTYPING
• In some cases it is possible to apply operational analysis principles and
derive a model of software from which a design can be developed.
• In other situations, requirements elicitation (via FAST, QFD, use-cases,
techniques is conducted, analysis principles are applied, and a model of
the software to be built.Prototype
• Prototype is constructed for customer and developer assessment.
• In some Circumtances ,construction of a prototype at the beginning of
analysis, since the model is the only means through which
requirements can be effectively derived.
Prototyping Approach
• Introduction:
- States the goals and objectives of the software.
-Software scope of the planning document.
• The Information Description
-provides a detailed description of the problem to be solved.
-Information content, flow, and structure are documented.
-Hardware, software, and human interfaces are described for external
system elements and internal software functions.
SRS Format.......
• Functional Description
-A description of each function required to solve the problem is
presented.
-A processing narrative is provided for each function.
-design constraints are stated and justified, performance characteristics
are stated.
-diagrams are included to graphically represent the overall structure of
the software
• Behavioral Description
- examines the operation of the software as a consequence of external
events and internally generated control characteristics.
SRS Format
• Validation Criteria
-Most important and, the most often neglected section
-How do we recognize a successful implementation?
-What classes of tests must be conducted to validate function,
performance, and constraints?
• Bibliography and Appendix.
-contains references to all documents that relate to the software.
-These include other software engineering documentation, technical
references, vendor literature, and standards.
- The appendix contains information that supplements the
specifications.
-Tabular data, detailed description of algorithms, charts, graphs, and
other material are presented as appendixes.
Software Requirement Specification Review
• Conducted by both the software developer and the customer.
• To ensure that the specification is complete, consistent, and
accurate.
• Specifications contain “vague terms” (e.g., some, sometimes, often,
usually,mostly), the reviewer should flag the statements for further
clarification.
• The specification becomes a "contract" for software development.
• Requests for changes in requirements after the specification is
finalized will not be eliminated. But Change increase cost and/or
protract the schedule.
Model : A picture is worth a thousand words!
UML Models
The Unified Modeling Language (UML)
• The UML is a standard language that is used to effectively describe a
model, using both visual elements and text, just as in your map.
• General purpose modelling language
• The main aim of UML is to define a standard way to visualize the way
a system has been designed.
• UML is not a programming language.
• Rather it is a pictorial language consisting of symbols, diagrams, text,
pseudo-code or anything that describes a software system.
• UML combines techniques from data modeling, business
modeling,object modeling and component modeling.
UML Models
A UML model is a representation of a software in terms of it's structure,
behavior and interactions, before the actual coding process begins.
This model is usually used to describe an object oriented programming
approach.
Considering the complexity of a software product, a UML model is
made up of different types of diagrams.
Elements of UML model diagrams
Class: You would use this element to describe all the classes your
software system would have.
Contain an object's attributes and behavior.
UML Model Components....
• Object: You would use this element to describe all the objects
you would create inside your classes.
• Interface: You would use this element to create method
signatures without implementing any code, i.e you would just
describe the functions of a method. A class would then be able
to implement the interface by implementing its functionality.
• Collaboration: Using this element, you would describe the
interaction between various elements.
• Use case: Here, you would describe how a user interacts with
the software system.
UML Model Components....
• Dependancy
Consumer supplier
• Aggregation
(No dependancy of conained Library
1..* Books
class on container class)
container class contained class
A B
• Composition(Strong dependancy
of conained class on container class) whole part
• Generalization
Generalization
Person
specilization
Generalization
student teacher
The Analysis Model
Data Model
Functional
Model
Behavioral
Model
Analysis Principle I
Model the Data Domain
• Define data objects
• Describe data attributes
• Establish data relationships
Analysis Principle II
Model Function
• Identify functions that transform data objects
• Indicate how data flow through the system
• Represent producers and consumers of data
Analysis Principle III
Model Behavior
implementation details
• Prototyping Other Topics
• Specification
• Principles
• Representation
• Software Requirements Specification (SRS)
• Intro
• Information description
• Functional description
• Behavioral description
• Validation criteria
• Bibliography and index
• Review the SRS