SlideShare a Scribd company logo
1 of 21
Download to read offline
Software Design
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Software Design Process
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Software Design Process
■ Software design provides interaction between requirements and implementation
■ Software design process is a problem solving process
1. Understand the problem
2. Identify one or more solutions
3. Create abstractions (model diagrams) for the identified solution
4. Refine the each abstraction
■ Software design process is refined through different stages
1. Informal design outline
2. Informal design
3. Formal design
4. Finished (final) design
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Software Design Quality Attributes
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Software Design Quality Attributes
■ Abstraction
– Generalization by reducing the information content of a concept
– Retain only relevant information
– Easier to understand the concept without dealing with unnecessary details
■ Modularity
– Software is divided into different components called modules
– Degree to which a system's components can be separated and recombined
– Structural organization containing individual modules and their interconnections
■ Cohesion (High or Low)
– Degree to which the elements of a module belong together
– Concerns relationships within a module
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Software Design Quality Attributes
■ Coupling (Loose or Tight)
– Degree of interdependence between modules
– Concerns relationships between modules
■ Information Hiding
– Hide irrelevant details of a module (Abstraction)
– Module contains related functionality (High Cohesion)
– Modules are independent (Loose Coupling)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Design Objectives
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Design Objectives
■ Correctness
– Full fill all requirements
– Implement every constraint
■ Efficiency
– Proper management of resources
– Maximize performance
■ Cost
– Minimize cost
■ Maintainability
– Facilitate debugging and testing
– Easy to modify and extend
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Object Oriented Design
(Classes & Objects)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Classes & Objects
■ Object is an entity in a software system which represent an instance of a thing from
real-world. It has a state (set of attributes or properties) and a defined set of
operations (behaviors or methods) which operate on that state.
■ Class is a blueprint or template definition for an object which create objects and
define their state and operations.
■ Class is a type and object is an instance.
■ Object-Oriented design
– Approach of software design
– Identify problem domain objects and represent them with classes
– Define the classes and relationships between their objects
– Create system of interacting objects to solve a problem
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Object Oriented Design
(Attributes & Behavior)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Attributes & Behaviors
■ Class defines the attributes and behaviors for the objects
■ Attributes (properties) define the data in an object
– Describe the state of an object
– Represented by variables in an object
■ Behaviors (methods) define the functionality of an object
– Describe how object responds to messages passed to it
– Represented by functions of an object
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Object Oriented Design
(Relations among Classes & Objects)
(Association, Aggregation & Composition)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Association
■ Association is a relationship or a connection between two classes where there is no
owner and all objects have their own lifecycle
■ Removing the objects does not change the lifecycle of their related objects
■ Association relation between two classes A and B can be defined when
– A uses B
– A knows B
– A is related to B
■ Association multiplicity between two classes can be defined as
– One-to-one (one object of class is related to exactly one object of other class)
– One-to-many (one object of class is related to multiple objects of other class)
– Many-to-many (Multiple objects of class are related to multiple objects of other class)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Aggregation
■ Aggregation is a special type of Association where there is an ownership relation
(one class owns the other class) but all objects have their own lifecycle
■ Removing the owned objects does not change the lifecycle of their owner objects
■ Removing the owner objects does not change the lifecycle of their owned objects
■ Aggregation relation between two classes from A to B can be defined when B can
exist without A and
– A has a B
– A consists of B
– A owns B
– B belongs to A
– B is a part of A
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Composition
■ Composition is a special type of Aggregation where there is an ownership relation
(one class owns the other class) and lifecycle of owned objects depend on the
lifecycle of their owner objects
■ Removing the owned objects does not change the lifecycle of their owner objects
■ Removing the owner objects also ends the lifecycle of their owned objects
■ Composition relation between two classes from A to B can be defined when B
cannot exist without A and
– A has a B
– A consists of B
– A owns B
– B belongs to A
– B is a part of A
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Object Oriented Design
(Inheritance)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Inheritance
■ Inheritance is a relationship or a connection between two classes where one class
extends an existing class and inherit all the characteristics of existing class
■ Inheritance relation between two classes from A (sub class, derived class or child
class) to B (super class, base class or parent class) can be defined when
– A is a B
– A is kind / type of B
– A is like B
■ Child class can implement its own attributes and behaviors
■ Child class can access the attributes and behaviors of its parent class
■ Child class can override the behaviors of its parent class
■ Class can also extend an already extended class, creating a hierarchyof classes
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Object Oriented Design
(Polymorphism)
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Polymorphism
■ Polymorphism provides different implementation of behaviors (methods) that are
implemented with same name
■ Static polymorphism occurs due to behavior (method) overloading in same class
■ Dynamic polymorphism occurs due to behavior (method) overriding in a hierarchy of
classes related by inheritance
1. Parent class (generalization) is extended by specific child classes (specialization)
2. Child classes override the behaviors (methods) of parent class
3. Behaviors (methods) are invoked depending on the child class of the object
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
Reference
■ Using UML: Software Engineering with Objects and Components by Perdita Stevens,
Rob Pooley, Addison-Wesley, 2006
FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

