For unlimited access to Study Guides, a Grade+ subscription is required.
Exam 2 Study Topics
1. Know the definition of a Pattern. Know what the three categories of Patterns are. Study
the "Info - Design Pattern Template" on page 352 of text. Know the definition of "anti-pattern."
Know the set of important patterns.
A pattern is the outline of a reusable solution to a general problem encountered in a particular
Anti-Patterns are commonly used, but ineffective or counterproductive in practice.
Some informal types:
Death march project management
Blind faith – Do not check correctness of bug fix
Creational patterns focus on the “creation, composition, and representation of
Abstract factory pattern: centralize decision of what factory to instantiate
Factory method pattern: centralize creation of an object of a specific type choosing one of
Structural patterns focus on problems and solutions associated with how classes
and objects are organized and integrated to build a larger structure, e.g.,
Adapter pattern: 'adapts' one interface for a class into one that a client expects
Aggregate pattern: a version of the Composite pattern with methods for aggregation of children
Behavioral patterns address problems associated with the assignment of
responsibility between objects and the manner in which communication is effected
between objects, e.g.,
Chain of responsibility pattern: Command objects are handled or passed on to other objects
logic-containing processing objects
Command pattern: Command objects encapsulate an action and its parameters
2. Framework vs. Patterns? What is the difference?
○ Framework = Component + Design Patterns
○ a design pattern solves many software architecture issues (about creation, behavior,
concurrency, ...) with different pre-defined design. (design being an implementation of an
○ a framework is based on the Hollywood Principle ("Don't call us, we call you"), where
you implement some high level requirements as specified, and leave the framework do
the rest of the work, calling your implementations.
A key difference is the scope cohesion:
○ design pattern have a tight scope:
○ class design patterns (involves classes)
○ business design patterns (involves business workflows)
○ application design patterns (involves applications)
framework has a large scope:
○ A pattern is a best practice, a recipe, a time tested solution to a recurring problem that's
proved to work and to be the best one among to choose.
○ A framework is a library that provides a foundation layer to use to build application
without writing everything from scratch
○ framework word can be also address defined schemes of software design and build, a
collection of procedures that the developer can follow to achieve better results.
3. Understand Object Oriented Testing Strategies (p 528 of text).
Test individual components of application
Build tests as you code
Helps in regression testing
Ensure quality early on