2.1. UML About

  • UML - Unified Modeling Language

  • 14 diagrams

  • ERD Diagram

Structure Diagrams:

  • Class Diagram

  • Component Diagram

  • Deployment Diagram

  • Object Diagram

  • Package Diagram

  • Profile Diagram

  • Composite Structure Diagram

Behavioral Diagrams:

  • Use Case Diagram

  • Activity Diagram

  • State Machine Diagram

  • Sequence Diagram

  • Communication Diagram

  • Interaction Overview Diagram

  • Timing Diagram

../../_images/uml-diagram-types.png

Figure 2.2. UML Types Diagram [1]

2.1.1. Rationale

../../_images/uml-design-patterns-1.jpg
../../_images/uml-design-patterns-2.jpg

2.1.2. Class Diagram

../../_images/uml-diagram-class.png
@startuml

class Account {
    - username
    - password
    + login()
    + logout()
}

class User {
    - firstname
    - lastname
    - email
    + change_firstname()
    + change_lastname()
    + change_email()
}

class Admin {
    - is_active
    - is_staff
    - is_admin
    + add_user()
    + edit_user()
    + delete_user()
}

Account <|-- User
Account <|-- Admin

note as COMMENT
    class User inherits from Account
    class Admin inherits from Account
endnote

@enduml

2.1.3. Sequence Diagram

../../_images/uml-diagram-sequence.png
@startuml

autonumber

actor User
participant Server
database Database

activate User
User -> Server: HTTP Request

activate Server
Server -> Database: SQL Query

activate Database
Database --> Server: Result
deactivate Database

Server --> User: HTTP Response
deactivate Server

deactivate User

@enduml

2.1.4. Component Diagram

../../_images/uml-diagram-component.png

Figure 2.3. UML Component Diagram [1]

2.1.5. Deployment Diagram

../../_images/uml-diagram-deployment.png

Figure 2.4. UML Deployment Diagram [1]

2.1.6. Object Diagram

../../_images/uml-diagram-object.png

Figure 2.5. UML Object Diagram [1]

2.1.7. Package Diagram

../../_images/uml-diagram-package.jpg

Figure 2.6. UML Package Diagram [1]

2.1.8. Profile Diagram

../../_images/uml-diagram-profile.jpg

Figure 2.7. UML Profile Diagram [1]

2.1.9. Composite Structure Diagram

../../_images/uml-diagram-composite-structure.jpg

Figure 2.8. UML Composite-structure Diagram [1]

2.1.10. Use Case Diagram

../../_images/uml-diagram-use-case.png

Figure 2.9. UML Use-case Diagram [1]

2.1.11. Activity Diagram

../../_images/uml-diagram-activity.png

Figure 2.10. UML Activity Diagram [1]

2.1.12. State Machine Diagram

../../_images/uml-diagram-state-machine.jpg

Figure 2.11. UML State-machine Diagram [1]

2.1.13. Sequence Diagram

  • Conversation over time

../../_images/uml-diagram-sequence.jpg

Figure 2.12. UML Sequence Diagram [1]

../../_images/uml-mermaid-sequencediagram-web.png

2.1.14. Communication Diagram

../../_images/uml-diagram-communication.jpg

Figure 2.13. UML Communication Diagram [1]

2.1.15. Interaction Overview Diagram

../../_images/uml-diagram-interaction-overview.jpg

Figure 2.14. UML Interaction-overview Diagram [1]

2.1.16. Timing Diagram

../../_images/uml-diagram-timing.jpg

Figure 2.15. UML Timing Diagram [1]

2.1.17. Entity Relationship Diagram

  • Entity Relationship

  • Database

../../_images/uml-mermaid-erd.png

2.1.18. Generate from code

$ pyreverse -o png -p mymodule .
$ brew install graphviz
$ pip install pydotplus
$ pip install django-extensions

# Add 'django_extensions' to INSTALLED_APP

$ python manage.py graph_models -a -g -o all.png
../../_images/uml-django-models-5.png
../../_images/uml-django-models-6.png

2.1.19. References