SlideShare ist ein Scribd-Unternehmen logo
1 von 46
B. Computer Sci. (SE) (Hons.)

CSEB233:
Fundamentals of
Software Engineering

Software Design
Objectives



Explain set of design principles, concepts,
and practices
Describe four design models required for a
complete design specification:
 data

design
 architectural design
 user interface design
 component-level design



Use design support tools and evaluation
Explain the use of design specification
document
What is Design?



Design creates a representation or model of the
software
But unlike the analysis model, the design model
provides details about:







software architecture
data structures
interfaces, and
components that are necessary to implement the system.

Why is it important?



The model can be assessed for quality and improved
before code is generated
Tests are conducted, and more users are involved.
Analysis Models  Design Model
The four design models
sc e n a r i o - b a se d
e l e me nt s

Co m p o n e n t L e v e l D e sig n

f l ow- or i e n t e d
e l e m e nt s

use-cases - text
use-case diagrams
activity diagrams
swim lane diagrams

data flow diagrams
control-flow diagrams
processing narratives

In t e r f a c e D e sig n

Analysis Model

c l a ss- b a se d
e l e me nt s
class diagrams
analysis packages
CR models
C
collaboration diagrams

b e ha v i or a l
e l e me nt s

A r c h it e c t u r a l D e sig n

state diagrams
sequence diagrams

D a t a / Cla ss D e sig n

Design Model

Each of the elements of the analysis/requirements model provides
information that is necessary to create the design models required
for a complete design specification.
Characteristics of Good Design






Must implement all of the explicit requirements
contained in the analysis model
Must accommodate all the implicit requirements
desired by the customer
Must be a readable, understandable guide for
those who generate code and for those who test
and subsequently support the software
Should provide a complete picture of the
software, addressing the data, functional, and
behavioral domains from an implementation
perspective
(McGlaughlin, 1991)
Design Principles





The design process should not suffer from „tunnel
vision‟
The design should be traceable to the analysis model
The design should not reinvent the wheel






Reinventing the wheel means to duplicate a basic method
that has previously been created or optimized by others

The design should „minimize the intellectual distance‟
between the software and the problem as it exists in
the real world
The design should exhibit uniformity and integration
(Davis,1995 )
Design Principles








The design should be structured to
accommodate change
The design should be structured to degrade
gently, even when irregular data, events, or
operating conditions are encountered
The design should be assessed for quality as
it is being created, not after
The design should be reviewed to minimize
conceptual (semantic) errors
Design Concepts


Fundamental design concepts that span both
traditional and OO software development
include:








Abstraction
Architecture
Patterns
Separation of concerns
Modularity
Information hiding









Functional Independence
Refinement
Aspects
Refactoring
OO Design concepts
Design classes
Abstraction
Designers should work to derive both
procedural and data abstractions that
serve the problem
 Procedural abstraction – sequence of
instructions that have a specific and
limited function
 Data abstractions – a named collection of
data that describes a data object

Abstraction
door
details of enter
algorithm

Implemented with a
"knowledge" of the
object that is
associated with
“enter”

door
manufacturer
model number
type
swing direction
weight

Implemented as a
data structure
Abstraction


Data abstraction refers to, providing only essential
features by hiding its background details
b1 is an object
calling input and
output member
functions.
But that code is
invisible to the
object b1
Architecture


Is concerned with:
 describing

the fundamental organization of the

system,
 identifying its various components and their
relationships to each other, and
 the environment in order to meet the system's
quality goals


It also describes the overall structure of the
software:
 organization

of program modules,
 the manner in which these modules interact, and
 the structure of data used by the components
Patterns


Online pattern searching:
 http://inventors.about.com/gi/dynamic/offsite.

htm?site=http%3A%2F%Fpatents.uspto.gov
%2Fpatft%2Findex.html

Under Quick Search, try to search pattern
no. 7669112.
 You will get „automated spell analysis‟
pattern.

Separation of Concerns


It is a rule of thumb to define how modules should
be separated to each other:







different or unrelated concerns should be restricted
to different modules

