SlideShare une entreprise Scribd logo
1  sur  35
Introduction to
UML Diagramming
Problems have many
    solutions
Design is about
                      choosing one




http://morguefile.com/archive/?display=66493   http://flickr.com/photos/chidorian/4795357/in/set-384742/
Why model?
To visualize




http://www.rohdesign.com/weblog/archives/000896.html
To communicate




Electronic schematic of GEE radar (AMES type 7000) used in second world war by the allies
To emphasize




   DaVinci’s Flush Toilet
The UML is a standard
  graphical notation for
describing object-oriented
    software systems
Use UML to visualize,
  communicate, and
emphasize your choices
1           Library
                                      checkout         1                             Membership
                                      return                                        start : Date
                                                                                    renewal : Date

                  *                        due : Date
                                                      LendRecord
          Lendable
                                  1        returned : Boolean
  id
  newArrival : Boolean                 *   LendRecord(lendable, member, date)
  calcDueDate(member): Date                isDue() : Boolean
                                           renew(Date)

                                                                 *
   Book                CD                                                1
                                                                                    *
                                                                                Member
            DVD




Goal: Understand this
: Library            aMember            aLendable
  checkout(lendable, member)

                                     canBorrow(lendable)

                                       numOut(member)




      opt                                       calcDueDate(member)

     { canBorrow == true }
                                                dueDate


                                           record
                                                                      new
                                                                                   aLendRecord




And this
Class Diagram Elements
          Class
Package                            Class




                  Attributes

                      Operations
Class Diagram Elements
                   Association

    multiplicity
                                 navigability




                   role
Class Diagram Elements
          Complex Associations




   association
      class




          key                    value
Class Diagram Elements
                 Dependency




    depends on
Class Diagram Elements
             Generalization




superclass




             subclasses
Class Diagram Elements
  Providing and Requiring Interfaces




                 implementor
       uses
     interface
left
        BinaryTree       1             0..1
                                  0..1                       1
    add(obj: Obect)
    remove(obj)                  root TreeNode                       Object

    contains(obj):bool                 0..1
                                              right


                             <<interface>>
                              TreeIterator
                             hasNext : bool
                             next : Object




    PrefixTreeIterator    PostfixTreeIterator           InfixTreeIterator




Example: Binary tree
1           Library
                                      checkout         1                             Membership
                                      return                                        start : Date
                                                                                    renewal : Date

                  *                        due : Date
                                                      LendRecord
          Lendable
                                  1        returned : Boolean
  id
  newArrival : Boolean                 *   LendRecord(lendable, member, date)
  calcDueDate(member): Date                isDue() : Boolean
                                           renew(Date)

                                                                 *
   Book                CD                                                1
                                                                                    *
                                                                                Member
            DVD




Example: Library Classes
Sequence Diagram
    Elements
                    Object lifeline


object




         lifeline
Sequence diagram
      elements
             Object activation




                                     message

activation                       return
   bar
Sequence diagram
    elements
 Object creation and deletion



                       object creation




                               object
                             destruction
Sequence diagram
    elements
     Callbacks
Sequence diagram
    elements
   Object calling itself
Sequence diagram
                   elements
                     Loops




operator                      guard

 interaction
    frame
Sequence diagram
                  elements
                  Conditionals




alternative
separator
aPanel          child : Component       dc : DrawingContext


                 paint(dc)



  loop                                paint(dc)
                                                         drawOperation(args)
    { forEach child }




Example: Panel painting
: Library            aMember            aLendable
  checkout(lendable, member)

                                     canBorrow(lendable)

                                       numOut(member)




      opt                                       calcDueDate(member)

     { canBorrow == true }
                                                dueDate


                                           record
                                                                      new
                                                                                   aLendRecord




Example: Library Checkout
1: checkout(lendable, member)                          1.1: canBorrow(lendable)
                                         :Library


                         1.3: record
                                                                                     aMember
                                                    1.1.1: numOut(member)

                1.2: calcDueDate(member)

                                                         <<create>>
                                                         1.3.1: new

                                       aLendable
                                                                 aLendRecord




Communication Diagram
Data



     View   Model      SQLServer   Oracle




Package Diagram
Actor                         Actor       Actor



                                                             start

                                       Activity

                                                              fork

           Activity




                                                  Activity

                       {condition}
                                     Activity
                                                  Activity




                {condition}



                                                              join
                                                             end

