Chapter 4 Flashcards
Alternative design strategies(5)
standard, cyclic, parallel, adaptive, incremental
what is cyclic design?
process can revert to an earlier stage
what is parallel design?
independent alternatives are explored in parallel
what is adaptive design?
“lay tracks are you go” the next design strategy of the design activity is decided at the end of a given stage.
what is incremental design?
each stage of development is treated as a task of incrementally improving the existing design
concept: how to indentify a viable strategy? (3)
use fundamental design tools: abstraction/modularity, inspiration(where is creativity required?, applying experience
Two types of abstraction:
- look at details and abstract up to concepts 2. choose concepts, then add detailed substructure, move down
definition: abstraction
the act or process of separating in thought, of considering a thing independently of its associations ; or a substance independently of its attributes; or an attribute or quality independently of the substance to which it belongs.
definition: reification
The mental conversion of an abstract concept into a thing.
definition: deduction:
the process of drawing a conclusion from a principle already known or assumed; In logic: inference by reasoning from generals to particulars (opposed to induction)
definition: induction
the process of inferring a general law or principle from the observation of particular instances(oppose to deduction)
what concepts should be chosen at the outset of a design task?
- search for a simple machine that serves as an abstraction of a potential system that will perform the required task.
simple machines __________
provide a plausible first conception of how an application might be built.
every application domain _______
has its common simple machine.
To use abstraction as a tool _________
must choose a level of discourse, and terms of discourse
separation of concerns is __________
the subdivision of a problem into (hopefully) independent parts
separation of concerns: difficulties arise when _____
the issues are either actually or apparently intertwined.
experience can provide _______
that initial feasible set of “alternative arrangements for the design as a whole”
DSSA is an assemblage of software components (3)
- specialized for a particular type of task(domain) 2. generalized for effective use across that domain 3. composed in a standardized structure (topology) effective for building successful applications.
DSSAs are the pre-eminent means for _____
maximal reuse of knowledge and prior development and hence for developing a new architectural design
architectural pattern is a _______
set of architectural design decisions that are applicable to recurring design problem, and parameterized to account for different software development contexts in which that problem appears
architectural pattersn are similar to ______ but ________
DSSAs, applied “at a lower level” and within a much narrower scope
state-logic display: three tiered pattern
display(user interface) -> business logic -> state(database)
Objective of Model-view-controller
separation between information, presentation, and user interaction
architectural style is ________
named collection of architectural design decisions that are applicable in a given dev. context, constrain architectural design decisions that are specific to a particular system within that context, elicit beneficial qualities in each resulting system
architectural style (4)
primary way of characterizing lessons from experience in software sys. design. 2. reflect less domain specificity than architectural patterns 3. useful in determining everything from subroutine structure to top level app structure 4. many styles exist
definition: architectural style
a named collection of architectural design decisions
architectural styles are recurring organizational patterns & idioms (2)
- established, shared understanding of common design forms 2. mark of mature engineering field.
Architectural styles, abstraction of ______
recurring composition & interaction characteristics in a set of architectures.
Propterties of styles (4)
- vocabulary of design elements 2. set of configuration rules 3. a semantic interpretation 4. possible analyses of systems built in a style
Benefits of using styles (6)
design reuse, code reuse, understandability of system organization, style-specific analyses, visualizations.
Common styles (name a few)
layered, data-flow styles, shared memory, interpreter, implicit invocation, peer to peer, derived styles