Object-Oriented Design: Classification, Abstractions, and Use Cases

0.0(0)
studied byStudied by 0 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/43

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

44 Terms

1
New cards

What is classification in object-oriented design?

Classification is the process of identifying sameness among things to expose commonality in abstractions and mechanisms, leading to simpler and more modular architectures.

2
New cards

What are the two aspects of identifying classes and objects?

Discovery (recognizing key abstractions and mechanisms) and invention (creating new mechanisms that specify collaboration).

3
New cards

Why is classification important in design?

It helps identify generalization, specialization, aggregation hierarchies, guides modularization, coupling, cohesion, and processor allocation.

4
New cards

Why is classification difficult?

Because object boundaries are often fuzzy and different observers may classify the same object differently depending on goals or perspectives.

5
New cards

What are the three main approaches to classification?

(1) Classical categorization, (2) Conceptual clustering, (3) Prototype theory.

6
New cards

What is classical categorization?

A method where entities sharing a common property form a category; properties are necessary and sufficient for membership. Example: "married people" vs. "tall people."

7
New cards

Who were the key philosophers behind classical categorization?

Plato, Aristotle, Aquinas, Descartes, and Locke.

8
New cards

What is a major limitation of classical categorization?

Natural categories are messy, most real-world things don't fit neatly into necessary-and-sufficient property lists. Example: not all birds fly.

9
New cards

What is conceptual clustering?

A modern approach where entities are grouped based on conceptual descriptions rather than fixed properties—often using probabilistic or fuzzy sets.

10
New cards

What was learned from the "train classification" experiment

People create many unique classifications depending on their knowledge; more domain knowledge enables better classification.

11
New cards

What is prototype theory?

A category is represented by a prototypical object; other objects belong if they sufficiently resemble the prototype (family resemblance).

12
New cards

Example of prototype theory in everyday objects?

"Chairs" barber chairs and beanbag chairs differ in properties but share family resemblance to the prototype "chair."

13
New cards

What are typical sources of classes and objects according to Shlaer and Mellor?

Tangible things, roles, events, and interactions.

14
New cards

What are additional sources from Ross?

People, places, things, organizations, concepts, events.

15
New cards

What do Coad and Yourdon suggest as object sources?

Structures, systems, devices, remembered events, roles, locations, and organizational units.

16
New cards

What is behavior analysis?

Identifying classes based on shared responsibilities and system behaviors. Emphasized by Wirfs-Brock and Rubin.

17
New cards

What is domain analysis?

Identifying classes common across similar applications within a domain to improve reuse and design consistency.

18
New cards

Who is a domain expert?

Someone deeply familiar with the problem domain (e.g., nurse, dispatcher), not necessarily a software developer.

19
New cards

What is a use case?

A behaviorally related sequence of transactions performed by an actor and the system that provides measurable value. (Jacobson's definition).

20
New cards

How are scenarios used in use case analysis?

Teams walk through real-life scenarios to identify objects, their responsibilities, and collaborations. These also serve as test bases.

21
New cards

What are CRC cards?

"Class/Responsibilities/Collaborators" index cards used to brainstorm and visualize class interactions in scenarios.

22
New cards

What are on CRC cards?

Each CRC card lists:

Class name (at the top)

Responsibilities (what the class knows or does)

Collaborators (other classes it interacts withEach CRC card lists:

Class name (at the top)

Responsibilities (what the class knows or does)

Collaborators (other classes it interacts with)

23
New cards

What is Abbott's English description method?

Writing a problem description, underlining nouns (objects) and verbs (operations). Useful for small problems; not scalable.

24
New cards

Why is structured analysis a poor front end to object-oriented design?

It promotes algorithmic (procedural) thinking instead of focusing on abstractions and object collaboration.

25
New cards

What are key abstractions?

Classes or objects that form the vocabulary of the problem domain—either discovered from users or invented by designers.

26
New cards

What are mechanisms?

Design structures that define how objects collaborate to produce system behavior. They embody strategic design choices.

27
New cards

What's an example of a mechanism?

The Model-View-Controller (MVC) paradigm—where model, view, and controller objects collaborate to render UI while staying decoupled.

28
New cards

Idioms

low-level language or cultural conventions.

29
New cards

Frameworks

reusable collections of collaborating classes for a domain.

30
New cards

What is the purpose of a use case diagram?

To depict system context — who (actors) interacts with the system and what functionality (use cases) the system provides.

31
New cards

What is an actor?

An external entity (person or system) interacting with the system, represented by a stick figure. Example: Gardener, Plan Analyst.

32
New cards

What is a use case?

A complete flow of activities from an actor's perspective that provides value to that actor. Depicted as an oval.

33
New cards

What does a use case specification include?

Name and purpose

Optimistic flow (main path)

Pragmatic flows (alternatives/errors)

Optional preconditions and postconditions

34
New cards

What's a pragmatic flow?

Alternative paths or error conditions where things don't go as expected.

35
New cards

What's a good guideline for use case length?

It should be concise (a few pages). If it's too long, it likely represents multiple use cases.

36
New cards

What is an «include» relationship?

It shows that one use case always includes another. The included use case is mandatory and always executed as part of the base use case.

37
New cards

What is an «extend» relationship?

It represents optional behavior added to a base use case. The extension occurs under specific conditions.

38
New cards

include DOES NOT

optional, base complete without it, condtionals, alters base behavior

39
New cards

Extend DOES

optional, base complete without it, condtionals, alters base behavior

40
New cards

What common mistake is made with «include»/«extend»?

Using them for functional decomposition instead of modeling complete, actor-valued use cases.

41
New cards

How is generalization applied to use cases?

Use cases can share common behavior in a parent use case, while specialized child use cases add or refine specific steps (e.g., Purchase Ticket → Purchase Theater Ticket).

42
New cards

Classical → apply to OO design?

based on object properties (structures, behaviors).

43
New cards

Conceptual → apply to OO design?

based on shared concepts/behaviors.

44
New cards

Prototype → apply to OO design?

based on resemblance to a prototypical object or role.