SlideShare uma empresa Scribd logo
1 de 57
INTROSE  Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University [email_address] Modeling Software Systems
How do we model complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our  knowledge about the system  Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural  Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance  Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”,  Rumbaugh) Sequence  Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
How do we model  complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our  knowledge about the system  Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural  Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance  Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”,  Rumbaugh) Sequence  Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
Components of an Object Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML Classes ,[object Object],[object Object],[object Object],[object Object],Class Diagram slides from (Lethbridge & Laganiere, 2005)
Associations and Multiplicity   ,[object Object],[object Object]
Labelling Associations   ,[object Object]
Analyzing and Validating Associations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],* worksFor Employee Company 1
Analyzing and Validating Associations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],* supervisor * * * * * 1..* Assistant Manager
Analyzing and Validating Associations ,[object Object],[object Object],[object Object],[object Object],[object Object],1 1
Analyzing and Validating Associations ,[object Object],[object Object]
A More Complex Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Association Classes   ,[object Object],[object Object]
Reflexive Associations ,[object Object]
Directionality in Associations   ,[object Object],[object Object]
Generalization   ,[object Object],[object Object],[object Object]
Avoiding Unnecessary Generalizations   Inappropriate hierarchy of classes, which should be instances
Avoiding Unnecessary Generalizations Improved class diagram, with its corresponding instance diagram
Handling Multiple Discriminators ,[object Object]
Handling Multiple Discriminators ,[object Object]
Object Diagrams   ,[object Object]
Associations vs. Generalizations in Object Diagrams   ,[object Object],[object Object],[object Object],[object Object],[object Object]
Aggregation   ,[object Object],[object Object],[object Object]
When to Use an Aggregation ,[object Object],[object Object],[object Object],[object Object],[object Object]
Composition ,[object Object],[object Object],[object Object]
Aggregation Hierarchy
Propagation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces   ,[object Object],[object Object]
Notes and Descriptive Text   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
How do we model complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our  knowledge about the system  Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural  Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance  Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”,  Rumbaugh) Sequence  Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
UML Interaction Diagrams ,[object Object],[object Object],[object Object]
UML Interaction Diagrams ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML Collaboration Diagram ,[object Object],[object Object],[object Object],[object Object]
Link ,[object Object],[object Object],[object Object],[object Object]
Message ,[object Object],[object Object],[object Object],[object Object],[object Object]
Collaboration Diagram ,[object Object],[object Object],a : Assembly part : CatalogEntry 1.1: number = getNumber() 1 : count(part) : Client
Collaboration Diagram course_form : CourseForm theManager : CurriculumManager aCourse : Course 4 : <<create>> 3 : add_course() 1 : set_course_info() 2 : process_form() : Registrar
Message Sequence ,[object Object],[object Object],[object Object],[object Object]
Sequence Diagram ,[object Object],[object Object],[object Object],[object Object]
Sequence Diagram Time Objects and Message Flows
Lifeline ,[object Object],[object Object],[object Object],Object Name
Message ,[object Object],[object Object],[object Object],Object Name Object Name message
Return ,[object Object],Object Name Object Name message
Activation ,[object Object],[object Object],[object Object]
Sequence Diagram a : Assembly part : CatalogEntry getNumber() count(part) return number Lifeline Activation(optional) Messages control returns to the sender of the message (optional) : Client
Hierarchical Numbering of Messages 1.1 1 1.2 2 2.1 2.2 2.2.1 2.1.1 2.1.2
Object Creation course_form : CourseForm theManager : CurriculumManager aCourse : Course set_course_info process_form add_course <<create>> Object creation : Registrar
Object Creation: Order Entry Example Order OrderLine quantity: integer cost: float CatalogEntry 1 * 1 * : Client : Order : CatalogEntry OrderLine(qty,part) add(qty,part) : OrderLine getCost() return cost Object creation
Object Destruction: Order Entry Example : Order <<destroy>> remove(line) : OrderLine X : Client Object deletion
Recurrence ,[object Object],Object Name Object Name Object Name message message *[recurrence condition]
Branching ,[object Object],[object Object],Object Name Object Name Object Name [condition] message [condition] message
Conditional Message ,[object Object],[object Object],[object Object]
Conditional Message: Sequence Diagram : Order : CatalogEntry [s>=qty]  OrderLine(qty,part) add(qty,part) : OrderLine getCost() return cost getStockLevel(part) return s : Client
Conditional Message: Communication Diagram : Order : OrderLine {new} : CatalogEntry 1: add(qty, part) 1.2:  [s>=qty]  OrderLine(qty, part) 1.2.1: cost = getCost() {new} {new} 1.1: s = getStockLevel(part) : Client
Message to Self ,[object Object],[object Object],[object Object]
Self-Delegation:  Sequence Diagram : Order : Customer getShippingCost() getTotal() : OrderLine  * getLocation() * getValue() : Client
Self-Delegation:  Collaboration Diagram : Order : Customer : OrderLine  * 1: getTotal() 1.2.1: getLocation() 1.1 * : getValue() 1.2: getShippingCost() <<self>> : Client

