• Nenhum resultado encontrado

Aula 10 - Introdução a UML

N/A
N/A
Protected

Academic year: 2021

Share "Aula 10 - Introdução a UML"

Copied!
63
0
0

Texto

(1)

Engenharia de Software

Introdução a UML

Marcelo Marinho

(2)

Histórico UML

• Nos meados dos anos 1990 existiam mais de 50

métodos OO;

• Alguns dos métodos de maior destaque eram

Booch (de Grady Booch), OOSE (de Jacobson) e

OMT (de Rumbaugh);

• Os três autores então se juntaram para criar a

UML;

• No início de 1997 foi lançada a UML 1.0, com a

colaboração de um consórcio de empresas;

(3)

Histórico UML

• Em novembro de 1997 a UML 1.1 (revisada) foi adotada pelo OMG (Object Management Group);

• Q manutenção da UML foi assumida pela RFT (Revision Task Force) do OMG, que produziu as versões 1.3, 1.4 e 1.5;

• No início de 2005 a UML 2.0 foi adotada pelo OMG.

(4)

Por que os 3 autores

resolveram criar a UML?

• Cada autor adotava ideias dos métodos dos outros, então, evoluindo juntos produziriam melhorias;

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

(5)

Usos da UML

• A UML é uma linguagem de modelagem para:

– Visualização – Especificação – Construção

– Documentação – Comunicação

(6)

UML como linguagem para

visualização

• Modelos facilitam a comunicação

• Por trás de cada símbolo gráfico empregado

na notação da UML existe uma semântica

bem definida

• Qualquer modelo escrito em UML pode ser

interpretado da mesma maneira e sem

ambigüidades

por

desenvolvedores

e

ferramentas

(7)

UML como linguagem para especificação

• No contexto, especificar significa construir

modelos precisos, sem ambigüidades e

completos;

• A UML atende a todas as decisões

importantes que devem ser tomadas durante

todo o ciclo de desenvolvimento de software.

(8)

UML como linguagem para construção

• Os modelos UML podem ser mapeados em códigos de linguagens de programação como Java e C++, ou até mesmo em esquemas de banco de dados

• Este mecanismo permite a engenharia direta (modelo → código) e também a engenharia reversa (código → modelo)

(9)

Itens – usados para descrever estrutura, comportamento, agrupamento e anotação;

Relacionamentos – usados para relacionar (ligar) os itens;

Diagramas – descrevem aspectos estruturais (estáticos) ou comportamentais (dinâmicos), através de um conjunto de itens e seus relacionamentos;

Quais são os blocos de construção da

UML?

(10)

Itens estruturais

são os substantivos, parte estática do modelo, representando elementos conceituais ou físicos

ex: Classes, Interfaces e Casos de Uso

Itens comportamentais

são os verbos, parte dinâmica do modelo, representando comportamentos no tempo

(11)

Item de agrupamento (pacote)

são as partes organizacionais do modelo

são os blocos em que o modelo pode ser decomposto

Item de anotação (nota)

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

(12)

Relacionamento de dependência

relacionamento entre dois itens, no qual a alteração em um (o item independente) pode afetar o outro (item dependente)

representação:

Relacionamento de associação

relacionamento estrutural entre dois itens, que descreve um conjunto de ligações (conexões) entre esses itens

(13)

Relacionamento de generalização

relacionamento entre um item pai e um item filho, no qual o item filho herda a estrutura e comportamento do item pai

representação:

Relacionamento de realização

relacionamento entre dois itens, no qual um item apenas especifica os serviços e o outro executa esses serviços

(14)

Diagramas

• São representações gráficas de um conjunto de elementos. São desenhados para visualizar um sistema de diferentes perspectivas.

Diagrama

Diagrama

Estrutural ComportamentalDiagrama

Diagrama de Classes Diagrama de Artefato Diagrama de Componentes Diagrama de Implantação Diagrama de Objetos Diagrama de Pacote Diagrama de

Atividade Casos de UsoDiagrama de

Diagrama de Máquina de Estados Diagrama de Interação Diagrama de

Sequência ComunicaçãoDiagrama de Diagrama de

Temporização

Diagrama de Visão Geral da Interação

(15)

Diagrama de Caso de Uso

• Exibe um conjunto de casos de uso (funcionalidades) e atores, e seus relacionamentos

(16)

Diagrama de Classes

• Exibe um conjunto de classes e seus relacionamentos • Visão estática da estrutura do sistema

(17)

Diagrama de Objetos

• Mostram objetos e seus relacionamentos

