• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/99

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

99 Cards in this Set

  • Front
  • Back

TheProductCatalog should look up ProductDescriptions, because itknows about the ProductDescription objects. [10/19 slide 9]

Information Expert Principle

A sale instance is associated with register[10/19 slide 9]

Creator Pattern

Temporarily ignore the use case’s requirement that itemID and quantity be displayed.[10/19 slide 9]

Model-view separation principle

A software design consisting of objects that collaborate in fulfilling stated requirements.[10/19 slide 16 ]

Use-case realization

A rich source of system operations and post condition state changes.[10/19 slide 16 ]

Operations contract

A rich source of easily understoodobject names, because of their low representation gaps (LRG).[10/19 slide 16 ]

Domain Model

1)Thefirst object(s) created at start up.



Initial Domain Object(instead Domain Object )

How we naturally think of areal-world domain concept and its straight forward correspondence with a software object.





Low representation gap

Don’t mix methods that change state with methods that return data to callers

Command Query Separation (CQS) Principle

Capturing essential interactions andassigning responsibilities, guided by GRASP patterns and principles.

Object Design

Business people and developers must worktogether daily throughout project

Agile Process

Design it last, after all initialization needs have been discovered

Start up

May not be the same in the Domain Model and the design

Multiplicity

Follow the same reasoning strategy in every Expert pattern application, and it will make even the difficult situations easier.

Detail

To lower coupling, give the responsibility to thedominant one; i.e., the one with the most information

Competing partial information experts

When other guidelines don’t point at a clear responsibility winner, consider the next version’s cohesion and coupling problems .

Future Evolution

These motivate the designer to look closely at the alternatives’ cohesion and coupling implications .

Equally good choices

Arrange in order:




Parameter.


Local.


Global.


Attribute.




a. Attribute. -----à Most often used


b. Parameter.


c. Local.


d. Global. --------à Least often used



B is in the scope of class A

Attribute visibility



B appears inside method A

Local visibility



B is visible to all other objects

Global visibility

An object named in a method’s argument list

Parameter

A class with only one instance.




Manyvenues must have controlled access to that object.

Singleton

Source code,


Database definitions,


html pages are included in _____________

UPIM - Unified Process implementation model

The following order depicts which kind of testing Constructor,Sensors, Motors, StepLimiter, Timer, GPS, Pilot._________

Bottom up testing

Feedback of ___________ leads developers towards management goals, builds a reusable regression testing library, motivates to write good code,ensure requirements compilance, clarifies interface details and behaviour

Test before coding

Valid ways of translating design artifacts into code:


a. Names in Design ClassDiagrams (DCDs) names reappear as C++ declarations in header files.


b. Design Sequence Diagrams(SDs) describe C++ methods in source code files.


c. UI- to Domain-LayerInterface Definitions guide in coding the bodies of those methods.


are examples of ______________________

Test Driven Development

Creating a subclass that is distinct from its super class and its other sub classes

Specialization

One of many specialized concepts

subclass

A general concept

super class

What are these _______________



a. Generalize a class into manysubclasses when they have unique attributes.




b. Create subclasses when they haveseparate associations.




c. Split a superclass into subclasseswhen they operate differently from each other and from their superclass.




d. Super classes are declared{abstract}.




e. Subclassnames consist of a unique prefix followed by their superclass’ name.

Generalization Guidelines

Operates upon objects of varying types in similar ways, orvarious pluggable components with a single interface.

Polymorphisim

Enhances reuse by avoiding direct couplings with external elements



Indirection

Wraps variable, unstable, “stranger” elements with a protective stable interfaces.





Protected variations

Lowers representation gap by representing a real-world entity.

Representational decomposition

· No existing class has the prerequisite knowledge to accept them.


· You must assign a highly cohesive and low coupled set of responsibilities.

Pure fabrication

Classes with different interfaces communicate via a common Adapter object.

Adapter

Provide an interface that delegate’s creation calls to concrete classes, which deliver specific objects.

Factory

Define a family of encapsulated algorithms to provide needed behaviors.





Strategy

All specialized subclasses must be proper subsets of their generalizing superclass.)

Is -a

Any statement made about the superclass must be applicable to every subclass, including all attributes and associations.

100% Rule

