Aula 03 - Engenharia de Software - UML

64
Engenharia de Software Prof. MSc. Edilberto Silva [email protected] http://www.edilms.eti.br UML Unified Modeling Language http://www.uml.org/ http://www.omg.org/spec/

description

Aula 03 - Engenharia de Software - UML

Transcript of Aula 03 - Engenharia de Software - UML

Engenharia de

Software

Prof. MSc. Edilberto Silva

[email protected]

http://www.edilms.eti.br

UML• Unified Modeling Language

http://www.uml.org/http://www.omg.org/spec/

Esta parte apresenta...

• Conceitos gerais da UML

– Criadores

– O que é

– Objetivos

– Visão Geral

Prof.Edilberto Silva - www.edilms.eti.br

Criadores da UML

• James Rumbaugh - Object Modeling Technique (OMT)

• Grady Booch - Booch Method

• Ivar Jacobson - Objectory (OOSE) Process

Prof.Edilberto Silva - www.edilms.eti.br

O que é UML?

• UML (Unified Modeling Language) é umalinguagem para especificação,construção, visualização e documentaçãode sistemas de software.

• Linguagem visual de modelagem desistemas computacionais por meio doparadigma de Orientação a Objetos

Prof.Edilberto Silva - www.edilms.eti.br

O que é UML?

• A UML é uma evolução das linguagens paraespecificação dos conceitos de:

– Booch;

– OMT (Object Modeling Technique-Rumbaugh);

– OOSE (Object-Oriented Software Engineering -

Jacobson);

– e também de outros métodos de especificação derequisitos de software orientados a objetos ounão.

Prof.Edilberto Silva - www.edilms.eti.br

O que é UML?

• A notação UML é uma união de sintaxe gráficade vários métodos, com certo número desímbolos removidos (porque são confusos,supérfluos ou pouco usados) e com outrossímbolos adicionados.

• O resultado é uma única, comum e amplalinguagem de modelagem utilizável pordesenvolvedores de software orientado aobjetos.

Prof.Edilberto Silva - www.edilms.eti.br

UMLOMT

(Rumbaugh)

OOSE(Jacobson)

� Diagrama de Estados

� Diagrama de Classes

� Diagrama de Objetos (Diagrama de Colaboração)

� Diagrama de Processos(Diagrama de Deployment)

� Diagrama de Módulos (Diagrama de Componentes)

� Diagrama Use Cases

� Subsistema (Package)

� Diagrama de Classes

� Diagrama de Estados

BOOCH

FUSION(Coleman)

Statecharts(Harel)

� Grafo de Interação de Objetos

� Diagrama de Statecharts (Diagrama de Atividades)

Formação da UML

Prof.Edilberto Silva - www.edilms.eti.br

Objetivos da UML

• A modelagem de sistemas (não apenas desoftware) usando os conceitos daorientação a objetos;

• Estabelecer uma união fazendo com quemétodos conceituais sejam tambémexecutáveis;

• Criar uma linguagem de modelagem usáveltanto pelo homem quanto pela máquina.

Prof.Edilberto Silva - www.edilms.eti.br

• Objetivo: Descrever qualquer tipo de sistema, em termos de diagramas OO:– Sistemas de Informação

• Grandes qdes de informações em BD

– Sistemas Técnicos• controle de eqp. de telecomunicações, militares ou industriais

– Sistemas Real-Time• Embutidos, mísseis, celulares, carros,...

– Sistemas Distribuídos• Em máquinas diferentes...

