Design Engineering

Design Engineering Concepts
TOPIC ONE
Software Engineering 1

Design Engineering

It focuses on the creation of a representation or model that are concentrated on architecture of software, data structures, interfaces and components necessary to implement the software. It involves a process of iterative refinement from a higher level of abstraction to lower level of abstraction.

Software Engineering

2

Quality Guidelines for Design

The design should have a recognizable architecture that has been created using architectural styles and patterns, that consists of good design components, and that can be created in an evolutionary manner. The design should be modular and are logically partitioned into subsystems and elements. The design should consists of unique data representations, architecture, interfaces and components. The design should use a notation that convey meanings.

Software Engineering

3

Quality Guidelines for Design

The design of the data structure should lead to the design of the appropriate classes that are derived from known data patterns. The design of the components should have independent functional characteristics. The design should have interfaces that reduces the complexity of the links between components and the environment. The design is derived from using a method repetitively to obtain information during the requirements engineering phase.

Software Engineering

4

Design Concepts
● ● ● ●

Abstraction Modularity Refinement Refactoring

Software Engineering

5

Abstraction

Two types of Abstraction

Data Abstraction

It refers to the named collection of data that describes the information required by the system. It refers to the sequences of commands or instructions that have a specific limited actions.

Procedural Abstraction

Software Engineering

6

Modularity

It is the characteristic of a software that allows its development and maintenance to be manageable by decomposing it into small pieces of work called modules. It leads to information hiding which means hiding details from other classes or modules. It encourages functional independence which is the characteristic of a module or class to address a specific function as defined by the requirements.

Software Engineering

7

Coupling

It is the degree of interconnectedness between design objects are represented by the number an object has and by the degree of interaction it has with other objects.

Interaction Coupling

It is the measure of the number of message types an object sends to another object, and the number of parameters passed with these message types. It is the degree to which a subclass actually needs the features it inherits from its base class.

Inheritance Coupling

Software Engineering

8

Cohesion

It is the measure to which an element contributes to a single purpose.

Operation Cohesion

It is the degree to which an operation focuses on a single functional requirement. It is the degree to which a class is focused on a single requirement. It address the semantic cohesion of inheritance.

Class Cohesion

Specialization Cohesion

Software Engineering

9

Refinement
● ●

It is known as the process of elaboration. It uncovers details as the development progresses.

Software Engineering

10

Refactoring

It is a technique that simplifies the design of the component without changing its function and behavior. It is the process of changing the software so that the external behavior remains the same and the internal structures are improved.

Software Engineering

11

Design Model

Architectural Design
– –

It refers to the over-all structure of software. It represents layers, subsystems and components. It refers to the design and organization of data. It refers to the design of the interaction of the system with its environment.

Data Design

Interface Design

Software Engineering

12

Design Model

Component-level Design

It refers to the design of the internal behavior of each classes. It refers to the design of the how the software will be deployed for operational use.

Deployment-level Design

Software Engineering

13

Summary
● ● ●

Design Engineering Quality Guidelines for Design Design Concepts

Abstraction

Data Abstraction Procedural Abstraction Information Hiding Functional Independence Coupling Cohesion

Modularity
● ●

Software Engineering

14

Summary

Design Concepts
– –

Refinement Refactoring Software Architecture Data Design Model Interface Design Model Component-level Design Deployment Model

Design Model
– – – – –

Software Engineering

15

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.