Software 3372 Final

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

1/328

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.

329 Terms

1
New cards

How do we indicate a Singleton instance in a class diagram?

With a '1' in the upper right-hand corner

2
New cards

A sequence diagram describes

only the interactions between objects; it does not describe what happens inside of an object.

3
New cards

Which of the following statements about UML dependencies are true? (MULT ANS)

-A dependency represents a transient relationship between class objects.

-When an object A creates another object B, a create dependency exists between the objects A and B.

-If an object of class A is passed in as a parameter to a method defined in class B, then a dependency exists between class A and class B.

4
New cards

A lifeline in a sequence diagram

represents an instance.

5
New cards

To handle the logic (e.g., looping) required for a sequence being modeled, we can use frames with appropriate operators (e.g., loop for looping), which is formally called “sequence diagram fragments”. Which one of the following statements about sequence diagram fragments is NOT true?

A neg fragment describes interactions that are optional.

6
New cards

Which one of the following is NOT true for an association?

A binary relationship between two classes must be represented by two separate associations.

7
New cards

Which one of the following is a true statement about synchronous messages?

When an object sends a synchronous message, it must wait for a response.

8
New cards

Which one of the following is NOT a true statement about subsystem design?
Note: While the architectural modeling is done to show static/dynamic relations among subsystems, the subsystem modeling shows the design of each subsystem.

A subsystem design describes only the signatures of operations in a subsystem's interface.

9
New cards

What type of modeling are interaction diagrams used for?

Dynamic

10
New cards

Which of the following is NOT illustrated in UML class diagrams?

Lifelines

11
New cards

"Interaction diagram" in a design model is a generalization used to refer to more specialized UML diagram types. What are those types? (MULT ANS)

-Sequence diagram
-Communication diagram

12
New cards

Communication diagrams work well for which of the following?

-UML as sketch
-Formal modeling
-Agile modeling environment

13
New cards

True or false. It is NOT possible to nest frames in a frame within a sequence diagram.

False

14
New cards

How are asynchronous messages shown in sequence diagrams?

Stick arrow with solid line

15
New cards

When the class diagram notation is used for the purpose of representing a problem domain, what do we call it?

Domain class diagram

16
New cards

Which one of the following are true statements about UML stereo types? Select all correct answers.

-destroy and create (used on sequence diagrams) are examples of stereotypes.

-A stereotype represents a refinement of an existing modeling concept.

-A stereotype is defined within in a UML profile.

-The Object Management Group (OMG) provides many pre-defined stereotypes in the UML specification.

17
New cards

We show a strong aggregation (composition) with which type of arrow in association?

Solid diamond arrow

18
New cards

What is the acronym for UML's formal specification language for constraints?

OCL (Object Constraint Language)

19
New cards

True or false. UML class diagrams support showing template classes that are typically known as templates or parameterized types in many programming languages.

True

20
New cards

____ is the ability of one object to "see" or have a reference to another object.

Visibility

21
New cards

With regard to the creator pattern, we should assign class B the responsibility of creating an instance of class A if which of the following conditions are true.(MULTIPLE ANSWERS)

-B records A
-B closely uses A

22
New cards

Who are the four authors who wrote the "Bible" of design pattern books, often referred to as the GoF, "Gang-Of-Four".

-Erich Gamma
-Richard Helm
-Ralph Johnson
-John Vlissides

23
New cards

Which of the following statements about GRASP is correct? (MULTIPLE ASNWERS)

-GRASP is a methodology for object-oriented design based on responsibility-driven design
-GRASP consists of a collection of design patterns that help us think in terms of object-oriented design

24
New cards

Which of the following is true? (MULTIPLE ASNWERS)

-If A uses B closely, then A is a creator of B.
-A facade could be any concept which the designer chooses to represent the whole system or a subsystem.

25
New cards

Which of the following is true?

Controller pattern decides what first object after UI layer should receive the message from UI layer.

26
New cards

Which GRASP pattern could we use when we are concerned about change in the system and its impact?

-High Cohesion
-Low Coupling

27
New cards

When there are other design alternatives, the book suggests to take a look at what?

-Coupling
-Cohesion

28
New cards

When talking about the GRASP Controller pattern the book mentions two types of controllers, what are they? (MULTIPLE ASNWERS)

-Session Controller
-Facade Controller

29
New cards

What does "RDD" stand for?

Responsibility-Driven Design

30
New cards

True of false. Patterns help to facilitate communication.

True

