Unit 3
Unit 3
(Autonomous)
UNIT-3
DESIGN ENGINEERING
By
G. Swarnalatha, Asst . Prof
• Design Engineering : Design process and Design
quality, Design concepts, the design model.
Dept of CSE
DESIGN ENGINEERING
Dept of CSE
QUALITY GUIDELINES
• Uses recognizable architectural styles or patterns
• Modular; that is logically partitioned into elements or
subsystems
• Distinct representation of data, architecture, interfaces
and components
• Appropriate data structures for the classes to be
implemented
• Independent functional characteristics for components
• Interfaces that reduces complexity of connection
• Repeatable method
Dept of CSE
QUALITY ATTRIBUTES
• FURPS quality attributes
• Functionality
* Feature set and capabilities of programs
* Security of the overall system
• Usability
* user-friendliness
* Aesthetics
* Consistency
* Documentation
• Reliability
* Evaluated by measuring the frequency and severity of failure
* MTTF
• Supportability
* Extensibility
* Adaptability
* Serviceability
• Productivity
Dept of CSE
DESIGN CONCEPTS
1. Abstractions
2. Architecture
3. Patterns
4. Modularity
5. Information Hiding
6. Functional Independence
7. Refinement
8. Re-factoring
9. Design Classes
Dept of CSE
DESIGN CONCEPTS
• ABSTRACTION
• Many levels of abstraction
• Highest level of abstraction : Solution is slated in broad terms using
the language of the problem environment
• Lower levels of abstraction : More detailed description of the
solution is provided
• Procedural abstraction
-- Refers to a sequence of instructions that a specific and
limited function
• Data abstraction
-- Named collection of data that describe a data object
Dept of CSE
DESIGN CONCEPTS
• ARCHITECTURE
--Structure organization of program components (modules) and their
interconnection
• Architecture Models
(a). Structural Models
-- An organised collection of program components
(b). Framework Models
-- Represents the design in more abstract way
(c). Dynamic Models
-- Represents the behavioral aspects indicating changes
as a function of external events
(d). Process Models
-- Focus on the design of the business or technical process
Dept of CSE
PATTERNS
• Provides a description to enables a designer to
determine the followings :
(a). Whether the pattern is applicable to the
current work
(b). Whether the pattern can be reused
(c). Whether the pattern can serve as a guide
for developing a similar but functionally or
structurally different pattern
Dept of CSE
MODULARITY
• Divides software into separately named and addressable
components, sometimes called modules
• Modules are integrated to satisfy problem requirements
• Consider two problems p1 and p2. If the complexity of p1 is cp1
and of p2 is cp2 then effort to solve p1=cp1 and effort to solve
p2=cp2
• If cp1>cp2 then ep1>ep2
• The complexity of two problems when they are combined is often
greater than the sum of the perceived complexity when each is
taken separately
• Based on Divide and Conquer strategy : it is easier to solve a
complex problem when broken into sub-modules
Dept of CSE
INFORMATION HIDING
• Information contained within a module is inaccessible to
other modules who do not need such information
• Achieved by defining a set of Independent modules that
communicate with one another only that information
necessary to achieve S/W function
• Provides the greatest benefits when modifications are
required during testing and later
• Errors introduced during modification are less likely to
propagate to other location within the S/W
Dept of CSE
FUNCTIONAL INDEPENDENCE
• A direct outgrowth of Modularity. abstraction and information hiding.
• Achieved by developing a module with single minded function and an
aversion to excessive interaction with other modules.
• Easier to develop and have simple interface
• Easier to maintain because secondary effects caused b design or code
modification are limited, error propagation is reduced and reusable
modules are possible.
• Independence is assessed by two quantitative criteria:
• (1) Cohesion
• (2) Coupling
• Cohesion
-- Performs a single task requiring little interaction with other components
• Coupling
--Measure of interconnection among modules
Coupling should be low and cohesion should be high for good design
Dept of CSE
REFINEMENT & REFACTORING
• REFINEMENT
Process of elaboration from high level abstraction to the lowest
level abstraction
High level abstraction begins with a statement of functions
Refinement causes the designer to elaborate providing more and
more details at successive level of abstractions
Abstraction and refinement are complementary concepts.
• Refactoring
Organization technique that simplifies the design of a component
without changing its function or behavior.
Examines for redundancy, unused design elements and inefficient
or unnecessary algorithms
Dept of CSE
DESIGN CLASSES
• Class represents a different layer of design architecture.
• Five types of Design Classes
• 1. User interface class
-- Defines all abstractions that are necessary for human computer
interaction
• 2. Business domain class
-- Refinement of the analysis classes that identity attributes and services to
implement some of business domain
• 3.Process class
-- implements lower level business abstractions required to fully manage the
business domain classes
• 4.Persistent class
-- Represent data stores that will persist beyond the execution of the
software
• 5.System class
-- Implements management and control functions to operate and
communicate within the computer environment and with the outside world .
Dept of CSE
THE DESIGN MODEL
• Analysis viewed in two different dimensions as process
dimension and abstract dimension.
• Process dimension indicates the evolution of the design model
as design tasks are executed as part of software process.
• Abstraction dimension represents the level of details as each
element of the analysis model is transformed into design
equivalent
Data Design elements
-- Data design creates a model of data that is represented at a
high level of abstraction
-- Refined progressively to more implementation-specific
representation for processing by the computer base system
-- Translation of data model into a data base is pivotal to
achieving business objective of a system
Dept of CSE
THE DESIGN MODEL
Architectural design elements
• Derived from three sources
(1) Information about the application domain of the software
(2) Analysis model such as dataflow diagrams or analysis classes.
(3) Architectural pattern and styles
Interface Design elements
• Set of detailed drawings constituting:
(1) User interface
(2) External interfaces to other systems, devices etc
(3) Internal interfaces between various components
Dept of CSE
THE DESIGN MODEL
Dept of CSE
CREATING AN ARCHITECTURAL DESIGN
Dept of CSE
• Software Architecture is not the operational software.
• It is a representation that enables a software engineer
to:
Analyze the effectiveness of the design in meeting its stated
requirements.
consider architectural alternative at a stage when making
design changes is still relatively easy .
Reduces the risk associated with the construction of the
software.
Dept of CSE
• Why Is Architecture Important?
Three key reasons
--Representations of software architecture
enables communication and understanding
between stakeholders
--Highlights early design decisions to create an
operational entity.
--constitutes a model of software components
and their interconnection
Dept of CSE
Data Design
Dept of CSE
DATA DESIGN AT ARCHITECTURE
LEVEL
• Data structure at programming level
Dept of CSE
DATA DESIGN AT COMPONENT LEVEL
• Principles for data specification:
1. Proper selection of data objects and data and data models
2.Identification of attribute and functions and their encapsulation
of these within a class
3.Mechanism for representation of the content of each data
object. Class diagrams may be used
4.Refinement of data design elements from requirement analysis
to component level design.
5.Information hiding
6.A library of useful data structures and operations be developed.
7.Software design and PL should support the specification and
realization of abstract data types..
Dept of CSE
ARCHITECTURAL STYLES
Dept of CSE
Dept of CSE
Data-flow architectures
• Shows the flow of input data, its computational
components and output data
• Structure is also called pipe and Filter
• Pipe provides path for flow of data
• Filters manipulate data and work independent of its
neighboring filter
• If data flow degenerates into a single line of
transform, it is termed as batch sequential.
Dept of CSE
Dept of CSE
Call and return architectures
• Achieves a structure that is easy to modify and scale
• Two sub styles
• (1) Main program/sub program architecture
-- Classic program structure
-- Main program invokes a number of components,
which in turn invoke still other components
(2) Remote procedure call architecture
-- Components of main program/subprogram are
distributed across computers over network
Dept of CSE
Dept of CSE
Dept of CSE
Object-oriented architectures
Dept of CSE
Dept of CSE
Layered architectures
Dept of CSE
FIG: Layered Architecture
Dept of CSE
Architectural design process
• System structuring
– The system is decomposed into several
principal sub-systems and communications
between these sub-systems are identified
• Control modelling
– A model of the control relationships between
the different parts of the system is established
• Modular decomposition
– The identified sub-systems are decomposed
into modules
Dept of CSE
ARCHITECTURAL PATTERNS
• A template that specifies approach for some behavioral characteristics of the
system
• Patterns are imposed on the architectural styles
Pattern Domains
1.Concurrency
--Handles multiple tasks that simulates parallelism.
--Approaches(Patterns)
(a) Operating system process management pattern
(b) A task scheduler pattern
2.Persistence
--Data survives past the execution of the process
--Approaches (Patterns)
(a) Data base management system pattern
(b) Application Level persistence Pattern( word processing software)
3.Distribution
-- Addresses the communication of system in a distributed environment
--Approaches(Patterns)
(a) Broker Pattern
-- Acts as middleman between client and server.
Dept of CSE
Dept of CSE
Dept of CSE
Dept of CSE
Dept of CSE
Dept of CSE
Dept of CSE
Dept of CSE