Top Banner
Ch:8 Design Concepts •S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility, adaptability, serviceability)
27

Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Apr 01, 2015

Download

Documents

Landen Gull
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Ch:8 Design Concepts

•S.W Design should have following quality attribute:

–Functionality –Usability –Reliability –Performance –Supportability (extensibility, adaptability, serviceability)

Page 2: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Design Concepts Abstraction• At the highest level of abstraction, a solution is stated in

broad terms using the language of the problem domain• At the lower level of abstraction, a more detailed

description of the solution is provided• Procedural abstraction refers to a sequence of

instructions that have a specific and limited function• Data abstraction is a named collection of data that

describes a data object. The data abstraction for any data object would encompass a set of attributes that describes the object

• Eg. Open the Door – process, door is an data object

Page 3: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Architecture• Architecture is the structure or organization of program

components (modules), the manner in which these component interact, and the structure of the data that are used by the components

• A set of properties that should be described as part of an architectural design :– Structural properties : This aspect of the architectural design

representation defines the components of a system and the manner in which those components are packaged and interact with one another

– Extra-functional properties : The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security and other system characteristics.

– Families of related system : The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems

Page 4: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• The architectural design should be represented using one or more number of different models.– Structural model:- represents architecture as an

organized collection of components– Framework:- identifies repeatable architectural

design frameworks that are encountered in similar types of applications

– Dynamic:- indicates how structure / system may change as function of external events

– Process:- focuses on the design of the business or technical process that the system must accommodate

– Functional model:- can be used to represent the functional hierarchy of system

• ADL (Architectural Description Language) is developed to represent these models

Page 5: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Pattern

• A design pattern can describes a design structure that solves a particular design problem within a specific situation and accompanied by “forces” that may have impact on the manner in which the pattern is applied and used

Page 6: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Separation Of Concerns• Separation of concerns suggests that any

complex problem can be more easily handled if it is subdivided into pieces that each can be solved and/or optimized independently

• By separating the concerns into smaller, a problem takes less effort and time to solve

• This leads to a divide-and-conquer strategy

Page 7: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Modularity• Software is divided into separately named and

addressable components , called modules ,that are integrated to satisfy problem requirements

• Monolithic software, large program composed of a single module, can not be easily grasped by software engineer

• No of modules increases - cost of effort decreases

• No of modules increases – cost associated with integrating modules also grows

• figure

Page 8: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Information Hiding

• Hiding implies that effective modularity can be achieved by defining a set of independent modules that communicate with one another only that information necessary to achieve software function

• Benefits modification

Page 9: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Functional Independence

• Development of modules with “single-minded” function

• each module addresses a specific subset of requirements and has a simple interface when viewed from other parts of program structure

• easier to develop and easier to maintain

• Independence is assessed using two qualitative criteria : cohesion and coupling

Page 10: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• Cohesion– Modules should carry out a single processing

function– Highly related elements should be in the same

module

• Coupling– Indication of relative interdependence among

modules– One module should have little dependence on

any other module– Loose coupling minimizes the

interdependence between modules

• Low coupling facilitates high cohesion

Page 11: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Refinement• top-down strategy• A program is developed by successively refining

levels of procedural detail• We begin with a statement of the function that is

defined at high level of abstraction• That is , the statement describes functions or

information conceptually but provides no information about internal workings of the function or the internal structure of the data We then elaborate on the original statement, providing more and more details as each successive refinement occurs

Page 12: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Aspects • As requirements analysis occurs, a set of

“concerns” is uncovered• As design begins, requirements are refined into

a modular design representation• An aspect is a representation of crosscutting (i.e.

requirement B can not be satisfied without taking A into account) concerns

• In an ideal context, an aspect is implemented as a separate module

Page 13: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Refactoring • It is the process of changing a s.w system in such a

way that it does not alter the external behavior of the code yet improves its internal structure

• When the s/w is refactored, the existing design is examined for redundancy, unused design elements, inefficient or unnecessary algorithms, poorly constructed or inappropriate data structures or any other failure that can be corrected to yield a better design.