Mais conteúdo relacionado

Mais procurados

Use case Diagram and Sequence Diagram
Use case Diagram and Sequence DiagramUse case Diagram and Sequence Diagram
Use case Diagram and Sequence DiagramNikhil Pandit
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Languagesurana college
 
unified modelling language(UML) diagrams
unified modelling language(UML) diagramsunified modelling language(UML) diagrams
unified modelling language(UML) diagramspratyashi satapathy
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml OverviewDang Tuan
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling LanguageShahzad
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagramsbarney92
 
Collaboration Diagram
Collaboration DiagramCollaboration Diagram
Collaboration Diagramfahad_uaar
 
Intro to UML 2
Intro to UML 2Intro to UML 2
Intro to UML 2rchakra
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsAmr E. Mohamed
 
Lecture#02, building blocks of uml ASE
Lecture#02, building blocks of uml ASELecture#02, building blocks of uml ASE
Lecture#02, building blocks of uml ASEbabak danyal
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with umlsabin kafle
 
Understanding unified modelling language
Understanding unified modelling languageUnderstanding unified modelling language
Understanding unified modelling languageEmmanuel Kumah
 
UML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionUML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionRamakant Soni
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 

Mais procurados (20)

Use case Diagram and Sequence Diagram
Use case Diagram and Sequence DiagramUse case Diagram and Sequence Diagram
Use case Diagram and Sequence Diagram
 
Uml Diagrams
Uml DiagramsUml Diagrams
Uml Diagrams
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Class diagram, use case and sequence diagram
Class diagram, use case and sequence diagramClass diagram, use case and sequence diagram
Class diagram, use case and sequence diagram
 
unified modelling language(UML) diagrams
unified modelling language(UML) diagramsunified modelling language(UML) diagrams
unified modelling language(UML) diagrams
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling Language
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
Collaboration Diagram
Collaboration DiagramCollaboration Diagram
Collaboration Diagram
 
Intro to UML 2
Intro to UML 2Intro to UML 2
Intro to UML 2
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour Diagrams
 
Lecture#02, building blocks of uml ASE
Lecture#02, building blocks of uml ASELecture#02, building blocks of uml ASE
Lecture#02, building blocks of uml ASE
 
34. uml
34. uml34. uml
34. uml
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with uml
 
Understanding unified modelling language
Understanding unified modelling languageUnderstanding unified modelling language
Understanding unified modelling language
 
UML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language IntroductionUML Diagrams- Unified Modeling Language Introduction
UML Diagrams- Unified Modeling Language Introduction
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
Uml sequence diagrams
Uml sequence diagramsUml sequence diagrams
Uml sequence diagrams
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 

Destaque

Planning-Based Approach for Automating Sequence Diagram Generation
Planning-Based Approach for Automating Sequence Diagram GenerationPlanning-Based Approach for Automating Sequence Diagram Generation
Planning-Based Approach for Automating Sequence Diagram GenerationYaser Sulaiman
 
"Just Enough" System Modeling
"Just Enough" System Modeling"Just Enough" System Modeling
"Just Enough" System ModelingProf. Amir Tomer
 
Agile Software Development With SCRUM
Agile Software Development With SCRUMAgile Software Development With SCRUM
Agile Software Development With SCRUMAlexey Krivitsky
 
