Slides UML

Você também pode gostar

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 61

Introdução à Engenharia de Software

Engenharia de Software I

UML
Introdução à Engenharia de Software

A Linguagem UML
Introdução à Engenharia de Software
A Linguagem UML

A modelagem é um dos conceitos


importantes para o desenvolvimento de
software.

Um modelo cria uma camada de abstração


do que estamos querendo modelar, focando
apenas no que é importante.
Introdução à Engenharia de Software
A Linguagem UML

A UML é uma linguagem utilizada para a


criação de modelos.

Ela é uma linguagem baseada em


diagramas.
Introdução à Engenharia de Software
A origem da UML

Não havia um padrão para se modelar os


conceitos de um sistema.

Houve uma tentativa de padronizar os


processos e as linguagens de modelagem.

Isso deu origem ao processo unificado - UP


e a UML.
Introdução à Engenharia de Software
A origem da UML

Três processos deram origem ao UP e


UML:
 Booch;
 OMT;
 OOSE/Objectory;

A junção do que há de melhor nesses 3


processos deu origem a UML e o UP.
Introdução à Engenharia de Software
Definição da UML

A UML é uma forma de comunicação


padrão que é aceita e exigida por muitas
organizações.

A UML é dividida em:


 Visões;
 Modelos de elementos;
 Mecanismos Gerais;
 Diagramas;
Introdução à Engenharia de Software
Visões

Uma visão mostra um aspecto diferente do


sistema que está sendo modelado.

Normalmente é composta por diversos


diagramas que focam os aspectos
particulares de um sistema.
Introdução à Engenharia de Software
Visões

As principais visões da UML são:


 Visão de casos de uso;
 Visão Lógica;
 Visão de Componentes;
 Visão de Concorrência;
 Visão de organização;
Introdução à Engenharia de Software
Visão de casos de uso

Descreve o comportamento do sistema, a partir


da definição de como o sistema se comportará
a partir da interação com os atores externos
que o utilizarão. Isso está diretamente ligado
ao diagrama de casos de uso.
Introdução à Engenharia de Software
Visão Lógica

Descreve como o comportamento será


implementado e os mecanismos que serão
necessário para que o sistema funcione.

A parte estática da visão lógica é descrita por


diagrama de classes e de objetos. A parte
dinâmica é descrita por diagramas de estado,
sequência, colaboração e atividade.
Introdução à Engenharia de Software
Visão de Componentes

Descreve a divisão da implementação em


módulos, demonstrando suas dependências.

Essa visão está diretamente ligado ao diagrama


de componentes.
Introdução à Engenharia de Software
Visão de Concorrência

Descreve o sistema sob a perspectiva de


divisão em processos e processadores,
indicando se haverá execuções em paralelo,
detalhando a comunicação e a concorrência
existente no sistema.

Essa visão pode ser descrita pelos diagramas


dinâmicos.
Introdução à Engenharia de Software
Visão de Organização

Descreve a organização física do sistema,


indicando os computadores, periféricos e suas
conexões entre si.

Essa visão é ligada aos diagramas de


desdobramento.
Introdução à Engenharia de Software
Modelo de elementos

Eles representam as definições comum


existentes na linguagem, tais como:
 Classes;
 Objetos;
 Mensagens;
 Atributos;
 Relacionamentos;
Introdução à Engenharia de Software
Classe

As são representações abstratas de um


conceito.

Na UML as classes são representadas por um


retângulo que podem ser dividido em até 3
compartimentos:
 Nome;
 Atributos;
 Operações;
Introdução à Engenharia de Software
Classe

Em um sistema sua identificação é feita


através de uma análise de especificação
Requisitos.

A notação de classes da UML é independente


da linguagem a ser utilizada.
Introdução à Engenharia de Software
Exemplo de Classe
Introdução à Engenharia de Software
Classe

 A figura anterior exibe um exemplo de classe,


onde:
 O nome da classe é Pessoa;
 Ele possui diversos atributos (nome, e-mail,
telefone, celular, login e senha);
 Na classe existe apenas uma operação (salvar);
Introdução à Engenharia de Software
Objetos

 Os objetos representam instâncias de uma