31
New cards

In the Low Coupling example in textbook, which of the following is a true statement as a solution in assigning responsibilities? (MULTIPLE ANSWERS) (See Sec. 17.12)

-We remove the call to create() from Register to Payment and place that responsibility with Sale
-Because Register no longer has to know about Payment and only about Sale, instead of both, we have decreased the coupling of our objects

32
New cards

True or False. A low cohesive object with many source lines of code probably collaborates with many other objects and all that interaction tends to also create high coupling.

True

33
New cards

What is the best phrase that can fill the given blank? (see Sec. 18.1)
"A use case realization describes how a particular use case is realized within the Design Model, in terms of ." [from The Rational Unified Process Product]

The collaborating objects

34
New cards

See "calculating sale total" example on pg. 336 of printed book (pg. 484 of pdf, under Figure 18.9).
Which object should be responsible for calculating the sale total?

Sale

35
New cards
<p>Consider Figure 18.6 on pg. 330 (copied below from Larman textbook), which message is the system operation message?</p>

Consider Figure 18.6 on pg. 330 (copied below from Larman textbook), which message is the system operation message?

makeNewSale

36
New cards

Which of the following is a FALSE statement?

Exit and entry actions of a state are performed when an internal transition is made on the state.

37
New cards

The following is an example of an event: after(license period). What type of event is this?

Time event

38
New cards

Which one of the following is TRUE about a state model?

A do event is an on-going behavior that is performed as long as the modeled statement is in the state or until the computation specified by the expression is completed.

39
New cards
<p>The following figure shows a state machine. If the state machine is in state S1 what is the sequence of actions performed when the event e3 occurs?</p>

The following figure shows a state machine. If the state machine is in state S1 what is the sequence of actions performed when the event e3 occurs?

act4, act3, act16, act30, act10

40
New cards

Which one of the following is a FALSE statement about active objects?

An active object cannot be terminated by another object.

41
New cards

Which one of the following statements about a state machine event is TRUE?

An event can mark a significant occurrence at some point in time.

42
New cards

Which one of the following is a FALSE statement about run-to-completion semantics?

A high priority event received by a state machine interrupts the state machine when it is handling a low priority event and takes the event that is currently being processed from the pool.

43
New cards

Which one of the following is TRUE about a state model or statechart?

A state chart diagram shows method of execution on receipt of message and activities used in the method.

44
New cards

What is the GRASP

General Responsibility Assignment Software Pattern
-a set of guidelines for assigning responsibilities to classes and objects in OO design.

45
New cards

Information Expert

Assign responsibility to the class that has the necessary information.

46
New cards

Creator

Assign the responsibility to create an instance to the class that has or closely uses it.

47
New cards

Controller

Assign responsibility for handling system events to a controller class (not UI!)

48
New cards

Polymorphism

Use polymorphic behavior to handle alternatives (like different shapes or payment types).

49
New cards

Pure Fabrication

Add a non-real-world class just to support low coupling/high cohesion

50
New cards

Indirection

Use a mediator or handler to decouple two classes.

51
New cards

Low Coupling

Keep classes independent so they're easier to maintain/change

52
New cards

High Cohesion

Keep responsibilities focused; don't overload a class.

53
New cards

What does the Controller in GRASP mainly recommend?

The Controller recommends using a class to handle input/system events. It shouldn’t be the UI or business logic class—it’s a mediator.

-Makes code easier to understand and test

-Changes in one class have minimal effects on others

-Supports reuse and parallel development

54
New cards

How can we better handle alternative types in OO design?

Use dependency injection to swap components easily, and follow the Open/Closed Principle to extend behavior without modifying existing code. Also, use patterns like Strategy or Observer, keep components loosely coupled, and drive behavior with configuration or plugins to support dynamic loading.

55
New cards

How can we create pluggable software components so that a system can be easily extensible?

Designing to interfaces, using dependency injection, and applying patterns like Strategy or Observer. This keeps components loosely coupled and allows new features to be added without changing existing code

56
New cards

How is each operation contract used later in design modeling?

To guide the creation of class methods, responsibility assignments, and sequence diagrams

57
New cards

State Pattern Intent

Allow an object to change its behavior when its internal state changes.

58
New cards

State Pattern Applicability

Use it when an object's behavior depends on its state and it must change behavior at runtime.

59
New cards

State Pattern Consequences

-Eliminates massive switch statements
-Localizes behavior per state, can lead to lots of small classes

60
New cards

