SE Unit-3 Meterial

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

III B.

Sc Sem-5 Software Engineering

UNIT III
 Software design
 Abstraction
 Modularity
 Software Architecture
 Effective modular design : Cohesion and Coupling
 Architectural design and Procedural design
 Data flow oriented design.

1 Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

1. Explain the Software design?


Software design sits at the technical kernel of software engineering and is applied
regardless of the software process model that is used. Beginning once software requirements
have been analyzed and modeled, software design is the last software engineering action within
the modeling activity and sets the stage for construction.

The requirements model, manifested by scenario-based, class-based, flow-oriented, and


behavioral elements, feed the design task.
 The data design transforms the information domain model created during analysis into
the data structures that will be required to implement the software.
 The architectural design defines the relationship between major structural elements of
the software, the “design patterns” that can be used to achieve the requirements and have
been defined for the system, and the constraints that affect the way in which architectural
design patterns can be applied.
 The interface design describes how the software communicates within itself, with
systems that interoperate with it, and with humans who use it. An interface implies a
flow of information (e.g., data and/or control) and a specific type of behavior.
 The component-level design transforms structural elements of the software architecture
into a procedural description of software components.
-----------------------------------------------XXXXXXXXXXXXX---------------------------------
2

2. Explain the Abstraction?


Page

 Highest level of abstraction : Solution is slated in broad terms using the language of the
problem environment
Department of Computer Science, TJPS College, Guntur
III B.Sc Sem-5 Software Engineering

 Lower levels of abstraction : More detailed description of the solution is provided


 Procedural abstraction: :Refers to a sequence of instructions that has a specific and
