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

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
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
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
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
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
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
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
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
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
 
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
 

Recently uploaded (20)

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
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
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
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
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
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.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
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).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Ữ Â...
 
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
 

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