Activity Diagram
<<include>>
                                          Common
     Role     Use Case                    Use Case


                                                     Role
              <<include>>

                                      Use Case
                Use Case


       Role
                                                     Role




Use Case Diagram
UML in UML
Resources


• UML Distilled by Martin Fowler
• http://bdn.borland.com/article/
  0,1410,31863,00.html
• http://www.uml.org
• http://www.agilemodeling.com
(cc) 2006 Lou Franco
Released under the following creative commons license

     Attribution-NonCommercial-ShareAlike 2.0
 http://creativecommons.org/licenses/by-nc-sa/2.0

Each photograph used has a URL for attribution. Please
      see the original site for the photo’s license.

Contenu connexe

Tendances

Jruby - Ruby em Ambientes 100% Java
Jruby - Ruby em Ambientes 100% JavaJruby - Ruby em Ambientes 100% Java
Jruby - Ruby em Ambientes 100% JavaSergio Azevedo
 
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugketan_patel25
 
State of GeoTools 2012
State of GeoTools 2012State of GeoTools 2012
State of GeoTools 2012Jody Garnett
 
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)uEngine Solutions
 
Semantic code transformations in MetaJS
Semantic code transformations in MetaJSSemantic code transformations in MetaJS
Semantic code transformations in MetaJSDmytro Dogadailo
 
아이폰강의(3)
아이폰강의(3)아이폰강의(3)
아이폰강의(3)sunwooindia
 
Gazr
GazrGazr
Gazrkuro7
 

Tendances (10)

Jruby - Ruby em Ambientes 100% Java
Jruby - Ruby em Ambientes 100% JavaJruby - Ruby em Ambientes 100% Java
Jruby - Ruby em Ambientes 100% Java
 
Dynamic Elements
Dynamic ElementsDynamic Elements
Dynamic Elements
 
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
 
State of GeoTools 2012
State of GeoTools 2012State of GeoTools 2012
State of GeoTools 2012
 
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)
웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)
 
Semantic code transformations in MetaJS
Semantic code transformations in MetaJSSemantic code transformations in MetaJS
Semantic code transformations in MetaJS
 
아이폰강의(3)
아이폰강의(3)아이폰강의(3)
아이폰강의(3)
 
Gazr
GazrGazr
Gazr
 
Inheritance
InheritanceInheritance
Inheritance
 
Introduction to hibernate
Introduction to hibernateIntroduction to hibernate
Introduction to hibernate
 

En vedette

En vedette (14)

Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
An introduction to uml
An introduction to umlAn introduction to uml
An introduction to uml
 
Iterative Incremental development
Iterative Incremental developmentIterative Incremental development
Iterative Incremental development
 
Iterative model
Iterative modelIterative model
Iterative model
 
Presentation - Rational Unified Process
Presentation - Rational Unified ProcessPresentation - Rational Unified Process
Presentation - Rational Unified Process
 
Unified process
Unified processUnified process
Unified process
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
Ooad Uml
Ooad UmlOoad Uml
Ooad Uml
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling Language
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Unified Process
Unified ProcessUnified Process
Unified Process
 

Similaire à Introduction to UML

Guest Lecture: Exchange and QA for Metadata at WSU
Guest Lecture: Exchange and QA for Metadata at WSUGuest Lecture: Exchange and QA for Metadata at WSU
Guest Lecture: Exchange and QA for Metadata at WSUMeghan Finch
 
Esoteric LINQ and Structural Madness
Esoteric LINQ and Structural MadnessEsoteric LINQ and Structural Madness
Esoteric LINQ and Structural MadnessChris Eargle
 
The InfoGrid Graph DataBase
The InfoGrid Graph DataBaseThe InfoGrid Graph DataBase
The InfoGrid Graph DataBaseInfoGrid.org
 
Sparse Content Map Storage System
Sparse Content Map Storage SystemSparse Content Map Storage System
Sparse Content Map Storage Systemianeboston
 
Performance in .NET - Best practices
Performance in .NET - Best practicesPerformance in .NET - Best practices
Performance in .NET - Best practicesSorin Oboroceanu
 
Webinar: General Technical Overview of MongoDB
Webinar: General Technical Overview of MongoDBWebinar: General Technical Overview of MongoDB
Webinar: General Technical Overview of MongoDBMongoDB
 
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...JSFestUA
 
