CS 351 Test 4 Dr. Howell

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.