Component-level design
What is the title of chapter 14?
Component-level design
What occurs after the first iteration of architectural design have been completed?
True
Those who want really reliable software will discover that they must find a means of avoiding the majority of bugs to start with. (True/False)
Edsgar Dijkstra
Who was a major contributor to our understanding of software design?
Component
What is a modular building block for computer software?
OMG Unified Modeling Language Specification
What defines a component as a "modular, and replaceable part of a system"?
Object-oriented view
Traditional view
Process-related
What are the three component views?
Collaborating classes
A component in object-oriented view contains what?
True
All interfaces that enable the classes to communicate and collaborate with other design classes must be defined? (True/False)
False (every)
Object-oriented elaboration activity is applied to some components defined as part of the architectural design. (True/False)
Traditional view
A functional element of a program that incorporates processing logic, internal data structures, and interfaces that enable components to be invoked is what?
Module
What is another name for a traditional component?
Control component
Problem domain component
Infrastructure component
Traditional components serve what three important roles?
Open-Closed Principle
Liskov Substitution Principle
Dependency Inversion Principle
Interface Segregation Principle
What are the four Basic Design Principles?
Open-Closed Principle
What design principle states "a module should be open for extension but closed for modification"?
Open-Closed Principle
What is the way that allows a component to be extended without the need to make internal modifications?
Liskov Substitution Principle
What design principle states "subclasses should be substitutable for their base classes"?
Liskov Substitution Principle
What demands that any class derived from a base class must honor any implies contract between the base class and the components?
Dependency inversion Principle
What principle states "depend on abstractions. do not depend on concretions"?
True
The more a component depends on other concrete components, the more difficult it will be to extend. (True/False)
True
If you dispense with design and hack out code, just remember that is the ultimate "concretion." You're violating DIP. (True/False)
Interface Segregation Principle
What principle states "many client-specific interfaces are better than one general purpose interface".
Release Reuse Equivalency Principle
What principle is where components are designed for reuse and implicit contract is established between the developer of the reusable entity and the people who will use it?
Common Closure Principle
What principle states "classes that change together belong together"?
Common closure principle
What principle states that classes should be packaged cohesively?
Common Reuse Principle
What principle states "classes that aren't reused together should not be grouped together"?
Common Reuse Principle
What principle is when one or more classes with a package changes, the release number of the package changes?
Cohesion
What is described as "the single-mindedness of a component"?
Cohesion
What implies that a component or class encapsulates only attributes and operations that are closely related?
Functional
Layer
Communicational
What are the three types of cohesion?
Functional
What is exhibited primarily by operations? (cohesion type)
Layer
What is exhibited by packages, components, and classes? (cohesion type)
Layer
What type of cohesion occurs when a higher layer accesses the services of a lower layer, but lower layers do not access higher layers?
Communicational
What focuses solely on the data in question, accessing and storing it? (cohesion type)
Pragmatic design
Implementation issues
What two things force you to opt for lower levels of cohesion?
True
Although an understanding of the various levels of cohesion is instructive, it is more important to be aware of the general concept as you design components. Keep cohesion high as possible. (True/False)
Communication
Collaboration
What are the essential elements of any object-oriented system?
True
As communication and collaboration increase, complexity of the system also increase. (True/False)
Coupling
What is a qualitative measure of degree to which classes are connected to one another?
False (low)
An important objective in component-level design is to keep coupling as high as possible. (True/False)
Content coupling
What occurs when one component surreptitiously modifies data that is internal to another component?
Control coupling
What occurs when operations invoke operations and pass a control flag?
External coupling
What occurs when a component communicates or collaborates with infrastructure components?
Component-level design
What is elabortive in nature?
Design representation
You must transform information from requirements and architectural models into what type of representation?
True
Use stepwise elaboration as you refine the component design. Always ask "Is there a way this can be simplified and yet still accomplish the same result?" (True/False)
Web-based systems and applications
The boundary between content and function is often blurred when what two things are considered?
Well-defined cohesive function that manipulate content
Cohesive package of content and functionality
What are the two components of WebApp?
Limitation of physical characteristics
Implementing of the business and or data layers on the mobile device subject these layer to what?
False (three construction: sequence, condition, and repetition)
Structured programming is a design technique that constrains logic flow to two constructions: sequence, condition. (True/False)
Constrained logical construct
What was proposed as a construct from which any program can be formed?
Sequence
What implements processing steps that are essential in the specification of any algorithm?
Condition
What provides the facility for selected processing based on some logical occurrence?
Repetition
What allows for looping?
Sequence
Condition
Repetition
What are the three constructs for designing traditional components?
Reduce complexity
Complexity metrics indicate that the use of structured constructs reduce what?
Structured constructs
What are logical chunks that allow a reader to recognize procedural elements of a module?
False (all program can be)
Not all programs can be designed and implemented using only the three structured constructs. (True/False)
Reuse
In the software engineering context, what is the idea both old and new?
Ad Hoc
What was the early approach to reuse?
Component-based software engineering
What does CBSE stand for?
Component-based software engineering
What is a process that emphasizes the design and construction of computer-based system using reusable software components?
Commercial off the shelf
What does COTS stand for?
Component Qualification
Component Adaption
Component Composition
Component Update
What are the four CBSE component levels? (In order)
White-box wrapping
When a software team has full access to the internal design and code for a component what is applied?
White-box wrapping
What examines the internal processing details of the component and makes code-level modifications to remove any conflict?
Gray-box wrapping
What is applied when the component library provides a component extension language or API?
Black-box wrapping
What requires the introduction of pre- and postprocessing at the component interface?
New component is created
What happens if a component cannot be found?
Design for reuse
What does DFR stand for?
Concept
Content
Context
What are the three 3C model components?
User Interface Design
What is the title of chapter 15?
Human interaction
What do all computer systems require?
Study humans
To make technology that fits human being, it is necessary to do what?
Place the user in control
Reduce the user's memory load
Make the interface consistent
What are the three golden rules of user interface design?
False
A well-designed user interface does tax a user's memory because the more a user has to remember, the more error-prone the interaction will be. (True/False)
True
Whenever possible, the system should remember pertinent information and assist the user with an interaction scenario that assists recall. (True/False)
True
Things that look different should act different. Things that look the same should act the same. (True/False)
Visual information organized according to design rules
Input mechanism constrained to limit application
Mechanisms for navigating from task to task
What three things does interface imply?
User model
Design model
Mental model
Implementation model
What are the four different interface analysis models?
True
Pay attention to what users do, not what they say. (True/False)
Interface analysis and modeling
Interface design
Interface construction
Interface validation
What are the four interface processes? (in order)
Iterative nature
Why can analysis and design process for user interface be represented using a spiral model?
True
You should understand the problem before you attempt to design a solution. (True/False)
People
Tasks that perform work
Content that is presented
Environment for tasks conducted
Understanding the problem means the understanding of what four things? (Interface analysis)
True
We should work to understand the users themselves as well as how these people will use the system. (True/False)
False (far better to adapt...)
It is far worse to adapt the technology to the user than to force the user to adapt to the technology. (True/False)
UML swimlane diagram
Workflow can be represented effectively with what type of diagram?
Generated by components
Acquired from data stored in database
Transmitted from systems external to the application
What three things are related to analysis of display content? (These are in reference to data objects)
Format
Aesthetics
During interface analysis, what is considered?
Physical environment
Workplace culture
What two things play a roll in analysis of the work environment?
Define interface objects and actions
Identify events
Depict representation of each state
Indicate how the user interprets each state
What are the four interface design steps? (in order)
Iterative process
Interface design is what type of process?
False (have become so common... patterns have emerged)
Graphical user interfaces have become less common that a wide variety of user interface design patterns have stopped emerging. (True/False)
Response time
What is the largest complaint from users in reference to interfacing?
Response time
Help Facilities
Error Handling
Menu and Command Labeling
Application Accessibility
Internationalization
What are the six design issues?
First impression
What is the user interface of a Web or mobile app?
Don't force user to read voluminous amount of text
Don't make users scroll unless unavoidable
Don't rely on browser functions to assist
Don't allow aesthetics to supersede functionality
Don't force the user to search for how to link content
What are the few pragmatic "don'ts" for interface design?
Well-designed interface
What improves the user's perception of the content or service provided by the site?
End user
Sales people
Support staff
What are the three groups software teams should talk to?
True
An effective WebApp interface must answer each question. (True/False)
Where am I?
What can I do now?
Where have I been and where can I go?
What are the three questions for WebApp and Mobile Interface Design?