0% found this document useful (0 votes)
25 views12 pages

Lecture 03B - Software Design Principles

This document discusses software design principles and processes. It outlines key principles like modularization, abstraction, encapsulation, coupling, cohesion, and separation of interface and implementation. Modularization involves decomposing a system into fine-grained components. Abstraction focuses on relevant information and ignores irrelevant details. Encapsulation and information hiding define public interfaces and prevent external access to derived data. The document also discusses completeness and sufficiency in software design.

Uploaded by

QADEER AHMAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views12 pages

Lecture 03B - Software Design Principles

This document discusses software design principles and processes. It outlines key principles like modularization, abstraction, encapsulation, coupling, cohesion, and separation of interface and implementation. Modularization involves decomposing a system into fine-grained components. Abstraction focuses on relevant information and ignores irrelevant details. Encapsulation and information hiding define public interfaces and prevent external access to derived data. The document also discusses completeness and sufficiency in software design.

Uploaded by

QADEER AHMAD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Software Design Principles

Table of Contents

– What is software design?


– Importance of software design
– Software design process
– What is a good design/software/process

2
General Design Principles

1. Modularization
2. Abstraction
3. Encapsulation
4. Coupling
5. Cohesion
6. Separation of interface and implementation
7. Sufficiency
8. Completeness

5
Principle # 1 Modularization
Modularization is the process of continuous decomposition
of the software system until fine-grained components are
created.

When you modularize a design, you are also modularizing


the requirements, programming and test cases. 6
Principle # 2 Abstraction

Abstraction is “a view of an object


that focuses on the information
levant to a particular purpose and
ignores the remainder of the
information”

7
Principle # 3 Encapsulation
– One can think of information hiding as the
principle and encapsulation as the technique

– Encapsulation is the public interface that


defines how an object can be used, and how
its data is derived.

– Information Hiding prevents an external object


from using the derived data altogether

11
Principle # 4 Coupling

Refers to the manner and degree of interdependence


between software modules. Measurement of dependency
between units.

The The
higher higher
the coupling the
dependency

18
Principle # 5 Cohesion
– The manner and degree to which the tasks
performed by a single software module are
related to one another.

– Measures how well design units are put


together for achieving a particular tasks.

28
Principle # 6 ENCAPSULATION
“ During encapsulation, interfaces are created to provide public
access to services provided by the design unit while hiding
unnecessary details, which include implementation.

While encapsulation dictates hiding the details of


implementation, the principle of separation dictates their
separation, so that different implementation of the same
interface can be swapped to provide modified or new
behavior.”

44
– Sufficiency
PRINCIPLE # 7&8: measures how well
COMPLETENESSAND the designed units
are at providing
SUFFICIENCY only the services
that are sufficient
for achieving the
intent (no more).
– Completeness
measures how well
designed units
provide the required
services to achieve
the intent (no less).
45
Completenessandsufficiency

Apple has really come up with lots of smart


ideas to improve simple app like photo
editing which reduces the number of clicks
required and still get 46

the work done.


PRACTICALDESIGNCONSIDERATIONS

Designforminimizingcomplexity
Designforchange

49

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy