Requirement Engg Unit 3.3
Requirement Engg Unit 3.3
(PhD)
Software Modeling PU, SOE
Requirement Analysis
• The model should focus on requirements that are visible within the problem
or business domain.
• The level of abstraction should be relatively high. “Don’t get bogged down in
details”
• Each element of the requirements model should add to an overall
understanding of software requirements and provide insight into the
information domain, function, and behavior of the system.
• Delay consideration of infrastructure and other nonfunctional models until
design.
• That is, a database may be required, but the classes necessary to implement it, the
functions required to access it, and the behavior that will be exhibited as it is used should
be considered only after problem domain analysis has been completed.
Analysis Rules of Thumb
• Use case: Access camera surveillance via the Internet—display camera views (ACS-DCV)
• Actor: homeowner
• 1. The homeowner logs onto the SafeHome Products website.
• 2. The homeowner enters his or her user ID.
• 3. The homeowner enters two passwords (each at least eight characters in length).
• 4. The system displays all major function buttons.
• 5. The homeowner selects the “surveillance” from the major function buttons.
• 6. The homeowner selects “pick a camera.”
• 7. The system displays the floor plan of the house.
• 8. The homeowner selects a camera icon from the floor plan.
• 9. The homeowner selects the “view” button.
• 10. The system displays a viewing window that is identified by the camera ID.
• 11. The system displays video output within the viewing window at one frame per second.
Refining a Preliminary Use Case
object: automobile
attributes:
make
model
body type
price
options code
What is a Relationship?
attribute
Another common form:
object relationship
1 object 2
(0, m) (1, 1)
Building an ERD
request
Customer places for service
(1,1) (1,m)
(1,1)
standard
generates (1,n) work
task table order
(1,1) (1,1) (1,1)
selected work (1,w)
consists
from (1,w) tasks of
(1,i)
materials lists
Class-based modeling
• External entities (e.g., other systems, devices, people) that produce or consume
information to be used by a computer-based system.
• Things (e.g., reports, displays, letters, signals) that are part of the information
domain for the problem.
• Occurrences or events (e.g., a property transfer or the completion of a series of robot
movements) that occur within the context of system operation.
• Roles (e.g., manager, engineer, salesperson) played by people who interact
• with the system.
• Organizational units (e.g., division, group, team) that are relevant to an application.
• Places (e.g., manufacturing floor or loading dock) that establish the context of the
problem and the overall function of the system.
• Structures (e.g., sensors, four-wheeled vehicles, or computers) that define a class of
objects or related classes of objects.
Representing Class
Specifying Attributes
• Attributes define the class—that clarify what is meant by the class in the
context of the problem space
• In Safehome, we consider the System class.
• A homeowner can configure the security function to reflect sensor information,
alarm response information, activation/deactivation information,
identification information, and so forth.
• We can represent these composite data items in the following manner:
Defining Operations
• Entity classes, also called model or business classes, are extracted directly
from the statement of the problem (e.g., FloorPlan and Sensor).
• Boundary classes are used to create the interface (e.g., interactive screen or
printed reports) that the user sees and interacts with as the software is used.
• Controller classes manage a “unit of work” from start to finish. That is,
controller classes can be designed to manage
(1) the creation or update of entity objects,
(2) the instantiation of boundary objects as they obtain information
from entity objects,
(3) complex communication between sets of objects,
(4) validation of data communicated between objects or between the
user and the application.
Class Diagram
Collaborations
Questions!