Any complex problem can be easily handled if it is
sub-divided into pieces that can be solved
independently
Why? So that a problem takes less time and effort
to solve
Manifested in other design concepts: modularity,
aspects, functional independence and refinement
Modularity
When software is divided into components
(modules)
 A design is modularized:


 To

ease the planning for implementation
(coding)
 To define and deliver software increments
 To easily accommodate changes
 To efficiently test and debug program, and
 To conduct long-term maintenance without
serious side effects
Modularity : Example
With Module
vs.

Without Module
Information Hiding
Suggests that modules should be
specified and designed so that information
(data structures and algorithm) contain
within a module is inaccessible to other
modules that have no need for such
information
 Implies that effective modularity can be
achieved by defining a set of independent
modules that communicate with one
another only necessary information

Information Hiding




Serves as an effective criterion for dividing any
piece of equipment, software or hardware, into
modules of functionality
Provides flexibility
This flexibility allows a programmer to modify
functionality of a computer program during normal
evolution as the computer program is changed to
better fit the needs of users
 When a computer program is well designed
decomposing the source code solution into modules
using the principle of information hiding, evolutionary
changes are much easier because the changes
typically are local rather than global changes

Information Hiding: Example



Suppose we have a Time class that counts the time of
day:
The Display() member function prints the current time
onscreen.





In contrast, the data member ticks is declared private.




This member function is accessible to all
It is therefore declared public
External users could not access it

Regardless of how Display() extracts the current
timestamp from ticks, users can be sure that it will “do
the right thing” and display the correct time onscreen.
Functional Independence





Achieved by developing independent modules –
each module address a specific subset of
requirements
Is assessed using cohesion and coupling.
Cohesion is an indication of the relative functional
strength of a module




a cohesive module should (ideally) do just one thing

Coupling is an indication of the relative interdependence among modules


depends on the interface complexity between
modules, the point at which entry or reference is
made to a module, and what data pass across the
interface.
Functional Independence


This class lacks cohesion
Functional Independence



The CashRegister involves two concepts: cash
register and coin
Solution: Make two classes:
Functional Independence


Coupling:

High and Low Coupling between Classes
Refinement
open

walk to door;
reach for knob;
open door;
walk through;
close door.

repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif

pull/push door
move out of way;
end repeat
Refactoring


“Refactoring is the 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”
(Fowler, 1999)



When software 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 design failure that can be corrected to yield a
better design.
Design Model Elements


Data/Class Design




Class diagrams transformed into the design class
realization and the data structures required to
implement the software

Architectural Design
Provides high-level overview of the system with
detailed descriptions to be given by other design
elements
 Defines the relationship between major structural
elements of the software, the architectural styles and
design patterns that can be used to achieve the
requirements of the system and the constraints that
affect the way in which the architecture can be
implemented

Design Models


Interface Design
 Describes

how the software communicates
with systems that interoperate with it, and
with human who use it



Component-Level Design
 Defines

the data structures, algorithms,
interface characteristics, and communication
mechanisms allocated to each software
component or module
Data/Class Design Elements


Example: High-level DFD


Source: http://yourdon.com/strucanalysis/wiki/index.php?title=Chapter_9
Data/Class Design Elements


Example: ERD


Source: http://www.svgopen.org/2003/papers/SvgInterfaceElectricalSwitching/index.html
Data/Class Design Elements


Example: Class Diagram


Source: http://www.agiledata.org/essays/objectOrientation101.html
Architectural Design Elements


The architectural model is derived from
three sources:
 information

about the application domain for
the software to be built
 specific requirements model elements such
as data flow diagrams or analysis classes,
their relationships and collaborations for the
problem at hand, and
 the availability of architectural patterns and
styles
Architectural Design Elements


Example: Architecture diagram


Source: http://blog.tmcnet.com/blog/tom-keating/2004/10/index.asp?page=7
Architectural Design Elements


Example: Architectural styles
Interface Design Elements


External interfaces
to other systems,
devices, networks
or other producers
or consumers of
information

MobilePhone
WirelessPDA

