Title: Requirement Analysis
1Requirement Analysis
CEN 4010 Class 10 09/29
- Review of Class 9
- Overview of Analysis
- Analysis Concepts
- From Use Cases to Objects
2Overview of Analysis
- Analysis focuses on producing a model (analysis
model) of the system that is correct, complete,
consistent, and verifiable. - The analysis model is composed of three
individual models - Functional model represented by use cases and
scenarios. - Analysis object model represented by class and
object diagrams. - Dynamic model represented by state charts and
sequence diagrams.
3Overview of Analysis cont
- Focuses on structuring and formalizing the
requirements elicited from users. - This formalization leads to new insights and the
discovery of errors in the requirements. - The requirements specifications is updated to
reflect insights gained during analysis, then
review the changes with the client and the users. - Translating a requirements spec into a formal or
semiformal model forces developers to identify
and resolve difficult issues early in the
development.
4Overview of Analysis cont
UML activity diagram the products of
requirements elicitation and analysis. Fig 5-2 P.
175
Requirements Elicitation
Requirements Specification
nonfunctional requirements
functional model
Analysis
Analysis model
dynamic model
analysis object model
System Design
Object Design
5Analysis concepts Types of Objects
- The analysis object model contains entity,
boundary, and control objects. - Entity objects - persistent information tracked
by the system. - Boundary objects - interactions between the
actors and the system. - Control objects - tasks that are performed by the
user and supported by the system.
6Types of objects cont
- UML provides the stereotype mechanism that
enables the developer to attach meta information
to modeling elements. E.g., ltltcontrolgtgt - Naming conventions can also be used to identify
the different types of objects in the analysis
model, e.g., InputControl, ButtonBoundary.
ltltentitygtgt Employee
7Types of objects cont
- Example 5.6 Q1. Consider a file system with a
graphical user interface, such as Macs Finder,
Windows Explorer, or Linuxs KDE. The following
objects were identified from a use case
describing how to copy a file from a floppy disk
to a hard disk File, Icon, TrashCan, Folder,
Disk, Pointer. Specify which are entity objects,
which are boundary objects, and which are control
objects.
8Types of objects cont
- Entity objects File, Folder, Disk
- Boundary objects Icon, Pointer, TrashCan
- Control objects none in this example.
- Example 5.6 Q2. Assuming the same file system as
before, consider a scenario consisting of
selecting a file on a floppy, dragging it to a
folder and releasing the mouse. Identify and
define at least one control object associated
with this scenario.
9Types of objects cont
- The purpose of a control object is to encapsulate
the behavior associated with a user level
transaction. In this example, we identify a
CopyFile control object, which is responsible for
remembering the path of the original file, the
path of the destination folder, checking if the
file can be copied (access control and disk
space), and to initiate the file copying.
10Analysis concepts - Association
- Recall one of the adornments that apply to
associations is multiplicity. - Multiplicity indicates the number of links that
can legitimately originate from an instance of
the class to the association end. Types of
multiplicity - one-to-one has multiplicity 1 on each end.
- one-to-many has a multiplicity a on one end and
0..n (or ) or 1..n on the other. - many-to-many has multiplicity 0..n or 1..n on
both ends.
11Association Examples
one-to-one
1
1
is issued
Student
FIU_IDCard
one-to-many
1
1..
employs
College
Professor
many-to-many
1..
1..
takes
Student
Course
12Analysis concepts - Generalization
- Generalization enables us to organize concepts
into hierarchies. (is-a relationship). - At the top of the hierarchy is the general
concept (e.g., Student), and at the bottom of the
hierarchy are the most specialized (e.g.,
Graduate, Undergraduate). - Note, inheritance (in OOP) is the mechanism by
which more-specific elements incorporate the
structure an behavior of more-general elements.
(Booch et al.)
13Generalization cont
Student
Each project should have at least one
generalization in the class design.
ssn string name string
getName() string getSSN() string
Graduate
Undergraduate
UGDegree string
year String
getYear() String
getUGDeg() string
14From Use Cases to Objects
- Participating objects form the basis of the
analysis model. - Participating objects are identified by examining
each of the use cases developed during
requirements elicitation. - Using the natural language description of the use
cases and an intuitive set heuristics, objects
can be identified. (Abbot 83) - See table on the next slide
15From Use Cases to Objects cont
Part of speech Model component Examples
Proper noun Object Peter
Common noun Class Faculty
Doing verb Operation Teaches, grades
Being verb Inheritance Is a kind of, is one of either
Having verb Aggregation Has, consist of, includes
Modal verb Constraints Must be
Adjective Attribute SSN, Office ,
16From Use Cases to Objects cont
- Heuristics for identifying objects
- terms the developers or users need to clarify in
the use cases. - recurring nouns in the use cases.
- real-world entities that the system needs to keep
track of. - real-world activities the system needs to keep
track of. - data sources and sinks
- always use the users term.
17From Use Cases to Objects cont
- Adv. of using natural language
- focuses on users terms.
- developers become familiar with domain jargon.
- Disadv. of using natural language
- depends on writing style.
- natural language is imprecise and ambiguous.
- In use case there are usually more nouns than
relevant classes.
18From Use Cases to Objects cont
- Entity objects are most common e.g., Student,
Professor, Course. - Boundary objects represent the system interface
with the actors (people or other systems). - Heuristics
- Identify forms and windows the user needs to
enter data into the system. - Identify notices and messages the system uses to
respond to the user. - Always use the terms of the user not impl.
technology.
19From Use Cases to Objects cont
- Control objects are responsible for coordinating
boundary and entity objects. - Heuristics
- Identify one control object per use case. If
more than one control object is required then the
use case might be too long. - Identify one control object per actor in the use
case. - The life span of a control object should be the
extent of the user session. Beginning and end of
the control object activation should be easily
identified.
20Review Topics for Exam 1
- Definitions software engineering, role,
activity, task, milestone, deliverable, notation,
method, methodology, use cases, actors. - Software process.
- Attributes of good software.
- Software process models. Advantages and
disadvantages of the software process models.
Review diagrams for Waterfall, Boehms Spiral,
Incremental Development, and Unified Software
Process. - UML Types of diagrams and relationships, with
examples.
21Review Topics for Exam 1
- Software Project management
- charts to develop schedules
- focus on how it applies to your project e.g.,
tasks, organization, - Requirements elicitation
- Activities
- Functional and non-functional constraints
- The format of a use case given in class.
Identification of use cases for your team project
based on decision support. - Requirements reviews
22Review Topics for Exam 1
- Analysis model
- Components of the analysis model
- Purpose of the analysis model.
- Questions on Project