Software design
What encompasses the set of principles, concepts, and practices that lead to the development of a high-quality system or product?
Design
What is pivotal to successful software engineering?
True
The most common miracle of software engineering is the transition from analysis to design and design to code. (True/False)
Software design
What continually changes as new methods, better analysis, and broader understanding evolve?
Depth
Flexibility
Quantitative nature
What three things does software design methodologies lack today?
Component-level Design
Interface Design
Architectural Design
Data/Class design
What are the four levels to the design model? (Know in order)
Requirements model
scenario-based
Class based
Behavior element
What four things feed the design tasks?
Design
What produces a data/class design, architectural design, interface design, and a component design?
False (should always begin with...)
Software should always end with a consideration of data-the foundations for all other elements of design. After the foundation is laid, the architecture must be derived. Only then should you perform other tasks. (True/False)
Architectural design
What defines the relationship between major structural elements of software?
Architectural design
What is the framework of a computer-based system?
Architectural design
What is derived from the requirements model?
Interface design
What describes how the software communicates with systems that interoperate with it and with humans who use it?
Usage scenarios
Behavioral models
What provide much of the information required for interface design?
Software design
What provides a blueprint that depicts a holistic view of software?
Refinement
What leads to design representations at much lower levels of abstraction?
True
Writing a clever piece of code that works is one thing; designing something that can support a long lasting business is quite another. (True/False)
Design
What should implement all of the explicit requirements contained in the requirements model and accommodate the implicit requirements?
Design
What should be readable, understandable for those who generate code?
Design
What should provide a complete picture of software, addressing data, functional, and behavioral domains from an implementation perspective?
Recognizable architectural style or pattern
Components that exhibit good design characteristic
Can be implemented in an evolutionary fashion
What three things should design exhibit?
Modular, logically partioned
Design should be "______________" and the software should be "__________ _____________" into elements or subsystems.
Data
Architecture
Interfaces
Components
Design should contain distinct representation of what? (Four things)
False (recognizable data patterns)
Design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data structures? (True/False)
Independent functional characteristics
Design should lead to components that exhibit "_______________ ________________ _______________".
Reduce complexity of connections
Design should lead to interfaces that "__________ ___________ ____ ______________" between components.
True
Design should be derived using repeatable methods that are driven by information. (True/False)
False (effectively)
Design should be represented using a notation that ineffectively communicates its meaning? (True/False)
Functionality
Usability
Reliability
Performance
Supportability
What is FURPS?
Functionality
What is assessed by evaluating the feature set and capabilities of the program, the generality of the functions that are delivered, and the security of the overall system?
Usability
What is assessed by considering human factors? (Examples: aesthetics, consistency, and documentation)
Reliability
What is evaluated by measuring the frequency an severity of failure?
Performance
What is measured by using processing speed, response time, resource consumption, throughput, and efficiency?
Supportability
What combines extensibility, adaptability, and serviceability?
Abstraction
Architecture
Patterns
Separation of Concerns
Modularity
Information Hiding
Functional Independence
Refinement
Aspects
Refactoring
What are the ten Design Concepts?
True
Abstraction is one of the fundamental ways that we as humans cope with complexity.
Broad terms, More detailed
At high levels of abstraction, a solution is stated in "__________ __________", at low levels of abstraction, a "__________ ___________" description of the solution is provided.
Architecture
What is the structure or organization of program components, manner in which these components interact, and the structure of data that are used by the components?
False (highest return)
A software architecture is the development work product that gives the lowest return on investment with respect to quality, schedule and cost? (True/False)
True
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.
Design pattern
What describes a design structure that solves a particular design problem within a specific context?
Separation of concerns
What is used to help reduce time and effort to solve a problem?
Modulatiry
What is the most commons separation of concerns?
True
The intent of information hiding is to hide the details of data structures and procedural processing behind a module interface. Knowledge of the details need not be known by users of the module. (True/False)
Hiding information
What implies that effective modularity can be achieved by defining a set of independent modules that communicate?
Functional Independence
What is achieved by developing modules with "single-minded" function and an "aversion"?
False (Cohesion)
Coupling is a qualitative indication of the degree to which a module focuses on just one thing. (True/False)
False (Coupling)
Cohesion is a qualitative indication of the degree to which a module is connected to other modules and to the outside world. (True/False)
Cohesion
What is the natural extension of the information-hiding concept?
Coupling
What is the indication of interconnection among modules in a software structure?
True
There is a tendency to move immediately to full detail, skipping refinement steps. This leads to errors and omissions and makes the design much more difficult to review. Perform stepwise refinement. (True/False)
Aspects
A requirements model can be organized in a way that allows you to isolate each concern. What is this?
Refactoring
What is a reorganization technique that simplifies the design without changing its function of behavior?
Design classes
What refine the analysis classes by providing design detail that will enable the classes to be implemented?
User interface classes
What define abstractions that are necessary for human-computer interaction.
Business domain classes
What identify the attributes and services that are required to implement some element of the business domain
Process classes
What implement lower-level business abstraction?
Persistent classes
What will persist beyond the execution of the software?
System classes
What implements software management and control functions that enable the system to operate and communicate within the environment?
Design classes
User interface
Business Domain classes
Process classes
Persistent classes
System classes
What are the six different types of design classes?
False (should not)
High-level modules should depend upon low-level modules. (True/False)
True
Details should depend on abstraction. (True/False)
Process dimension
What indicates the evolution of the design model as design tasks are executed as part of the software process?
Abstraction dimension
What represents the level of detail as each element of the analysis model is transformed into a design equivalent and then refined iteratively?
Data elements
Architecture elements
Interface elements
Component-level elements
Deployment-level elements
What are the five design model elements?
Data design
What creates a model of data and/or information that is represented at a high level of abstraction?
Architectural design
What type of design is equivalent to the floor plan of a house?
User interface
External interface
Internal interface
What are the three types of interfaces?
Component-level design
What is equivalent to a set of detailed drawings?
Deployment-level design
What design element indicates how software functionality and subsystems will be allocated within the physical computing environment?
Design
What has been described as multistep processes?
The manner in which the various components of the building are integrated to form a cohesive whole
What is architecture?
The structure or structures of the system
What is software architecture?
Analyze effectiveness of design
Consider architectural alternatives
Reduce risk
Architecture is a representation that enables what three things?
Provides a representation
Highlights early design decisions
Constitutes relatively small, intellectually graspable models
Why is architecture important? (Three things)
Establish conceptual framework and vocabulary
Provide detailed guidelines
Encourage sound architectural design
What three things did the IEEE-Std develop?
Architectural description
What represents multiple views where each view is a representation of the whole system?
Genre
What dictates the specific architectural approach to the structure that must be built?
Architectural style
What is a template for construction?
Set of components
Set of connectors
Constraints that define components
Semantic models that enable a designer
What are four architectural styles exhibited by computer-based systems?
Architectural pattern
What impose a transformation on the design of an architecture?
Data-centered
Data-flow
Call and return
Object-oriented
Layered
What are the five type of computer-based architecture styles?
Layered style
What can be combined with a data-centered architecture in many database applications?
Archetype
What is an abstraction that represents one element of a system behavior?
Superordinate system
What is a system that use the target system as part of some higher-level processing scheme?
Subordinate system
What type of system is used by the target system and provide data that are necessary?
Peer-level system
What type of system interact on a peer-to-peer basis?
Actors
What are entities that interact with the target system?
Archetype
What is a class or pattern that represents a core abstraction that is critical to design of a architecture?
True
If a conventional approach is chosen, components may be derived from the subprogram calling hierarchy. (True/False)
Architecture trade-off analysis method
What is ATAM?
Boil into smaller amount of views
What is the purpose of ATAM?
Architectural description language
What is ADL?
Provide a means of assessing the ability of software architecture
What is the purpose of architectural reviews?
Software architect
What should build consensus among members of a software team?
True
There is need to integrate new architectural design practices into agile process models.