Cont rolPanel
LCDdisplay
LEDindicat ors
keyPadCharact erist ics
speaker
wirelessInt erf ace

Key Pad

readKeySt roke()
decodeKey ()
displaySt at us()
light LEDs()
sendCont rolMsg()

< < int erfac e> >
Key Pad

readKeyst roke()
decodeKey()

Figure 9 .6 UML int erfac e represent at ion for Co n t ro lPa n e l
Interface Design Elements


The user interface (UI)
Component Design Elements


UML Component Diagram


Source: http://edn.embarcadero.com/article/31863#component-and-deployment-diagrans
Design Support Tools


All aspects of the software engineering can be
supported by software tools:






from project management software through tools for
business and functional analysis, system design,
code storage, compilers, translation tools, test
software, and so on.

However, tools that are concerned with analysis
and design, and with using design information to
create parts (or all) of the software product, are
most frequently thought of as CASE tools.
List of CASE tools:


http://www.unl.csi.cuny.edu/faqs/softwareenginering/tools.html
CASE Tool: Example


IBM Rational Software Architect


Source: http://www.ibm.com/developerworks/rational/library/10/whats-newin-rational-software-architect-8/index.html
CASE Tool: Example


Database Modeling: Enterprise Architect by Sparx
Systems Pty Ltd.


Source: http://www.sparxsystems.com/images/screenshots/platforms/databasemodeling_tn.jpg
Design Evaluation


“A good software design minimizes the time
required to create, modify, and maintain the
software while achieving run-time performance”
(Shore and Chromatic, 2007)



Design quality is people-sensitive.




For instance, design quality is dependent upon the
programmers writing and maintaining the code.

Design quality is change-specific.


There are two general ways to make designs of
higher quality with respect to this aspect:



generalizing from the tools like design patterns, and
using tests and refactoring as change-enablers.

(Elssamadisy, 2007)
Design Evaluation
 Modification

and maintenance time are more
important than creation time because
time spent in maintenance is much more than
creation time of a software, and
 in iterative development, modification happens
during the initial creation of the software


 Design

quality is unpredictable

Because quality is really dependant on the team
developing the software. As the team changes,
or evolves, then the design quality also evolves
 You really only know how good a design is by its
standing the test of time and modifications

Design Evaluation


Points to ponder:
 To

maintain the quality of the design, we
must maintain the theory of the design as the
programming team evolves,


That design quality is tied to the people who are
building and maintaining the software

(Shore and Chromatic, 2007)
Design Specification




IEEE Standard for Information Technology Systems Design - Software Design
Descriptions (IEEE 1016-2009) an improved
version of the 1998 version
This standard specifies an organizational
structure for a software design description
(SDD)
 An

SDD is a document used to specify system
architecture and application design in a software
related project
 Provides a generic template for an SDD
SDD: Examples


Refer to
 http://www.cs.uofs.edu/~dmartin/exsesrm.ht

m#_Toc514249734


Refer to SDDSample.doc
Summary


This module has:
 Introduced

set of design principles, concepts,
and practices
 Described four design models required for a
complete design specification: data design,
architectural design, user interface design, and
component-level design
 Introduced design support tools and evaluation
 Introduced design specification document (SDD)
THE END
Copyright © 2013
Mohd. Sharifuddin Ahmad, PhD

College of Information
Technology

Weitere ähnliche Inhalte

Was ist angesagt?

Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principlesDhruvin Nakrani
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software EngineeringKourosh Sajjadi
 
Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Scenario based methods
Scenario based methodsScenario based methods
Scenario based methodsJoshuaU1
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
Design concepts
Design conceptsDesign concepts
Design conceptsJoshuaU1
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7mohammad hossein Jalili
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Toolsghayour abbas
 

Was ist angesagt? (20)

Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software design principles
Software design principlesSoftware design principles
Software design principles
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software design
Software designSoftware design
Software design
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Scenario based methods
Scenario based methodsScenario based methods
Scenario based methods
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Hld and lld
Hld and lldHld and lld
Hld and lld
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 

Ähnlich wie 06 fse design

