SlideShare a Scribd company logo
1 of 52
UNIT -3
DESIGN CONCEPTS
1
Ms. Varsha
CSE Dept
“Idea behind design”
2
ī‚§ Design?
ī‚§ What is it?
ī‚§ Who does it?
ī‚§ Why is it important?
ī‚§ What is design in software engineering?
3
Answers !!!
ī‚§ “A PLAN OR DRAWING”.
ī‚§ Software Design -- An iterative process transforming requirements into a
“blueprint” for constructing the software
ī‚§ Design allows you to model the system or product that is to be built.
ī‚§ Software design is the process of implementing software solutions to one
or more sets of problems
4
5
ī‚§ Software design is an iterative process through which requirements are
translated into a “blueprint” for constructing the software
ī‚§ During the design process the software requirements model is
transformed into design models that describe the details of the data
structures, system architecture, interface, and components.
ī‚§ Design is considered to be high level of abstraction.
6
Good software design should exhibit:
ī‚Ą Firmness: A program should not have any bugs that inhibit its function.
ī‚Ą Commodity: A program should be suitable for the purposes for which it
was intended
ī‚Ą Delight: The experience of using the program should be pleasurable one
7
ī‚§ A design should be modular; that is, the software should be logically partitioned into elements or subsystems.
ī‚§ A design should contain distinct representations of data, architecture, interfaces, and components
ī‚§ A design should lead to data structures that are appropriate for the classes to be implemented and are drawn
from recognizable data patterns.
ī‚§ A design should lead to components that exhibit independent functional characteristics.
ī‚§ A design should lead to interfaces that reduce the complexity of connections between components and with the
external environment.
ī‚§ A design should be derived using a repeatable method that is driven by information obtained during software
requirements analysis.
ī‚§ A design should be represented using a notation that effectively communicates its meaning.
8
Abstraction
Architecture
Patterns
Modularity
Information hiding
Functional independence
Refinement
Refactoring
Design classes
9
Abstraction
10
Abstraction
Abstraction allows designers to focus on solving a problem without being concerned about
irrelevant lower level details.
There are two types of abstraction available :
ī‚§ Procedural abstraction – a sequence of instructions that have a specific and limited
function. Eg: Word OPEN for a door.
ī‚§ Data abstraction – a named collection of data that describes a data object. Data
abstraction for door would be a set of attributes that describes the door
(e.g. door type, swing direction, weight, dimension).
ī‚§ Control abstraction – a program control mechanism without specifying internal detail.
It is used to coordinate all activities in operating system
11
Architecture
12
Architecture
The overall structure of the software and the ways in which the structure provides conceptual
integrity for a system :
ī‚§ Consists of components, connectors, and the relationship between them.
ī‚§ Some of the Architecture models are described below,
ī‚§ Structural models – architecture as organized collection of components
ī‚§ Framework models – attempt to identify repeatable architectural patterns
ī‚§ Dynamic models – indicate how program structure changes as a function of external events
ī‚§ Process models – focus on the design of the business or technical process that system must
accommodate
ī‚§ Functional models – used to represent system functional hierarchy
13
Patterns
General reusable solution which can be used again and again.
14
Patterns
Software engineer can use the design pattern during the entire software design process.
Each pattern is to provide an insight to a designer who can determine the following-:
ī‚§ Whether the pattern can be reused.
ī‚§ Whether the pattern is applicable to the current project.
ī‚§ Whether the pattern can be used to develop a similar but functionally or structurally
different design pattern.
15
Patterns
Types of Design Patterns
Architectural patterns: These patterns are high-level strategies that refer to the overall structure and
organization of a software system. That is, they define the elements of a software system such as
subsystems, components, classes, etc.
Design patterns: These patterns are medium-level strategies that are used to solve design problems.
They provide a means for the refinement of the elements of a software system or the relationship among
components or mechanisms that affect component-to-component.
Idioms: These patterns are low-level patterns, which are programming-language specific. They describe
the implementation of a software component, the method used for interaction among software
components.
16
Modularity
Single attribute of software that allows a program to be intellectually manageable.
What is the "right" number of modules for a specific software designâ€Ļ???
17
ī‚§ Software is divided into separately named and addressable components, often called
modules, that are integrated to satisfy problem requirements.
ī‚§ This leads to a "divide and conquer" conclusion—it's easier to solve a complex problem when
you break it into manageable pieces.
ī‚§ It has been stated that "modularity is the single attribute of software that allows a program to
be intellectually manageable“.
Modularity
18
- Modular decomposability:
A design method provides a systematic mechanism for decomposing the problem into sub-problems
-->reduce the complexity and achieve the modularity
- Modular composability:
A design method enables existing design components to be assembled into a new system.
- Modular understandability:
A module can be understood as a standalone unit it will be easier to build and easier to change.
- Modular continuity:
A small changes to the system requirements result in changes to individual modules, rather than system-
wide changes.
- Modular protection:
An aberrant condition occurs within a module and its effects are constrained within the module.
Modularity
19
20
Information Hiding
The way of hiding the unnecessary details
21
Information Hiding
ī‚Ą Information (data and procedure) contained within a module should be inaccessible to other modules
that have no need for such information.
ī‚Ą Hiding defines and enforces access constraints to both procedural detail within a module and any
local data structure used by the module
ī‚Ą Modules should be specified and designed so that information (procedure and data) contained within
a module is inaccessible to other modules that have no need for such information.
ī‚Ą 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.
ī‚Ą This enforces access constraints to both procedural (i.e., implementation) detail and local data
structures.
22
module
controlled
interface
"secret"
â€ĸ algorithm
â€ĸ data structure
â€ĸ details of external interface
â€ĸ resource allocation policy
clients
a specific design decision
Functional Independence
Achieved by developing modules with “single minded” function and low coupling.
24
Functional Independence
Functional independence is achieved by developing a module to perform given set of
functions without interacting with other parts of the system.
It can be measured using two criteria:
-Cohesion
-Coupling
Design modules based on independent functional features
25
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
26
Element /Task
Module
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
27
A
Module
B C
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
28
A
Module
B C
Same data shared by elements
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
29
A
Module
B C
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
30
A
Module
B C
Same time
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
31
A
Module
B C
SimilarActivities
Functional Independence
Cohesion: A natural extension of the information hiding concept a module may perform a number of
tasks. A cohesive module performs a single task in a procedure with little interactions with
others.
Types of cohesion:
īƒŧ Functional cohesion
īƒŧ Sequential cohesion
īƒŧ Communication cohesion
īƒŧ Procedural cohesion
īƒŧ Temporal cohesion
īƒŧ Logical cohesion
īƒŧ Coincidental cohesion
32
A
Module
B C
Functional Independence
Coupling: A measure of interconnection/interdependence among modules in a program
structure. Coupling depends on the interface complexity between modules.
Types of coupling:
- No direct coupling : independent of each other.
- Data coupling : passing parameter or data interaction
- Stamp coupling : data structure id passed via argument list
- Control coupling : share related control logical (control flag)
- Common coupling : sharing common data areas.
- content coupling : module A use of data or control information maintained in
another module.
33
Stepwise refinement is a top-down design strategy
Refinement
34
ī‚§ Refinement is actually a process of elaboration.
ī‚§ It begin with a statement of function (or description of information) that is defined at
a high level of abstraction and reach at the lower level of abstraction.
ī‚§ Terminates when all instructions are expressed in terms of any underlying computer
or programming language.
ī‚§ Abstraction and refinement are complementary concepts
Refinement
35
restructuring (rearranging) codeâ€Ļ
“changing the structure of a program so that the functionality is not changed”
Refactoring
36
Refactoring:
ī‚Ą Refactoring is a reorganization technique that simplifies the design (or internal code structure) of a
component without changing its function or external behaviour.
ī‚Ą It removes redundancy, unused design elements, inefficient or unnecessary algorithms, poorly
constructed or inappropriate data structures, or any other design failures.
37
“Design system using self-contained objects and object classes”
ī‚Ą Objects are abstractions of real world or system entities and manage themselves
ī‚Ą Objects are independent and encapsulate state and represent information
ī‚Ą System functionality is expressed in terms of object services
ī‚Ą Shared data are eliminated. Objects communicate by message passing
Object Oriented Design Concepts:
38
ī‚Ą The requirements model defines a set of analysis classes
ī‚Ą Set of design classes that refine the analysis classes by providing design detail that will enable the
classes to be implemented, and implement a software infrastructure that supports the business
solution.
ī‚Ą Characteristics of Design Classes
Design Classes
39
40
41
ī‚Ą Data Design Elements
ī‚Ą Architectural Design Elements
ī‚Ą Interface Design Elements
ī‚Ą Component-Level Design Elements
ī‚Ą Deployment-Level Design Elements
42
ī‚Ą Data-model īƒ  Data structures
ī‚Ą Data-model īƒ  Database architecture
1.Data Design Elements
43
The architectural model [sha96] 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 of analysis classes, their relationship and collaborations
for the problems at hand
ī‚Ą The availability of architectural patterns and styles
2.Architectural Design Elements
44
There are three important elements of interface design:
ī‚Ą User interface (UI)
ī‚Ą External interfaces to other systems, devices, networks, or
other producers or consumers of information
ī‚Ą Internal interfaces between various design components
3. Interface Design Elements
45
46
ī‚Ą The component-level design for software fully describes
the internal detail of each software component
ī‚Ą The component-level design defines data structures for all
local data objects and algorithmic detail for all processing
that occurs within a component and an interface that
allows access to all component operations
4.Component-level Design Elements
47
ī‚Ą Deployment-level design elements indicate how software
functionality and subsystems will be allocated within the
physical computing environment that will support the
software
48
49
A UML deployment diagram
50
References:
1. “Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-
Hill, 2001
2. “Software Engineering” by Ian Sommerville, Addison-Wesley
3. “Software Engineering” 3rd edition by K.K.Aggrawal and Yogesh Singh, New age international
publishers.
51
52

