Design Patters ch12
Terms in this set (49)
The design must implement...
all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer
The design must be...
A readable, understandable guide for those who generate code and for those who test and subsequently support the software
The design should provide...
a complete picture of the software, addressing the data, functional, and behavioral domains form an implementation perspective.
A design should exhibit...
an architecture that
(1) has been created using recognizable architectural styles or patterns
(2) is composed of components that exhibit good design characteristics
(3) can be implemented in an evolutionary fashion.
A design should lead to components..
that exhibit independent functional characteristics
A design should lead to interfaces...
that reduce the complexity of connections between components and with the external environment.
A design should be derived...
using a repeatable method that is driven by information obtained during software requirements analysis.
A design should be represented...
using a notation that effectively communicates its meaning.
data, procedure, control
the overall structure of the software
"conveys the essence" of a proven design solution
Separation of concerns
any complex problem can be more easily handled if it is subdivided into pieces that can be solved and/or optimized independently.
compartmentalization of data and function
single minded function and low coupling
an "aversion" to excessive interaction with other modules..
elaboration of detail for all abstractions
a mechanism for understanding how global requirements affect design
a reorganization technique that simplifies the desing
provide design detail that will enable analysis classes to be implemented
Architecture Structural properites
defines the components of a system and the manner in which those components are packaged and interact with one another
Architecture Extra-functional properties
How the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics.
a feature or behavior that is specified as part of the requirements model for the software
By separating concerns into smaller pieces..
a problem takes less effort time to solve.
cannot be easily grasped by a software engineer.
-The number of control paths, span of reference, number of variables, and overall complexity would make understanding close to impossible
break the design into many modules, hoping to make understanding easier and as a consequence, reduce the cost required to build the software
Advantages of Information Hiding
-reduces the likelihood of "side effects"
-limits the global impact of local design decisions
-emphasizes communication through controlled interfaces
-discourages the use of global data
-leads to encapsulation
-results in higher quality sotware
is an indication of the relative functional strength of a module
A cohesive module..
Performs a single task, requiring little interaction with other components in other parts of a program.
should (ideally) do just one thing.
is an indication of the relative interdependence among modules.
coupling depends on...
the interface complexity between modules, the point at which entry or reference is made to an module, and what data pass across the interface.
a representation of a cross-cutting concern
addresses a major software engineering problem - the separation of concerns
often not simply associated with application functionality but are cross-cutting, all components may monitor their own operation, all components may have to maintain security
are implemented as aspects and are dynamically woven into a program. The concern code is reuse and the new system is generated by the aspect weaver.
"is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure."
When the software is refactored..
the existing design is examined for
-unused design elements
-inefficient or unnecessary algorithms
-poorly constructed or inappropriate data structures
-or any other design failure that can be corrected to yield a better design.
Move field Problem
A field is, or will be, used by another class more than the class on which it is defined
Move field solution
Create a new field in the target class, and change all its users
Pull Up Field problem
Two subclasses have the same field
Pull up field solution
move the field to a base class (super class)
Replace temp with query problem
You are using a temporary variable to hold the result of an expression
Replace temp with query solution
Extract the expression into a method. Replace all references to the temp with the expression. The new method can then be used in other methods.
all responsibilities of a superclass is immediately inherited by a ll subclasses
stimulate some behavior to occur in the receiving object
a characteristic that greatly reduces the effort required to extend the desing
developed during design to create the interface that the user sees and interacts with as the software is used.
Boundary classes are designed...
with the responsibility of managing the way entity objects are represented to users.
Controller classes are designed to manage..
-creating or update of entity objects;
-the instantiation of boundary objects as they obtain information from entity objects;
-complex communication between sets of objects;
-validation of data communicated between objects or between the user and the application
YOU MIGHT ALSO LIKE...
Academic Word Lists - AWL Sublists
CS 319 Software Engineering Midterm Study Guide
Multiple Choice Questions
OTHER SETS BY THIS CREATOR
Cecs 327 Final
CECS 475 CLI Type System
CECS 475 .NET Basics
Engl 317 final