SlideShare a Scribd company logo
1 of 20
introductionto software engineering Prof. BerndBrueggeChapter 5 – Analysis: ObjectModelling Murat Hacioglu
Outline LastLecture : FunctionalModelling Now: ObjectModelling
ObjectModelling Activitiesduringobjectmodelling, ObjectIdentification, Abott’sTechnique Types: Entity, BoundaryandControlObjects,
scenario -> usecase -> object
steps  of objectmodelling Classidentification Fundamentalassumtionsthatwe can findabstractions. Findingtheattributes Findingtheoperations Findingtheassociationsbetweenclasses Order of thesteps is secondary. Goal is gettingdesiredabstraction.
steps  of objectmodelling Maingoal is findingtheimportantabstraction.  Whenwefindthewrongabstractions :  Iteratethenrenamethem. Revisethe model. Youwillneverfreezeyourrequirements. Youwillchangerequest. You can do an anotherreview.
classidentification Helpstoidentifytheimportantentities of a system ForwardEngineering Findtheclassesfor a new software system ReverseEngineering Identifytheclasses in an existingsystem.
CLASS IDENTIFICATION APPROACHES Application domain approach Syntacticapproach Analyzethetexttoidentifytheobjects Designpatternsapproach (nextweek) Identifyrelevantabstractions. Ex: Chessgame, bishop, queen.. like software pattern. Component – basedapproach Identifyexistingsolutionclasses.
Classidentificationproblems Definition of thesystemboundary Actorsareoutsidethesystem ClassesandObjectsare inside thesystem. Findingtheclassesandobjects Theapplciation domain has to be analyzed. Differentobjects has to be founddepending on systempurpose. Identifyingthepurpose is another problem.
Types of objects EntityObjects Representpersistentinformationtrackedbythesystem. Ex: Databases. BoundaryObjects Interactionbetweenuserandsystem.  Ex: microfon (PC microphone, Lapelmicrophone) ControlObjects Controltasksto be performedbythesystem.
2bwatch modelling Year <<Entity>> Button <<Boundary>> Month ChangeDate <<Control>> LCD Display Day Boundary Control Entity
icons can identifystereotype We can skipone of this 3 models. SystemBoundary
Graphicsforstereotype Developers can understand UML diagrams. Customer can understandgraphicseasily. Sowearepeelingoffgraphicstodiagrams. This is pros&cons of graphics. Weseethat UML is an extensiblelanguage.
Objecttypesdealwithdifferentchanges Having 3 types of objectleadsto model thatarestrongertochanges. Interface of a systemchangesmorethancontrol Controlchangesmorethanentities in application domain. Objecttypesoriginated in Objective C (MVC) Model -> EntityObject View  -> BoundaryObject Controller -> ControlObject Observerpattern is a specialkind of MVC  	(willsee in nextweek)
Abbott’sTechnique Pick a usecaseandlook at flow of events  Do textualanalysis  Nounsareobjects /classes Verbsareoperations Afterobject/classesarefoundidentfytheirtype. Real worldentities  (FieldOfficer  EntityObject) Real worldprocedures (Emergency Plan  ControlObjects Interfaceartifacts (PoliceStation  BoundaryObjects) 50 yearsagoeveryvillage has a policestation but now not. Monopoly  is a board game. Monopoly : subclass Board game: superclass is a / neithernor / eitherorshowsinheritance
Howtofindobject SyntacticalinvestigationwithAbbot’stechnique. Useothersources Applicationknowledge: Endusersandexpertsknow. Solutionknowledge: Abstraction in thesolution domain. General worldknowledge: Ourgenericknowledge.
Generatingclassdiagrams Classidentification Identification of attributesandoperations Identification of associationsbetweenclasses Identification of multiplicities Identification of roles Idenfication of inheritance.
whousesclassdiagrams Description of thestaticproperties of a system. Application domain expert: Usesclassdiagramto model theapplication domain. Developer: Usesclassdiagramsduringsystemdevelopment.  Analysis, systemdesign, objectdesignandimplementation. Clientsandendusersareusually not interested in classdiagrams. Functionality of a system.
DynamicModelling– Wherearewe?

More Related Content

What's hot

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4  SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4 Mohammad Faizan
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns pptAman Jain
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7koolkampus
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Design Patterns
Design PatternsDesign Patterns
Design Patternssoms_1
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in javaTech_MX
 

What's hot (20)

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4  SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Ch 2 what is software quality
Ch 2 what is software qualityCh 2 what is software quality
Ch 2 what is software quality
 
Software testing
Software testingSoftware testing
Software testing
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Black box software testing
Black box software testingBlack box software testing
Black box software testing
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in java
 
Software Myths
Software MythsSoftware Myths
Software Myths
 
Ooad unit – 1 introduction
Ooad unit – 1 introductionOoad unit – 1 introduction
Ooad unit – 1 introduction
 
C# Arrays
C# ArraysC# Arrays
C# Arrays
 

Similar to Object Modelling in Software Engineering

Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Jamie (Taka) Wang
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Techglyphs
 
Factory Design Pattern
Factory Design PatternFactory Design Pattern
Factory Design PatternJaswant Singh
 
Machine Learning in Malware Detection
Machine Learning in Malware DetectionMachine Learning in Malware Detection
Machine Learning in Malware DetectionKaspersky
 
(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHPRick Ogden
 
Object oriented approach in python programming
Object oriented approach in python programmingObject oriented approach in python programming
Object oriented approach in python programmingSrinivas Narasegouda
 
Javascript design patterns
Javascript design patternsJavascript design patterns
Javascript design patternsGomathiNayagam S
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringProtelo, Inc.
 
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonBasics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonSujith Kumar
 
OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........FerryKemperman
 
Module 7: Unsupervised Learning
Module 7:  Unsupervised LearningModule 7:  Unsupervised Learning
Module 7: Unsupervised LearningSara Hooker
 
Dive into Machine Learning Event MUGDSC.pptx
Dive into Machine Learning Event MUGDSC.pptxDive into Machine Learning Event MUGDSC.pptx
Dive into Machine Learning Event MUGDSC.pptxRakshaAgrawal21
 
Dive into Machine Learning Event--MUGDSC
Dive into Machine Learning Event--MUGDSCDive into Machine Learning Event--MUGDSC
Dive into Machine Learning Event--MUGDSCRakshaAgrawal21
 
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES IAEME Publication
 
introduction to machine learning
introduction to machine learningintroduction to machine learning
introduction to machine learningJohnson Ubah
 
Synapseindia strcture of dotnet development part 1
Synapseindia strcture of dotnet development part 1Synapseindia strcture of dotnet development part 1
Synapseindia strcture of dotnet development part 1Synapseindiappsdevelopment
 

Similar to Object Modelling in Software Engineering (20)

Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1
 
Ch05lect1 ud
Ch05lect1 udCh05lect1 ud
Ch05lect1 ud
 
Factory Design Pattern
Factory Design PatternFactory Design Pattern
Factory Design Pattern
 
Machine Learning in Malware Detection
Machine Learning in Malware DetectionMachine Learning in Malware Detection
Machine Learning in Malware Detection
 
(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP
 
Object oriented approach in python programming
Object oriented approach in python programmingObject oriented approach in python programming
Object oriented approach in python programming
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Javascript design patterns
Javascript design patternsJavascript design patterns
Javascript design patterns
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software Engineering
 
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonBasics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
 
OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........
 
Module 7: Unsupervised Learning
Module 7:  Unsupervised LearningModule 7:  Unsupervised Learning
Module 7: Unsupervised Learning
 
Dive into Machine Learning Event MUGDSC.pptx
Dive into Machine Learning Event MUGDSC.pptxDive into Machine Learning Event MUGDSC.pptx
Dive into Machine Learning Event MUGDSC.pptx
 
Dive into Machine Learning Event--MUGDSC
Dive into Machine Learning Event--MUGDSCDive into Machine Learning Event--MUGDSC
Dive into Machine Learning Event--MUGDSC
 
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES
REVIEW ON GENERIC OBJECT RECOGNITION TECHNIQUES: CHALLENGES AND OPPORTUNITIES
 
Eng design 4
Eng design 4Eng design 4
Eng design 4
 
introduction to machine learning
introduction to machine learningintroduction to machine learning
introduction to machine learning
 
Synapseindia strcture of dotnet development part 1
Synapseindia strcture of dotnet development part 1Synapseindia strcture of dotnet development part 1
Synapseindia strcture of dotnet development part 1
 

Recently uploaded

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Object Modelling in Software Engineering

  • 1. introductionto software engineering Prof. BerndBrueggeChapter 5 – Analysis: ObjectModelling Murat Hacioglu
  • 2. Outline LastLecture : FunctionalModelling Now: ObjectModelling
  • 3. ObjectModelling Activitiesduringobjectmodelling, ObjectIdentification, Abott’sTechnique Types: Entity, BoundaryandControlObjects,
  • 5. steps of objectmodelling Classidentification Fundamentalassumtionsthatwe can findabstractions. Findingtheattributes Findingtheoperations Findingtheassociationsbetweenclasses Order of thesteps is secondary. Goal is gettingdesiredabstraction.
  • 6. steps of objectmodelling Maingoal is findingtheimportantabstraction. Whenwefindthewrongabstractions : Iteratethenrenamethem. Revisethe model. Youwillneverfreezeyourrequirements. Youwillchangerequest. You can do an anotherreview.
  • 7. classidentification Helpstoidentifytheimportantentities of a system ForwardEngineering Findtheclassesfor a new software system ReverseEngineering Identifytheclasses in an existingsystem.
  • 8. CLASS IDENTIFICATION APPROACHES Application domain approach Syntacticapproach Analyzethetexttoidentifytheobjects Designpatternsapproach (nextweek) Identifyrelevantabstractions. Ex: Chessgame, bishop, queen.. like software pattern. Component – basedapproach Identifyexistingsolutionclasses.
  • 9. Classidentificationproblems Definition of thesystemboundary Actorsareoutsidethesystem ClassesandObjectsare inside thesystem. Findingtheclassesandobjects Theapplciation domain has to be analyzed. Differentobjects has to be founddepending on systempurpose. Identifyingthepurpose is another problem.
  • 10. Types of objects EntityObjects Representpersistentinformationtrackedbythesystem. Ex: Databases. BoundaryObjects Interactionbetweenuserandsystem. Ex: microfon (PC microphone, Lapelmicrophone) ControlObjects Controltasksto be performedbythesystem.
  • 11. 2bwatch modelling Year <<Entity>> Button <<Boundary>> Month ChangeDate <<Control>> LCD Display Day Boundary Control Entity
  • 12. icons can identifystereotype We can skipone of this 3 models. SystemBoundary
  • 13. Graphicsforstereotype Developers can understand UML diagrams. Customer can understandgraphicseasily. Sowearepeelingoffgraphicstodiagrams. This is pros&cons of graphics. Weseethat UML is an extensiblelanguage.
  • 14. Objecttypesdealwithdifferentchanges Having 3 types of objectleadsto model thatarestrongertochanges. Interface of a systemchangesmorethancontrol Controlchangesmorethanentities in application domain. Objecttypesoriginated in Objective C (MVC) Model -> EntityObject View -> BoundaryObject Controller -> ControlObject Observerpattern is a specialkind of MVC (willsee in nextweek)
  • 15. Abbott’sTechnique Pick a usecaseandlook at flow of events Do textualanalysis  Nounsareobjects /classes Verbsareoperations Afterobject/classesarefoundidentfytheirtype. Real worldentities (FieldOfficer  EntityObject) Real worldprocedures (Emergency Plan  ControlObjects Interfaceartifacts (PoliceStation  BoundaryObjects) 50 yearsagoeveryvillage has a policestation but now not. Monopoly is a board game. Monopoly : subclass Board game: superclass is a / neithernor / eitherorshowsinheritance
  • 16.
  • 17. Howtofindobject SyntacticalinvestigationwithAbbot’stechnique. Useothersources Applicationknowledge: Endusersandexpertsknow. Solutionknowledge: Abstraction in thesolution domain. General worldknowledge: Ourgenericknowledge.
  • 18. Generatingclassdiagrams Classidentification Identification of attributesandoperations Identification of associationsbetweenclasses Identification of multiplicities Identification of roles Idenfication of inheritance.
  • 19. whousesclassdiagrams Description of thestaticproperties of a system. Application domain expert: Usesclassdiagramto model theapplication domain. Developer: Usesclassdiagramsduringsystemdevelopment. Analysis, systemdesign, objectdesignandimplementation. Clientsandendusersareusually not interested in classdiagrams. Functionality of a system.