More Related Content

Viewers also liked

Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)Hafiz Ammar Siddiqui
 
3-Graphics in Game (Game Development - UMT Spring 2017/2018)
3-Graphics in Game (Game Development - UMT Spring 2017/2018)3-Graphics in Game (Game Development - UMT Spring 2017/2018)
3-Graphics in Game (Game Development - UMT Spring 2017/2018)Hafiz Ammar Siddiqui
 
Object Oriented Software Engineering
Object Oriented Software EngineeringObject Oriented Software Engineering
Object Oriented Software EngineeringAli Haider
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...Ashok Mohanty
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software EngineeringLeyla Bonilla
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning componentsthomaswaud
 
Cloud computing and software engineering
Cloud computing and software engineeringCloud computing and software engineering
Cloud computing and software engineeringRavindra Dastikop
 

Viewers also liked (20)

software engineering
 software engineering software engineering
software engineering
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Software design methodologies
Software design methodologiesSoftware design methodologies
Software design methodologies
 
1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)
 
Software design
Software designSoftware design
Software design
 
Ch01lect1 ud
Ch01lect1 udCh01lect1 ud
Ch01lect1 ud
 
3-Graphics in Game (Game Development - UMT Spring 2017/2018)
3-Graphics in Game (Game Development - UMT Spring 2017/2018)3-Graphics in Game (Game Development - UMT Spring 2017/2018)
3-Graphics in Game (Game Development - UMT Spring 2017/2018)
 
Object Oriented Software Engineering
Object Oriented Software EngineeringObject Oriented Software Engineering
Object Oriented Software Engineering
 
software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...software development, process model, requirement engineering, srs, structured...
software development, process model, requirement engineering, srs, structured...
 
Software Design patterns on Android English
Software Design patterns on Android EnglishSoftware Design patterns on Android English
Software Design patterns on Android English
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning components
 
Cloud computing and software engineering
Cloud computing and software engineeringCloud computing and software engineering
Cloud computing and software engineering
 
Ch05lect1 ud
Ch05lect1 udCh05lect1 ud
Ch05lect1 ud
 
Ch03lect1 ud
Ch03lect1 udCh03lect1 ud
Ch03lect1 ud
 
Ch07lect1 ud
Ch07lect1 udCh07lect1 ud
Ch07lect1 ud
 
Ch03lect2 ud
Ch03lect2 udCh03lect2 ud
Ch03lect2 ud
 

Similar to 2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)