Contracting for Agile Software Development
Contracting for Agile Software DevelopmentContracting for Agile Software Development
Contracting for Agile Software Developmentcspag67
 
Intro Agile Software Development with Scrum for Campus Party 2009
Intro Agile Software Development with Scrum for Campus Party 2009Intro Agile Software Development with Scrum for Campus Party 2009
Intro Agile Software Development with Scrum for Campus Party 2009Antonio Silveira
 
Lecture#08 sequence diagrams
Lecture#08 sequence diagramsLecture#08 sequence diagrams
Lecture#08 sequence diagramsbabak danyal
 
Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: ModelsDavid Millard
 
Class, Collaboration, Sequence Diagram of a sample project
Class, Collaboration, Sequence Diagram of a sample projectClass, Collaboration, Sequence Diagram of a sample project
Class, Collaboration, Sequence Diagram of a sample projectNaimul Arif
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSAshita Agrawal
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7koolkampus
 
High Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and ScrumHigh Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and ScrumLemi Orhan Ergin
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9Ian Sommerville
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSMikel Raj
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...Ivano Malavolta
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile MethodologyHaresh Karkar
 

Destaque (18)

Planning-Based Approach for Automating Sequence Diagram Generation
Planning-Based Approach for Automating Sequence Diagram GenerationPlanning-Based Approach for Automating Sequence Diagram Generation
Planning-Based Approach for Automating Sequence Diagram Generation
 
"Just Enough" System Modeling
"Just Enough" System Modeling"Just Enough" System Modeling
"Just Enough" System Modeling
 
Agile Software Development With SCRUM
Agile Software Development With SCRUMAgile Software Development With SCRUM
Agile Software Development With SCRUM
 
Diagrams
DiagramsDiagrams
Diagrams
 
Contracting for Agile Software Development
Contracting for Agile Software DevelopmentContracting for Agile Software Development
Contracting for Agile Software Development
 
Intro Agile Software Development with Scrum for Campus Party 2009
Intro Agile Software Development with Scrum for Campus Party 2009Intro Agile Software Development with Scrum for Campus Party 2009
Intro Agile Software Development with Scrum for Campus Party 2009
 
Lecture#08 sequence diagrams
Lecture#08 sequence diagramsLecture#08 sequence diagrams
Lecture#08 sequence diagrams
 
Software Engineering: Models
Software Engineering: ModelsSoftware Engineering: Models
Software Engineering: Models
 
Sequence diagrams in UML
Sequence diagrams in UMLSequence diagrams in UML
Sequence diagrams in UML
 
Class, Collaboration, Sequence Diagram of a sample project
Class, Collaboration, Sequence Diagram of a sample projectClass, Collaboration, Sequence Diagram of a sample project
Class, Collaboration, Sequence Diagram of a sample project
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
High Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and ScrumHigh Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and Scrum
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMS
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile Methodology
 

Semelhante a 08 class and sequence diagrams

Semelhante a 08 class and sequence diagrams (20)

Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
432
432432
432
 
OOP_Module 2.pptx
OOP_Module 2.pptxOOP_Module 2.pptx
OOP_Module 2.pptx
 
Different Types Diagrams
Different Types Diagrams  Different Types Diagrams
Different Types Diagrams
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Uml
UmlUml
Uml
 
UML-Advanced Software Engineering
UML-Advanced Software EngineeringUML-Advanced Software Engineering
UML-Advanced Software Engineering
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Intro Uml
Intro UmlIntro Uml
Intro Uml
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot net
 
UML
UMLUML
UML
 
2 class use case
2 class use case2 class use case
2 class use case
 
uml2-1214558329929112-8.ppt
uml2-1214558329929112-8.pptuml2-1214558329929112-8.ppt
uml2-1214558329929112-8.ppt
 
Advanced Structural Modeling
Advanced Structural ModelingAdvanced Structural Modeling
Advanced Structural Modeling
 
Class and object_diagram
Class  and object_diagramClass  and object_diagram
Class and object_diagram
 
Css uml
Css umlCss uml
Css uml
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2
 
SE - System Models
SE - System ModelsSE - System Models
SE - System Models
 
Ch8
Ch8Ch8
Ch8
 

Mais de kebsterz

07 software design
07   software design07   software design
07 software designkebsterz
 