classe.

Objetos representam coisas reais associados ao


conceito modelado.
Introdução à Engenharia de Software
Objetos
Introdução à Engenharia de Software
Estado

 Os objetos normalmente possuem um estado.

Um estado representa o resultado das


operações executadas no objeto, sendo
normalmente determinado pelos valores de
seus atributos e ligações existentes com outros
objetos.
Introdução à Engenharia de Software
Exemplo de Estado
Introdução à Engenharia de Software
Exemplo de Estado

 A figura anterior apresenta dois estados


relacionados a um objeto livro.
 Um livro pode estar livre ou emprestado. Para
mudar de livre para emprestado é necessário que o
evento empréstimo seja realizado.
 Para mudar de emprestado para livre, é necessário
que o evento devolução aconteça.
Introdução à Engenharia de Software
Pacotes

 Um pacote é um agrupamento de itens,


utilizado para fins de organização.

Esses agrupamentos são feitos para se manter


juntos elementos que possuem algum tipo de
relação entre si.
Introdução à Engenharia de Software
Componentes

 Um componente é a representação de uma


parte do sistema.

Isso pode ser um código na linguagem fonte ou


código executável.
Introdução à Engenharia de Software
Componentes

 Imagine um sistema feito em Java. Cada


arquivo .class pode ser considerado um
componente, assim como qualquer arquivo
.java.

O uso desse tipo de elemento está diretamente


associado ao projeto de um software.
Introdução à Engenharia de Software
Exemplo de Componentes
Introdução à Engenharia de Software
Relacionamentos

 Os relacionamentos permitem a ligação de


classes e objetos entre si, estabelecendo uma
relação entre eles.

Essas ligações podem assumir os seguintes


tipos:
 Associação;
 Generalização;
 Dependência;
Introdução à Engenharia de Software
Associação

 Uma associação cria uma conexão entre as


classe ou entre objetos das classes.

Uma associação entre classes indica que


qualquer objeto de uma classe terá uma
conexão com um objeto da outra classe.
Introdução à Engenharia de Software
Associação Simples

 A associação simples é a forma mais comum


de uma associação.

Ela é representada por uma linha ligando duas


classes.

Essa linha pode possuir uma seta indicando


direção.
Introdução à Engenharia de Software
Exemplo de Associação Simples
Introdução à Engenharia de Software
Associação com nomeação dos papéis e
multiplicidades
Introdução à Engenharia de Software
Auto-associação e especificação do nome da
associação
Introdução à Engenharia de Software
Agregação

 A agregação é uma associação que indica a


relação todo/parte.

Um dos itens selecionados é o todo na relação


e o outro é uma parte.

Os nomes da associação caso fossem


utilizados deveriam ser “tem”, “contém”, “faz
parte.”
Introdução à Engenharia de Software
Exemplo de agregação
Introdução à Engenharia de Software
Composição

 Nesse tipo de associação existe um


relacionamento forte entre os integrantes: A
parte não vive sem o todo.

No exemplo a seguir temos modelado que um


sócio contém dependentes. Dessa, está
implícito que a exclusão de um sócio, implica
na exclusão de todos os seus dependentes.
Introdução à Engenharia de Software
Exemplo de Composição
Introdução à Engenharia de Software
Generalização

 Uma generalização indica que um elemento


herdará todos os atributos e operações de um
outro elemento, podendo ainda incluir
comportamento adicional.

Na figura a seguir podemos notar que um


projeto possui um Cliente, que é a classe
genérica. Um Cliente pode ser tanto uma
pessoa Física como uma Pessoa Jurídica.
Introdução à Engenharia de Software
Exemplo de Generalização
Introdução à Engenharia de Software
Dependências

 A dependência é uma relação mais fraca entre os


elementos, que indica que uma alteração em um
elemento pode indicar uma mudança de
comportamento em um outro.

 A figura a seguir mostra que a classe Dependente


possui um método salvar que possui um parâmetro do
tipo conexão. Logo, uma alteração no tipo conexão
pode causar uma mudança no comportamento de
Dependente.
Introdução à Engenharia de Software
Exemplo de Dependências
Introdução à Engenharia de Software
Notas

 Na UML existem informações adicionais que


