Chapter 2
SOFTWARE DESIGN
MCQ :
1 - - ……………. defines how software is
decomposed and organized into components
and the interfaces between those components
?
A – Hardware architecture
B – System architecture
C – Software architecture
D – Network architecture
2 - ……………… is important to
understand the major characteristics of
software requirements analysis, software
design, software construction, software
testing, and software maintenance ?
A – Software design
B – system design
C – Software architecture
D – System architecture
3 - …………..is a measure of the
interdependence among modules in a
computer program, ……………….. is a
measure of the strength of association of the
elements within a module ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Decomposition and modularization
D – Coupling and Cohesion
4 - …………… means that large software is
divided into a number of smaller named
components having well-defined interfaces
that describe component interactions ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Decomposition and modularization
D – Coupling and Cohesion
5 - ………………… the goal is to place different
functionalities and responsibilities in different
components ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Decomposition and modularization
D – Coupling and Cohesion
6- …………….. means grouping and packaging
the internal details of an abstraction and
making those details inaccessible to external
entities ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Decomposition and modularization
D – Coupling and Cohesion
7 - …………… defining a component by
specifying a public interface (known to the
clients) that is separate from the details of
how the component is realized ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Decomposition and modularization
D – Coupling and Cohesion
8 - ……………… means ensuring that a
software component captures all the
important characteristics of an abstraction
and nothing more, ………………… means the
design should be based on patterns that are
easy to implement ?
A – Encapsulation and information hiding
B – Separation of interface and
implementation
C – Separation of concerns
D – Sufficiency, completeness, and
primitiveness
9 - …………………….. is area of interest with
respect to a software design ?
A – Coupling
B – Cohesion
C – primitiveness
D – Concern
10 - These lower level design patterns not
include?
A – Creational patterns
B – Structural patterns
C – Behavioral patterns
D – Conceptual patterns
11 - It is useful to think of the architectural
design process from a …………….. perspective
rather than from an activity perspective?
A – network-design
B – software-design
C – hardware-design
D – decision-making
12 - …………the process of defining the
architecture, components, interfaces, and
other characteristics of a system or
component ?
A – Design
B – Software Detailed design
C – Software Architectural design
D – Software design
13 - …………. is the software engineering life
cycle activity in which software requirements
are analyzed in order to produce a description
of the software’s internal structure that will
serve as the basis for its construction ?
A – Design
B – Software Detailed design
C – Software Architectural design
D – Software design
14 - …………how software is decomposed and
organized into components and the interfaces
between those components ?
A – Design
B – Software detailed design
C – Software architecture
D – Software design
15 - …………..develops top-level structure and
organization of the software and identifies the
various components ?
A – Design
B – Software detailed design
C – Software architectural design ( high-level
design )
D – Software design
16 - ……………… specifies each component in
sufficient detail to facilitate its construction ?
A – Design
B – Software detailed design
C – Software architectural design ( high-level
design )
D – Software design
17 - Software design fundamentals introduced
here form an underlying basis for
understanding the ……and…….. of the
software design ?
A – role and scope
B – Concepts and notations
C – Notations and terminology
D – Coupling and Cohesion
18 - A number of other notions and concepts
are also of interest in understanding design in
its general sense are ……………….. ?
A – goals, alternatives, representations,
solutions
B – goals, constraints, representations,
solutions
C – goals, constraints, alternatives, solutions
D – goals, constraints, alternatives,
representations, solutions
19 - ……………. is a comprehensive and
fundamental law, doctrine, or assumption ?
A – Coupling
B – Cohesion
C – Abstraction
D – Principle
20 - ……………….. is a view of an object that
focuses on the information relevant to a
particular purpose and ignores the remainder
of the information ?
A – Coupling
B – Cohesion
C – Abstraction
D – Principle
21- ……………… is concerned with
decomposing software into processes, tasks,
and threads and dealing with related issues of
efficiency, atomicity, synchronization, and
scheduling ?
A – Concurrency
B – Control and handling of events
C – Data Persistence
D – Distribution of components
22 - …………. is concerned with how to
organize data and control flow as well as how
to handle reactive and temporal events ?
A – Concurrency
B – Control and handling of events
C – Data Persistence
D – Distribution of components
23 - …………… is concerned with how to
handle long-lived data ?
A – Concurrency
B – Control and handling of events
C – Data Persistence
D – Distribution of components
24 - …………….. is concerned with how to
distribute the software across the
hardware ,how the components communicate,
how middleware can be used to deal with
heterogeneous software ?
A – Concurrency
B – Control and handling of events
C – Data Persistence
D – Distribution of components
25 - ………………. …is concerned with how to
prevent, tolerate, and process errors and deal
with exceptional conditions ?
A – Error and exception handling and fault
tolerance
B – Interaction and presentation
C – Security
D – Concurrency
26 - ……………. is concerned with how to
structure and organize interactions with users
as well as the presentation of information ?
A – Error and exception handling and fault
tolerance
B – Interaction and presentation
C – Security
D – Concurrency
27 - …………. . is concerned with how to
prevent unauthorized disclosure, creation,
change, deletion, or denial of access to
information and other resources ?
A – Error and exception handling and fault
tolerance
B – Interaction and presentation
C – Security
D – Concurrency
28 - ……………………… is concerned with how
to tolerate security-related attacks or
violations by limiting damage, continuing
service, speeding repair and recovery, and
failing and recovering securely ?
A – Error and exception handling and fault
tolerance
B – Interaction and presentation
C – Security
D – Concurrency
29 -………………. is “the set of structures
needed to reason about the system, which
comprise software elements, relations among
them, and properties of both ?
A – Design
B – Software detailed design
C – Software architecture
D – Software design
30 - A …………………. represents a partial
aspect of a software architecture that shows
specific properties of a software system ?
A – View
B – Abstraction
C – Principle
D – Design
31 - ……………..is which “tend not to be units
of software’s functional decomposition, but
rather to be properties that affect the
performance or semantics of the components
in systemic ways ?
A – Components
B – Aspects
C – Concerns
D – None of them
32 - ……………….. for example, builder,
factory, prototype, singleton ?
A – Creational patterns
B – Structural patterns
C – Behavioral patterns
D – None of them
33 -…………… for example, adapter, bridge,
composite, decorator, façade, flyweight, proxy
?
A – Creational patterns
B – Structural patterns
C – Behavioral patterns
D – None of them
34 - ………….. for example, command,
interpreter, iterator, mediator, memento,
observer, state, strategy, template, visitor ?
A – Creational patterns
B – Structural patterns
C – Behavioral patterns
D – None of them
35 - ………………….. is a creative process.
During the design process, software designers
have to make a number of fundamental
decisions that profoundly affect the software
and the development process ?
A – Design
B –detailed design
C –architectural design
D – Software design
36 -………… for example, layers, pipes and
filters, blackboard ?
A – General structures
B – Distributed systems
C – Interactive systems
D – Adaptable systems
37 – ………………… for example, client server,
three-tiers, broker ?
A – General structures
B – Distributed systems
C – Interactive systems
D – Adaptable systems
38 - ……………… for example, Model-View
Controller, Presentation-Abstraction-Control ?
A – General structures
B – Distributed systems
C – Interactive systems
D – Adaptable systems
39 - ………….. for example, microkernel,
reflection ?
A – General structures
B – Distributed systems
C – Interactive systems
D – Adaptable systems
40 - ………………. for example, batch,
interpreters, process control, rule-based ?
A – General structures
B – Distributed systems
C – Interactive systems
D – Others
41 - ………………… is a specialization of
element and relation types, together with a
set of constraints on how they can be used ?
A – architectural style
B – Architectural design
C – All of them
D – None of them
True or False Questions :
1 - Detailed design describes the desired
behavior of these components ?
2 – Architectural design describes how
software is organized into components ?
3 - A design concern is an area of design
that is relevant to one or more of its
stakeholders ?
4 - Primitiveness means the design should
be based on patterns that are difficult to
implement ?
5 - Each architecture view frames one or
more concerns ?
6 - A pattern is “a common solution to a
common problem in a given context ” ?
7 - A software design describes the
software architecture ?
8 - Software design consists of two
activites : Software architectural design
and Software detailed design ?
9 – Software design can be viewed as a
form of problem solving ?
10 - design is an important part of the
software development process ?
11 - it isn’t important to understand the
major characteristics of software
requirements analysis, software design,
software construction, software testing,
and software maintenance ?
12 - The output of these two processes is
a set of models and artifacts ?
13 - In the context of software design, two
key abstraction mechanisms are
parameterization and specification ?
14 - Abstraction by specification abstracts
from the details of data representations
by representing the data as named
parameters ?
15 - Abstraction by parameterization
leads to three major kinds of abstraction:
procedural abstraction, data abstraction,
and control (iteration) abstraction ?
16 - Access control is a fundamental
concept of security, and one should also
ensure the proper use of cryptology ?
17 - Some of these concepts can be
useful during the architectural design (for
example, architectural styles) as well as
during the detailed design (for example,
design patterns) ?
18 - A number of key issues must be dealt
with when designing software. Some are
quality concerns that all software must
address—for example, decompose,
organize, and package software
components ?
19 - Another important issue is how to
performance, security, reliability ,
usability ?
20 - In object-oriented (OO) programming,
a key related notion is that of a
framework ?
21 - One approach to providing for reuse
of software designs and components is to
design families of programs, also known
as software product lines ?