• Representam instâncias estáticas de elementos dos diagramas de classes

(18)

Diagrama de Seqüência

Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles

(19)

Diagrama de Atividades

• Destaca a lógica de realização de uma tarefa;

• Mostra o fluxo entre atividades;

• É semelhante aos antigos fluxogramas;

• É usado também para modelar alternativas de execução e atividades concorrentes;

(20)
(21)

Diagrama de Componentes

• Mostra os componentes de hardware e software de uma aplicação e os relacionamentos entre eles

• É usado para modelar o aspecto físico de um sistema

• Exemplos de componentes são documentos, executáveis e tabelas de bancos de dados

(22)

Diagrama de Implantação

• É usado para modelar a arquitetura de distribuição em que o sistema será executado

• Um nó pode ser um computador, uma rede, um disco rígido, um sensor, etc.

(23)
(24)

Diagramas de Use Cases

• Servem facilitam o entendimento de um sistema mostrando a sua “visão externa”

• São usados para modelar o contexto de um sistema, subsistema ou classe

• São uma das maneiras mais comuns de documentar os requisitos do sistema

– Delimitam o Sistema

(25)

Use Case

• É uma unidade funcional que descreve o comportamento de um elemento da aplicação;

• Contém sequências de ações, interagindo com os atores que usam a aplicação;

• Inclui variantes, rotinas de erro, etc, que o sistema executa para produzir um resultado observável para um ator

(26)

Use Case: Representação

Gráfica

• A coleção dos use cases deverá especificar todas as formas existentes de uso do sistema

(27)

Atores

• O sistema será descrito através de vários use cases que são executados por um número de atores

• Atores constituem as entidades do ambiente do sistema

• São pessoas ou outros subsistemas que interagem com o sistema em desenvolvimento

(28)

Atores: Especialização

• É possível definir tipos gerais de atores e

especializá-los usando o relacionamento de

especialização

(29)
(30)
(31)
(32)

Sobre Classes

• Classes são o elemento mais importante de

qualquer sistema orientado a objetos;

• Uma classe é uma descrição de um conjunto de

objetos com os mesmos atributos,

relacionamentos, operações e semântica;

• Classes são usadas para capturar o vocabulário

de um sistema;

• Classes são abstrações de elementos do

domínio do problema, como “Cliente”, “Banco”,

“Conta”;

(33)

Nomes

• Toda classe deve ter um nome que a distinga das outras classes;

• Um nome pode ser simples (apenas o nome), ou pode ser precedido pelo nome do pacote em que a classe está contida.

(34)
(35)

Atributos

• Um atributo representa alguma propriedade do que está sendo modelado, que é compartilhada por todos os objetos da classe;

• Os atributos descrevem os dados contidos nas instâncias de uma classe;

• Em um momento dado, um objeto de uma classe conterá valores para todos os atributos descritos na sua classe;

(36)

Atributos - Notação

• Atributos podem ser identificados apenas

com nomes

• Atributos podem ter seus tipos (ou classes)

especificados e terem valores padrão

definidos

(37)

Operações

• Uma operação é uma abstração de alguma coisa que se pode fazer com um objeto e que é compartilhada por todos os objetos da classe;

• Um classe pode ter qualquer número de operações, inclusive nenhuma;

(38)

Operações - Notação

• Como para os atributos, você pode

especificar uma operação apenas com seu

nome

• Você pode também especificar a assinatura

da operação: seus parâmetros, o tipo desses

parâmetros e o tipo de retorno

(39)

Visibilidade

• Você pode usar marcações de acesso para

especificar o tipo de acesso permitido aos

atributos e operações

• Classificador pode ser classes, interfaces,

componentes, nós, use cases, subsistemas

– público: todos os classificadores podem usar

– protegido: qualquer descendente do classificador poderá usar

(40)

Relacionamentos

• Poucas classes vivem sozinhas

• Tipos de relacionamentos especialmente

importantes na modelagem orientada a

objetos:

– Associações – Agregação – Composição – Dependências – Generalizações – Realização

(41)

Dependência

• Dependências são relações de uso;

• Uma dependência indica que mudanças em um elemento (o “servidor”) podem afetar outro elemento (o “cliente”);

• Uma dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe.

(42)

Generalização

• Relacionamento entre um elemento mais

geral (chamado de superclasse ou pai) e um

mais específico (chamado de subclasse ou

filho)

(43)

Herança Múltipla

• Ocorrem múltiplas superclasses para uma

mesma subclasse

(44)

Associação

