CS455 - Q5 -> 9 10
quality
The importance of software design can be stated with a single word, ____
progressive sign off
____ is when the evolving product is documented and approved as each successive prototype is completed
soad
____ modeling is a knowledge management framework that provides support for capturing architectural decision dependencies in a manner that allows them to guide future development activities
archetype
An ____ is an abstraction (similar to a class) that represents one element of system behavior
architecture
Metaphors of ____: 1. blueprint 2. language 3. decision 4. literature
abstraction
Software ____ alludes to "the overall structure of the software and the ways in which that structure provides conceptual integrity for a system"
blueprint
Software design is an iterative process through which requirements are translated into a _____ for constructing the software
atam
The ____ establishes an iterative evaluation process for software architectures
information hiding
The principle of ____ suggests that modules should be "characterized by design decisions that (each) hides from all others."
data class
____ design transforms class models into design class realizations and the requisite data structures required to implement the software
atam
These are ____ activities: 1. Collect scenarios 2. Elicit requirements, constraints, and environment description 3. Describe the architectural styles and patterns that have been chosen to address the scenarios and requirements 4. Evaluate quality attributes by considering each attribute in isolation 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style 6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.
considerations
These are a list of architectural _____: 1. economy 2. visibility 3. spacing 4. symmetry 5. emergence
styles
Types of architectural ____: 1. Data-centered architectures 2. Data-flow architectures 3. Call-and-return architectures 4. Object-oriented architectures 5. Layered architectures
guidance model
A SOAD ____ contains knowledge about architectural decisions required when applying an architectural style in a particular application genre
object oriented
A ____ architecture allows you to encapsulate data and the operations that must be applied to manipulate the data.
call and return
A ____ architecture enables you to achieve a program structure that is relatively easy to modify and scale.
data flow
A ____ architecture is applied when input data are to be transformed through a series of computational or manipulative components into output data
concern
A ____ is a feature or behavior that is specified as part of the requirements model for the software.
data abstraction
A ____ is a named collection of data that describes a data object
pbar
A ____ is an evaluation method based on architectural patterns that leverages the patterns' relationships to quality attributes and is a face-to-face audit meeting involving all developers and other interested stakeholders.
model view controller
A ____ is one of a number of suggested mobile infrastructure models often used in Web development
acd
A ____ models the manner in which software interacts with entities external to its boundaries
pipe and filter
A _____ pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next
archetype
An ____ is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system
architectural style
An ____ is a transformation that is imposed on the design of an entire system. The intent is to establish a structure for all components of the system
pattern
An architectural ____ is like an architectural style except: (1) the scope of a pattern is less broad, focusing on one aspect of the architecture rather than the architecture in its entirety (2) a pattern imposes a rule on the architecture, describing how the software will handle some aspect of its functionality at the infrastructure level (e.g., concurrency) [Bos00], and (3) architectural patterns (Section 10.3.2) tend to address specific behavioral issues within the context of the architecture (e.g., how real-time applications handle synchronization or interrupts)
description
An architectural ____ represents a system using multiple views, where each view is "a representation of a whole system from the perspective of a related set of [stakeholder] concerns."
patterns
Architectural ____ address an application-specific problem within a specific context and under a set of limitations and constraints
review
Architectural ____ provides a means of assessing the ability of a software architecture to meet the system's quality requirements (e.g., scalability or performance) and to identify any potential risks
design classes
As the design model evolves, you will define a set of ____ that refine the analysis classes by providing design detail that will enable the classes to be implemented and to create a software infrastructure that supports the business solution
abstraction
At lower levels of ____ a more detailed description of the solution is provided
abstraction
At the highest level of ____ a solution is stated in broad terms using the language of the problem environment (e.g., a user story)
construction
Beginning once software requirements have been analyzed and modeled, software design is the last software engineering action within the modeling activity and sets the stage for____
pattern
Brad Appleton defines a design ____ in the following manner: "A pattern is a named nugget of insight which conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns"
design
Characteristics of a good ____ class: 1. Complete and sufficient 2. Primitiveness 3. High cohesion 4. Low coupling
variability intensive systems
Design of ____ requires developers to anticipate future changes in the features to be modified in future versions of the product being designed today
storyboarding
Using a technique called ____ the architect contributes architectural user stories to the project and works with the product owner to prioritize the architectural stories with the business user stories as "sprints" (work units) are planned
architecture trade off analysis method
What is ATAM?
static architecture conformance analysis
What is SACA?
service oriented architecture decision
What is SOAD?
pattern based architecture review
What is a PBAR?
architectural context diagram
What is an ACD?
design
What model do these belong to? 1. Data/class design 2. Architectural design 3. Interface design 4. Component-level design
design
What type of concepts are these? 1. Abstraction 2. Architecture 3. Patterns 4. Separation of concerns 5. Modularity 6. Information hiding 7. Functional independence 8. Stepwise refinement 9. Refactoring
software quality
What type of guidelines are these? ∙ The design should implement all explicit requirements contained in the requirements model, and it must accommodate all the implicit requirements desired by stakeholders. ∙ The design should 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 from an implementation perspective.
layered
With a ____ architecture each accomplishing operations that progressively become closer to the machine instruction set
functional properties
____ address "how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics."
data centered
____ architectures promote integrability. That is, existing components can be changed and new client components added to the architecture without concern about other clients (because the client components operate independently).
saca
____ assesses whether an implemented software system is consistent with its architectural model
structural properties
____ define "the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another."
architectural
____ design defines the relationship between major structural elements of the software, the architectural style, and patterns that can be used to achieve the requirements defined for the system, and the constraints that affect the way in which architecture can be implemented
interface
____ design describes how the software communicates with systems that interoperate with it, and with humans who use it
component
____ design transforms structural elements of the software architecture into a procedural description of software components
refactoring
____ is a reorganization technique that simplifies the design (or code) of a component without changing its function or behavior
stepwise refinement
____ is a top-down design strategy originally proposed by Niklaus Wirth
functional independence
____ is achieved by developing modules with "single-minded" function and an "aversion" to excessive interaction with other modules
cohesion
____ is an indication of the relative functional strength of a module
coupling
____ is an indication of the relative interdependence among modules
walking skeleton
____ is another name for a first working prototype
technical debt
____ is the concept in software development that refers to costs associated with rework caused by choosing a "quick and dirty" solution right now instead of using a better approach that would take more time
diversification
____ is the practice of identifying possible design alternatives suggested by the elements of the requirements model
convergence
____ is the process of evaluating and rejecting design alternatives that do not meet the constraints imposed by the nonfunctional requirements defined for the software solution
dynamic
____ models address the behavioral aspects of the program architecture, indicating how the structure or system configuration may change as a function of external events
functional
____ models can be used to represent the functional hierarchy of a system
process
____ models focus on the design of the business or technical process that the system must accommodate
structural
____ models represent architecture as an organized collection of program components
families of related
____ systems "draw upon repeatable patterns that are commonly encountered in the design of families of similar systems."
separation of concerns
_____ is a design concept that suggests that any complex problem can be more easily handled if it is subdivided into pieces that can each be solved and/or optimized independently.
responsibility driven architecture
_____ is a process that focuses on when, how, and who should make the architectural decisions on a project team
modularity
_____ is the most common manifestation of separation of concerns. Software is divided into separately named and addressable components, sometimes called modules, that are integrated to satisfy problem requirements
framework
_____ models increase the level of design abstraction by attempting to identify repeatable architectural design frameworks (patterns) that are encountered in similar types of applications