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 |