seq3

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Sri Vidya College of Engineering and Technology Question bank – UNIT 3

UNIT 3 – TWO MARKS

1. What are the golden rules of an interface design?


• Place the user in control.
• Reduce the user’s memory load.
• Make the interface consistent.

2. Write note on FURPS model of design quality.


• Functionality 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 is assessed by considering human factors , overall aesthetics, consistency,
and documentation.
• Reliability is evaluated by measuring the frequency and severity of failure, the
accuracy of output results, the mean-time-to-failure (MTTF), the ability to recover
from failure, and the predictability of the program.
• Performance is measured by considering processing speed, response
time, Resource consumption, throughput, and efficiency.
• Supportability combines the ability to extend the program (extensibility), adaptability,
serviceability

3. What is cohesion?

Cohesion as the “single-mindedness” of a component. Within the context of


component-level design for object-oriented systems, cohesion implies that a component or
class encapsulates only attributes and operations that are closely related to one another and to
the class or component itself. Three types of cohesion are
Functional, layer and communicational

4. What is coupling?

Coupling is a qualitative measure of the degree to which classes are connected to one
another. As classes (and components) become more interdependent, coupling increases. An
important objective in component-level design is to keep coupling as low as is possible.
Types of coupling are
Content, common, control, stamp, data, routine call, type use, inclusion and
external coupling

5. What is design process?

Software design is an iterative process through which requirements are translated into a
“blueprint” for constructing the software. Initially, the blueprint depicts a holistic view of
software. That is, the design is represented at a high level of abstraction— a level that can be
directly traced to the specific system objective and more detailed data, functional, and
behavioral requirements. As design iterations occur, subsequent refinement leads to design
representations at much lower levels of abstraction. These can still be traced to requirements,
but the connection is more subtle.

CS8494- Software Engineering Prepared by P.Ramya, AP/CSE


Sri Vidya College of Engineering and Technology Question bank – UNIT 3

6. Define abstraction with its types


At the highest level of abstraction, a solution is stated in broad terms using
the language of the problem environment. At lower levels of abstraction, a more
detailed description of the solution is provided.
A procedural abstraction refers to a sequence of instructions that have a specific
and limited function. Eg. Open for a door.
A data abstraction is a named collection of data that describes a data object. In
the context of the procedural abstraction open, we can define a data abstraction called
door.

7. What is software architecture?


The software architecture of a program or computing system is the structure or
structures of the system, which comprise software components, the externally visible
properties of those components, and the relationships among them.

8. Define modularity.
Modularity is the most common manifestation of separation of concerns. Software is
divided into separately named and addressable components, sometimes called modules
that are integrated to satisfy problem requirements. It has been stated that “modularity is
the single attribute of software that allows a program to be intellectually manageable”

9. What is refactoring?
“Refactoring is the process of changing a software system in such a way that it does
not alter the external behavior of the code [design] yet improves its internal structure.”

10. What is archetypes and list out its different types?


An archetype is a class or pattern that represents a core abstraction that is
critical to the design of architecture for the target system. In general, a relatively small
set of archetypes is required to design even relatively complex systems.
Node, detector, indicator and controller

11. List out the generic structure of architectural context diagram


• Super ordinate systems—those systems that use the target system as part of some
higher-level processing scheme.
• Subordinate systems—those systems that are used by the target system and provide
data or processing that are necessary to complete target system functionality.
• Peer-level systems—those systems that interact on a peer-to-peer basis (i.e.,
information is either produced or consumed by the peers and the target system.
• Actors—entities (people, devices) that interact with the target system by producing
or consuming information that is necessary for requisite processing.

12. What are the elements of interface design?


There are three important elements of interface design:
1) the user interface (UI);
2) External interfaces to other systems, devices, networks, or other producers
or consumers of information;
(3) Internal interfaces between various design components.

CS8494- Software Engineering Prepared by P.Ramya, AP/CSE


Sri Vidya College of Engineering and Technology Question bank – UNIT 3

These interface design elements allow the software to communicate externally and enable
internal communication and collaboration among the components that populate the
software architecture.

13. List any four technical criteria for good design


o A design should be modular; that is, the software should be logically partitioned
into elements or subsystems.
o A design should contain distinct representations of data, architecture,
interfaces, and components.
o A design should lead to components that exhibit independent functional
characteristics.
o A design should lead to interfaces that reduce the complexity of connections
between components and with the external environment.

14. How pattern differs from a style?

A pattern differs from a style in a number of fundamental ways:


(1) The scope of a pattern is less broad, focusing on one aspect of the architecture rather
than the architecture in its entirety;
(2) A pattern imposes a rule on the architecture, describing how the software will handle
some aspect of its functionality at the infrastructure level (e.g., concurrency)
(3) Architectural patterns tend to address specific behavioral issues within the context of
the architecture. Patterns can be used in conjunction with an architectural style to shape the
overall structure of a system.