limited function. Ex The word open of a door which implies a long sequence of
procedural steps (e.g., walk to the door, grasp the knob, pull the door& step away from
moving door etc)
 Data abstraction: Named collection of data that describe a data object (Ex: door would
encompass a set of attributes like door type,weight,dimensions etc.
---------------------------XXXXXXXXXXXXXXXXXX-----------------------------------------
3. Explain the 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. Modularity is the single attribute
of software that allows a program to be intellectually manageable.
Modular decomposability : If a design method provides a systematic mechanism for
decomposing the problem into sub problems, it will reduce the complexity of the overall
problem, thereby achieving an effective modular solution.
Modular composability : If a design method enables existing design components to be
assembled into a new system, it will yield a modular solution that does not reinvent the wheel.
Modular understandability : If a module can be understood as a standalone unit it will be
easier to build and easier to change.
Modular continuity : If small changes to the system requirements result in changes to
individual modules, rather than system wide changes, the impact of change-induced side effects
will be minimized.
Modular protection : If an aberrant condition occurs within a module and its effects are
constrained within that module, the impact of error-induced side effects will be minimized.
3Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

4. Explain the Software Architecture?


1. What Is Architecture :
The architecture is not the operational software. it is a representation that enables you to
(1) analyze the effectiveness of the design in meeting its stated requirements,
(2) consider architectural alternatives at a stage when making design changes is still relatively
easy, and
(3) reduce the risks associated with the construction of the software.
Architectural design, a software component can be something as simple as a program module or
an object-oriented class, but it can also be extended to include databases and “middleware” that
enable the configuration of a network of clients and servers. The properties of components are
those characteristics that are necessary for an understanding of how the components interact with
other components. The relationships between components can be as simple as a procedure call
from one module to another or as complex as a database access protocol.
software architecture considers two levels of the design pyramid data design and architectural
design. Architectural design focuses on the representation of the structure of software
components, their properties, and interactions.
2. Why Is Architecture Important :
• Representations of software architecture are an enabler for communication between all parties
(stakeholders) interested in the development of a computer-based system.
• The architecture highlights early design decisions that will have a profound impact on all
software engineering work that follows and, as important, on the ultimate success of the system
as an operational entity.
• Architecture “constitutes a relatively small, intellectually graspable model of how the system is
structured and how its components work together”
3. Architectural Descriptions:
The implication is that different stakeholders will see an architecture from different viewpoints
that are driven by different sets of concerns. This implies that an architectural description is
actually a set of work products that reflect different views of the system.
An architectural description of a software-based system must exhibit characteristics that are
analogous to those noted for the office building. The IEEE Computer Society has proposed
IEEE-Std-1471-2000, Recommended Practice for Architectural Description of Software-
Intensive Systems, [IEE00], with the following objectives:
(1) to establish a conceptual framework and vocabulary for use during the design of software
4Page

architecture,
(2) to provide detailed guidelines for representing an architectural description, and

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

(3) to encourage sound architectural design practices.


The IEEE standard defines an architectural description (AD) as “a collection of products to
document an architecture. The description itself is represented using multiple views, where each
view is “a representation of a whole system from the perspective of a related set of concerns.” A
view is created according to rules and conventions defined in a viewpoint “a specification of the
conventions for constructing and using a view”.
4. Architectural Decisions :
Architectural decisions themselves can be considered to be one view of the architecture. The
reasons that decisions were made provide insight into the structure of a system and its
conformance to stakeholder concerns. you can use the template suggested in the sidebar to
document each major decision. A ration for your work and establish an historical record that can
be useful when design modifications must be made.
-------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----------
5. Explain the Effective modular design?
1. Functional Independence: The concept of functional independence is a direct outgrowth of
modularity and the concepts of abstraction and information hiding. Functional independence is
achieved by developing modules with "single-minded" function and an "aversion" to excessive
interaction with other modules. we want to design software so that each module addresses a
specific sub function of requirements and has a simple interface when viewed from other parts
of the program structure.
Software with effective modularity, that is, independent modules, is easier to
develop because function may be compartmentalized and interfaces are simplified. Independent
modules are easier to maintain because secondary effects caused by design or code modification
are limited, error propagation is reduced, and reusable modules are possible. functional
independence is a key to good design, and design is the key to software quality.
Independence is measured using two qualitative criteria: cohesion and
coupling. Cohesion is a measure of the relative functional strength of a module. Coupling is a
measure of the relative interdependence among modules.
2. Cohesion : A cohesive module performs a single task within a software procedure, requiring
little interaction with procedures being performed in other parts of a program. Cohesion may be
represented as a "spectrum".
coincidentally cohesive: At the low end of the spectrum, we encounter a module that performs a
set of tasks that relate to each other loosely, if at all. Such modules are termed coincidentally
5 Page

cohesive.

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

logically cohesive : A module that performs tasks that are related logically. e.g. , a module that
produces all output regardless of type.
Temporal cohesion : When a module contains tasks that are related by the fact that all must be
executed with the same span of time, the module exhibits.
It performs the following tasks:
(1) computes supplementary data based on original computed data,
(2) produces an error report (with graphical content) on the user's workstation,
(3) performs follow-up calculations requested by the user,
(4) updates a database, and
(5) enables menu selection for subsequent processing
procedural cohesion : When processing elements of a module are related and must be executed
in a specific order.
communicational cohesion : When all processing elements concentrate on one area of a data
structure.
3. Coupling : Coupling is a measure of interconnection among modules in a software structure.
Coupling depends on the interface complexity between modules.

Examples of different types of module coupling: Modules a and d are subordinate to different
modules. Module c is subordinate to module a and is accessed via a conventional argument list,
through which data are passed.
Data coupling : Operation A() passes one or more atomic data operands to operation B(); the
less the number of operands, the lower the level of coupling.
Stamp coupling: A whole data structure or class instantiation is passed as a parameter to an
operation.
6
Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

Control coupling: Operation A() invokes operation B() and passes a control flag to B that
directs logical flow within B(). Consequently, a change in B() can require a change to be made
to the meaning of the control flag passed by A(), otherwise an error may result.
Common coupling : A number of components all make use of a global variable, which can lead
to uncontrolled error propagation and unforeseen side effects.
Content coupling : One component secretly modifies data that is stored internally in another
component.
Other kinds of coupling
Subroutine call coupling : When one operation is invoked it invokes another operation within
side of it.
Type use coupling : Component A uses a data type defined in component B, such as for an
instance variable or a local variable declaration. If the type definition changes, every component
that declares a variable of that data type must also change
Inclusion or import coupling : Component A imports or includes the contents of component B.
External coupling : A component communicates or collaborates with infrastructure components
that are entities external to the software (e.g., operating system functions, database functions,
networking functions).
--------------------------------------XXXXXXXXXXXXXX------------------------------------------
6. Explain the Architectural design and Procedural design?
Architectural design: Architectural design begins, the software to be developed must be put
into context. The design should define the external entities.
1. Representing the System in Context :
 Superordinate 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.
7
Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

2. Defining Archetypes: An archetype is a class or pattern that represents a core abstraction that
is critical to the design of an architecture for the target system.
Node : Represents a cohesive collection of input and output elements of the home security
function. For example a node might be comprised of (1) various sensors and (2) a variety of
alarm (output) indicators.
Detector : An abstraction that encompasses all sensing equipment that feeds information into
the target system.

8
Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

Indicator : An abstraction that represents all mechanisms (e.g., alarm siren, flashing lights, bell)
for indicating that an alarm condition is occurring.
Controller : An abstraction that depicts the mechanism that allows the arming or disarming of a
node. If controllers reside on a network, they have the ability to communicate with one another.
3. Refining the Architecture into Components : software architecture is refined into
components, the structure of the system begins to emerge.
 External communication management : Coordinates communication of the security
function with external entities such as other Internet-based systems and external alarm
notification.
 Control panel processing: Manages all control panel functionality.
 Detector management: Coordinates access to all detectors attached to the system.
 Alarm processing: Verifies and acts on all alarm conditions.
4. Describing Instantiations of the System : To accomplish this, an actual instantiation of the
architecture is developed. The architecture is applied to a specific problem with the intent of
demonstrating that the structure and components. The detector management component interacts
with a scheduler infrastructure component that implements polling of each sensor object used by
the security system.

9
Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

Procedural design : Procedural design are data flow diagrams and structure charts.
Data Flow Diagrams : A data flow diagram (or DFD) is a tool to help you discover and
document the program’s major processes.

Structure Charts : A structure chart is a tool to help you derive and document the program’s
architecture. It is similar to an organization chart.

When a component is divided into separate pieces, it is called the parent and its pieces are
10

called its children


Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

7. Explain the Data flow oriented design?


Data Flow Diagram : Data Flow Diagram (DFD) is a graphical representation of flow of data in
an information system. It is capable of depicting incoming data flow, outgoing data flow, and
stored data. The DFD does not mention anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of
control in program modules. DFDs depict flow of data in the system at various levels. It does not
contain any control or branch elements.
Types of DFD :
Logical DFD : This type of DFD concentrates on the system process, and flow of data in the
system. For example in a banking software system, how data is moved between different
entities.
Physical DFD : This type of DFD shows how the data flow is actually implemented in the
system. It is more specific and close to the implementation.
DFD Components : DFD can represent source, destination, storage, and flow of data using the
following set of components

 Entities : Entities are sources and destinations of information data. Entities are
represented by rectangles with their respective names.
 Process : Activities and action taken on the data are represented by Circle or Round-
edged rectangles.
 Data Storage : There are two variants of data storage - it can either be represented as a
rectangle with absence of both smaller sides or as an open-sided rectangle with only one
side missing.
 Data Flow : Movement of data is shown by pointed arrows. Data movement is shown
from the base of arrow as its source towards head of the arrow as destination.
Levels of DFD
 Level 0 : Highest abstraction level DFD is known as Level 0 DFD, which depicts the
entire information system as one diagram concealing all the underlying details. Level 0
DFDs are also known as context level DFDs.
11
Page

Department of Computer Science, TJPS College, Guntur


III B.Sc Sem-5 Software Engineering

 Level 1 : The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1
DFD depicts basic modules in the system and flow of data among various modules.
Level 1 DFD also mentions basic processes and sources of information.

 Level 2 - At this level, DFD shows how data flows inside the modules mentioned in
Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper level of
understanding unless the desired level of specification is achieved.
12
Page

Department of Computer Science, TJPS College, Guntur

You might also like