Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer © Prentice Hall, 2007 9-1 Chapter Objectives After studying this chapter you should be able to: – Stereotype classes into entity, boundary, and control. – Draw a sequence diagram based on a use case description. – Translate a sequence diagram into a communication diagram. Chapter 9 © Prentice Hall, 2007 9-2 Chapter Objectives (Continued) After studying this chapter you should be able to: – Convert a communication diagram into analysis classes. – Draw an activity diagram and a state diagram. – Document business rules using Object Constraint Language (OCL). – Develop decision tables of complex rules. Chapter 9 © Prentice Hall, 2007 9-3 Chapter 9 © Prentice Hall, 2007 9-4 Chapter 9 © Prentice Hall, 2007 9-5 What Is an Analysis Class? A class that represents initial data and behavior requirements, and whose software and hardware-oriented details have not been specified Analysis class diagram – a UML diagram showing analysis classes and their relationships Chapter 9 © Prentice Hall, 2007 9-6 Stereotypes of Analysis Classes Mostly corresponds to conceptual data model classes Chapter 9 Encapsulates connections between actors and use cases © Prentice Hall, 2007 Mostly performs behaviors associated with inner workings of use cases 9-7 Chapter 9 © Prentice Hall, 2007 9-8 What Is a Sequence Diagram? A UML diagram that shows the interaction between objects to perform critical pieces of use case behavior in a time-ordered manner Interactions are in the form of messages Behavioral responsibilities are assigned to message recipients Chapter 9 © Prentice Hall, 2007 9-9 Messages are passed between objects, and may contain parameters Chapter 9 © Prentice Hall, 2007 9-10 Symbols in a Sequence Diagram Box or class stereotype symbol represents objects. Dotted vertical line represents object’s lifetime. Thin bars represent focus of control, periods of time when object is behaving (fulfilling responsibilities). Labeled horizontal lines represent messages passing between objects. Chapter 9 © Prentice Hall, 2007 9-11 Chapter 9 © Prentice Hall, 2007 9-12 Typically, actors interact with boundary classes, which in turn interact with control classes, which in turn interact with entity classes. Chapter 9 © Prentice Hall, 2007 9-13 What Is Robustness Analysis? • Involves analyzing the narrative text of each of the use cases and identifying a first-guess set of the objects into entity, boundary, and control classes • Requires completeness checks and adherence to diagramming rules Chapter 9 © Prentice Hall, 2007 9-14 Chapter 9 © Prentice Hall, 2007 9-15 What Is a Communication Diagram? A UML diagram that shows the interactions between objects to perform critical pieces of the use case behavior Unlike sequence diagrams, communication diagrams have no spatial representation of time; sequences of messages are shown by numbering. Chapter 9 © Prentice Hall, 2007 9-16 Chapter 9 © Prentice Hall, 2007 9-17 Drawing Analysis Class Diagrams • Analysis classes are completed by including operations, which fulfill the responsibilities taken by the analysis class. • In addition, attributes and relationships from the conceptual data model are retained and refined. Chapter 9 © Prentice Hall, 2007 9-18 Operations (behaviors) are depicted in the lower third of a class box. Operations fulfill the class’s responsibilities. Chapter 9 © Prentice Hall, 2007 9-19 What Is an Activity Diagram? A diagram that emphasizes the flow of control from activity to activity in an object Similar to the traditional program flowchart Used to provide detail for complex algorithms Chapter 9 © Prentice Hall, 2007 9-20 Elements of Activity Diagrams Activity – a behavior that an object carries out while in a particular state Transition – a movement from one activity or state to another Decision point – a diamond symbol containing a condition whose results provide transitions to different paths of activities Swimlanes – lanes that partition the diagram to show who does what activities Synchronization bar – horizontal or vertical bars denoting parallel or concurrent paths of activities Chapter 9 © Prentice Hall, 2007 9-21 Activity diagram with the decision points and three swimlanes Chapter 9 © Prentice Hall, 2007 9-22 Activity diagram with synchronization bars Top synchronization bar is a fork. Bottom synchronization bar is a join. Chapter 9 © Prentice Hall, 2007 9-23 What is a State Diagram? A diagram that captures the behavior of an object by specifying the sequence of states it goes through during its lifetime in response to events, together with the responses to those events Also called statechart diagram -State – a condition or situation during the life of an object at which time it satisfies some condition, performs some activity, or waits for some event. -All activities are states Chapter 9 © Prentice Hall, 2007 9-24 Chapter 9 © Prentice Hall, 2007 9-25 When to Use State Diagrams For describing object behavior across many use cases Not useful for describing behavior of many objects collaborating together Not for everybody…some analysts like them and others do not Chapter 9 © Prentice Hall, 2007 9-26 What Is a Business Rule? A directive that is intended to influence or guide business behavior in support of business policy formulated in response to an opportunity or threat In information systems, business rules are implemented as data, constraints, and/or program code. Chapter 9 © Prentice Hall, 2007 9-27 Types of Business Rules Constraints – restrictions, mainly in the form of permissible values, validation rules, and multiplicities Calculations – mathematical formulas or algorithms that produce some value Value inferences – establishing the value of an attribute based on a test condition Action enablers – deciding on an action based on a test condition Chapter 9 © Prentice Hall, 2007 9-28 Approaches for Value Inferences and Action Enablers Decision Tables – Matrix representation of the logic of decisions, specifying possible conditions and resulting actions Decision Trees – Node-and link representation of the paths of choices and decisions Structured English – Verbal description of decision logic Chapter 9 © Prentice Hall, 2007 9-29 Components of Decision Tables Condition stub – The part of the decision table that lists the conditions relevant to the decision Action stub – The part of the decision table that lists the possible actions or values of the decision Rule – The part of the decision table that specifies the specific mapping of conditions to actions or values Chapter 9 © Prentice Hall, 2007 9-30 Chapter 9 © Prentice Hall, 2007 9-31 Reducing the Decision Table A complete decision table may have indifferent conditions for certain rules Therefore, rules can sometimes be combined to simplify the decision table Chapter 9 © Prentice Hall, 2007 9-32 Chapter 9 © Prentice Hall, 2007 9-33 What is Object Contraint Language (OCL)? An formal, declarative language add-on to UML for writing expressions that unambiguously specify business rules OCL expressions consist of: – Context – the element for which the expression is defined – Invariant – A constraint that should be true for an object during its lifetime Chapter 9 © Prentice Hall, 2007 9-34 Elements of OCL Expressions For each context, you can specify – Initial values – Derivation rules – Constraints – Query optimizations – Invariants – Pre- and Post-conditions Chapter 9 © Prentice Hall, 2007 9-35 OCL Expressions Chapter 9 © Prentice Hall, 2007 9-36