Conflict-Free Replicated Data Types (PyCon 2022)
Conflict-Free Replicated Data Types (PyCon 2022)Conflict-Free Replicated Data Types (PyCon 2022)
Conflict-Free Replicated Data Types (PyCon 2022)Rebecca Bilbro
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryjanet736113
 
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The BrowserBackbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The BrowserHoward Lewis Ship
 
Js info vis_toolkit
Js info vis_toolkitJs info vis_toolkit
Js info vis_toolkitnikhilyagnic
 
CommercialSystemsBahman.ppt
CommercialSystemsBahman.pptCommercialSystemsBahman.ppt
CommercialSystemsBahman.pptKalsoomTahir2
 

Similaire à Introduction to UML (19)

Guest Lecture: Exchange and QA for Metadata at WSU
Guest Lecture: Exchange and QA for Metadata at WSUGuest Lecture: Exchange and QA for Metadata at WSU
Guest Lecture: Exchange and QA for Metadata at WSU
 
Esoteric LINQ and Structural Madness
Esoteric LINQ and Structural MadnessEsoteric LINQ and Structural Madness
Esoteric LINQ and Structural Madness
 
The InfoGrid Graph DataBase
The InfoGrid Graph DataBaseThe InfoGrid Graph DataBase
The InfoGrid Graph DataBase
 
Sparse Content Map Storage System
Sparse Content Map Storage SystemSparse Content Map Storage System
Sparse Content Map Storage System
 
Performance in .NET - Best practices
Performance in .NET - Best practicesPerformance in .NET - Best practices
Performance in .NET - Best practices
 
Webinar: General Technical Overview of MongoDB
Webinar: General Technical Overview of MongoDBWebinar: General Technical Overview of MongoDB
Webinar: General Technical Overview of MongoDB
 
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...
JS Fest 2019. Max Koretskiy. A sneak peek into super optimized code in JS fra...
 
Conflict-Free Replicated Data Types (PyCon 2022)
Conflict-Free Replicated Data Types (PyCon 2022)Conflict-Free Replicated Data Types (PyCon 2022)
Conflict-Free Replicated Data Types (PyCon 2022)
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
 
Semantic Digital Libraries
Semantic Digital LibrariesSemantic Digital Libraries
Semantic Digital Libraries
 
Green dao
Green daoGreen dao
Green dao
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
Dacj 4 2-c
Dacj 4 2-cDacj 4 2-c
Dacj 4 2-c
 
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The BrowserBackbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The Browser
 
9 cm604.14
9 cm604.149 cm604.14
9 cm604.14
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
Js info vis_toolkit
Js info vis_toolkitJs info vis_toolkit
Js info vis_toolkit
 
CommercialSystemsBahman.ppt
CommercialSystemsBahman.pptCommercialSystemsBahman.ppt
CommercialSystemsBahman.ppt
 

