aula 03 - engenharia de software - uml
DESCRIPTION
Aula 03 - Engenharia de Software - UMLTRANSCRIPT
Engenharia de
Software
Prof. MSc. Edilberto Silva
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
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
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
• 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
• 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
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
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
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