More Related Content

What's hot

Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-designSHREEHARI WADAWADAGI
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9Ian Sommerville
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering NotesNavjyotsinh Jadeja
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specificationlavanya marichamy
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1Abhimanyu Mishra
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Ooad
OoadOoad
Ooadgantib
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineeringkirupasuchi1996
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTmalathijanapati1
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software EngineeringPurvik Rana
 

What's hot (20)

Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Software design
Software designSoftware design
Software design
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Software design
Software designSoftware design
Software design
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Ooad
OoadOoad
Ooad
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 

Similar to Design concept -Software Engineering

Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Chapter 08
Chapter 08Chapter 08
Chapter 08Nazir Ahmed
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principlesAhmad sohail Kakar
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignAmr E. Mohamed
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)Shagufta shaheen
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basicsghayour abbas
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptxgadisaAdamu
 
Chapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxChapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxgadisaAdamu
 

Similar to Design concept -Software Engineering (20)

Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Unit 3
Unit 3Unit 3
Unit 3
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
06 fse design
06 fse design06 fse design
06 fse design
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Design final
Design finalDesign final
Design final
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
Design
DesignDesign
Design
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptx
 
Chapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxChapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptx
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 

Recently uploaded

Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptNarmatha D
 
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfRajuKanojiya4
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 

