Introduction to UML DIAGRAMS & CLASS DIAGRAM Chapter 7,8 主講人: 許勝杰 jason@rtpc06.ee.ncku.edu.tw 1 Outline Different Views of a System Diagrams Structural Diagrams Behavioral Diagrams Class Diagram Examples : An ATM System 2 Different Views of a System A view is a projection into the organization and structure of a system’s model, focused on one aspect of a system. Five most important views : Use case view: force the shape of system. Design view: function requirements. Process view: concurrency, synchronization. Implementation view: component and files assemble the physical system. Deployment view: nodes form H/W topology 3 Diagrams A diagram is a graphical projection into the elements that make up a system. Each diagram provides a view into the elements that make up the system. Structural diagrams to view the static parts and Behavioral diagrams to view the dynamic parts of a system. 4 Structural Diagrams The UML’s structural diagrams are used to visualize, specify, construct, and document the static aspects of a system. Static aspects: represent system’s relatively stable skeleton and scaffolding. UML’s four structural diagrams: Class diagrams Object diagrams Component diagrams Deployment diagrams 5 Structure Diagrams Class Diagrams A class diagram shows a set of classes, interfaces, and collaborations and their relationship. Class diagrams are used to illustrate the static design view of a system. Class diagrams including active classes are used to address the static process view of a system. 6 Structure Diagrams Object Diagrams A object diagram show a set of objects and their relationships. Object diagrams are used to illustrate data structures, the static snapshots of instances of the things founds in class diagrams. Object diagrams address the static design view of a system just as do class diagrams, but from the perspective of real or prototypical case. Ref. P.196, Fig 14-1 7 Structure Diagrams Component Diagrams A component diagram shows a set of components and their relationships. Component diagrams are used to illustrate static implementation view of a system. A component typically maps to one or more classes, interfaces, or collaborations. Ref. P.394, Fig.29-1 8 Structure Diagrams Deployment Diagrams A deployment diagram shows a set of nodes and their relationships. Deployment diagrams illustrate the static deployment view of an architecture. Ref. P.408, Fig. 30-1 9 Behavioral Diagrams The UML’s behavioral diagrams are used to visualize, specify, construct, and document the dynamic aspects of a system. Dynamic aspects: represent a system’s changing parts. UML’s five behavioral diagrams Use case diagrams Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams 10 Behavioral DiagramsUse Case Diagram A use case shows a set of use cases and actors and their relationships. Used to illustrate the static use case view of a system. Especially important in organizing and modeling the behaviors of a system. 11 Behavioral DiagramsSequence Diagram A sequence diagram is an interaction diagram that emphasizes the time ordering of messages. It shows a set of objects and the messages sent and received by those objects. Used to illustrate the dynamic view of a system. 12 Behavioral DiagramsCollaboration Diagram A collaboration diagram is an interaction diagram that emphasize the structural organization of objects that send and receive messages. It shows a set of objects, links among those objects, and messages sent and received by those objects. Used to illustrate dynamic view of a system. 13 14 Behavioral DiagramStatechart Diagram A statechart diagram shows a state machine, consisting of states, transitions, events, and activities. Especially important in modeling the behavior of an interface, class, or collaboration. It emphasizes the event-ordered behavior of an object, which is especially useful in modeling reactive systems. Illustrating dynamic view of a system. 15 Statechart Diagram (p.333) Activity Diagram (p.259) 16 Behavioral DiagramsActivity Diagram An activity diagram shows the flow from activity to activity within a system. It shows a set of activities, the sequential or branching flow from activity to activity, and objects that act and are acted. Especially important in modeling the function of a system. It emphasizes the flow of control among objects. 17 Class Diagram Class diagram commonly contains the following things: Classes Interfaces Collaborations Dependency, generalization, and association relationships. It may also contains notes and constraints, packages or subsystems 18 Class Diagram Example: 19 Fig 8-1 p.106 Class Diagram A well-structured class diagram Focused on communicating one aspect of a system’s static design view Contain only elements that are essential to understanding that aspect Provides detail consistent with its level of abstraction, with adornments that are essential for understanding Is not so minimalist that it misinform readers about important semantics. 20 Class Diagram When drawing a class diagram: Give name communicating its purpose. Layout elements with minimal cross line Semantically close, lay out close. Use notes and color to draw attention to important features of system. Try not to show too many kinds of relationships. 21 An Example – ATM System The ATM system. Model collaboration Identify the mechanism. Identify the classes, interface of each mechanism. Use scenarios to walk through these things. Populate these elements with their contents. 22 An Example – ATM System 顧客 inputCard() 1..* 1 1 1..* 金融卡 checkCard() checkPW () inputPW() inputMoney() 櫃員機 1 1 密碼 getMoney() 金額 23 Object Diagram 24 Component Diagram 25 Deployment Diagram 26