The Singleton classesthat represent the statesations

State chart

a. Check main memory cache, before retrieving product information from remote database.


b. Check disk file, if cache misses.


c. If needed local information exists, fetch it from remote database.


d. If remote database fails, fetch from the Web.

Proxy pattern

Consistent reporting and flexible definitions of output streams and formats.

Centralized error logging

Named for the error cause, not the thrower.

Exception

An asynchronous message marked <> on an interaction diagram.

Signal

Code designed to handle an error

Catch

Halt application when exception arises

Throw

A fault’s runtime manifestation

Error

The ultimate origin/cause of misbehavior; e.g., programmer misspelling database name .

Fault

Denialof a specified service

Failure

An anticipated failure’s recovery plan.

Failover

Keeping the ratio of Internal Relations to the number of their types between 0.5 and 2 in functionally cohesive vertical and horizontal slices reduces wide spread dependencies on unstable packages.

Relational cohesion

Widespread code changes provoked by every new software release.

version thrashing

A coarse-grained grouping of classes, packages or subsystems that has cohesive responsibility for a major aspect of a system. (Higher ones normally use lower ones’ services.)

Layer

Objectsthat know client’s session state, mediating between the UI and Domain layersand controlling their work flow

Application layer

A display update model that indirectly transfers data from the Domain to the UI level.

Push-from-below

A simple 2-tiered information system.

CRUD

A 3-tiered information system deployed to 3 machines

Thin client

A 3-tiered information system deployed to 2 machines

Thicker client

A window onto the system from a particular perspective that emphasizes the key noteworthy information; e.g. structure, modularity, essential components, main control flows, rationale.

Architectural view

By identifying parts that cannot exist outside the whole, it helps designers identify create/delete dependencies.

Composition

cannot be instantiated, but they can be subclassed

Abstract class

The potential subclasses are variations on a single concept.

Conceptual superclass partitioning

The subclasses have additional attributes or associations of interest.





Conceptual class

Learn more about principles that an object applies than the object itself

Principles vs patterns

A façade controller or an object that contains all or most other objects

Initial Domain Object

The subclass’ concepts are operated on, handled, reacted to or manipulated differently from the superclass or other subclasses in interesting ways.

Conceptual Class

The subclasses represent animates that behave differently from the superclass or other subclasses in interesting ways.

Conceptual class

The subclasses will conform to the 100% and is-a rules.

Conceptual super class partitioning

All subclasses have the same attributes and associations that can be factored out,and then expressed in and related to the superclass.

Conceptual super class partitioning

It helps apply the GRASP Creator pattern appropriately.

Composition

It helps apply operations consistently to the parts.

Composition

The composite and parts’ lifetimes are the same.

Composition

There is an obvious whole-part physical or logical assembly.

Composition

The composite shares some properties with the parts; e.g., location.


The composite shares some operations with the parts; e.g., movement, recording,destruction.

Composition

Many related classes differ only in their behaviors.

Strategy

Many versions or variations of a strategy (an algorithm) are required.

Strategy

Algorithms access or utilize data that must be hidden from the calling code.

Strategy

A class’ behavior is defined only at runtime.

Strategy

Conditional statements are complex and hard to maintain

Strategy

Object creation should be independent of the utilizing system.

Factory

Systems should be capable of using many families of objects.

Factory

Families of objects must be used together

Factory

Libraries must be published without exposing implementation details

Factory

Concrete classes should be decoupled from clients.

Factory

A class without a required interface must nonetheless be used.

Adapter

Complex conditions tie object behavior to its state.

Adapter

Transitions between states must be explicit.

Adapter

Look to the Domain Model for inspirations on naming software objects

Low representation gap

System must connect with external elements outside developers’ control.

Protected variation

A technologically complex element plays critical role in system behavior.

Protected variations

A new-generation system includes many never-before tried component.

Protected variations

· A class must provide standard operations for a variety of objects.

Polymorphism

Marketing expresses a strong desire for reuse and pluggable interfaces.

Polymorphism

A User Interface must accept various vendors’ applications.

Polymorphism

An intermediary can indirectly connect other components.

Indirection

This pattern can hide external system variations from a local UI.

Indirection

An adapter class can mediate with an externalservice for low coupling.

Indirection