software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptxDr.Shweta
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Software engineering
Software engineeringSoftware engineering
Software engineeringStella526835
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd modelsSukhdeep Singh
 

Ähnlich wie 06 fse design (20)

Design engineering
Design engineeringDesign engineering
Design engineering
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Software design
Software designSoftware design
Software design
 
Design final
Design finalDesign final
Design final
 
Ch09
Ch09Ch09
Ch09
 
Ch09
Ch09Ch09
Ch09
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
Software design
Software designSoftware design
Software design
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 

Mehr von Mohesh Chandran

09 fse qualitymanagement
09 fse qualitymanagement09 fse qualitymanagement
09 fse qualitymanagementMohesh Chandran
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineeringMohesh Chandran
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirementsMohesh Chandran
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineeringMohesh Chandran
 

Mehr von Mohesh Chandran (8)

09 fse qualitymanagement
09 fse qualitymanagement09 fse qualitymanagement
09 fse qualitymanagement
 
08 fse verification
08 fse verification08 fse verification
08 fse verification
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineering
 
04 fse understandingrequirements
04 fse understandingrequirements04 fse understandingrequirements
04 fse understandingrequirements
 
03 fse agiledevelopment
03 fse agiledevelopment03 fse agiledevelopment
03 fse agiledevelopment
 
02 fse processmodels
02 fse processmodels02 fse processmodels
02 fse processmodels
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineering
 
07 fse implementation
07 fse implementation07 fse implementation
07 fse implementation
 

Kürzlich hochgeladen

Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 

Kürzlich hochgeladen (20)

Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 

