O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar...

41

Transcript of O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar...

Page 1: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.
Page 2: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

O que é a UML?Linguagem Gráfica de Modelagem para:

VisualizarEspecificarConstruirDocumentarComunicarArtefatos de sistemas complexos

Linguagem: vocabulário + regras de combinação

Page 3: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Modelos O que é um modelo?

Um modelo é uma simplificação (representação) da realidade

O que modelamos?Dimensões: dados, função, comportamento

Page 4: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Objetivos da ModelagemCompreender melhor o sistema que estamos

desenvolvendo Visualizar o sistemaDocumentar decisões tomadasEspecificar comportamento ou a estrutura de

um sistema

Page 5: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Princípios da ModelagemA escolha dos modelos a serem criados tem profunda

influência sobre a maneira como um determinado problema é atacado e como uma solução é definida

Cada modelo poderá ser expresso em diferentes níveis de precisão

Os melhores modelos estão relacionados à realidadeNenhum modelo único é suficiente. Qualquer modelo

não-trivial será melhor investigado por meio de um pequeno conjunto de modelos quase independentes

Page 6: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

A UML não éUma linguagem de programaçãoum processouma metodologiaregras de projeto

Page 7: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Criadores da UMLJames Rumbaugh - Object

Modeling Technique (OMT)Grady Booch - Booch MethodIvar Jacobson - Objectory (OOSE)

Process

Page 8: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Por que os 3 autores resolveram criar a UML?

Cada autor adotava idéias dos métodos dos outros, então, evoluindo juntos produziriam melhorias

A unificação dos 3 métodos trariam estabilidade para o mercado

Page 9: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

UMLUMLBOOCHBOOCH OMTOMT

OOSEOOSE

Diagrama de Estados Diagrama de Objetos (Colaboração) Diagrama de Processo (Desenvolvimento) Diagrama de Módulos (Componentes)

Use Case Subsistemas (Package) Diagrama de Interações MiniEspecificação

Diagrama de Estados Diagrama de Classes

Page 10: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Origem e Evolução da UML

Unified Method 0.8 Unificação I(Out’95)

Booch’93 OMT-2

Outros métodos Booch’91 OMT-1 OOSE Fragmentação

UML 1.0Parceirosda UML

Padronização(Jan’97)

UML 1.1 Industrialização(Set’97)

UML 0.9 & 0.91 Unificação II(Out’96)

Page 11: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Tradicional e ModernaClasses

Relacionamentos

Objetos

Use Cases

Sistemas degrande porte

Componentes

ActiveX/COM+

ORDBMS

CORBA

Java Beans

Interfaces

SistemasReal Time

Objetos de negócio

Design Patterns

Frameworks

Page 12: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Algumas aplicações

Sistemas de informações corporativosServiços bancários e financeirosTelecomunicaçõesTransportesDefesa/espaço aéreoVendas de varejoEletrônica médicaCientíficosServiços distribuídos baseados na Web

Page 13: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Elementos da UMLPara formar um modelo conceitual da linguagem é

necessário aprender três elementos principais

Blocos de construçãoRegras que determinam como esses blocos

poderão ser combinadosMecanismos comuns aplicados na UML

Page 14: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Blocos de ConstruçãoTrês tipos:

Itens: são abstraçõesRelacionamentos: os relacionamentos reunem

esses itensDiagramas: agrupam coleções interessantes de item

Page 15: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Itens da UMLEstruturaisComportamentaisDe agrupamentoAnotacionais

Page 16: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Itens estruturaisSão os substantivos dos modelos. São a parte

estática, representando elementos conceituais ou físicos

Sete tipos: classes, interfaces, colaborações, casos de uso, classes ativas, componentes e nósWindow

originsize

open()close()move()display()

Classe

orderForm.java

Componente

Servidor

Page 17: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Itens comportamentaisRepresentam as partes dinâmicas dos modelos.

São os verbos, representando comportamentos no tempo e no espaço

Dois tipos: interação e máquina de estado

exibir

Mensagem

Aguardando

Estado

Page 18: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Itens de agrupamentoSão as partes organizacionais dos modelos de

UML. São os blocos em que os modelos podem ser decompostos – pacotes

Um pacote é um mecanismo de propósito geral para a organização de elementos em grupos

Regras de negócios

Pacote

Page 19: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Itens anotacionaisPartes explicativas dos modelos UML. São

comentários, incluídos para descrever, esclarecer e fazer alguma observação importante sobre qualquer elemento do modelo - notas

Nota

Retornar cópia

Page 20: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

RelacionamentosDependênciaAssociaçãoGeneralizaçãoRealização

Page 21: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

DependênciaRelacionamento semântico entre dois

itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o item dependente)

FilmClipname

playOn()start()stop()reset()

Channel

dependência

Page 22: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

AssociaçãoÉ um relacionamento estrutural que

descreve um conjunto de ligações, em que as ligações são conexões entre objetos

