Академический Документы
Профессиональный Документы
Культура Документы
UML
Linguagem Unificada. No metodologia, processo ou mtodo. Verso atual 2.0 3 categorias de Diagramas
Estruturais (Estticos)
De Classes; de Objetos; de Componentes; de Distribuio (Deployment)
Comportamentais (Dinmicos)
Use Case; Seqncia; Colaborao (comunicao UML 2.0); Atividades; Estados;
Gesto de Modelos
De Pacotes; de Sub-Sistemas;
12/3/2008
Projeto
Classes representam ambos Domnios Problema e Soluo (entity,
boundary, control)
Diagramas Estruturais
(Estticos)
2.
Classes 1. representam o do Domnio do Problema (entity) 2. Pacotes para facilitar compreenso do 3. todo (dividir complexidade)
4.
Uso de Design Patterns e Frameworks Pacotes como critrios para sub-diviso e compreenso de frameworks, sub-sistemas fsicos e componentes Sub-Sistemas
Componentes
Pacotes
Projeto
Classes, Herana de funcionalidades, associaes mais complexas, tipos, hierarquia de tipos, classes abstratas, interfaces (no GUI) Diagrama de Classes de Viso de Implementao Coordenados e Modelados pelo arquiteto de aplicaes (projetista). Incorporam-se informaes de design.
Diagramas Estruturais
(Estticos)
6.
7.
5. Classes, herana de funcionalidade, associaes simples Diagrama de 6. Classes de Viso Essencial Coordenados e 7. Modelados pelo Analista de Sistemas
12/3/2008
Projeto
Realizao de Casos de Uso (Use case realization). Casos de uso com todos os detalhes de design Diagrama de seqncias expressam seqncia de mensagens (mtodos) entre objetos e interfaces (no GUI) que realizam (do percepo de como a soluo) o caso de uso
Diagramas Comportamentais
(Dinmicos)
2.
Casos de Uso 1. Comportamento desejado (sem tecnologia) Diagrama de seqncias 2. expressam seqncia de mensagens (eventos entre objetos de anlise) que modelam qual o comportamento desejado.
Projeto
Diagramas de atividades modelam a soluo algortmica dos mtodos das classes Diagramas de atividades podem detalhar os estados associados ao comportamento da soluo Diagrama de Estados para objetos tpicos da aplicao/soluo (Forms, ODBC, etc..)
Diagramas Comportamentais
(Dinmicos)
4.
Diagramas de 3. Atividades modelam o workflow dos processos de 4. negcios Diagramas de Estados focados no comportamento geral (estados) dos objetos no contexto 5. do problema
12/3/2008
Especificadores de Acesso
+ Pblico - Privado # Protegido
12/3/2008
12/3/2008
Atributos
public Conta(int numero) { Construtor this.numero = numero; this.saldo = 0; } public void depositar(float valorDeposito) { this.saldo = this.saldo + valorDeposito; } public boolean sacar(float valorSaque) { if (this.saldo>=valorSaque) { this.saldo = this.saldo - valorSaque; return true; Demais } else return false; Mtodos } public float getSaldo() { Acessors return saldo; (getter e } public void setNumero(int numero) { setters) this.numero = numero; } public void setSaldo(float saldo) { this.saldo = saldo; } ...... }
Exemplo:
Mtodo save() lana excees usando objetos do pacote documentado na nota
12/3/2008
Classes Abstratas
Aqueles que tem, pelo menos, um mtodo abstrato; Esteretipo <<abstract>> e/ou nome em itlico No podem ser Instanciadas Permitem herana dos mtodos implementados e/ou mtodos abstratos
12/3/2008
12/3/2008
12/3/2008
Herana Associao:
Com navegabilidade Multiplicidade: Uma instncia de acionador permite acesso a 0..N Instncias de Conta Corrente um sub-tipo de conta
acionador
Acionador
(from acionador)
main() 1
0..* Funcionario
(from folha)
salarioHora : double horasTrabalhadas : double salarioBruto : double Horista() getHorasTrabalhadas() setHorasTrabalhadas() getSalarioHora() setSalarioHora() calcularSalario() toString()
nome : Logical View::java::lang::String pis : Logical View:: java::lang::String folha Funcionario() getNome() setNome() getPIS() setPIS() toString() calcularSalario()
Mensalista
(f rom f olh a)
Comissionado
(from folha)
salarioMensal : double descont oFaltas : double Mensali sta() getDes contoFalt as() setDes contoFalt as() getSalarioMensal() setSalarioMensal() calcularSalario() toS tring()
totalVendasBrut o : double perc entile : double Comi ssionado() getPercent ile() setPercent ile() getTotalVendasBruto() setTotalVendasBruto() calcularSalario() toString()
10
12/3/2008
Classe que requisita o servio cliente Classe que prov o servio provedora (servidora) Existe uma dependncia direta (explcita) entre cliente e provedor Funciona, se servio provido apenas por 1 classe E se o mesmo servio for implementado (provido) por duas classes diferentes???
Controle de qual classe deve ser instanciada caber ao cliente Cliente dever ter o controle de qual instncia deve ser chamada. Aumenta complexidade da classe cliente. Diminui a reusabilidade das classes
11
12/3/2008
12
12/3/2008
UseCase
UseCase-Realization
13
12/3/2008
Classe cliente solicita servios interface Prov reusabilidade e Polimorfismo Cada classe provedora, implementa os servios do contrato (interface) sua maneira Classes provedoras podem ser de domnios e mesmo de pacotes diferentes
14
12/3/2008
15
12/3/2008
Agregao:
Classe A (agregadora, todo) contm a classeB (parte de), porm a vinculao pode se desfazer.
Agregao
16