Software Engineering Final IST 356

Ace your homework & exams now with Quizwiz!

Which is not a type of cohesion for Object-Oriented classes?

Data

What factors argue against developers testing their own code?

Developers have a vested interested in "proving" that their code is correct, and they may miss obvious errors since they are so close to the code. This is similar to a writer proof-reading their own work.

Which of the following is not one of the five design class types

Entity classes

"Good enough" software is always what you should strive for.

False

At the architectural design level, the details of method implementations are

False

Design patterns are not applicable to the design of object-oriented software?

False

During architectural design, the internal data structures and processing details of each component are represented at a level of abstraction that is close to code.

False

Infrastructure components or elaborated component-level classes should be named with names drawn from the problem domain, and have meaning to all stakeholders.

False

It may not be possible to predict the right architectural design choices before building a new product.

False

Since modularity is an important design goal it is not possible to have too many modules in a proposed design.

False

Technical reviews cannot really be applied to the architectural design.

False

Testing creates quality in a software product

False

The architectural description for a software project is explicitly visible in the source code used to implement it.

False

The best representation of a system architecture is an operational software prototype

False

The deployment design elements specify the build order for the software components.

False

The more a component depends on other concrete components (rather than on abstractions such as an interface), the less difficult it will be to extend.

False

The relative costs to find and repair an error or defect decrease dramatically as we go from prevention to detection to internal failure to external failure costs.

False

Top down integration eliminates the need for complex stubs.

False

We begin testing with the whole application, and then work our way inwards, ultimately testing components

False

When using structural design methodologies the process of stepwise refinement is unnecessary.

False

Explain how effective modular design is achieved through functional independence of the individual modules?

Functional independence of modules is achieved by making modules single-minded (high cohesion) and preventing excessive interaction (low coupling) with other modules or system elements. Independent modules are easier to develop, maintain, and test, because the impact of side effects is reduced (as is the propagation of errors). This also makes it easier to perform parallel implementation of modules.

Describe the software quality dilemma.

If you produce a software system that has terrible quality, you lose because no one will want to buy it. If on the other hand you spend infinite time, extremely large effort, and huge sums of money to build the absolutely perfect piece of software, then it's going to take so long to complete and it will be so expensive to produce that you'll be out of business anyway."

Why are lots of easy-to-run unit tests and regression testing so important in an agile software development model?

In agile, we expect change to happen often. So, we need a way to make sure that changes that we make have not broken something that was already working.

Describe the meaning of the Open-Closed Principle in Object-Oriented component- level design.

You should specify the component in a way that allows a class to be extended (withing the functional domain that it addresses) without the need to make internal (code or logic-level) modifications to the component itself.

The Open-Closed Principle states that:

a module [component] should be open for extension but closed for modification.

Which of the following cannot be considered architectural components of a software system?

algorithms

Which of the following is used to model the way in which the software interacts with entities external so its boundaries?

architectural context diagram

Which of the following are areas of concern in the design model?

architecture, data, interfaces

__________ is conducted at one or more end-user sites.

beta testing

Which are the constrained logical constructs from which any program can be performed? (Select all that apply)

condition, repetition, sequence

Which of the following is not a characteristics common to all design methods?

configuration management

__________ is the extent to which a program satisfies its specifications and fulfills the customer's mission objectives.

correctness

Which design model elements are used to depict a model of information represented from the user's view?

data design elements

Which of the following architectural styles is best applied when input data is to be transformed through a series of computational or manipulative components into output data?

data flow

What types of abstraction are used in software design?

data, procedural

Which is not a common view of components in a software system?

data-centric view

When should an independent test group (ITG) become involved in the development process?

during analysis and design

__________ is the degree to which operations and information can be located or initiated.

efficiency

Reliability is the degree to which the software satisfies stated needs

false

Testing is synonymous with debugging

false

Which is not one of Garvin's five different points of view regarding quality?

financial view

Cohesion is a qualitative indication of the degree to which a module can be written more compactly.

focuses on just one thing

Designs should strive for

high cohesion and low coupling.

Which of these are characteristics of a good design?

implements all requirements in the requirements model, provides a complete picture of the software.

__________ focuses on the design and construction of the software architecture.

integration testing

In McCall's Quality Factors, __________ is the extend to which access to software or data by unauthorized persons can be controlled.

integrity

Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

interface design

