640 likes | 1.12k Views
UML Unified Modeling Language Chapter One Introduction District Module Semi-Auto Fill Delivery Status Order Requested Order Initiated Order Approved Order Filled Application Server Central-Office Module Database Server Sign-Shop Module Figure 4 Data Flow of Sign Orders
E N D
UML Unified Modeling Language © Wolfgang Pelz 2000-04
Chapter OneIntroduction © Wolfgang Pelz 2000-04
District Module Semi-Auto Fill Delivery Status Order Requested Order Initiated Order Approved Order Filled Application Server Central-Office Module Database Server Sign-Shop Module Figure 4 Data Flow of Sign Orders © Wolfgang Pelz 2000-04
Engineering and Blueprints • standard notation • communication tool © Wolfgang Pelz 2000-04
History • CASE Tools: Automation of Software Development • People-to-People • People-to-Computer • Rational Software (An IBM Company) • Rational Rose / MS Visio: Converting UML-Diagrams-to-Programs • OMG: Object Management Group © Wolfgang Pelz 2000-04
History • Booch: Booch Method • Rumbaugh: OMT (object modeling tech.) • Jacobson: OOSE (OO software engrg.) • Three amigos: UML © Wolfgang Pelz 2000-04
History • UML: an open standard controlled by OMG • UML 1.0 (1997) • UML 2.0 (2004) © Wolfgang Pelz 2000-04
Meta-Model • a diagram that defines the notation to be used in the modeling language © Wolfgang Pelz 2000-04
class object component package deployment use case interaction communication sequence collaboration timing activity state/statechart UML supported diagrams © Wolfgang Pelz 2000-04
Brief Overview • class - set of classes, interfaces, collaboration, relationships • object - set of objects and their relationships • use case - description of functionality provided by system along with actors and their connection to the use case © Wolfgang Pelz 2000-04
Overview (cont.) • interaction - set of objects and their relationships including messages • state/statechart - a state machine showing states, transitions, events, and activities • activity - statechart sequential flow of activities • component - physical structure of code in terms of code components © Wolfgang Pelz 2000-04
Overview (cont.) • deployment - physical architecture of hardware and software in the system • package - shows packages of classes and dependencies among them • grouping mechanism • form of class diagram • also called subsystem © Wolfgang Pelz 2000-04
domain expert use case activity interaction system designer class component deployment state package Organization of Diagrams © Wolfgang Pelz 2000-04
static class component package deployment dynamic use case interaction state activity Another Organization © Wolfgang Pelz 2000-04
Another Organization © Wolfgang Pelz 2000-04
Model Terminology • user model view - problem and solution from the perspective of the users • structural model view - static or structural aspects of a problem and solution • behavioral model view - dynamic or behavioral aspects; interactions or collaborations among problem and solution elements © Wolfgang Pelz 2000-04
Model Terminology • implementation model view - structural and behavioral aspects of the solution’s realization • environment model view - structural and behavioral aspects of the domain in which a solution must be realized © Wolfgang Pelz 2000-04
Language versus Method • A (software engineering) method is composed of a language and a process. • UML is a language, not a method, since it has no notion of process • process can be: © Wolfgang Pelz 2000-04
Terminology • inception - a few days’ work to decide if a few months of elaboration is worth it • elaboration - risk assessment, about 1/5 of project time; includes planning based on use cases; generates a commitment schedule • construction - composed of iterations that include refactoring, frameworks & patterns • transition - beta testing, optimizing, training © Wolfgang Pelz 2000-04
Refactoring the process of changing the internal structure of a program or system to make it easier to understand or change while maintaining its functionality © Wolfgang Pelz 2000-04
Frameworks & Patterns • frameworks are reusable designs of all or part of a software system described by a set of abstract classes and the way instances of those classes collaborate • patterns are common designs that have repeating themes © Wolfgang Pelz 2000-04
Chapter ThreeClass Diagram © Wolfgang Pelz 2000-04
Class Diagram • static view of a system in terms of classes and relationships among the classes • associations • subtypes • typically done in parallel with interaction diagrams • a more graphical alternative to CRC cards © Wolfgang Pelz 2000-04
Important Questions(Finding classes) • Is there information to be stored/analyzed? • Do external systems exist? • Are there patterns, class libraries, components, etc? • Must the system handle devices? • Are there organizational parts (business model)? • Do actors have roles to play in the system? © Wolfgang Pelz 2000-04
Common Uses • Objective: provide a view of services the system should provide to its end user • model the vocabulary of a system • model simple collaborations • model a logical database schema © Wolfgang Pelz 2000-04
Terminology • association: a description of a related set of links between objects of two classes • subtype: “is a” or “is a kind of” • generalization: relationship between a more general and a more specific element - see subtype © Wolfgang Pelz 2000-04
Terminology (cont.) • dependency: relationship where a change in the independent element affects the dependent element • refinement: relationship between two descriptions of the same thing, but at different levels of abstraction © Wolfgang Pelz 2000-04
Terminology (cont.) • Aggregation: association specifying a whole-part relationship between the aggregate (whole) and a component (part). An aggregation may not have any components and a component may not belong to any aggregation. • composition: special form of aggregation (a component must belong to a composition and only to one composition) • strong ownership • coincident lifetime of parts and whole © Wolfgang Pelz 2000-04
Notation © Wolfgang Pelz 2000-04
More Notation © Wolfgang Pelz 2000-04
Aggregation/Composition © Wolfgang Pelz 2000-04
Example © Wolfgang Pelz 2000-04
Levels of Abstraction • conceptual model: class name • associations are conceptual relationships • specification model: above + behavior • associations and responsibilities • implementation model: above + state • probably too low-level for design stage © Wolfgang Pelz 2000-04
Another Example © Wolfgang Pelz 2000-04
Associations • Describe relations between classes • associations have roles (given at the end of the association) which have multiplicities • associations have navigability • A sends a message to B • A creates an instance of B • A needs to maintain a connection with B • navigability is identified from collaboration diagrams © Wolfgang Pelz 2000-04
Associations (cont.) • navigability in one direction is termed uni-directional association and has an arrow • two-way navigability is bi-directional association and has no arrow • an association with no arrow could also mean that the direction is unknown • bidirectional requires inverse relationship f ( f -1(y)) = y f -1( f (x)) = x © Wolfgang Pelz 2000-04
Operation Signatures visibilityname(parameters) : return type optional optional + public # protected - private • Example: + getData (pos : Position) : Data © Wolfgang Pelz 2000-04
Operations & Methods • Operation • something invoked on an object which in turn is implemented by a method • Method (in coding not design method) • body of the procedure • polymorphism forces a distinction between the two (all siblings have the same operation but different methods) © Wolfgang Pelz 2000-04
Steps to create a Class Diagram • Identify classes using the interaction diagram and place them in the class diagram • get attributes from the conceptual model and the method names from the interaction diagram • add type information and associations based on attribute visibility • add navigability arrows and dependencies © Wolfgang Pelz 2000-04
Another Example © Wolfgang Pelz 2000-04
Cautions • start small • perspective should match activity • analysis: conceptual model • software: specification model • don’t go to details too early © Wolfgang Pelz 2000-04
Dependency Relationship • One element (of any kind, including classes, use cases, etc.) has knowledge of another element • if one element changes, the other might have to change as well • differs from plain attribute visibility which uses regular association line and a navigability arrow © Wolfgang Pelz 2000-04
Example revisited © Wolfgang Pelz 2000-04
Example with Dependency © Wolfgang Pelz 2000-04
Interface • Interface is a class of abstract/pure virtual functions. • All functions in the interface are public. • Interface cannot be used to instantiate objects. • There is no data members in an interface class. • UML: use <<interface>> to prefix the class name. © Wolfgang Pelz 2000-04
Abstract Class • An abstract class has one or more abstract/pure virtual functions. • An abstract class cannot be used to instantiate objects. • An abstract class can contain data members. • UML: use Abstract to prefix the class name. © Wolfgang Pelz 2000-04
ExamplesFigures in UML Distilled. © Wolfgang Pelz 2000-04
Chapter 6 Object Diagrams © Wolfgang Pelz 2000-04
Object Diagrams • A snapshot of the objects in a system at a point in time. • Also called instance diagrams. • Useful of showing object connections (not interactions) • Can be thought of as collaboration/communication diagram without messages. • Naming convention (did not change as sequence diagram did): © Wolfgang Pelz 2000-04