são associados aos modelos.

Embora a UML tenha muita semântica


associada as representações, não é possível
modelar tudo.

Dessa forma, uma nota pode ajudar a detalhar


certas informações.
Introdução à Engenharia de Software
Exemplo de Notas em um diagrama
Introdução à Engenharia de Software
Diagramas

 Na UML existem diversos gráficos que


descrevem o que existe em uma visão.

Esses gráficos são os diagramas, utilizados


para criar as visões do sistema.

Existem 9 tipos de diagramas.


Introdução à Engenharia de Software
Diagrama de Casos de uso

 O diagrama de casos de uso exibe os


requisitos funcionais de um sistema.

Nesse diagrama existem atores, que


representam papéis no sistema e casos de uso,
que representam as funcionalidades existentes.

A ligação entre atores e casos de uso indica


que há comunicação entre eles.
Introdução à Engenharia de Software
Diagrama de Casos de uso
Introdução à Engenharia de Software
Diagrama de Classes

 O diagrama de classes está associado a visão


estática de um sistema.

Um sistema real pode conter um grande


número de classes, sendo necessário a criação
de diversos diagramas, cada um focando em
um aspecto específico.
Introdução à Engenharia de Software
Diagrama de Objetos

 O diagrama de objeto descreve uma instância


específica de um diagrama de classe. Eles
servem para esclarecer aspectos importantes de
diagramas complexos.

Eles são semelhantes aos diagramas de classes,


porém é importante frisar que ele exibe as
instâncias das classes, com sua configuração
de execução momentânea.
Introdução à Engenharia de Software
Exemplo de Diagrama de Objetos
Introdução à Engenharia de Software
Diagrama de Estado

 O diagrama de estados descreve o


comportamento dinâmico de uma instância de
uma classe, normalmente representado por seu
ciclo de vida.

Esse diagrama é importante para descrever


classes que possuem objetos com ciclos
complexos.
Introdução à Engenharia de Software
Exemplo de Diagrama de Estado
Introdução à Engenharia de Software
Diagrama de Sequência

O diagrama de sequência mostra a troca de


mensagens entre objetos durante a
implementação de certos comportamentos.

Seu foco é mostrar as interações entre objetos,


ao invés de mostrar apenas o comportamento
interno do objeto.
Introdução à Engenharia de Software
Exemplo de Diagrama de Sequência
Introdução à Engenharia de Software
Diagrama de Colaboração

O diagrama de colaboração pode ser


considerado como uma outra forma de
exibição do diagrama de sequência.

No diagrama de colaboração é enfatizado a


troca de mensagens entre os objetos e não a
sua ordem temporal.
Introdução à Engenharia de Software
Diagrama de Atividades

 O diagrama de atividades é uma variante do diagrama


de estados na UML.

 O diagrama de atividades exibem as ações associadas a


um roteiro, possibilitando detalhar os executores
envolvidos e os produtos de trabalhados gerados.

 Podem ser utilizados para detalhar etapas de um


processo, descrição de fluxos de um caso de uso e
qualquer outro roteiro que exija a informação das ações
associadas.
Introdução à Engenharia de Software
Exemplo de Diagrama de Atividades
Introdução à Engenharia de Software
Diagrama de Componentes

 O diagrama de componentes exibe a relação entre as


partes que compõem um sistema e a organização dos
módulos.

 Eles podem representar classes, pacotes e subsistemas.

 Esse tipo de diagrama está muito associado a exibição


da arquitetura de um sistema, deixando claro como ele
está estruturado, além de demonstrar sua organização e
dependência.
Introdução à Engenharia de Software
Exemplo de Diagrama de Componentes
Introdução à Engenharia de Software
Diagrama de Implantação

O diagrama de implantação exibe a arquitetura


de execução de um sistema, detalhando os
componentes físicos que executam no
ambiente de execução utilizado.

Nesse diagrama é possível detalhar que


módulo funcionará em qual dispositivo e como
será sua comucação com outros dispositivos.
Introdução à Engenharia de Software
Exemplo de Diagrama de Implantação

Você também pode gostar