06 fse design

  • 1. B. Computer Sci. (SE) (Hons.) CSEB233: Fundamentals of Software Engineering Software Design
  • 2. Objectives   Explain set of design principles, concepts, and practices Describe four design models required for a complete design specification:  data design  architectural design  user interface design  component-level design   Use design support tools and evaluation Explain the use of design specification document
  • 3. What is Design?   Design creates a representation or model of the software But unlike the analysis model, the design model provides details about:      software architecture data structures interfaces, and components that are necessary to implement the system. Why is it important?   The model can be assessed for quality and improved before code is generated Tests are conducted, and more users are involved.
  • 4. Analysis Models  Design Model The four design models sc e n a r i o - b a se d e l e me nt s Co m p o n e n t L e v e l D e sig n f l ow- or i e n t e d e l e m e nt s use-cases - text use-case diagrams activity diagrams swim lane diagrams data flow diagrams control-flow diagrams processing narratives In t e r f a c e D e sig n Analysis Model c l a ss- b a se d e l e me nt s class diagrams analysis packages CR models C collaboration diagrams b e ha v i or a l e l e me nt s A r c h it e c t u r a l D e sig n state diagrams sequence diagrams D a t a / Cla ss D e sig n Design Model Each of the elements of the analysis/requirements model provides information that is necessary to create the design models required for a complete design specification.
  • 5. Characteristics of Good Design     Must implement all of the explicit requirements contained in the analysis model Must accommodate all the implicit requirements desired by the customer Must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software Should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective (McGlaughlin, 1991)
  • 6. Design Principles    The design process should not suffer from „tunnel vision‟ The design should be traceable to the analysis model The design should not reinvent the wheel    Reinventing the wheel means to duplicate a basic method that has previously been created or optimized by others The design should „minimize the intellectual distance‟ between the software and the problem as it exists in the real world The design should exhibit uniformity and integration (Davis,1995 )
  • 7. Design Principles     The design should be structured to accommodate change The design should be structured to degrade gently, even when irregular data, events, or operating conditions are encountered The design should be assessed for quality as it is being created, not after The design should be reviewed to minimize conceptual (semantic) errors
  • 8. Design Concepts  Fundamental design concepts that span both traditional and OO software development include:       Abstraction Architecture Patterns Separation of concerns Modularity Information hiding       Functional Independence Refinement Aspects Refactoring OO Design concepts Design classes
  • 9. Abstraction Designers should work to derive both procedural and data abstractions that serve the problem  Procedural abstraction – sequence of instructions that have a specific and limited function  Data abstractions – a named collection of data that describes a data object 
  • 10. Abstraction door details of enter algorithm Implemented with a "knowledge" of the object that is associated with “enter” door manufacturer model number type swing direction weight Implemented as a data structure
  • 11. Abstraction  Data abstraction refers to, providing only essential features by hiding its background details b1 is an object calling input and output member functions. But that code is invisible to the object b1
  • 12. Architecture  Is concerned with:  describing the fundamental organization of the system,  identifying its various components and their relationships to each other, and  the environment in order to meet the system's quality goals  It also describes the overall structure of the software:  organization of program modules,  the manner in which these modules interact, and  the structure of data used by the components
  • 13. Patterns  Online pattern searching:  http://inventors.about.com/gi/dynamic/offsite. htm?site=http%3A%2F%Fpatents.uspto.gov %2Fpatft%2Findex.html Under Quick Search, try to search pattern no. 7669112.  You will get „automated spell analysis‟ pattern. 
  • 14. Separation of Concerns  It is a rule of thumb to define how modules should be separated to each other:     different or unrelated concerns should be restricted to different modules Any complex problem can be easily handled if it is sub-divided into pieces that can be solved independently Why? So that a problem takes less time and effort to solve Manifested in other design concepts: modularity, aspects, functional independence and refinement
  • 15. Modularity When software is divided into components (modules)  A design is modularized:   To ease the planning for implementation (coding)  To define and deliver software increments  To easily accommodate changes  To efficiently test and debug program, and  To conduct long-term maintenance without serious side effects
  • 16. Modularity : Example With Module vs. Without Module
  • 17. Information Hiding Suggests that modules should be specified and designed so that information (data structures and algorithm) contain within a module is inaccessible to other modules that have no need for such information  Implies that effective modularity can be achieved by defining a set of independent modules that communicate with one another only necessary information 
  • 18. Information Hiding   Serves as an effective criterion for dividing any piece of equipment, software or hardware, into modules of functionality Provides flexibility This flexibility allows a programmer to modify functionality of a computer program during normal evolution as the computer program is changed to better fit the needs of users  When a computer program is well designed decomposing the source code solution into modules using the principle of information hiding, evolutionary changes are much easier because the changes typically are local rather than global changes 
  • 19. Information Hiding: Example   Suppose we have a Time class that counts the time of day: The Display() member function prints the current time onscreen.    In contrast, the data member ticks is declared private.   This member function is accessible to all It is therefore declared public External users could not access it Regardless of how Display() extracts the current timestamp from ticks, users can be sure that it will “do the right thing” and display the correct time onscreen.
  • 20. Functional Independence    Achieved by developing independent modules – each module address a specific subset of requirements Is assessed using cohesion and coupling. Cohesion is an indication of the relative functional strength of a module   a cohesive module should (ideally) do just one thing Coupling is an indication of the relative interdependence among modules  depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface.
  • 22. Functional Independence   The CashRegister involves two concepts: cash register and coin Solution: Make two classes:
  • 23. Functional Independence  Coupling: High and Low Coupling between Classes
  • 24. Refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
  • 25. Refactoring  “Refactoring is the 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” (Fowler, 1999)  When software 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 design failure that can be corrected to yield a better design.
  • 26. Design Model Elements  Data/Class Design   Class diagrams transformed into the design class realization and the data structures required to implement the software Architectural Design Provides high-level overview of the system with detailed descriptions to be given by other design elements  Defines the relationship between major structural elements of the software, the architectural styles and design patterns that can be used to achieve the requirements of the system and the constraints that affect the way in which the architecture can be implemented 
  • 27. Design Models  Interface Design  Describes how the software communicates with systems that interoperate with it, and with human who use it  Component-Level Design  Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component or module
  • 28. Data/Class Design Elements  Example: High-level DFD  Source: http://yourdon.com/strucanalysis/wiki/index.php?title=Chapter_9
  • 29. Data/Class Design Elements  Example: ERD  Source: http://www.svgopen.org/2003/papers/SvgInterfaceElectricalSwitching/index.html
  • 30. Data/Class Design Elements  Example: Class Diagram  Source: http://www.agiledata.org/essays/objectOrientation101.html
  • 31. Architectural Design Elements  The architectural model is derived from three sources:  information about the application domain for the software to be built  specific requirements model elements such as data flow diagrams or analysis classes, their relationships and collaborations for the problem at hand, and  the availability of architectural patterns and styles
  • 32. Architectural Design Elements  Example: Architecture diagram  Source: http://blog.tmcnet.com/blog/tom-keating/2004/10/index.asp?page=7
  • 34. Interface Design Elements  External interfaces to other systems, devices, networks or other producers or consumers of information MobilePhone WirelessPDA Cont rolPanel LCDdisplay LEDindicat ors keyPadCharact erist ics speaker wirelessInt erf ace Key Pad readKeySt roke() decodeKey () displaySt at us() light LEDs() sendCont rolMsg() < < int erfac e> > Key Pad readKeyst roke() decodeKey() Figure 9 .6 UML int erfac e represent at ion for Co n t ro lPa n e l
  • 35. Interface Design Elements  The user interface (UI)
  • 36. Component Design Elements  UML Component Diagram  Source: http://edn.embarcadero.com/article/31863#component-and-deployment-diagrans
  • 37. Design Support Tools  All aspects of the software engineering can be supported by software tools:    from project management software through tools for business and functional analysis, system design, code storage, compilers, translation tools, test software, and so on. However, tools that are concerned with analysis and design, and with using design information to create parts (or all) of the software product, are most frequently thought of as CASE tools. List of CASE tools:  http://www.unl.csi.cuny.edu/faqs/softwareenginering/tools.html
  • 38. CASE Tool: Example  IBM Rational Software Architect  Source: http://www.ibm.com/developerworks/rational/library/10/whats-newin-rational-software-architect-8/index.html
  • 39. CASE Tool: Example  Database Modeling: Enterprise Architect by Sparx Systems Pty Ltd.  Source: http://www.sparxsystems.com/images/screenshots/platforms/databasemodeling_tn.jpg
  • 40. Design Evaluation  “A good software design minimizes the time required to create, modify, and maintain the software while achieving run-time performance” (Shore and Chromatic, 2007)  Design quality is people-sensitive.   For instance, design quality is dependent upon the programmers writing and maintaining the code. Design quality is change-specific.  There are two general ways to make designs of higher quality with respect to this aspect:   generalizing from the tools like design patterns, and using tests and refactoring as change-enablers. (Elssamadisy, 2007)
  • 41. Design Evaluation  Modification and maintenance time are more important than creation time because time spent in maintenance is much more than creation time of a software, and  in iterative development, modification happens during the initial creation of the software   Design quality is unpredictable Because quality is really dependant on the team developing the software. As the team changes, or evolves, then the design quality also evolves  You really only know how good a design is by its standing the test of time and modifications 
  • 42. Design Evaluation  Points to ponder:  To maintain the quality of the design, we must maintain the theory of the design as the programming team evolves,  That design quality is tied to the people who are building and maintaining the software (Shore and Chromatic, 2007)
  • 43. Design Specification   IEEE Standard for Information Technology Systems Design - Software Design Descriptions (IEEE 1016-2009) an improved version of the 1998 version This standard specifies an organizational structure for a software design description (SDD)  An SDD is a document used to specify system architecture and application design in a software related project  Provides a generic template for an SDD
  • 44. SDD: Examples  Refer to  http://www.cs.uofs.edu/~dmartin/exsesrm.ht m#_Toc514249734  Refer to SDDSample.doc
  • 45. Summary  This module has:  Introduced set of design principles, concepts, and practices  Described four design models required for a complete design specification: data design, architectural design, user interface design, and component-level design  Introduced design support tools and evaluation  Introduced design specification document (SDD)
  • 46. THE END Copyright © 2013 Mohd. Sharifuddin Ahmad, PhD College of Information Technology