Recently uploaded (20)

Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.ppt
 
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡ī¸9711147426✨Call In girls Gurgaon Sector 51 escort service
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdf
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 

Design concept -Software Engineering

  • 3. ī‚§ Design? ī‚§ What is it? ī‚§ Who does it? ī‚§ Why is it important? ī‚§ What is design in software engineering? 3
  • 4. Answers !!! ī‚§ “A PLAN OR DRAWING”. ī‚§ Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software ī‚§ Design allows you to model the system or product that is to be built. ī‚§ Software design is the process of implementing software solutions to one or more sets of problems 4
  • 5. 5
  • 6. ī‚§ Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software ī‚§ During the design process the software requirements model is transformed into design models that describe the details of the data structures, system architecture, interface, and components. ī‚§ Design is considered to be high level of abstraction. 6
  • 7. Good software design should exhibit: ī‚Ą Firmness: A program should not have any bugs that inhibit its function. ī‚Ą Commodity: A program should be suitable for the purposes for which it was intended ī‚Ą Delight: The experience of using the program should be pleasurable one 7
  • 8. ī‚§ A design should be modular; that is, the software should be logically partitioned into elements or subsystems. ī‚§ A design should contain distinct representations of data, architecture, interfaces, and components ī‚§ A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. ī‚§ A design should lead to components that exhibit independent functional characteristics. ī‚§ A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. ī‚§ A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. ī‚§ A design should be represented using a notation that effectively communicates its meaning. 8
  • 11. Abstraction Abstraction allows designers to focus on solving a problem without being concerned about irrelevant lower level details. There are two types of abstraction available : ī‚§ Procedural abstraction – a sequence of instructions that have a specific and limited function. Eg: Word OPEN for a door. ī‚§ Data abstraction – a named collection of data that describes a data object. Data abstraction for door would be a set of attributes that describes the door (e.g. door type, swing direction, weight, dimension). ī‚§ Control abstraction – a program control mechanism without specifying internal detail. It is used to coordinate all activities in operating system 11
  • 13. Architecture The overall structure of the software and the ways in which the structure provides conceptual integrity for a system : ī‚§ Consists of components, connectors, and the relationship between them. ī‚§ Some of the Architecture models are described below, ī‚§ Structural models – architecture as organized collection of components ī‚§ Framework models – attempt to identify repeatable architectural patterns ī‚§ Dynamic models – indicate how program structure changes as a function of external events ī‚§ Process models – focus on the design of the business or technical process that system must accommodate ī‚§ Functional models – used to represent system functional hierarchy 13
  • 14. Patterns General reusable solution which can be used again and again. 14
  • 15. Patterns Software engineer can use the design pattern during the entire software design process. Each pattern is to provide an insight to a designer who can determine the following-: ī‚§ Whether the pattern can be reused. ī‚§ Whether the pattern is applicable to the current project. ī‚§ Whether the pattern can be used to develop a similar but functionally or structurally different design pattern. 15
  • 16. Patterns Types of Design Patterns Architectural patterns: These patterns are high-level strategies that refer to the overall structure and organization of a software system. That is, they define the elements of a software system such as subsystems, components, classes, etc. Design patterns: These patterns are medium-level strategies that are used to solve design problems. They provide a means for the refinement of the elements of a software system or the relationship among components or mechanisms that affect component-to-component. Idioms: These patterns are low-level patterns, which are programming-language specific. They describe the implementation of a software component, the method used for interaction among software components. 16
  • 17. Modularity Single attribute of software that allows a program to be intellectually manageable. What is the "right" number of modules for a specific software designâ€Ļ??? 17
  • 18. ī‚§ Software is divided into separately named and addressable components, often called modules, that are integrated to satisfy problem requirements. ī‚§ This leads to a "divide and conquer" conclusion—it's easier to solve a complex problem when you break it into manageable pieces. ī‚§ It has been stated that "modularity is the single attribute of software that allows a program to be intellectually manageable“. Modularity 18
  • 19. - Modular decomposability: A design method provides a systematic mechanism for decomposing the problem into sub-problems -->reduce the complexity and achieve the modularity - Modular composability: A design method enables existing design components to be assembled into a new system. - Modular understandability: A module can be understood as a standalone unit it will be easier to build and easier to change. - Modular continuity: A small changes to the system requirements result in changes to individual modules, rather than system- wide changes. - Modular protection: An aberrant condition occurs within a module and its effects are constrained within the module. Modularity 19
  • 20. 20
  • 21. Information Hiding The way of hiding the unnecessary details 21
  • 22. Information Hiding ī‚Ą Information (data and procedure) contained within a module should be inaccessible to other modules that have no need for such information. ī‚Ą Hiding defines and enforces access constraints to both procedural detail within a module and any local data structure used by the module ī‚Ą Modules should be specified and designed so that information (procedure and data) contained within a module is inaccessible to other modules that have no need for such information. ī‚Ą 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. ī‚Ą This enforces access constraints to both procedural (i.e., implementation) detail and local data structures. 22
  • 23. module controlled interface "secret" â€ĸ algorithm â€ĸ data structure â€ĸ details of external interface â€ĸ resource allocation policy clients a specific design decision
  • 24. Functional Independence Achieved by developing modules with “single minded” function and low coupling. 24
  • 25. Functional Independence Functional independence is achieved by developing a module to perform given set of functions without interacting with other parts of the system. It can be measured using two criteria: -Cohesion -Coupling Design modules based on independent functional features 25
  • 26. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 26 Element /Task Module
  • 27. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 27 A Module B C
  • 28. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 28 A Module B C Same data shared by elements
  • 29. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 29 A Module B C
  • 30. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 30 A Module B C Same time
  • 31. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 31 A Module B C SimilarActivities
  • 32. Functional Independence Cohesion: A natural extension of the information hiding concept a module may perform a number of tasks. A cohesive module performs a single task in a procedure with little interactions with others. Types of cohesion: īƒŧ Functional cohesion īƒŧ Sequential cohesion īƒŧ Communication cohesion īƒŧ Procedural cohesion īƒŧ Temporal cohesion īƒŧ Logical cohesion īƒŧ Coincidental cohesion 32 A Module B C
  • 33. Functional Independence Coupling: A measure of interconnection/interdependence among modules in a program structure. Coupling depends on the interface complexity between modules. Types of coupling: - No direct coupling : independent of each other. - Data coupling : passing parameter or data interaction - Stamp coupling : data structure id passed via argument list - Control coupling : share related control logical (control flag) - Common coupling : sharing common data areas. - content coupling : module A use of data or control information maintained in another module. 33
  • 34. Stepwise refinement is a top-down design strategy Refinement 34
  • 35. ī‚§ Refinement is actually a process of elaboration. ī‚§ It begin with a statement of function (or description of information) that is defined at a high level of abstraction and reach at the lower level of abstraction. ī‚§ Terminates when all instructions are expressed in terms of any underlying computer or programming language. ī‚§ Abstraction and refinement are complementary concepts Refinement 35
  • 36. restructuring (rearranging) codeâ€Ļ “changing the structure of a program so that the functionality is not changed” Refactoring 36
  • 37. Refactoring: ī‚Ą Refactoring is a reorganization technique that simplifies the design (or internal code structure) of a component without changing its function or external behaviour. ī‚Ą It removes redundancy, unused design elements, inefficient or unnecessary algorithms, poorly constructed or inappropriate data structures, or any other design failures. 37
  • 38. “Design system using self-contained objects and object classes” ī‚Ą Objects are abstractions of real world or system entities and manage themselves ī‚Ą Objects are independent and encapsulate state and represent information ī‚Ą System functionality is expressed in terms of object services ī‚Ą Shared data are eliminated. Objects communicate by message passing Object Oriented Design Concepts: 38
  • 39. ī‚Ą The requirements model defines a set of analysis classes ī‚Ą Set of design classes that refine the analysis classes by providing design detail that will enable the classes to be implemented, and implement a software infrastructure that supports the business solution. ī‚Ą Characteristics of Design Classes Design Classes 39
  • 40. 40
  • 41. 41
  • 42. ī‚Ą Data Design Elements ī‚Ą Architectural Design Elements ī‚Ą Interface Design Elements ī‚Ą Component-Level Design Elements ī‚Ą Deployment-Level Design Elements 42
  • 43. ī‚Ą Data-model īƒ  Data structures ī‚Ą Data-model īƒ  Database architecture 1.Data Design Elements 43
  • 44. The architectural model [sha96] 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 of analysis classes, their relationship and collaborations for the problems at hand ī‚Ą The availability of architectural patterns and styles 2.Architectural Design Elements 44
  • 45. There are three important elements of interface design: ī‚Ą User interface (UI) ī‚Ą External interfaces to other systems, devices, networks, or other producers or consumers of information ī‚Ą Internal interfaces between various design components 3. Interface Design Elements 45
  • 46. 46
  • 47. ī‚Ą The component-level design for software fully describes the internal detail of each software component ī‚Ą The component-level design defines data structures for all local data objects and algorithmic detail for all processing that occurs within a component and an interface that allows access to all component operations 4.Component-level Design Elements 47
  • 48. ī‚Ą Deployment-level design elements indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software 48
  • 49. 49
  • 50. A UML deployment diagram 50
  • 51. References: 1. “Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw- Hill, 2001 2. “Software Engineering” by Ian Sommerville, Addison-Wesley 3. “Software Engineering” 3rd edition by K.K.Aggrawal and Yogesh Singh, New age international publishers. 51
  • 52. 52