Deficiencies in modeling using the original state pattern itself

The basic state pattern doesn't handle complex transitions, concurrency, or history tracking well → UML Statecharts fix this.

61
New cards

Basic State Model Concepts

states, transitions, events, actions

62
New cards

Advanced State Model Concepts

nested states, parallel states, history

63
New cards

State Model Event Types

-Call event: method call
-Signal event: asynchronous notification
-Time event: timeout
-Change event: condition becomes true

64
New cards

Transition Types

-Group: shared transitions
-Default: fallback transition
-Completion: occurs automatically when state completes

65
New cards

Action Key Words

-entry: action on entering a state
-exit: action on exiting
-do: ongoing activity while in the state

66
New cards

Composite States

Sequential and Concurrent substates

67
New cards

Substates vs. Concurrent Substates

-Sequential substates: only one active at a time
-Concurrent substates: active in parallel

68
New cards

Orthogonality in State Models

Multiple independent regions within a composite state that don't interact (unless explicitly defined).

69
New cards

Interactions between parallel states

Happen when a composite state is split into concurrent substates, and each substate has its own independent state machine.

70
New cards

State Model Transformations

-State merging: combine states with shared behavior
-Parallel ⇔ Flat: translate between complex concurrent models and simplified sequential versions

71
New cards

History Pseudo-States

-Shallow: remembers last active substate at one level
-Deep: remembers nested substates recursively

72
New cards

Entry/Exit Points

Used to control entry and exit to composite states when multiple options exist—like checkpoints or gateways into deeper states.

73
New cards

Conditional Branching

Static: redefined decisions (like a switch-case or if-else logic)
Dynamic: evaluated at runtime based on object state or conditions (e.g., checking object property values before deciding path)

74
New cards

Objects' Dynamic Semantics

Passive - waits for method calls; just responds (like most Java objects)
Active - has its own thread or runs in a state machine loop (e.g., in real-time systems or simulations)

75
New cards

What is Run-to-Model Completion Model?

Once an event is being processed by an object, it will fully complete before the next event is handled.

76
New cards

How does a Run-To-Completion Model work on one active object?

No other events interrupt until the current one's finished.

77
New cards

How does a Run-To-Completion Model work in a multi-tasking environment on a uni-processor system?

Only one active object is running at a time. Objects take turns (e.g., cooperative multitasking or queued events).

78
New cards

What are software patterns?

Reusable solutions to common problems in software design.

79
New cards

What are typical problems many patterns intend to solve?

-Object creation (Factory, Builder)
-Object interaction (Observer, Mediator)
-Behavior delegation (Strategy, State)
-Extensibility and flexibility

80
New cards

Different Pattern Types and Examples

-Creational: how objects are created (e.g., Singleton, Factory)
-Structural: object composition (e.g., Decorator, Adapter)
-Behavioral: communication and control flow (e.g., Command, Observer)

81
New cards

Patterns vs Architectures vs Frameworks

-Patterns: abstract solutions (small-scale)
-Architectures: high-level structure (big-picture)
-Frameworks: reusable code libraries with predefined architecture

82
New cards

GoF design pattern classification: scope vs. purpose

-Scope: class-level vs. object-level
-Purpose:
Creational (object creation), Structural (object composition), Behavioral (object interaction)

83
New cards

Singleton Pattern

ensures a class has only one instance

84
New cards

Factory Method Pattern

subclasses decide which class to instantiate

85
New cards

Observer Pattern

one-to-many dependency, objects get notified of changes

86
New cards

Strategy Pattern

encapsulate interchangeable behavior

87
New cards

Command Pattern

encapsulate a request as an object

88
New cards

Decorator

dynamically add behavior to objects

89
New cards

Adaptor Pattern

makes incompatible interfaces work together

90
New cards

State Pattern

alters behavior based on internal st

91
New cards

What is Unified Process (UP)?

An iterative, incremental, and architecture-centric software development framework

92
New cards

Phases of UP

Inception, Elaboration, Construction, Transition

93
New cards

Inception

Define project scope and key requirements

94
New cards

Elaboration

Plan and develop architecture

95
New cards

Construction

Build and test the software

96
New cards

Transition

Deploy and maintain the system

97
New cards

Workflows in UP?

Business Modeling, Requirements, Analysis & Design, Implementation, Testing, Deployment

98
New cards

Business Modeling

Understand the business domain

99
New cards

Requirements

Define system functionality

100
New cards

Analysis & Design

Structure system architecture