• A associação é um relacionamento estrutural

que especifica que objetos de um elemento

estão conectados a objetos de outro elemento

(45)

Multiplicidade

(46)

Associação Unária

• Quando há um relacionamento de uma

classe para consigo própria

(47)

Associação Binária

• Quando há duas classes envolvidas na

associação de forma direta de uma para a

outra

(48)

Associação com Atributos

• Modela as propriedades associadas com

uma associação

• As propriedades devem ser representadas

por uma classe

(49)

Agregação

• Uma forma especial de associação entre o

todo e suas partes, no qual o todo é

composto de partes

• Não impõe que a vida das “Partes”’ esteja

relacionado com a vida do “Todo”

(50)

Composição

• Uma forma mais forte de agregação

• Há uma coincidência da vida das partes

• Uma vez criada a parte ela irá viver e morrer com ele

• O “Todo” é responsável pelo gerenciamento da criação e destruição das partes

(51)
(52)

Sequenciamento

• Quando um objeto envia uma mensagem para

outro objeto, o objeto que recebe a

mensagem pode enviar outras mensagens e

assim por diante, formando uma sequência de

mensagens

• O sequenciamento pode ser

– procedural, com aninhamento (mensagens síncronas)

– ou plano, sem aninhamento (mensagens assíncronas)

(53)

Diagramas de Seqüência

• Diagramas de Sequencia enfatizam a ordenação das mensagens trocadas entre os objetos;

• Um cenário é uma sequencia específica de ações que ilustra um comportamento;

• Diagramas de Sequencia podem modelar apenas um cenário ou um conjunto de cenários;

• Diagramas de Sequencia podem mostrar decisões simples e iterações.

(54)
(55)
(56)

Diagramas de Atividades

• Os Diagramas de Atividades mostram o

fluxo entre atividades;

• São semelhantes aos antigos fluxogramas;

• São muito usados para modelar atividades

concorrentes;

(57)

Concorrência, Forks e Joins

• Barras de sincronização são usadas para especificar

forks e joins;

• Um fork representa um único fluxo de controle em vários fluxos de controle concorrentes;

• Um join representa a sincronização de dois ou mais fluxos de controle concorrentes.

(58)

Concorrência, Forks e Joins

• Atividades depois de um fork podem ser realizadas em qualquer ordem, ou ao mesmo tempo;

• Para que as atividades depois de um join possam ser realizadas, todas as atividades antes do join devem ser concluídas.

(59)
(60)

Swimlanes (raias)

• Swimlanes (raias) são usadas para definir quais são as classes (ou conjuntos de classes) responsáveis pela realização de cada atividade;

• Swimlanes são especialmente úteis para a modelagem de processos empresariais;

• Em muitos casos, os swimlanes implicam concorrência, ou pelo menos independência, das atividades.

(61)
(62)

Outras linguagens de modelagem

• SysML - Systems Modeling Language

• SoaML – Service Oriented Architecture Language

• MARTE – Modeling and Analysis of Real-Time and Embedded System • BPMN – Business Process Model and Notation

(63)

Engenharia de Software

Introdução a UML

Marcelo Marinho

Referências

Documentos relacionados

sempre ocorreu material mu_ito digerido, em virtude da espécie possuir dentes fa- ringeanos, de modo que grande parte do conteúdo estomacal se encontrava fina- mente dividido,

As larvas foram alimentadas a partir do estágio de larva livre natante (estadio 25 de Gosner). Cada réplica conteve 10 indivíduos, que foram expostos ao contaminante a partir

 No asterisk também existem os operadores matemáticos, que podem ser usados para sofisticar o seu plano de discagem, como descrito na tabela abaixo:. Macros

No entanto as instituições financeiras prestam serviços previstos em outros itens da Lei complementar como os serviços lista- dos no item 10 (intermediação e congêneres) e o item

 Creme – Para ser aplicado sobre a cutícula das unhas, antes de colocar os dedos das mãos ou os pés de molho.. Após o uso, as luvas devem

A altura de planta da variedade UFV M100 e do híbrido simples DKB 390 foi maior do que a observada para o híbrido triplo DKB 455, mas não interferiu no acúmulo de matéria seca

Quanto à necessidade de internamento hospitalar, este deveu-se na maior parte dos casos à exuberância dos sintomas, nomeadamente odinofagia/disfagia graves com

Somente o fiscal de sala ou outro representante da Amiga Pública pode destacar a folha de rascunho (de preenchimento facultativo) da Folha de Respostas ou do Caderno de Provas, caso