Object-Oriented Design Concepts • OO design concepts such as classes and objects,

inheritance, messages and polymorphism among others.

Page 14: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Design Classes• As the design model evolves, we will

define a set of design classes that refine the analysis classes by providing design details that will enable the classes to be implemented, and implement a software infrastructure that supports the business solution

• Five types of design classes :– User Interface Classes define all abstractions

that are necessary for human-computer interaction

Page 15: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

– Business Domain Classes identify the attributes and services (methods) that are required to implement some element of the business domain

– Process Classes implement lower-level business abstraction required to fully manage the business domain classes

– Persistent Classes represent data stores that will persist beyond the execution of the software

– System Classes implement software management and control functions that enable the system to operate and communicate within its computing environment and with outside world

Page 16: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Characteristics of well formed Design Classes

• Complete and sufficient: A design class should be the complete encapsulation of all attributes and methods that can be expected to exist for a class

• Primitiveness: Methods associated with a design class should be focused on accomplishing one service for the class. Once the service has been implemented with a method, a class should not provide another way to accomplish the same thing

Page 17: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• High Cohesion : – A cohesive design class has a small, focused

set of responsibilities and single-mindedly applies attributes and methods to implement those responsibilities.

• Low Coupling : Collaboration should be kept to an acceptable minimum.– Law of Demeter says that a method should

only send messages to methods in neighboring classes. Means: design classes within a subsystem should have only limited knowledge of other classes.

Page 18: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

The Design Model

• The design model can be viewed in two different dimensions

• The process dimension indicates the evolution of the design model as design tasks are executed as a part of the software process

• The abstraction dimension represents the level of details as each element of the analysis model is transformed into a design equivalent and then refined iteratively

Page 19: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• Elements Of Design Model– Data Design Elements– Architectural Design Elements– Interface Design elements– Component-Level Design Elements– Deployment-Level Design Elements

Page 20: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Dimensions of the Design Model

Design Model

Analysis Model

Abstraction D

imension

High

Low

Architecture Elements

Interface Elements

Component Level Elements

Deployment Level of Elements

Page 21: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Data Design Elements• Data design creates model of data /

information that is represented at a high level of abstraction (customer / user’s view)

• This data model is then refined into more implementation specific representations that can be processed by the computer-based system

• At the program component level, the design of data structures and the associated algorithms required to manipulate them is essential to the creation of high-quality application

Page 22: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• At application level, the translation of data model into a database is essential to achieving the business objectives of a system

• At the business level – data mining can be implemented

Page 23: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Architectural Design Elements• It can be derived from three sources: (1) information about the application domain for

the s/w to be built (2) specific requirement model element like

DFDs / Analysis classes, their relationship, collaboration.

(3)availabilty of architectural styles and pattern• The architecture design elements is usually

depicted as a set of interconnected subsystems

• Each subsystem may have its own architecture

Page 24: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Interface Design elements• It tells how information flows into and out

of the system and how it is communicated among components

• There are three important elements of interface design:– User Interface– External Interfaces to other systems, devices,

networks or other producers / consumers of information

– Internal Interfaces between various design components

Page 25: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Component-Level Design Elements

• The component-level design fully describes the internal details of each s.w component

• Activity diagram can be used to represent processing logic

• Detailed procedural flow for a component can be represented using either pseudo code or some other diagrammatic form

Page 26: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

• Algorithm structure follows the rule established for structured programming.

• Data structures are usually modeled using pseudo code or programming language to be used for implementation

Page 27: Ch:8 Design Concepts S.W Design should have following quality attribute: –Functionality –Usability –Reliability –Performance –Supportability (extensibility,

Deployment-Level Design Elements• The deployment-level design elements

describes how software functionality and subsystems will be allocated within the physical computing environment that will support the software

• During design, a UML deployment diagram is developed and then refined

• Figure (8.7)• Each subsystem will be elaborated to indicate

the components that it implements