Dernier

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Introduction to UML

  • 2. Problems have many solutions
  • 3. Design is about choosing one http://morguefile.com/archive/?display=66493 http://flickr.com/photos/chidorian/4795357/in/set-384742/
  • 6. To communicate Electronic schematic of GEE radar (AMES type 7000) used in second world war by the allies
  • 7. To emphasize DaVinci’s Flush Toilet
  • 8. The UML is a standard graphical notation for describing object-oriented software systems
  • 9. Use UML to visualize, communicate, and emphasize your choices
  • 10. 1 Library checkout 1 Membership return start : Date renewal : Date * due : Date LendRecord Lendable 1 returned : Boolean id newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean renew(Date) * Book CD 1 * Member DVD Goal: Understand this
  • 11. : Library aMember aLendable checkout(lendable, member) canBorrow(lendable) numOut(member) opt calcDueDate(member) { canBorrow == true } dueDate record new aLendRecord And this
  • 12. Class Diagram Elements Class Package Class Attributes Operations
  • 13. Class Diagram Elements Association multiplicity navigability role
  • 14. Class Diagram Elements Complex Associations association class key value
  • 15. Class Diagram Elements Dependency depends on
  • 16. Class Diagram Elements Generalization superclass subclasses
  • 17. Class Diagram Elements Providing and Requiring Interfaces implementor uses interface
  • 18. left BinaryTree 1 0..1 0..1 1 add(obj: Obect) remove(obj) root TreeNode Object contains(obj):bool 0..1 right <<interface>> TreeIterator hasNext : bool next : Object PrefixTreeIterator PostfixTreeIterator InfixTreeIterator Example: Binary tree
  • 19. 1 Library checkout 1 Membership return start : Date renewal : Date * due : Date LendRecord Lendable 1 returned : Boolean id newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean renew(Date) * Book CD 1 * Member DVD Example: Library Classes
  • 20. Sequence Diagram Elements Object lifeline object lifeline
  • 21. Sequence diagram elements Object activation message activation return bar
  • 22. Sequence diagram elements Object creation and deletion object creation object destruction
  • 23. Sequence diagram elements Callbacks
  • 24. Sequence diagram elements Object calling itself
  • 25. Sequence diagram elements Loops operator guard interaction frame
  • 26. Sequence diagram elements Conditionals alternative separator
  • 27. aPanel child : Component dc : DrawingContext paint(dc) loop paint(dc) drawOperation(args) { forEach child } Example: Panel painting
  • 28. : Library aMember aLendable checkout(lendable, member) canBorrow(lendable) numOut(member) opt calcDueDate(member) { canBorrow == true } dueDate record new aLendRecord Example: Library Checkout
  • 29. 1: checkout(lendable, member) 1.1: canBorrow(lendable) :Library 1.3: record aMember 1.1.1: numOut(member) 1.2: calcDueDate(member) <<create>> 1.3.1: new aLendable aLendRecord Communication Diagram
  • 30. Data View Model SQLServer Oracle Package Diagram
  • 31. Actor Actor Actor start Activity fork Activity Activity {condition} Activity Activity {condition} join end Activity Diagram
  • 32. <<include>> Common Role Use Case Use Case Role <<include>> Use Case Use Case Role Role Use Case Diagram
  • 34. Resources • UML Distilled by Martin Fowler • http://bdn.borland.com/article/ 0,1410,31863,00.html • http://www.uml.org • http://www.agilemodeling.com
  • 35. (cc) 2006 Lou Franco Released under the following creative commons license Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0 Each photograph used has a URL for attribution. Please see the original site for the photo’s license.

Notes de l'éditeur

  1. UML is used to model OO design, but what is design?
  2. First there are problems, and problems have many solutions. Each solution has its own trade-offs between benefits and drawbacks.
  3. Design is choosing the combination of tradeoffs that best solves our problem
  4. 1. Faster to model than to implement 2. Helps us choose 3. Try different approaches (to compare) 4. Finish the most promising ones
  5. 1. Communicate to yourself 2. Communicate to implementors 3. Communicate to domain experts
  6. 1. Models show the important choices 2. Leave out details to emphasize 3. Several different views on same structure
  7. UNIFIED MODELING LANGUAGE Unifies: Booch, Rumbaugh, Jacobson Language: Can be used to implement a software system -- equivalent to code omg (uml.org) &amp;#x201C;A specification defining a graphical language for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems.&amp;#xA0;&amp;#x201C; Unifies 50+ OO modeling systems
  8. Main point
  9. Class name could be just the Name or Package::Name attribute spec is attribute:Type[multiplicity] = default value operation spec is operation : (arg: ArgType, arg2: Arg2Type=default) : Type
  10. 1. Everything is optional (name could be class name) 2. Multiplicity 3. Bidirectional
  11. Top is an association class, where each pairing of Library and Member is represented in a Membership class Bottom is a qualified association where Library has a map of id to Lendable. The Multiplicity is per id. Don&amp;#x2019;t show datastructures, unless ...
  12. call, create, permit (friend), use
  13. The word generalization emphasizes the role of the base class. Don&amp;#x2019;t think is-a -- think substitutability.
  14. Top one emphasizes that Clipboard uses an interface and DataObject is just one of those Bottom one emphasizes that DataObject provides an interface and Clipboard is a class that would use it
  15. Only time to show datastructures is if that&amp;#x2019;s specifically what you&amp;#x2019;re monitoring
  16. Objects are underlined, either the object name or the class name is optional. If just showing class, keep the colon. The lifeline is the lifetime of the object -- sequence diagrams are read top-down with time passing as we go down.
  17. messages are shown with arrows, returns are dashed arrows. Line arrow heads are asynch calls (but you will see half arrows used instead -- old convention). During the bar, the class is active (the message is in the stack frame)
  18. m calls m.1, m.2, etc. m.n calls m.n.1, m.n.2, etc. Order is 1, 1.1, 1.1.1, 1.2, 1.3, 1.3.1
  19. All classes in each package need to follow this dependency, classes in view can depend on classes in model, but not vice versa.
  20. each swim lane has an actor (who is doing the activity) diamond is a branch There are also symbols for sending and receiving signals