Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.

Similar presentations


Presentation on theme: "Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in."— Presentation transcript:

1 Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer Science & Engineering

2 2  The Analysis Workflow  Objects  UML Notation for Objects  Classes  UML Notation for Classes  UP Activity: Analyze Use Cases  Analysis Classes  Finding Analysis Classes

3 3 Chapter 6 roadmap

4 4 Analysis emphasized in Inception and Elaboration phases

5 5 Analysis meta-model

6 6 Analysis workflow detail

7 7 The Analysis Model: Is always in the language of business Captures the big picture Contains artifacts that model the problem domain Tells a story about the desired system Should be useful to many stakeholders

8 8 Rules of thumb – Analysis Model: Only include classes from problem domain Do not make implementation decisions Focus on classes and associations Minimize coupling Use inheritance only when it comes naturally Keep it simple

9 9  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

10 10

11 11

12 12

13 13 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

14 14 Classifying objects  determining classes

15 15 > relationship

16 16  The > 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)”.

17 17

18 18 The attribute compartment

19 19 Visibility types

20 20

21 21 Operations

22 22 Class stereotypes

23 23  Constructors  Class Scope

24 24 Analysis process

25 25 Example of analysis class

26 26  What makes a good analysis class? Its name reflects its intent It is a crisp abstraction that models a specific aspect of the problem domain It maps to a clearly identifiable feature of the problem domain It has a small, well-defined set of responsibilities It has high cohesion It has low cohesion

27 27  Additional analysis classes rules of thumb:  About 3-5 responsibilities per class  No class stands alone  Avoid: Many very small classes Very large classes Functoids (procedural functions disguised as classes) Omnipotent classes Deep inheritance trees

28 28  Finding classes by using noun/verb analysis:  Nouns: candidates for classes or attributes  Verbs and verb phrases: candidates for operations or responsibilities  Beware of spurious and hidden classes  Sources of information: ▪ Requirements model ▪ Use case model ▪ Project glossary ▪ Anything else (architecture, concept documents, etc.)

29 29  Finding classes by using CRC analysis Phase 1 – Brainstorming Phase 2 – Analysis Figure 8.4 : Brainstorming, part of CRC analysis

30 30  Finding analysis classes by using RUP stereotypes:

31 31  Used to model interactions between system and its actors and collect requirements on system’s boundaries  Look at user, system, and device interfaces  Often represent windows, screens, APIs [Kendall V. Scott]

32 32  Used to encapsulate control related to a specific use case  Represent coordination, sequencing, transactions, and control of other objects [Kendall V. Scott]

33 33  Used to model long-lived/persistent information [Kendall V. Scott]  Cut across many use cases, are manipulated by control classes, provide info to and accept info from boundary classes

34 34  Finding classes by from other sources: ▪ Real world entities: Physical objects (e.g., aircraft, people, hotel) Paperwork (e.g., invoice, fill-in-form, bankbook) Known interfaces such as screens, keyboards, peripherals Conceptual entities such as LoyaltyProgram or RewardsCard

35 35  Finding classes by from other sources: ▪ Archetype patterns, for example: Inventory Money Order Party Product


Download ppt "Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in."

Similar presentations


Ads by Google