9-Software Verification and Validation (Object Oriented Software Engineering ...
9-Software Verification and Validation (Object Oriented Software Engineering ...9-Software Verification and Validation (Object Oriented Software Engineering ...
9-Software Verification and Validation (Object Oriented Software Engineering ...Hafiz Ammar Siddiqui
 
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)Hafiz Ammar Siddiqui
 
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...Hafiz Ammar Siddiqui
 
OOSE Unit 3 PPT.ppt
OOSE Unit 3 PPT.pptOOSE Unit 3 PPT.ppt
OOSE Unit 3 PPT.pptitadmin33
 
Oose unit 3 ppt
Oose unit 3 pptOose unit 3 ppt
Oose unit 3 pptDr VISU P
 
2009-06-15 Marist Summer Series
2009-06-15 Marist Summer Series2009-06-15 Marist Summer Series
2009-06-15 Marist Summer SeriesShawn Wells
 
Object oriented and analysis
Object oriented and analysisObject oriented and analysis
Object oriented and analysisAhmad Khan
 
Object Oriented Programming Overview for the PeopleSoft Developer
Object Oriented Programming Overview for the PeopleSoft DeveloperObject Oriented Programming Overview for the PeopleSoft Developer
Object Oriented Programming Overview for the PeopleSoft DeveloperLee Greffin
 
DCMI Education Community Brief Update
DCMI Education Community Brief UpdateDCMI Education Community Brief Update
DCMI Education Community Brief UpdateSarah Currier
 
object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming pptNitesh Dubey
 
Lecture 08-inheritance-i
Lecture 08-inheritance-iLecture 08-inheritance-i
Lecture 08-inheritance-iWaleed Arshad
 
Introduction to Software - Coder Forge - John Mulhall
Introduction to Software - Coder Forge - John MulhallIntroduction to Software - Coder Forge - John Mulhall
Introduction to Software - Coder Forge - John MulhallJohn Mulhall
 
Using Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsUsing Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsrSmart
 
Faycel b cs_resume
Faycel b cs_resumeFaycel b cs_resume
Faycel b cs_resumeFbeji
 

Similar to 2-Software Design (Object Oriented Software Engineering - BNU Spring 2017) (20)

9-Software Verification and Validation (Object Oriented Software Engineering ...
9-Software Verification and Validation (Object Oriented Software Engineering ...9-Software Verification and Validation (Object Oriented Software Engineering ...
9-Software Verification and Validation (Object Oriented Software Engineering ...
 
L03 Software Design
L03 Software DesignL03 Software Design
L03 Software Design
 
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)
7-Refactoring (Object Oriented Software Engineering - BNU Spring 2017)
 
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...
6-Software Design Reviews (Object Oriented Software Engineering - BNU Spring ...
 
OOSE Unit 3 PPT.ppt
OOSE Unit 3 PPT.pptOOSE Unit 3 PPT.ppt
OOSE Unit 3 PPT.ppt
 
Oose unit 3 ppt
Oose unit 3 pptOose unit 3 ppt
Oose unit 3 ppt
 
2009-06-15 Marist Summer Series
2009-06-15 Marist Summer Series2009-06-15 Marist Summer Series
2009-06-15 Marist Summer Series
 
Object oriented and analysis
Object oriented and analysisObject oriented and analysis
Object oriented and analysis
 
ppt_ooad.pdf
ppt_ooad.pdfppt_ooad.pdf
ppt_ooad.pdf
 
Object Oriented Programming Overview for the PeopleSoft Developer
Object Oriented Programming Overview for the PeopleSoft DeveloperObject Oriented Programming Overview for the PeopleSoft Developer
Object Oriented Programming Overview for the PeopleSoft Developer
 
Blackboard rincy
Blackboard   rincyBlackboard   rincy
Blackboard rincy
 
DCMI Education Community Brief Update
DCMI Education Community Brief UpdateDCMI Education Community Brief Update
DCMI Education Community Brief Update
 
object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming ppt
 
Lecture 08-inheritance-i
Lecture 08-inheritance-iLecture 08-inheritance-i
Lecture 08-inheritance-i
 
Lect1
Lect1Lect1
Lect1
 
PPT.pptx
PPT.pptxPPT.pptx
PPT.pptx
 
Lecture 1 oop
Lecture 1 oopLecture 1 oop
Lecture 1 oop
 
Introduction to Software - Coder Forge - John Mulhall
Introduction to Software - Coder Forge - John MulhallIntroduction to Software - Coder Forge - John Mulhall
Introduction to Software - Coder Forge - John Mulhall
 
Using Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsUsing Sakai to meet accreditation standards
Using Sakai to meet accreditation standards
 
Faycel b cs_resume
Faycel b cs_resumeFaycel b cs_resume
Faycel b cs_resume
 

Recently uploaded

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
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
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
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
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 

Recently uploaded (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
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
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
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
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 

2-Software Design (Object Oriented Software Engineering - BNU Spring 2017)

  • 1. Software Design FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 2. Software Design Process FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 3. Software Design Process ■ Software design provides interaction between requirements and implementation ■ Software design process is a problem solving process 1. Understand the problem 2. Identify one or more solutions 3. Create abstractions (model diagrams) for the identified solution 4. Refine the each abstraction ■ Software design process is refined through different stages 1. Informal design outline 2. Informal design 3. Formal design 4. Finished (final) design FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 4. Software Design Quality Attributes FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 5. Software Design Quality Attributes ■ Abstraction – Generalization by reducing the information content of a concept – Retain only relevant information – Easier to understand the concept without dealing with unnecessary details ■ Modularity – Software is divided into different components called modules – Degree to which a system's components can be separated and recombined – Structural organization containing individual modules and their interconnections ■ Cohesion (High or Low) – Degree to which the elements of a module belong together – Concerns relationships within a module FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 6. Software Design Quality Attributes ■ Coupling (Loose or Tight) – Degree of interdependence between modules – Concerns relationships between modules ■ Information Hiding – Hide irrelevant details of a module (Abstraction) – Module contains related functionality (High Cohesion) – Modules are independent (Loose Coupling) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 7. Design Objectives FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 8. Design Objectives ■ Correctness – Full fill all requirements – Implement every constraint ■ Efficiency – Proper management of resources – Maximize performance ■ Cost – Minimize cost ■ Maintainability – Facilitate debugging and testing – Easy to modify and extend FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 9. Object Oriented Design (Classes & Objects) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 10. Classes & Objects ■ Object is an entity in a software system which represent an instance of a thing from real-world. It has a state (set of attributes or properties) and a defined set of operations (behaviors or methods) which operate on that state. ■ Class is a blueprint or template definition for an object which create objects and define their state and operations. ■ Class is a type and object is an instance. ■ Object-Oriented design – Approach of software design – Identify problem domain objects and represent them with classes – Define the classes and relationships between their objects – Create system of interacting objects to solve a problem FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 11. Object Oriented Design (Attributes & Behavior) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 12. Attributes & Behaviors ■ Class defines the attributes and behaviors for the objects ■ Attributes (properties) define the data in an object – Describe the state of an object – Represented by variables in an object ■ Behaviors (methods) define the functionality of an object – Describe how object responds to messages passed to it – Represented by functions of an object FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 13. Object Oriented Design (Relations among Classes & Objects) (Association, Aggregation & Composition) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 14. Association ■ Association is a relationship or a connection between two classes where there is no owner and all objects have their own lifecycle ■ Removing the objects does not change the lifecycle of their related objects ■ Association relation between two classes A and B can be defined when – A uses B – A knows B – A is related to B ■ Association multiplicity between two classes can be defined as – One-to-one (one object of class is related to exactly one object of other class) – One-to-many (one object of class is related to multiple objects of other class) – Many-to-many (Multiple objects of class are related to multiple objects of other class) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 15. Aggregation ■ Aggregation is a special type of Association where there is an ownership relation (one class owns the other class) but all objects have their own lifecycle ■ Removing the owned objects does not change the lifecycle of their owner objects ■ Removing the owner objects does not change the lifecycle of their owned objects ■ Aggregation relation between two classes from A to B can be defined when B can exist without A and – A has a B – A consists of B – A owns B – B belongs to A – B is a part of A FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 16. Composition ■ Composition is a special type of Aggregation where there is an ownership relation (one class owns the other class) and lifecycle of owned objects depend on the lifecycle of their owner objects ■ Removing the owned objects does not change the lifecycle of their owner objects ■ Removing the owner objects also ends the lifecycle of their owned objects ■ Composition relation between two classes from A to B can be defined when B cannot exist without A and – A has a B – A consists of B – A owns B – B belongs to A – B is a part of A FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 17. Object Oriented Design (Inheritance) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 18. Inheritance ■ Inheritance is a relationship or a connection between two classes where one class extends an existing class and inherit all the characteristics of existing class ■ Inheritance relation between two classes from A (sub class, derived class or child class) to B (super class, base class or parent class) can be defined when – A is a B – A is kind / type of B – A is like B ■ Child class can implement its own attributes and behaviors ■ Child class can access the attributes and behaviors of its parent class ■ Child class can override the behaviors of its parent class ■ Class can also extend an already extended class, creating a hierarchyof classes FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 19. Object Oriented Design (Polymorphism) FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 20. Polymorphism ■ Polymorphism provides different implementation of behaviors (methods) that are implemented with same name ■ Static polymorphism occurs due to behavior (method) overloading in same class ■ Dynamic polymorphism occurs due to behavior (method) overriding in a hierarchy of classes related by inheritance 1. Parent class (generalization) is extended by specific child classes (specialization) 2. Child classes override the behaviors (methods) of parent class 3. Behaviors (methods) are invoked depending on the child class of the object FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 21. Reference ■ Using UML: Software Engineering with Objects and Components by Perdita Stevens, Rob Pooley, Addison-Wesley, 2006 FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY