OO and Classical Software Engineering Chapter 14
object-oriented design (OOD)
The aim of OOD is to design the product in terms of objects, that is, instantiations of the classes and subclasses extracted during object-oriented analysis.
fan-out
The number of flows out of the module plus the number of global data structures updated by the module.
point of highest abstraction of input
The point at which the input loses the quality of being input and simply becomes internal data operated on by the product.
fan-in
As the number of flows into the module plus the number of global data structures accessed by the module.
real-time software
Characterized by hard time constraints, that is, time constraints of such a nature that, if a constraint is not met, information is lost.
package
Consists of a set of related classes, usually of relevance to a small subset of the actors, that can be implemented as a single unit.
point of highest abstraction of output
In the flow of data at which the output can be identified as such, rather than as some sort of internal data.
cyclomatic complexity
M of a detailed design is the number of binary decisions (predicates) plus 1 or, equivalently, the number of branches in the code artifact.
subsystem
Manageable pieces of the upcoming implementation workflow.
design workflow
Refine the artifacts of the analysis workfl ow until the material is in a form that can be implemented by the programmers.
general design
Another term for architectural design.
high-level design
Another term for architectural design.
logical design
Another term for architectural design.
low-level design
Another term for detailed design.
modular design
Another term for detailed design.
physical design
Another term for detailed design.
data flow analysis (DFA)
A classical design technique for achieving modules with high cohesion. It can be used in conjunction with most analysis techniques.
class diagram
A diagram in which the formats of the attributes need to be determined, and the methods need to be assigned to the relevant classes.
length
A measure of the size of the module.
accessor
A method that fetches private data that is stored within an object.
mutator
A method used to control changes to a variable. Setter methods.
abstract data type design
A set of data values called the domain. A collection of allowable operations on those values. This defines the design.
trade-off
A software product has to satisfy the functional requirements, that is, the use cases. It also needs to satisfy the nonfunctional requirements, including portability, reliability, robustness, maintainability, and security.
pseudocode
An earlier term for program description language.
transaction
An operation from the viewpoint of the user of the product, such as "process a request" or "print a list of today's orders."