07 software design
07   software design07   software design
07 software designkebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value pointskebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value pointskebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value pointskebsterz
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value pointskebsterz
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introductionkebsterz
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introductionkebsterz
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introductionkebsterz
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introductionkebsterz
 

Mais de kebsterz (10)

07 software design
07   software design07   software design
07 software design
 
07 software design
07   software design07   software design
07 software design
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
An overview about effort value points
An overview about effort value pointsAn overview about effort value points
An overview about effort value points
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
 
Pokémon competitive battling an introduction
Pokémon competitive battling   an introductionPokémon competitive battling   an introduction
Pokémon competitive battling an introduction
 
Pokemon an introduction
Pokemon   an introductionPokemon   an introduction
Pokemon an introduction
 

Último

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

08 class and sequence diagrams

  • 1. INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University [email_address] Modeling Software Systems
  • 2. How do we model complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our knowledge about the system Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”, Rumbaugh) Sequence Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
  • 3. How do we model complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our knowledge about the system Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”, Rumbaugh) Sequence Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Avoiding Unnecessary Generalizations Inappropriate hierarchy of classes, which should be instances
  • 18. Avoiding Unnecessary Generalizations Improved class diagram, with its corresponding instance diagram
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 27.
  • 28.
  • 29.
  • 30. How do we model complex systems? Epistemology Knowledge about Causality (Dynamic Model) Describes our knowledge about the system Knowledge about Functionality (Functional model) Knowledge about Relationships (Object model) From (Bruegge & Dutoit, 2004) Neural Networks DataFlow Diagrams (SA/SD) Scenarios/Use Cases (Jacobsen) Formal Specifications (Liskov) Petri Nets(Petri) Inheritance Frames,SemanticNetworks (Minsky) Uncertain Knowledge Fuzzy Sets (Zadeh) Data Relationship (E/R Modeling, Chen) Hierarchical Database Model (IMS) Network Database Model (CODASYL) Relational Database Model (Codd) Fuzzy Frames (Graham) Class Diagrams (“E/R + Inheritance”, Rumbaugh) Sequence Diagrams (Lamport) Activity Diagrams (“good old Flowcharts”)
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. Collaboration Diagram course_form : CourseForm theManager : CurriculumManager aCourse : Course 4 : <<create>> 3 : add_course() 1 : set_course_info() 2 : process_form() : Registrar
  • 38.
  • 39.
  • 40. Sequence Diagram Time Objects and Message Flows
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Sequence Diagram a : Assembly part : CatalogEntry getNumber() count(part) return number Lifeline Activation(optional) Messages control returns to the sender of the message (optional) : Client
  • 46. Hierarchical Numbering of Messages 1.1 1 1.2 2 2.1 2.2 2.2.1 2.1.1 2.1.2
  • 47. Object Creation course_form : CourseForm theManager : CurriculumManager aCourse : Course set_course_info process_form add_course <<create>> Object creation : Registrar
  • 48. Object Creation: Order Entry Example Order OrderLine quantity: integer cost: float CatalogEntry 1 * 1 * : Client : Order : CatalogEntry OrderLine(qty,part) add(qty,part) : OrderLine getCost() return cost Object creation
  • 49. Object Destruction: Order Entry Example : Order <<destroy>> remove(line) : OrderLine X : Client Object deletion
  • 50.
  • 51.
  • 52.
  • 53. Conditional Message: Sequence Diagram : Order : CatalogEntry [s>=qty] OrderLine(qty,part) add(qty,part) : OrderLine getCost() return cost getStockLevel(part) return s : Client
  • 54. Conditional Message: Communication Diagram : Order : OrderLine {new} : CatalogEntry 1: add(qty, part) 1.2: [s>=qty] OrderLine(qty, part) 1.2.1: cost = getCost() {new} {new} 1.1: s = getStockLevel(part) : Client
  • 55.
  • 56. Self-Delegation: Sequence Diagram : Order : Customer getShippingCost() getTotal() : OrderLine * getLocation() * getValue() : Client
  • 57. Self-Delegation: Collaboration Diagram : Order : Customer : OrderLine * 1: getTotal() 1.2.1: getLocation() 1.1 * : getValue() 1.2: getShippingCost() <<self>> : Client