__________ is the effort required to couple one system to another.

interoperability

Coupling is a qualitative indication of the degrees to which a module can be written more compactly.

is connected to other modules and the outside world

Which is the following architectural design work product would most likely be preferred by managers or marketing experts?

language metaphor

Which of the following, according to the text, describes a view of components that relies on existing software components or design patterns?

process-related view

The importance of software design can be summarized in a single word.

quality

_________ ensures that new errors have not been introduced when code is modified.

regression testing

Where does the context for the architectural design come from?

requirements model

__________ is the degree to which the software handles bad input data or inappropriate user interaction.

robustness

__________ makes heavy use of testing techniques that exercise specific paths in the code, to ensure complete coverage and maximum error detection.

unit testing

_________ refers to the set of tasks that ensure that the software that has been built is traceable to customer requirements.

validation

__________ refers to the set of tasks that ensure that software correctly implements a specific function.

verification

An archetype is an abstraction, similar to a class, that represents one element of system behavior.

True

Architectural design is often done by design specialists, rather than the software engineers who will be actually building the software.

True

Architectural styles can be combined.

True

As the amount of communication and collaboration increases (i.e., as the degree of "connectedness" between classes increases), the complexity of the system also increases.

True

Classes that change together belong together -- i.e., they should be packaged cohesively.

True

Ideally, each component should be described according to its concept, content, and context.

True

In Object-Oriented design, it is good practice for a component that uses a base class to continue to function properly if a class derived from the base class is passed to the component instead.

True

In agile development, the architecture of the system may be developed iteratively.

True

In practice, many software architectures suffer from unnecessary complexity, driven by the inclusion of unnecessary features or nonfunctional requirements.

True

Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.

True

It is important to keep some record of why architectural design decisions were made.

True

Many client-specific interfaces are better than one general-purpose interface.

True

Most agile developers agree that it is important to focus on architectural design before implementation if the system is complex.

True

Software design are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain

True

Software engineers are sometimes frustrated by the subjective nature of measuring quality

True

Software quality is often influenced as much by management decisions as it is by technology decisions.

True

Software that does not exhibit high quality is easier to hack.

True

Testing affirms the quality of a software product

True

The boundary between content and function is often blurred when Web-based systems and applications are considered.

True

The developer is always responsible for testing the individual units (components) of a program.

True

There is no definitive answer to the question, "how do we know that we've tested enough?"

True

We should write our unit tests before we write the code

True

Which of the following can be used to represent the architectural design of a piece of software?

All of the above

Which design model is equivalent to a set of detailed drawings for each room in a house?

Component level design

__________ is a qualitative measure of the degree to which classes are connected to one another.

Coupling

Garvin says that quality software should be "durable." What does this mean?

"Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects? Will changes cause the error rate or reliability to degrade with time?"

Which design equivalent to the floor plan of a house

Architectural design

Why is architectural design important?

Architectural design provides developers and other stakeholders with a big picture view of the system, and allows us to make key design decisions before implementation begins. Architecture "constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together."

One of the challenges facing widespread reuse of software components is _________.

Architectural mismatch

______ is a process that emphasizes the design and construction of computer-based systems using reusable software "components."

CBSE

Describe the principle of information hiding as it applies to software design.

The principle of information hiding implies that modules only share information with each other on a "need to know" basis to achieve some specific software function. Hiding enforces the procedural constraints to both the module procedural detail and any data structures local to the module.

Consider the "Keep It Simple, Stupid" (KISS) principle. Why should the architectural design be kept as simple as possible, while still solving the problem?

This can be boiled down to the "economy" architectural consideration: the best software is uncluttered and relies on abstraction to reduce -- not increase -- unnecessary detail.


Related study sets

Chapter 3b: Brain Anatomy and Hindbrain

View Set

Week 3 practice Assignment, ETH/321: week 3 practice

View Set

Local Anesthetic Midterm and Quizzes

View Set

11./1. ÖSSZEFOGLALÁS: 1.1. Erőforrások a vállalkozások szolgálatában, 1.2. A vállalkozások vagyona, 1.3. Eszközök, 1.4. Befektetett eszközök (A) ESZKÖZ, 1.5. Forgóeszközök (B) ESZKÖZ, 1.6. Aktív időbeli elhatárolások (C) ESZKÖZ

View Set

Chapter 3.2 Exam - Policy provisions options and riders

View Set