15. What is the need for architectural mapping using dataflow?

A mapping technique, called structured design is often characterized as a data flow-


oriented design method because it provides a convenient transition from a data flow diagram
to software architecture. The transition from information flow (represented as a DFD) to
program structure is accomplished as part of a six step process: (1) the type of information
flow is established, (2) flow boundaries are indicated, (3) the DFD is mapped into the
program structure, (4) control hierarchy is defined, (5) the resultant structure is refined using
design measures and heuristics, and (6) the architectural description is refined and elaborated.

16. What is open closed principle?


“A module [component] should be open for extension but closed for
modification”. This statement seems to be a contradiction, but it represents one of the
most important characteristics of a good component-level design. Stated simply, you
should specify the component in a way that allows it to be extended (within the
functional domain that it addresses) without the need to make internal (code or logic-
level) modifications to the component itself. To accomplish this, you create abstractions
that serve as a buffer between the functionality that is likely to be extended and the
design class itself.

17. List out the steps applied to develop a decision table?


• List all actions that can be associated with a specific procedure (or component).
• List all conditions (or decisions made) during execution of the procedure.

CS8494- Software Engineering Prepared by P.Ramya, AP/CSE


Sri Vidya College of Engineering and Technology Question bank – UNIT 3

• Associate specific sets of conditions with specific actions, eliminating


impossible combinations of conditions; alternatively, develop every possible
permutation of conditions.
• Define rules by indicating what actions occur for a set of conditions.

18. List various types of architectural styles


• Data centered architecture
• Data flow architecture
• Call and return architecture
• Object oriented architecture
• Layered architecture

15 MARKS

1. Examine Architectural Styles with neat diagrams.


a. Data centered architecture
b. Data flow architecture
c. Call and return architecture
d. Object oriented architecture
e. Layered architecture

2. Describe in detail about design concepts used in software engineering.


a. Abstraction
b. Architecture
c. Pattern
d. Modularity
e. Separation of concern
f. Information hiding
g. Functional independence
h. Refinement
i. Aspects

3. Apply your understanding about transform mapping with an example?


The transition from information flow (represented as a DFD) to program structure is
accomplished as part of a six step process.
The type of information flow is established,
(1) Flow boundaries are indicated,
(3) The DFD is mapped into the program structure,
(4) Control hierarchy is defined,
(5) The resultant structure is refined using design measures and heuristics, and
(6) The architectural description is refined and elaborated.

4. Explain cohesion and coupling types with an example


Refer question 3 and 4

CS8494- Software Engineering Prepared by P.Ramya, AP/CSE


Sri Vidya College of Engineering and Technology Question bank – UNIT 3

5. Describe the golden rules for interface


design Refer question 1

6. Explain component level design with suitable diagram


The following steps represent a typical task set for component-level design, when it is
applied for an object-oriented system.
Step 1. Identify all design classes that correspond to the problem domain.
Step 2. Identify all design classes that correspond to the infrastructure domain.
Step 3. Elaborate all design classes that are not acquired as reusable components.
Step 3a. Specify message details when classes or components collaborate.
Step 3b. Identify appropriate interfaces for each component
Step 3c. Elaborate attributes and define data types and data structures required
to implement them.
Step 3d. Describe processing flow within each operation in detail.
Step 4. Describe persistent data sources (databases and files) and identify the
classes required to manage them.
Step 5. Develop and elaborate behavioral representations for a class or component.
Step 6. Elaborate deployment diagrams to provide additional implementation detail.
Step 7. Refactor every component-level design representation and always consider
alternatives.

7. List the basic design principles of class based components


The Open-Closed Principle (OCP). “A module [component] should be open
for extension but closed for modification”
The Liskov Substitution Principle (LSP). “Subclasses should be substitutable
for their base classes”
Dependency Inversion Principle (DIP). “Depend on abstractions. Do not
depend on concretions”
The Interface Segregation Principle (ISP). “Many client-specific
interfaces are better than one general purpose interface”
The Release Reuse Equivalency Principle (REP). “The granule of reuse is the
granule of release” The Release Reuse Equivalency Principle (REP). “The granule of
reuse is the granule of release”
The Common Closure Principle (CCP). “Classes that change together belong
together.”
The Common Reuse Principle (CRP). “Classes that aren’t reused together
should not be grouped together”

8. Describe in detail about to design a traditional components


• Graphical design notation
• Tabular design notation
• Program design language

CS8494- Software Engineering Prepared by P.Ramya, AP/CSE

You might also like