CS 351 Final Howell

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?