Pessoa Departamento11..*

+funcionario+emprega

11..*

associação

Page 23: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

(Agregação)A agregação é um tipo especial de

associação representando um relacionamento estrutural entre o todo e sua parte

Departamento

1

*

Empresa

todo

parte

agregação

Page 24: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

GeneralizaçãoÉ um relacionamento de

especialização/generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos do elemento generalizado (os pais)

Pessoa

Aluno Professor Funcionario

Page 25: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

RealizaçãoÉ um relacionamento semântico entre

classificadores, em que um classificador especifica um contrato que outro classificador garante executar

Regras de contabilidadeAgente da Regra

<< Interface >>

realização

Page 26: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

DiagramasApresentações gráficas de um conjunto de

elementos, geralmente representadas como gráficos de vértices (itens) e arcos (relacionamentos)

Nove tipos: classes, objetos, pacotes, casos de uso, seqüências, colaborações, estados, atividades, componentes e implantação

Page 27: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de classesDiagramas de classe

são a espinha dorsal da maioria dos métodos orientados a objeto, inclusive UML

Descrevem a estrutura estática do sistema (entidades e relacionamentos)

Page 28: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de pacotesOrganizam elementos

do sistema em grupos relacionados a fim de minimizar a dependência entre eles

Page 29: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de objetosDescrevem a

estrutura estática de um sistema em um determinado momento

Podem ser usados para testar a precisão dos diagramas de classe

Page 30: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de casos de uso

Modelam a funcionalidade do sistema através de atores e casos de uso

Casos de uso são serviços ou funções fornecidas pelo sistema aos seus usuários

Page 31: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de seqüênciasDescreve as

interações entre as classes através das trocas de mensagens ao logo do tempo

Page 32: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de colaboraçõesRepresentam as

interações entre objetos em termos de mensagens em seqüência

Descrevem tanto a estrutura estática como o comportamento dinâmico do sistema

Page 33: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de estadosDescrevem o

comportamento dinâmico do sistema em resposta a estímulos externos

São especialmente úteis para modelar objetos reativos cujos estados são disparados por eventos específicos

Page 34: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de atividades Ilustram a natureza dinâmica

de um sistema modelando o fluxo de controle de uma atividade para outra

Uma atividade representa uma operação em uma classe do sistema que resulta na mudança do estado do sistema

Tipicamente, são usados para modelar fluxo de trabalho ou processos de negócio e funcionamento interno

Page 35: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de componenteDescreve a

organização dos componentes físicos de software

Ex.: código-fonte, código em tempo de execução (binário) e executáveis

Page 36: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Diagramas de implantaçãoDescrevem os

recursos físicos em um sistema, incluindo nós, componentes e conexões

Page 37: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Regras da UMLEspecificam o que deverá ser um modelo

bem-formadoModelos bem-formados são aqueles

autoconsistentes semanticamente e em harmonia com todos os modelos a ele relacionados

Regras para: nome, escopo, visibilidade, integridade e execução

Mais modelos: parciais, incompletos e inconsistentes

Page 38: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Mecanismos básicos da UMLEspecificaçõesAdornosDivisões comunsMecanismos de extensão

Page 39: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

ArquiteturaDecisões significativas acerca de:

A organização do sistema de softwareA seleção dos elementos estruturais e suas

interfacesSeu comportamento, conforme especificado nas

colaborações entre esses elementosA composição desses elementos estruturais e

comportamentais em subsistemas cada vez maiores

O estilo de arquitetura que orienta a organização: os elementos estáticos e dinâmicos e suas respectivas interfaces, colaborações e composição

Page 40: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

Modelagem da arquitetura

Visão de projeto

Visão da implantaçãoVisão de processo

Visão da implementação

Visão de caso de uso

vocabuláriofuncionalidade

comportamento

desempenhoescalabilidade

throughput

gerenciamento daconfiguração

montagem do sistema

topologia do sistemadistribuição

fornecimentoinstalação

Page 41: O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário.

ReferênciasBoock, G. and Rumbaugh, J. The Unified Modeling Language User

Guide . Addison-Wesley, 1999 Arlow, J. and Neustadt, I. UML 2 and the Unified Process: Practical

Object-Oriented Analysis and Design, 2nd Edition, The Addison-Wesley Object Technology Series, 2005.

Rumbaugh, J.; Jacobson, I. and Booch , G. The Unified Modeling Language Reference Manual, 2nd Edition, The Addison-Wesley Object Technology Series, 2004.

Boock, G.; Rumbaugh, J. and Jacobson, I; Unified Modeling Language User Guide, 2nd Edition, The Addison-Wesley Object Technology Series, 2005.

Jacobson, I; Boock, G. and Rumbaugh, J., Unified Software Development Process, Addison-Wesley, Janeiro 1999.

Larman, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design Prentice-Hall, New Jersey - USA, 1997