0% found this document useful (0 votes)
86 views

Unit-3 Notes SE Part-I

Design engineering involves developing high-quality systems and products through principles and concepts that guide design work. The goal is to create models that exhibit firmness, commodity, and delight. Software design encompasses data/class design, architectural design, interface design, and component design. Key aspects of software design include abstraction, architecture, patterns, modularity, information hiding, and functional independence. The design process aims to implement requirements, provide understandable documentation, and address the system's data, functional, and behavioral domains through iterative refinement.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views

Unit-3 Notes SE Part-I

Design engineering involves developing high-quality systems and products through principles and concepts that guide design work. The goal is to create models that exhibit firmness, commodity, and delight. Software design encompasses data/class design, architectural design, interface design, and component design. Key aspects of software design include abstraction, architecture, patterns, modularity, information hiding, and functional independence. The design process aims to implement requirements, provide understandable documentation, and address the system's data, functional, and behavioral domains through iterative refinement.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

UNIT – 3 NOTES

DESIGN ENGINEERING

Design engineering encompasses the set of principles, concepts, and practices that lead to the
development of a high-quality system or product. Design principles establish an overriding
philosophy that guides the designer in the work that is performed.

The goal of design engineering is to produce a model or representation that exhibits firmness,
commodity and delight.

DESIGN WITHIN THE CONTEXT OF SOFTWARE ENGINEERING

 Data/class design
 Architectural designer
 Interface design
 Component Design

DESIGN PROCESS & DESIGN QUALITY


Three characteristics that serve as a guide for the evaluation of a good design.
 The design must implement all of the explicit requirements contained in the analysis model
 The design must be a readable, understandable guide for those who generate code
 The design should provide a complete picture of the software addressing the data, functional
and behavioral domains.
Quality Guidelines.
1. Design to exhibit architecture that (a) created using recognizable architectural styles or
patterns, (b) Composes of components that exhibit good design characteristics, (c) can be
implemented using evolutionary fashion
2. Design should be modular
3. Design should contain distinct representation of data, architecture, interfaces and
components.
4. Design should lead to DS that are app. For classes to be implemented
5. Design should lead to components that exhibit independent functional characteristics.
6. Design should lead to interfaces that reduce the complexity of connections b/w. Components
& with the external environment.
7. Design should be derived using a repeatable method that is driven by information obtained
during Soft. Req. Analysis.
8. Design should be represented using a notation that effectively communicates its meaning.

Quality Attributes. FURPS – Functionality, Usability, Reliability, Performance &


Supportability.
 Functionality: assessed by evaluating the feature set and capabilities of the program, func.
That are delivered, security of overall system.
 Usability: assessed by considering human factors, overall aesthetics, consistency, doc
 Performance: measured by processing speed, response time, resource consumption,
throughput and efficiency.
 Supportability – ability to extend program, extensibility, adaptability, serviceability,
testability, compatibility, configurability

DESIGN CONCEPTS

ABSTRACTION
consider modular solution to any problem, many levels of abstraction can be posed. At highest-level
of abstraction, solution stated in broad terms, at lowest levels of abstraction, more detailed
description of the solution is provided.
 Procedural Abstraction (Seq. Of instructions that have specific & limited function)
 Data Abstraction (collection of data that describes a data object).
ARCHITECTURE
alludes to “the overall structure of the software and the ways in which that structure provides
conceptual integrity for a system”.
Architecture is the structure or organization of program components (modules), the manner in
which these components interact and the structure of data that are used by the components.
Can be represented using the following models
 Structural models
 Framework models
 Dynamic models
 Process models
 Functional models
PATTERNS
Pattern is a named nugged of insight which conveys the essence of a proven solution to a recurring
problem within a certain context amidst competing concerns.
A Design pattern describes a design structure that solves a particular design problem within a
specific context and amid “forces” that may have an impact on the manner in which the pattern is
applied & used.

MODULARITY
Software is divided into separately named & addressable components, sometimes called modules,
that are integrated to
satisfy problem
requirements.
Information Hiding
modules be “characterized by design decision that (each) hides from all others”.
Modules should be specified and designed so that information (algorithm & data) contained within
a module is inaccessible to other modules that have no need for such information.

Functional Independence
Concept of FI is a direct outgrowth of modularity and the concepts of abstraction and information
hiding.
FI achieved by developing modules with “single minded” function and an “aversion” to excessive
interaction with other modules.
Explain Coupling & Cohesion
Cohesion – Indication of the relative functional strength of a module.
Coupling – indication of the relative interdependence among modules.

Refinement
 Top down Strategy
 Program developed by successively refining levels of procedural detail.
 Process of Elaboration
 High level of abstraction to low level of abstraction
 Abstraction & refinement complementary concepts.
 Abstraction enables designer to specify procedure & data and yet supress low-level details
 Refinement helps the designer to reveal low-level details as design progresses.

Refactoring
reorganization technique that simplifies the design (or code) of a component without changing its
function or behavior.
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.

Design Classes
as the design evolves, software team must define a set of design classes that
1. refine the analysis classes by providing design detail that will enable the classes to be
implemented
2. create a new set of design classes that implement a software infrastructure to support the
business solution.
Five different types of design classes, each representing a different layer of the design
architecture are suggested
 User interface classes
 Business domain classes
 Process classes
 persistent classes
 system classes

Four characteristics of a well-formed design class:


1. Complete and sufficient
2. Primitiveness
3. High Cohesion
4. Low Coupling
THE DESIGN MODEL
CAN be viewed in two different dimensions.
1. Process Dimension (indicates evolution of the design model as design tasks are executed as
part of the software process)
2. Abstraction dimension represents the level of details as each element of the analysis model
is transformed into a design equivalent and then refined iteratively.

Data Design Elements


creates a model of data and/or information that is represented at a high level of abstraction
This data model is then refined into progressively more implementation-specific representation that
can be processed by the computer-based system.
Architectural Design Elements
 Equivalent to the floor plan of a house.
 Gives us an overall view of the software
 Derived from three sources
◦ Information about the application domain for the software to be built
◦ Specific analysis model elements such as data flow diagrams or analysis classes
◦ the availability of architectural patterns
Interface Design Elements
 Equivalent to a set of detailed drawings (& specifications) for the doors, windows and
external utilities of a house.
 These drawings depict the size and shape of doors & windows, the manner in which they
operate, the way in which utilities connections (e.g., water, electrical, gas, telephone) come
into the house and are distributed among the rooms depicted in the floor plan.
 ID elements for software tell how information flows into and out of the system and how it is
communicated among the components defined as part of the architecture.
 There are three important elements of interface design:
◦ The UI
◦ external interfaces to other systems, devices, networks or other producers or consumers
◦ internal interfaces between various design components.

Component-Level Design Elements


 equivalent to a set of detailed drawings (and specifications) for each room in a house.
 Drawings depict wiring & plumbing within each room in a house.
 Describe the flooring to be used, the moldings to be applied & every other detailed
associated with a room.
 Cld for s/w. Fully describes the internal detail of each software component.

Deployment-Level Design Elements


 DLDE elements indicate how software functionality and subsystems will be allocated within
the physical computing environment that will support the software.

You might also like