240 likes | 370 Vues
This chapter provides a comprehensive overview of classes and objects within object-oriented analysis, following the framework established by Arlow and Neustadt. It covers essential concepts such as UML notation for classes and objects, the roles of identity, state, and behavior in objects, and the importance of proper classification schemes. Additionally, it discusses relationships between classes and objects, including dependency and instantiation. The chapter emphasizes the identification and analysis of classes using RUP stereotypes and provides numerous UML visual aids to enhance understanding.
E N D
CS 426 /CPE 426 Senior Projects Chapter 7: Classes and Objects & Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] February 10, 2009
Outline • Objects • UML Notation for Objects • Classes • UML Notation for Classes • UP Activity: Analyze Use Cases • Analysis Classes • Finding Analysis Classes
Objects • Object = “A discrete entity with well-defined boundary that encapsulates state and behavior, an instance of a class” [J. Rumbaugh] • Properties of objects: • Identity • State • Behavior
Objects: Encapsulation • Fig. 7.2 [Arlow & Neustadt, 2005]
Objects: Messaging • Figure 7.3 [Arlow & Neustadt, 2005]
Objects: UML Notation • Figure 7.4 [Arlow & Neustadt, 2005]
Classes • Class = “The descriptor for a set of objects that share the same attributes, operations, methods, relationships, and behavior” [J. Rumbaugh] • Every object is an instance of exactly one class • Choosing the right classification scheme is a key factor in object-oriented analysis and design
Classes: Classification of Objects • Figure 7.5 [Arlow & Neustadt, 2005] Classifying objects determining classes
Classes: Relationship with Objects. • Figure 7.6 [Arlow & Neustadt, 2005] <<instantiate>> relationship
Classes: .Relationship with Objects • The <<instantiate>> relationship is a stereotype of the dependency relationship • Dependency: “A relationship between two elements in which a change to one element (the supplier) may affect or supply information needed by the other element (the client)”.
Classes: UML Notation…… • Figure 7.7 [Arlow & Neustadt, 2005]
Classes: .UML Notation….. • Figure 7.8 [Arlow & Neustadt, 2005] The attribute compartment
Classes: ..UML Notation…. • Table 7.3 [Arlow & Neustadt, 2005]. Visibility types
Classes: …UML Notation…Table 7.4 [Arlow & Neustadt, 2005]: Visibility semantics in UML, Java and C#
Classes: ….UML Notation.. • Figure 7.10 [Arlow & Neustadt, 2005] Operations
Classes: …..UML Notation. • Figure 7.14 [Arlow & Neustadt, 2005] Class stereotypes
Classes: ……UML Notation • Figure 7.16 [Arlow & Neustadt, 2005] Constructors • Figure 7.15 [Arlow & Neustadt, 2005] Class Scope
Classes: Analysis Classes… • Figure 8.2 [Arlow & Neustadt, 2005]
Classes: .Analysis Classes.. • Figure 8.3 [Arlow and Neustadt, 2005] Example of Analysis Class
Classes: ..Analysis Classes. • Figure 8.4 [Jim Arlow and Ila Neustadt, 2005] Brainstorming, part of CRC analysis technique
Classes: …Analysis Classes • Finding analysis classes by using RUP stereotypes:
Boundary Classes • Used to model interactions between system and its actors and collect requirements on system’s boundaries • Often represent windows, screens, APIs [Kendall V. Scott]
Control Classes • Used to encapsulate control related to a specific use case • Represent coordination, sequencing, transactions, and control of other objects [Kendall V. Scott]
Entity Classes • Used to model long-lived/persistent information [Kendall V. Scott]