View
232
Download
0
Category
Tags:
Preview:
Citation preview
UML Diagrams: Class Diagrams
The Static Analysis Model
Instructor: Dr. Hany H. Ammar
Dept. of Computer Science and Electrical Engineering, WVU
outline
The Requirements Model and the Analysis model The Static Analysis Model – The Analysis Process
The Conceptual Level - Identifying the Classes of Objects (Step 6 Requirements Elicitation Process: Identify Initial Analysis Objects)
The Analysis Level – Identifying Class relationships, class attributes, and class operations
Examples
UML Development - Overview
PROGRAM
ACTORS
ANALYSISSpecify Domain Objects
Detailed DESIGN
IMPLEMENTATION
DATA
DICTION
ARY
TimeUSE CASES
ANALYSISCLASS DIAGRAM(S)
IMPLEMENTATIONActivity DIAGRAMS
System/ObjectSEQUENCEDIAGRAMS
OPERATION CONTRACTS
StateChart DIAGRAMs
DEPLOYMENT DIAGRAMSUBSYSTEM CLASS/OR COMPONENT
DIAGRAMS
Architectural DesignIncludeDesign Objects
ObjectDesign
SCENARIOS
REQUIREMENTSELICITATION
DESIGN DIAGRAMS
IMPLEMENTATIONCHOICES
DESIGN SEQUENCE DIAG.
RequirementsEngineering
The Requirements Model and the Analysis Model
Static Analysis Dynamic Analysis
Functional/ NonfunctionalRequirements
Use Case Diagrams/Sequence Diagrams(the system level)
- Class Diagrams- State Diagrams/Refined Sequence Diagrams (The object level)
Requirements ElicitationProcess
The AnalysisProcess
Static ModelingClass DiagramsA Class is defined as
–Real world entity type about which information is stored–Represents a collection of identical objects (instances)–
Described by means of attributes (data items)–Has operations to access data maintained by objects–Each object instance can be uniquely identified
Relationships between classes–Associations–Composition / Aggregation–Generalization / Specialization
outline
The Requirements Model and the Analysis model The Static Analysis Model – The Analysis Process
The Conceptual Level - Identifying the Classes of Objects (Step 6 Requirements Elicitation Process: Identify Initial Analysis Objects)
The Analysis Level – Identifying Class relationships, class attributes, and class operations
The Static Model
Defines the static structure of the logical model
Represents classes, class hierarchies using packages, classes, and their relationships,
Evolve in three phases the conceptual phase, the analysis phase, and the design phase.
The conceptual Level
At the conceptual phase, classes are defined based on the classes found in the problem domain descriptions (based on the objects identified in step 6 in the Requirements Elicitation Process)
A context class diagram is defined first, where the system under development is represented by one package and external classes representing the actors
Context Class DiagramDefines the Boundary of the system
<<external>>Input Devices
System under development
<<external>>Output Devices
Specify the classes of the external input/output devices and other actors (users, other systems, etc.) and the system classes
<<external>>Other Actors
The conceptual Level
The system package is defined by a diagram representing the main classes and interface classes to external classes
Each subsystem is represented by a class diagram defining the classes of objects needed to realize the use cases defined in the use case diagrams
The stereotype words <<external>> or <<actor>> are used to specify external classes or packages
Names of external packages should reflective of the classes defined in the package
The conceptual Level
Identify the system classes as Interface objects, Monitors objects, controllers objects,
Monitors
<<Interface>>Input_devices
or actors Controllers
<<Interface>>Output_devices
or actors
Example of System packages
outline
The Requirements Model and the Analysis model The Static Analysis Model – The Analysis Process
The Conceptual Level - Identifying the Classes of Objects (Step 6 Requirements Elicitation Process: Identify Initial Analysis Objects)
The Analysis Level – Identifying Class relationships, class attributes, and class operations
The Analysis Level
At the analysis level, class diagrams are refined by adding relationships between classes, attributes and methods depicting how objects of the static view are used to realize use cases in sequence diagrams
Emphasis is placed on distributing behavior, resolving software interfaces, and identifying generalization relationships that will maximize the effectiveness of the object model
The Class Diagram Notation Identify classes, attributes of each class, and
operations of each class Classes, their attributes and methods are specified
based on the objects needed to realized use case and interfaces to external entities
DetailedAttributes,Data types,And operations Are defined/refinedDuring design
Identify Class relationships
PilotCommands
AircraftControl
Association
Aggregate/Whole
Aggregated/Part
Aggregation (hollow diamond)/Composition (solid diamond)
Child
Parent
Generalization
Associations Between Classes
Associations between classes are generally shown as solid lines connecting the associated classes.
A notable exceptions to the solid line rule are the use of dashed lines to depict dependencies as special case of association,
Associations
Association is –static, structural relationship between classes
–E.g, Employee works in Department – Multiplicity of Associations
Specifies how many instances of one class may relate to a single association, Company hasPresident
– 1-to-many association, Bank managesAccount– Optional association (0, 1, or many) –Customer
ownsCredit Card instance of another class– 1-to-1 – Many-to-Many association –Course has Student, and
Student attends Course
Dependency: A Special Case of AssociationDependency
RequestHandler ResponseHandlerTimerEvent
CommandManager
CommandManager (Client class) depends on services provided by the other three server classes
Client
Aggregation Relation
Aggregation – A hollow diamond is attached to the end of the path to indicate aggregation. The diamond is attached to the class that is the aggregate. Aggregation provides a definitive conceptual whole part relationship
Aggregation Example
Composition: A Special Case of Aggregation
Composition is shown as a solid filled diamond, with the diamond attached to the class that is the composite. Composition is a form of aggregation that requires coincident lifetime of the part with the whole and singular ownership; i.e. the part is owned by only one whole and is deleted when the whole is deleted
+ sendPacket(pk: const cmd_pktCToCHeader*)
MQSendPacketMQWrite
Composition example
Aggregation vs Composition
Generalization/Specialization Relation Generalization is shown as a solid-line
arrow from the child (the more specific element) to the parent (the more general element) this type of relationship is also called inheritance.
Should be used to define class hierarchies based on abstraction
Generalization/Specialization Relation
Multiplicity of Relationships
Multiplicities
Meaning
0..1zero or one instance. The notation n . . m
indicates n to m instances.
0..* or *no limit on the number of instances
(including none).
1 exactly one instance (the default)
1..* at least one instance
Example of identifying Class Multiplicities,Attributes and operations
outline
The Requirements Model and the Analysis model The Static Analysis Model – The Analysis Process
The Conceptual Level - Identifying the Classes of Objects (Step 6 Requirements Elicitation Process: Identify Initial Analysis Objects)
The Analysis Level – Identifying Class relationships, class attributes, and class operations
Examples
Recall the Digital Sound Recorder Case Study Requirements Model
The Sound RecorderAnalysis Level Class Diagram
Emergency Monitoring System
The ATM Banking System
Example of Software Architecture Using UML2
SATELLITE CONTROL SYSTEM Architecture
A Simple Example of Software Architecture Using UML2
SATELLITE CONTROL SYSTEM Architecture
Example: Auto Cruise Controland Monitoring (The Cruise Cont. Subsys)
Example: Auto Cruise Controland Monitoring (The Monitoring Subsys)
Example of a Design Level Class Diagramhttp://www.codeproject.com/library/WinSNMPWrapper.asp?df=100&forumid=216441&exp=0&select=1259211
Recommended