– Sistemas de Software• Infra-estrutura técnica para outros sw (SO, BD,...

– Sistemas de Negócio• descreve objetivos, especificações, regras de negócio,...

UML - Unified Modeling Language

Prof.Edilberto Silva - www.edilms.eti.br

• Análise de Requisitos– Captura de intenções e necessidades (use-cases)

• Análise– Abstrações (Classes e Objetos)

• Projeto– Infra-estrutura técnica (detalhamento das

especificações)

• Implementação– Concretização da abstração e infra-estrutura-técnica

• Testes– testes de unidade, integração e aceitação

Fases de DesenvolvimentoDesenvolvidas concomitantemente

Prof.Edilberto Silva - www.edilms.eti.br

Desenvolvimento• O Processo de Desenvolvimento de Software

com a UML está estruturado, segundo otempo, em quatro fases:

– Concepção;

– Elaboração;

– Construção;

– Transição.

Prof.Edilberto Silva - www.edilms.eti.br

Concepção/Elaboração

• Concepção – quando se especifica da visão do sistema.

• Elaboração – quando se faz oplanejamento das atividades necessáriase dos recursos requeridos e aespecificação do sistema e design da suaarquitetura.

Prof.Edilberto Silva - www.edilms.eti.br

Construção / Transição

• Construção – desenvolvimento do produtocomo uma série de interações incrementais.

• Transição – fornecimento do produto para ousuário (fabricação, distribuição etreinamento).

Prof.Edilberto Silva - www.edilms.eti.br

• Visões

– mostram diferentes aspectos do sistema

– abstração através de uma série de diagramas e em níveis diferentes

• As visões de um sistema– Use Case View (Caso de Uso e Sequência)

– Logical View (Classe, Estado e Relacionamento)

– Component View (Componentes)

– Deployment View (Implantação)

– Process View (Processo)

Visões da UML

Prof.Edilberto Silva - www.edilms.eti.br

Visões da UML• Mostram diferentes aspectos do sistema que está sendo

modelado.

• A visão não é um gráfico, mas uma abstração consistindo emuma série de diagramas.

• Cada visão mostrará aspectos particulares do sistema, dandoenfoque a ângulos e níveis de abstrações diferentes.

Prof.Edilberto Silva - www.edilms.eti.br

Visão de Casos de Uso

• Descreve a funcionalidade do sistemadesempenhada pelos atores externos dosistema (usuários).

• Seu conteúdo é base do desenvolvimentodas outras visões do sistema.

• Essa visão é montada sobre os diagramasde use-case e eventualmente diagramas deatividades.

Prof.Edilberto Silva - www.edilms.eti.br

Visão de Processos (Concorrência)

• Mostra o aspecto da concorrência nosistema, endereçando problemas decomunicação e sincronização;

• É suportada pelos diagramas dinâmicos:diagramas de estado, seqüência,

colaboração e atividade, e pelos diagramasde implementação: diagramas de

componente e execução.

Prof.Edilberto Silva - www.edilms.eti.br

Visão Lógica

• Propriedades como persistência econcorrência são definidas nesta fase, bemcomo as interfaces e as estruturas de classes.

• A estrutura estática é descrita pelosdiagramas de classes e objetos. A estruturadinâmica é descrita pelos diagramas de

estado, seqüência, colaboração e atividade.

Prof.Edilberto Silva - www.edilms.eti.br

Visão de Componentes

• Mostra a organização dos componentes decódigo.

• É uma descrição da implementação dosmódulos e suas dependências.

• É principalmente executado pordesenvolvedores.

• Consiste nos diagramas de componentes.

Prof.Edilberto Silva - www.edilms.eti.br

Visão Física (Organização)

• Mostra a organização física do sistema, oscomputadores, os periféricos e como eles seconectam entre si.

• Esta visão será executada pelosdesenvolvedores, integradores e testadores

• É representada pelos diagramas de execução.

Prof.Edilberto Silva - www.edilms.eti.br

Blocos de construção

• Itens ou Elementos

– Subdividido em 4 tipos

• Relacionamentos

– Subdividido em 4 tipos

• Diagramas

– Subdividido em 9 tipos

Prof.Edilberto Silva - www.edilms.eti.br

Itens ou Elementos

• Itens estruturais;

• Itens comportamentais;

• Itens de agrupamentos e;

• Itens de anotação.

Prof.Edilberto Silva - www.edilms.eti.br

Relacionamentos

e

Outros

23Prof.Edilberto Silva - www.edilms.eti.br

Itens Anotacionais

• São as partes explicativas dos modelos UML.

• São comentários, incluidos para descrever,esclarecer e fazer alguma observação sobrequalquer elemento do modelo.

• Representado pela Nota.

Retornar cópia

Prof.Edilberto Silva - www.edilms.eti.br

• As interfaces são estritamente modelos de comportamento.

• As interfaces não podem ser instanciadas pois não produzemobjetos.

• A relação existente entre as classes que implementam umaInterface e a Interface é uma relação do tipo “implementa osmétodos de”. Não precisa ter significado semântico.

Relação “implementa os métodos de”

Estrutura

adicionarValor()retirarValor()

mostrarValores()Pilha

adicionarValor()retirarValor()mostrarValores()

Fila

adicionarValor()retirarValor()mostrarValores()

Interfaces

Prof.Edilberto Silva - www.edilms.eti.br

Relacionamentos

• São os blocos relacionais básicos deconstrução. Existem 4 tipos:

– Dependência;

– Associação;

– Generalização e;

– Realização.

Prof.Edilberto Silva - www.edilms.eti.br

Dependência

• É um relacionamento semântico entre doisitens, nos quais a alteração de um (o itemindependente) pode afetar a semântica dooutro (o item dependente).

Prof.Edilberto Silva - www.edilms.eti.br

Associação• Descreve um conjunto de ligações, em que as

ligações são conexões entre objetos.

• A agregação é um tipo especial de associação.

• É representada por linhas sólidas,possivelmente direcionadas, ocasionalmenteincluindo rótulos e, freqüentemente, contendooutros adornos como multiplicidade e papéis.

nome da associação

papel-1 papel-2

Prof.Edilberto Silva - www.edilms.eti.br

Generalização

• É um relacionamento deespecialização/generalização, nos quais oselementos dos objetos especializados (filhos)são substituíveis por objetos do elementogeneralizado (pai).

• É representado como uma linha sólida comuma seta em branco apontando para o pai.

Prof.Edilberto Silva - www.edilms.eti.br

Realização• É um relacionamento semântico entre

classificadores, em que um classificadorespecifica um contrato que outroespecificador garante executar.

• São encontrados em dois locais:– Entre as interfaces e as classes que as realizam;

– Entre casos de uso e as colaborações que asrealizam.

Prof.Edilberto Silva - www.edilms.eti.br

Diagramas

Prof.Edilberto Silva - www.edilms.eti.br

UML 2.0

Diagramade

Objetos

Diagramade

Classes

Diagramade

Pacotes

Diagramade

Estrutura Composta

Diagramas

Diagramas ComportamentaisDiagramas Estruturais

Diagramade

Componentes

Diagramade

Implantação

Diagramade Máquinade Estados

Diagramade Casosde Uso

Diagramade

Atividade

Diagramas de Interação

Diagramade

Seqüência

Diagramade

Comunicação

Diagramade

InteraçãoGeral

Diagramade

TempoNovos com a UML 2.0

Prof.Edilberto Silva - www.edilms.eti.br

Diagramas

Comportamentais

Prof.Edilberto Silva - www.edilms.eti.br

• Representa as funcionalidades externamenteobserváveis do sistema e os elementos externos aosistema que interagem com ele.

Diagrama de Casos de Uso

Cliente

Mostrar Mapa do Salão

Reserva de

Restaurante

CadastrarCliente

<<include>>

<<extends>>

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Seqüência• Preocupa-se com a ordem temporal em que as mensagens

são trocadas entre os objetos envolvidos em um processo

• Representa como o sistema age internamente para que um ator atinja seu objetivo na realização de um caso de uso.

Mensagens:

Síncrona

Retorno

Assíncrona

Simples

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Seqüência

<<Estereótipos>>

• Entidades (<<entity>>) – modelam informação persistente, sendo tipicamente independentes da aplicação. Geralmente são necessárias para cumprir alguma responsabilidade do produto, e freqüentemente correspondem a tabelas de bancos de dados.

• Fronteiras (<<boundary>>) – tratam da comunicação com o ambiente do produto. Modelam as interfaces do produto com usuários e outros sistemas, e surgem tipicamente de cada par ator – caso de uso.

• Controles (<<control>>) – coordenam o fluxo de um caso de uso complexo, encapsulando lógica que não se enquadra naturalmente nas responsabilidades das entidades. São tipicamente dependentes de aplicação.

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Seqüência

Objeto1 Objeto2 Objeto3

mensagem1

mensagem2

Atormensagem0

mensagem3

Classe

Ator Objeto

Foco decontrole

Mensagem

Classe

Linha devida

Prof.Edilberto Silva - www.edilms.eti.br

• Associado ao Diagrama de Sequência. São as mesmas informações, porém sem a temporalidade do processo.

• Concentra-se em como os objetos estão vinculados e quais mensagens trocam entre si

Diagrama de Comunicação

Mensagens:

Síncrona

Retorno

Assíncrona

Simples

Condição[ ]

Prof.Edilberto Silva - www.edilms.eti.br

• Baseia-se no Caso de Uso e apóia-se no Diagrama deClasses acompanhando os estados por que passa umainstância de uma classe

• Demonstra o comportamento de um elemento através de um conjunto de transiçãode estados

Diagrama de Máquina de Estados

Desligada DesligadaAcender Luz

Esperando clique do mouse

Exibindo Mensagem1

pressionar botao1[ se botão1 pressionado ] / Exibir Mensagem1

Piscar botao1[ Se botão1 não pressionado ] / Piscar botao1 e esperar clique

exibir mensagem1[ Se tempo < 15 segundos ] / exibir mensagem1

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Atividade

• Descreve os passos a serem percorridos para a conclusão de uma atividade específica.

• Concentra-se na representação do fluxo de controle

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de AtividadeEstadoAção1 EstadoAção2

EstadoAção4EstadoAção3

[x < 0][x = 0]

EstadoAção5

[x > 0]

EstadoAção6 EstadoAção7

Estadoinicial

Ponto deramificação

Estadoação

Bifurcação

JunçãoEstado final

Ponto deunião

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Interação Geral (Novo)

• É uma variação dodiagrama de

atividades.

• Fornece uma visãogeral dentro de um

sistema ou processo

de negócio emrelação ao controle defluxo.

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Tempo (Novo)

• Semelhante ao diagrama de Máquina de estados

• Enfoca as mudanças de estado de um objeto ao longo dotempo, útil para modelagem de sistemas de tempo real.

Prof.Edilberto Silva - www.edilms.eti.br

Diagramas

Estruturais

Prof.Edilberto Silva - www.edilms.eti.br

• Permite a visualização das classes utilizadas pelosistema e como estas se relacionam.

• Define a estrutura de classes, atributos e métodos.

• Considerado um dos maisimportantes diagramasda UML

Diagrama de Classes

CorrentePoupança

Conta

- agencia

- nome

- numero

+ resgate()

+ depósito()

- variacao - cheque_especial

Artigo Revista

Assunto AutorDocumentação0..*1.. * 0..1 1..*0..*1.. * 0..1 1..*

Prof.Edilberto Silva - www.edilms.eti.br

Classes

• A classe possui visibilidade, atributos, operações emultiplicidade.

• Os tipos de visibilidade que podem ser determinadosem uma classe para atributos e serviços são:

+ public: os elementos são acessíveis por todas asclasses;

# protected: os elementos são acessíveis por subclasses,ou pela própria classe;

– private: os elementos são acessíveis somente pelaprópria classe;

Prof.Edilberto Silva - www.edilms.eti.br

Classes, atributos e operações

Atributos da Classe

Operações da Classe(Métodos)

Prof.Edilberto Silva - www.edilms.eti.br

Relacionamentos

Multiplicidade

• O relacionamento entre as classes utiliza o limite demultiplicidade para restringir o número de objetos quedevem participar do relacionamento.

• As formas de representação são:

10 numérica (exatamente)

1..4 intervalo (mínimo 1, máximo 4)

* zero ou mais (representação “default”)

1..* maior ou igual a um

Prof.Edilberto Silva - www.edilms.eti.br

Associação

Cliente Pedido1 1..*

Faz �

Prof.Edilberto Silva - www.edilms.eti.br

Agregação

Nota Fiscal

ItemNota Fiscal

1

1..*

Tem �

Todo

Parte

• O relacionamento especial, indica um complemento, onde se for excluída a parte o todo também deve ser

Prof.Edilberto Silva - www.edilms.eti.br

Composição

Revista

Artigo

1

1..*

Tem �

Todo

Parte

• O relacionamento especial, indica um que uma parte só pode ter um relacionamento (exclusivo) com o todo

•Se o objeto da classe que contém

for destruído, as classes da

composição serão destruídas

juntamente.

Prof.Edilberto Silva - www.edilms.eti.br

Herança Múltipla

Veículo

Veículo Anfíbio

VeículoTerrestre

VeículoAquático

Prof.Edilberto Silva - www.edilms.eti.br

Dependência

Empregado Filho1 1..*

Tem �

Prof.Edilberto Silva - www.edilms.eti.br

Polimorfismo

Animal

Comunicar( )

SerHumano

Comunicar ( ) “fala”

Cachorro

Comunicar ( ) “late”

Gato

Comunicar ( ) “mia”

Prof.Edilberto Silva - www.edilms.eti.br

• Associado ao Diagrama de Classes

• Representa uma “fotografia” do sistema em um certo momento.

• Exibe as ligações formadas entre objetos conforme estesinteragem e os valores dos seus atributos.

Diagrama de Objetos

Prof.Edilberto Silva - www.edilms.eti.br

• É utilizado para modelar colaborações entre interfaces,objetos ou classes.

• Detalham partes internas (classe ou componente) que ocompõem e como estas se comunicam e colaboramentre si

Diagrama de Estrutura Composta (Novo)

Prof.Edilberto Silva - www.edilms.eti.br

• Identifica os componentes que fazem parte de um sistema, um subsistema ou mesmo os componentes ou classes internas de um componente individual.

Diagrama de Componentes

CtaCorrente

<<object>>Cliente<<object>>

Banco<<Application>>

FormularioCadastro

DataAcessObject

PackageGuiBanco

PackageNegóciosBanco

PackageAcessoDadosBanco

FormularioOperacoes

Nível de Interface

Nível de Négocios

Nível de Dados

Prof.Edilberto Silva - www.edilms.eti.br

Componentes

• São as partes físicas e substituíveis de um sistema.

• Um módulo de software é representado como um tipo de componente.

Prof.Edilberto Silva - www.edilms.eti.br

• Enfoca a questão da organização da arquitetura físicasobre o qual o software irá ser implantado e executado.

Diagrama de Implantação

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Implantação

Nó• É um elemento físico existente em tempo de

execução que representa um recursocomputacional.

• Um conjunto de componentes poderá estarcontido em um nó, mas também poderámigrar de um nó para outro.

Servidor

Prof.Edilberto Silva - www.edilms.eti.br

61

Diagrama de Implantação + Componentes

Prof.Edilberto Silva - www.edilms.eti.br

Diagrama de Pacotes

• Demonstra como os elementos do software estãoorganizados em pacotes e as respectivas dependências.

Prof.Edilberto Silva - www.edilms.eti.br

63

UML 2.0

Diagramade

Objetos

Diagramade

Classes

Diagramade

Pacotes

Diagramade

Estrutura Composta

Diagramas

Diagramas ComportamentaisDiagramas Estruturais

Diagramade

Componentes

Diagramade

Implantação

Diagramade Máquinade Estados

Diagramade Casosde Uso

Diagramade

Atividade

Diagramas de Interação

Diagramade

Seqüência

Diagramade

Comunicação

Diagramade

InteraçãoGeral

Diagramade

TempoNovos com a UML 2.0

Prof.Edilberto Silva - www.edilms.eti.br

Obrigado!

Edilberto Silva

www.edilms.eti.br

Prof.Edilberto Silva - www.edilms.eti.br