# Knowledge Representation + DDD + MDD = :heart: --- “Um modelo é uma simplificação da realidade” --- Modelos são usados em atividades de desenvolvimento de software para desenhar *blueprints* do sistema e facilitar a **comunicação** entre **diferentes pessoas da equipe** em **diferentes níveis de abstração**. --- ## DDD - Domain-Driven Design * Principal foco de um projeto de software deve ser o **conhecimento de domínio** e não os detalhes técnicos. * Projetos de domínio complexos devem ser baseados em um modelo. --- ## MDD - Model-Driven Development 🤔 o **modelo de domínio** pode ser usado não apenas para representar o domínio (estrutura, regras, dinâmica etc.)... mas também para gerar ou manter a consistência do **software real** que será usado para gerenciá-lo. --- <img src="https://modeling-languages.com/wp-content/uploads/2017/09/img_59b60889c0c4d.png"> --- ## UML - Linguagem de formalização - Decrever **Estrutura** e **Comportamento** --- ### Estrutural Estrutura **estática** do sistema e suas partes em diferentes níveis de abstração/implementação e como eles estão relacionados entre si --- ### Comportamental **Comportamento dinâmico** dos objetos em um sistema, que pode ser descrito como intenção, propósito e temporalidade de ações e interações entre componentes. --- #### Classificação <img src="https://www.uml-diagrams.org/uml-25-diagrams.png" height="600px"> --- # Estrutural --- #### Diagrama de Classe ```mermaid classDiagram Animal <|-- Duck Animal <|-- Fish Animal <|-- Zebra Animal : +int age Animal : +String gender Animal: +isMammal() Animal: +mate() class Duck{ +String beakColor +swim() +quack() } class Fish{ -int sizeInFeet -canEat() } class Zebra{ +bool is_wild +run() } ``` --- ##### Diagrama de Classe <img src="https://www.uml-diagrams.org/class-diagrams/class-diagram-domain-overview.png" height="600px"> --- - Tipos - Relações - Herança, composição --- ##### Diagrama de Componentes ![Diagrama de Componentes](https://www.uml-diagrams.org/component-diagrams/component-diagram-overview.png) --- ##### Diagrama de Objetos/Instâncias ![Diagrama de Objetos](https://www.uml-diagrams.org/class-diagrams/object-diagram-overview.png) --- # Comportamental --- ###### Diagrama de Casos de Uso ![Diagrama de Casos de Uso](https://www.uml-diagrams.org/use-case-diagrams/business-use-case-diagram-elements.png) --- ###### Diagrama de Atividades ![](https://i.imgur.com/OyCrsQl.png) --- <iframe src="https://real-world-plantuml.com/umls/6325587836665856" width="800px" height="640"> </iframe> --- ###### Diagrama de Sequência ![Diagrama de Sequência](https://www.uml-diagrams.org/sequence-diagrams/sequence-diagram-overview.png) --- ###### Diagrama de Estado <iframe src="https://real-world-plantuml.com/umls/5362931583680512" width="800px" height="640"> </iframe> --- ###### Diagrama de Comunicação/Colaboração ![Diagrama de Comunicação](https://www.uml-diagrams.org/communication-diagrams/communication-diagram-overview.png) --- ### Ferramentas e Links interessantes - https://www.uml-diagrams.org/ - https://plantuml.com/ - https://real-world-plantuml.com/
{"metaMigratedAt":"2023-06-15T02:43:51.024Z","metaMigratedFrom":"YAML","title":"Battlefield - Minitalk","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"f68e4433-ed93-4564-a6f2-82501df0c6ce\",\"add\":4574,\"del\":3531}]"}
    372 views