Escolar Documentos
Profissional Documentos
Cultura Documentos
Contedo
Parte 1: - Introduo a Orientao a Objeto Parte 2: - Introduo a UML Parte 3: - Diagramas da UML Parte 4: - Estudo de Caso - Exerccio Apndices: - Notao UML - UML 2.0
Palavra inicial
A UML padro de mercado (www.omg.org/uml) que representa as melhores prticas da engenharia de software em modelagem de software; A UML permite que desenvolvedores visualizem o software atravs modelos e de um conjunto de diagramas; A modelagem visual facilita o entendimento e a comunicao do 'qu' precisa ser feito e 'como' deve ser feito o software; Os diagramas oferecem a padronizao, que necessria quando trabalhamos com grandes equipes de desenvolvedores ou com fornecedores; Neste treinamento apresentaremos todos os diagramas, elementos e a semntica da Linguagem de Modelagem Unificada; O treinamento: Comea sendo demonstrado uma introduo a orientao a objetos com objetivo de fazer um alinhamento de conhecimento da Orientao a Objetos. Depois apresentado a UML, semntica e todos os diagramas (da verso 1.5) Tambm ser exibido em estudo de caso com propsito de mostrar como feito a modelagem visual de software com UML. Ser utilizada uma ferramenta de modelagem visual para ajudar o aprendizado da UML.
Copyright Rildo Ferreira, e-tecnologia.com, 2009
Metodologia
Projeto e Modelagem
UML
Projeto: O Como fazer, de forma a ficar manutenvel;
Implementao
Linguagem Java
O mapeamento em linguagem processvel pelo computador
O que uma Classes? Uma classe descreve um conjunto de objetos com propriedades e comportamentos semelhantes e com relacionamentos comuns com outros objetos As classes so as partes mais importantes de qualquer sistema orientada a objetos. Usamos as classes para capturar o vocabulrio do sistema que est em desenvolvimento. Essas classes podem incluir abstraes que so parte do domnio do problema, assim como as classes que fazem uma implementao. Podemos usar ainda as classes para representar itens de software, de hardware e at itens que sejam somente conceituais. Exemplo: A classe Pessoa dever ter atributos e mtodos comuns
Nome da Classe
Pessoa Nome Idade GetNome GetIdade
Atributos Mtodos
Os nome devero ser identificadores nicos em conjunto de classes, este devem ser substantivos. Exemplo: Produto. Tipos de Classes: Classe Concreta Classe Abstrata
public class Pessoa { //Atributos private String nome; private int idade; //mtodos public String getNome(){ return nome; } public void setNome(String nome){ this.nome = nome; } public int getIdade(){ return idade; } public void setIdade(int idade){ this.idade = idade; } }
Comportamentos
Andar Correr Falar Chorar Danar
mtodo
10
public class Disciplina { private int cargaHoraria; private String nome; public Disciplina(String nome, int cargaHoraria){ this.nome = nome; this.cargaHoraria = calcCargaHoraria(cargaHoraria); } public String getNome(){ return nome; } public int getCargaHoraria(){ return cargaHoraria; } public int calcCargaHoraria(int qdeHoras) { int horasPlanejamento = (int) ( qdeHoras * 0.1); return cargaHoraria = horasPlanejamento + qdeHoras; } }
Atributos
Modificador
Variveis temporrias
11
Aeronave
Mamfero
Caa
Helicptero Passageiros
Vaca
Urso
Cavalo
12
Pessoa getNome()
Classe Abstrata
Uma operao abstrata s determina a existncia de um comportamento no definindo uma implementao. Classes Abstratas - Exemplo:
Funcionrio
Classe Abstrata
Analista
Programador
Classe concreta
13
Um relacionamento a conexo entre itens. representado graficamente como um caminho, que tem tipos diferentes de linhas para distinguir os tipos de relacionamentos. Exemplo: Hierarquia de Classes
SuperClasse
Pessoa
SubClasses
Terceiro
Aluno
Funcionrio
Professor Autnomo
Pessoal Operacional
Professor
Pessoal Administrativo
Relacionamento: 1 - Pessoa a SuperClasse de Terceiro, Aluno e de Funcionrio, estas so subclasse de Pessoa. 2 - Terceiro e Funcionrio so SuperClasse de Professor e Pessoal Administrativo e de Professor Autnomo e Pessoal Operacional respectivamente. E estas so subclasse de Terceiro e Funcionrio.
14
Especializao
Hierarquia de Classes
Extenso
Podemos dizer que Graduao tipo de Curso Universitrio, assim como Curso de Especializao ou de Extenso.
15
public class Terceiro extends Pessoa{ private int codigoTerceiro; public Terceiro(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
public class Aluno extends Pessoa{ public Aluno(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
public class Funcionario extends Pessoa{ private int codigofuncionario; public Funcionario(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
Pessoal Administrativo
16
Terceiro
Aluno
Funcionrio
public class ProfessorAutonomo extends Terceiro{ public ProfessorAutonomo( String nome) { super(nome); } }
public class Professor extends Funcionario{ public Professor( String nome) { super(nome); } }
public class PessoalOperacional extends Terceiro{ public PessoalOperacional( String nome) { super(nome); } }
public class PessoalAdministrativo extends Funcionario{ public PessoalAdministrativo( String nome) { super(nome); } }
17
Pessoa
Superclasse
Pessoa Fsica
Pessoa Jurdica
Relacionamento: Pessoa Fsica tipo de pessoa, mas tambm mamfero. Na linguagem Java: A Herana mltipla somente permitida por contrato, neste caso a Mamfero uma Interface, podemos dizer que tipo especial de classe, que no pode ter mtodos implementados, apenas as assinaturas. <<interface>> Mamfero Interface: O que interface ? Interface um contrato entre o cliente, que pode ser classe concreta ou abstrata, e a interface. Este contrato garantia que o mtodos assinados na interface sero implementados na classe cliente. Nota: Na interface tambm podemos declarar constantes (public static final). interface Product { String getName (); double getCost (); }
Exemplo de Interface
18
public abstract class Pessoa { protected String idPessoa; protected int idade; protected String nome; public Pessoa(String nome) { this.nome = nome; } public abstract String getNome(); public abstract int getIdade(); public void setIdade(int idade){ }
public class PessoaFisica1 extends Pessoa implements Mamifero { public PessoaFisica (String nome) { super(nome); } public int getQdePernas(){ return 2; } public String getNome(){ return ; } public int getIdade(){ return 0; } }
Exerccio: 1 - Podemos implementar a herana mltipla na Classe Pessoa? Por que ? 2 - Por que somos obrigado a assinar ou implementar os mtodos da Interface Mamifero na classe PessoaFisica
19
Dados/Atributos/propriedades privada
O atributo salario
public class Empregado { private double salario; private double salario; public Empregado(){ salario=0.00; } public double getSalario(){ return this.salario; } }
O atributo salario somente poder ter um valor atribudo ou alterado, atravs de mtodo pblico.
Atravs do mtodo getSalario, que tem modificador public, podemos manipular ou recuperar o valor do atributo salario.
20
public class Gerente1 extends Empregado { private double bonus = .15; public double getSalario(){ //referncia ao mtodo getSalario return super.getSalario() + (super.getSalario()*this.bonus); } } Todo o acesso aos dados do objeto feito atravs da chamada a uma operao (mtodo) da sua interface. Encapsulamento - Benefcios - Segurana: Protege os atributos dos objetos de terem seus valores corrompidos por outros objetos. - Independncia: Escondendo seus atributos, um objeto protege outros objetos de complicaes de dependncia de sua estrutura interna
21
overloading
Polimorfismo
overriding
Overloading: Possibilidade de reso do nome do mtodo para diferentes implementaes, em tempo de execuo, a aplicao, escolher o mtodo adequado para cada chamada, veja o exemplo. TesteSoma Soma somar(int a, int b) somar(float a, float b) somar(char a, char b) somar(long a, long b))
Para cada tipo de dados existe um mtodo, o reso do nome do mtodo permitido, entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o mtodo somar definido vrias vezes, entretanto com a lista de argumentos diferente, desta forma evitaremos problemas como ambigidade.
22
Engenheiro getSalario()
Gerente getSalario()
Secretria getSalario()
Diretor getSalario() O mtodo setSalario herdado da Superclasse (Empregado), entretanto para cada cargo (tipo de empregado) ele tem uma implementao diferente. Por exemplo: - Para Engenheiro e Secretria salrio = (Dias Trabalhados x Valor hora) - Para Gerente salrio = (Dias Trabalhados x Valor hora) + Bnus - Para Diretor salrio = (Dias Trabalhados x Valor hora) + Bnus + Participao nos lucros. public class EmpregadoExemplo { private double salario; public void setSalario(int diastrabalhados, double valorhora ){ this.salario = diastrabalhados * valorhora * 8; public class Engenheiro extends } EmpregadoExemplo { public double getSalario(){ public static void main(String args[]) return this.salario; { } Engenheiro eng = new Engenheiro(); eng.setSalario(22, 35.00); System.out.println(eng.getSalario()); } }
23
Investimentos getSaldo()
O mtodo getSaldo herdado da Superclasse (Conta Bancria), entretanto para cada tipo de Conta ele tem uma implementao diferente. Por exemplo: - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depsitos + saldo anterior) - saques Para a conta poupana seria saldo atual = (soma dos depsitos + saldo anterior + juros) - saques Para a conta de investimentos seria saldo atual = (soma dos aplicaes + saldo anterior + juros) - resgates - ir Exerccio: Faa a implementao das classes acima.
24
Introduo a UML
Copyright Rildo Ferreira, e-tecnologia.com, 2009
25
Viso de Projeto
Funcionalidade Vocabulrio
Viso da Implementao
Codificao Montagem
Conceitual
Fsico
26
Viso de Processo A viso de projeto de um sistema abrange as classes e colaboraes que formam o vocabulrio do problema e de sua soluo. Essa perpectiva proporciona principalmente um suporte para os requisitos
27
Threads = Linhas de execuo em paralelos, estas linhs podem ser programas ou parte.
Viso de Implementao A viso de implementao de um sistema abrange os componentes e os arquivos utilizados para a montagem e fornecimento do sistema fsico. Essa viso envolve principalmente o gerenciamento da configurao das verses do sistema, compostas por componentes e arquivos de alguma maneira independentes, que podem ser reunidos de diferentes formas para a produo de um sistema executvel.
28
Cada uma dessas vises pode ser considerada isoladamente, permitindo que diferentes participantes orientem seu foco para os aspectos da arquitetura do sistema que mais lhes interessem. Essas cincos vises tambm interagem entre s, por exemplo: Os ns na viso de implantao contm componentes da viso de implementao que, por sua vez, representa a realizao fsica de classes, interfaces, colaboraes e classes ativas provenientes das vises de projeto e de processo.
29
Anlise de Requisitos
Casos de Uso
Seqncia (eventos)
Colaborao
Classes
Distribuio
30
Produtos dos Workflows de Requisitos e de Anlise: Documento de Viso Requisitos Especificao de Requisitos (Casos de Uso) Modelo Conceitual ou Modelo de Domnio Anlise Vocabulrio do Sistema
Arquitetura
31
Projeto
Diagrama de Estados* Diagrama de Classes (Refinado)
32
Arquitetura
Modelo de Arquitetura
33
Modelagem Visual significa modelar com a utilizao de notaes padro. Precisamos adotar uma ferramenta, uma notao e linguagem para tal empreitada. UML (Linguagem de Modelagem Unificada) a linguagem de modelagem das mais populares do momento. Mas podemos optar por usar OMT, por exemplo.
34
35
36
ESTTICOS
. Diagrama de Classes . Diagrama de Objetos . Diagrama de Componentes . Diagrama de Distribuio Modela a estrutura do sistema
DINMICOS . Diagrama de Casos de Uso . Diagramas de Interao - Diagrama de Seqncia - Diagrama de Colaborao . Diagrama de Atividade . Diagrama de Estados
37
38
39
Calculo
Terceiro, as colaboraes definem interao e so sociedades de papis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior soma de todos os elementos. Portanto, as colaboraes contm dimenses estruturais, assim como comportamentais. As colaboraes representam a implementao de padres que formam um sistema .
Cadeia de Responsabilidade
40
FazerPedido
Quinto, as classes ativas so classes cujos os objetos tm um mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa semelhante a um classe, exceto pelo fato de que seus objetos representam elementos cujo o comportamento concorrente com o outros elementos.
41
Component.java
Stimo, um n elemento fsico existente em tempo de execuo que representa um recurso computacional, geralmente com pelo menos alguma memria e, frequentemente, capacidade de processamento. Exemplo de ns: - Computadores (estaes clientes e servidores) - Redes - Roteadores
Servidor
42
Mostrar
Segundo, uma mquina de estado um comportamento que especifica as sequncias de estados pelas quais objetos ou interaes passam durante sua existncia em resposta a eventos, bem como suas respostas a esses eventos. O comportamento de classe ou de uma colaborao pode ser especificado por meio de uma mquina de estados. Uma mquina de estados abrange mais elementos, tais como, transies (o fluxo de um estado a outro evento), evento (itens que disparam uma transio) e atividades (as respostas s transies).
Aguardando
43
Aplicao
Interface de Usurio Regras de Negcios
Controle
- Itens Anotacionais Itens anotacionais so as partes explicativas dos modelos UML. So comentrios, includos para descrever, esclarecer e fazer alguma observao sobre qualquer elemento do modelo. Existe apenas um item anotacional chamado nota
Imprimir Recibo
44
O segundo associao um relacionamento estrutural que descreve um conjunto de ligaes, em que as ligaes so conexes entre objetos. A agregao um tipo especial de associao, representando um relacionamento estrutural entre o todo e suas partes. representada por uma linha slida, possivelmente direcionadas, ocasionalmente includo rtulos e freqentemente, contendo outros adornos, como nomes de papis e multiplicidade.
empregador
Pessoa
funcionrio 0..1
Empregador
45
Mdico
generalizao
especializao
Clinico Geral
Pediatra
O quarto a realizao um relacionamento semntico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realizao so encontrados em dois locais: entre interface e as classes ou componentes que as realizam; entre casos de uso e as colaboraes que os realizam.
Place order
colaborao
Order management
46
O Vocabulrio da UML abrange trs tipos de blocos de construo: - Itens - Relacionamentos - Diagramas
- Itens, Existem quatro tipos de itens na UML Itens estruturais: So os substantivos utilizados em modelos da UML. So as partes mais estticas do modelo, representando elementos conceituais ou fsicos.
Primeiro, as classes so descries como conjuntos de objetos que compartilham os mesmos atributos, operaes, relacionamento e semntica. Segundo, uma interface uma coleo de operaes que especificam servios de uma classe ou componente. Terceiro, as colaboraes definem interao e so sociedades de papis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior soma de todos os elementos.
Quarto, um caso de uso a descrio de conjunto de sequncia de aes realizadas pelo sistema que proporciona resultados observveis de valor para um determinado ator.
Quinto, as classes ativas so classes cujos os objetos tm um mais processos ou threads e, portanto, podem iniciar a atividade de controle
47
- Itens Comportamentais So parte dinmicas dos modelos de UML. So os verbos de um modelo, representado comportamento no tempo e espao. Ao todo, existem dois tipos de itens comportamentais:
Primeiro, interao um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para realizao de propsitos especficos. Segundo, uma mquina de estado um comportamento que especifica as sequncias de estados pelas quais objetos ou interaes passam durante sua existncia em resposta a eventos, bem como suas respostas a esses eventos.
48
Diagramas da UML
Copyright Rildo Ferreira, e-tecnologia.com, 2009
49
50
Aluno
Generalizao: Entre casos de uso parecida generalizao existente entre as classes. No caso de uso a generalizao significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho poder acrescentar ou sobrescrever o comportamento de seu pai; poder ser substitudo em qualquer local qual o pai aparea. Include: Quando voc estiver se repetindo em dois ou mais caso de uso separados devemos evitar a repetio Extends: Quando estivermos descrevendo uma variao em comportamento normal, entretanto, querendo fazer uma descrio mais controlada, explicando os pontos de extenso no caso de uso. Realizes: Especifica a colaborao entre os casos de uso Use (obsoleto): Especifica que a semntica do elemento de origem depende da semntica da parte pblica do destino
51
Papis: Funcionrio Administrativos, Alunos e Professores Usurio cadastro no sistema senhas, Usurio no estar logado Pr Condio Dados Entrada Entrada: Cdigo do usurio e senha de acesso Sada: Autorizao para uso (Pasta de Acesso) ou uma mensagem de alerta e Sada Sequncia de troca mensagens Ator Sistemas 1. Usurio chama uma interface Registro 2. Usurio informa seu cdigo e sua senha. 3. Usurio requisita autenticao dos dados informados. 4. Aplicativo processa a autenticao da senha, faz a identificao do usurio. Verificar se usurio tem o status de Liberado. 5. Conferir se senha no est expirada. 6. Conferir se senha informada coincide com a senha gravada. 7. Retornar uma mensagem e uma assinatura. 8 Usurio recebe a mensagem, ou seja, a autorizao Pasta de Acesso, formatada de acordo sua interface. Curso Alternativo (Exceo): Ator
Sistemas 4. Usurio com status de bloqueado. Retornar mensagem de alerta/erro 5. Senha expirada. Retornar mensagem de alerta/erro (O usurio dever trocar a senha ver case de uso AlterarSenha) 6. Senha no confere. Retornar mensagem de alerta/erro de senha invlida. Registrar a quantidade de tentativas sem sucesso, caso seja igual a 5 (limite de tentativas) o sistema bloquear o usurio, mudando o status de liberado para bloqueado automaticamente.
Ps Condio Interfaces
52
53
54
55
Extend:
Podemos usa-los em dois momentos 1 Variao Cada uma das extenses descreve as diferentes maneiras com que um passo do caso de uso pode ser executado. Exemplo: ReceberConta
<<extend>>
<<extend>>
<<extend>>
Dinheiro
CartaoCredito
Cheque
2 Casos excepcionais Condies de falha que podem ocorrer e serem recuperada em nico passo e requerem um caso de uso para sua descrio. DevolvendoCarro
<<include>>
<<include>>
<<extend>>
AlterarDisponibilidadeCarro
ConsultarCliente
CalcularMulta
56
Um relacionamento de incluso entre casos de uso significa que o caso de uso base incorpora explicitamente o comportamento de outro caso de uso em uma localizao especificada na base. O caso de uso includo nunca permanece isolado, mas apenas uma instance como parte de alguma base maior que o inclui. Voc pode pensar na incluso como o caso de uso base que o obtm o comportamento a partir do fornecedor do caso de uso. Voc utiliza um relacionamento de incluso para evitar descrever o mesmo fluxo de eventos vrias vezes, incluindo o comportamento comum em um caso de uso prprio. O relacionamento de incluso essencialmente um exemplo de delegao, voc coleta um conjunto de responsabilidades do sistema e o captura um nico local (o caso de uso includo); depois, permite que outras partes do sistema (outros casos de uso) incluam a nova agregao de responsabilidade sempre que precisamos utilizar essa funcionalidade.
57
Locadora de carros
Uma locadora aluga carros aos clientes previamente cadastrados. Caso o cliente no esteja cadastrado, esta atividade custodial realizada, separadamente em outra atividade do sistema. Caso um carro, disponvel, seja escolhido pelo cliente este alugado, sendo registrada a data inicial junto ao aluguel. Para que o cliente possa alugar um carro, este no pode estar com dvida pendente. Os carros so descritos pela placa, ano, modelo, descrio, km, preo por km, situao(disponvel, etc), taxa diria, observaes(informaes gerais) e sua imagem. Os clientes so cadastrados pelo seu cpf, nome, endereo, telefone e dvida(reservado para registrar pagamentos pendentes). Quando o cliente devolve o carro, a situao do carro mudada para disponvel, o km atualizado com o km atual do carro e um recibo emitido, baseado nos kms rodados e nos dias em que ficou com o carro. Ainda na atividade de devoluo removido o registro do aluguel e, caso o cliente no possa pagar, a dvida do aluguel registrada junto ao cliente.
58
59
60
Cadastrar
CadastrarCliente
<<include>> <<include>>
RegistrarDiv ida
ImprimirRecibo
61
Nome: VerificarDadosCliente Objetivo: Verificar se Cliente est cadastro no Sistema e e divida pendente Pr-condio: Cliente solicitar uma locao Ator: Atendente Fluxo Normal: 1-O atendente solicita o nmero do CPF 2-Digita o CPF no sistema 3-O sistema verifica se cliente est cadastrado e se tem divida pendente 4-O sistema envia mensagem cliente cadastrado e no h divida Fluxo Alternativo 1 (Cliente no cadastrado): 4-O sistema envia mensagem cliente no cadastrado 5-Solicita o cadastro da custdia do cliente Fluxo Alternativo 2 (Cliente com divida): 4-O sistema envia mensagem cliente cadastrado e com divida pendente
62
formulrio de matrcula
cursos disponveis
Diagrama de Seqncia Explicando o diagrama: O diagrama de seqncia consiste em um nmero de objetos mostrado em linhas verticais. O decorrer do tempo visualizado observando-se o diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto so simbolizadas por setas entre os objetos que se relacionam. Diagramas de seqncia possuem dois eixos: o eixo vertical, que mostra o tempo e o eixo horizontal, que mostra os objetos envolvidos na seqncia de uma certa atividade. Eles tambm mostram as interaes para um cenrio especfico de uma certa atividade do sistema.
Copyright Rildo Ferreira, e-tecnologia.com, 2009
63
Diagrama de Seqncia
Explicando o diagrama (continuao) No eixo horizontal esto os objetos envolvidos na seqncia. Cada um representado por um retngulo de objeto (similar ao diagrama de objetos) e uma linha vertical pontilhada chamada de linha de vida do objeto, indicando a execuo do objeto durante a seqncia, como exemplo citamos: mensagens recebidas ou enviadas e ativao de objetos. A comunicao entre os objetos representada como linha com setas horizontais simbolizando as mensagens entre as linhas de vida dos objetos. A seta especifica se a mensagem sncrona, assncrona ou simples. As mensagens podem possuir tambm nmeros seqenciais, eles so utilizados para tornar mais explcito as seqncia no diagrama.
Em alguns sistemas, objetos executam de forma concorrente, cada um com sua linha de execuo (thread). Se o sistema usa linhas concorrentes de controle, isto mostrado como ativao, mensagens assncronas, ou objetos assncronos. Os diagramas de seqncia podem mostrar objetos que so criados ou destrudos como parte do cenrio documentado pelo diagrama. Um objeto pode criar outros objetos atravs de mensagens. A mensagem que cria ou destri um objeto geralmente sncrona, representada por uma seta slida
64
: Atendente
: Cliente
: Veiculo
: Locacao
getDadosCliente( )
getDisponibilidade( )
Este diagrama descreve em ordem cronolgica as mensagens entre os objetos. Neste momento estamos dizendo o como o Caso de Uso deve ser implementado
65
: Atendente
: Cliente
: Veiculo
: Locacao
getDadosCliente( )
getDisponibilidade( )
Linha do tempo
66
formulrio de matrcula
Diagrama de Colaborao
NOTA: O diagrama de colaborao em alguns caso pode ser considerado opcional. Pode-se escolher entre utilizar o diagrama de colaborao ou o diagrama de seqncia.
67
2: getDivida( )
1: getDadosCliente( )
: Cliente
: Atendente
3: getDisponibilidade( ) 4: setSaida( )
: Veiculo
: Locacao
68
Registro fechado [nmeroDeAlunos<3] Registro fechado [nmero de alunos =10]^Curso .Criar relatrio
cancelarCurso
69
Elementos
Verificando
Estado
Transio
Fim
Inicio
70
Final
71
incio
Verificando
Expedindo
Aguardando cancelado
Cancelamento
Entregue
final
72
Cliente
Vendas
Estoque
Fazer Pedido
Receber Pedido
Cobrar Cliente
73
74
Diagrama de Atividades
75
Estoque
Fazer Pedido
atividade
Processar Pedido
separao
Receber Pedido
Cobrar Cliente
juno raias
76
Preencher Pedido
Enviar Fatura
Entrega
[pedido urgente] [seno]
Entrega Regular
Encerrar Pedido
77
Nome do Pacote
Exemplo: As classes pertencentes ao Sistema de Matrcula podem ser agrupadas em trs pacotes: UI (Interface Usurio) Regras de Negcio Interfaces de Banco de Dados
Regras de Negcios
Interface MySQL
78
Aplicao
Interface de Usurio
Regras de Negcios
Controle
Fisicamente os pacotes tem a estrutura de diretrio e subdiretrio, isto que dizer que a Aplicao ter a seguinte formato: Aplicao Regras de Negcios Interface de Usurio Controle
79
Professores
Alunos
Funcionrios Administrativo
1 1
Matricula
Curso
1 1..* tem
Disciplinas
Uma classe num diagrama pode ser diretamente implementada utilizando-se uma linguagem de programao orientada a objetos que tenha suporte direto para construo de classes. Para criar um diagrama de classes, as classes tm que estar identificadas, descritas e relacionadas entre si.
80
81
82
UML
Classes Persistentes
Associao Atributos Roles Multiplicidade Generalizao e Especializao
MER
Entidades
Relacionamentos Atributos Roles Constraints Generalizao e Especializao
Classe persistente
Entidade
83
Pessoa
-nome -idade
Classes
Funcionrio funcao
Veja agora o mapeamento para entidade MER, para cada classe criaremos uma entidade correspondente:
Pessoa
idpessoa <pk> nome idade
um
um
Funcionrio
idpessoa <fk> funcao
Cliente
idpessoa <fk> idcliente <pk> telefone
84
Funcionrio
idfunc <pk> nome idade funcao
Cliente
idcliente <pk> nome idade telefone
85
Curso.jar
Pessoa.jar
Disciplina.classr
Aluno.class
Professores.class
Um componente mostrado em UML como um retngulo com uma elipse e dois retngulos menores do seu lado esquerdo. O nome do componente escrito abaixo ou dentro de seu smbolo. Componentes so tipos, mas apenas componentes executveis podem ter instncias. Um diagrama de componente mostra apenas componentes como tipos. Para mostrar instncias de componentes, deve ser usado um diagrama de execuo, onde as instncias executveis so alocadas em nodes.
Copyright Rildo Ferreira, e-tecnologia.com, 2009
86
Reserva.jar
Pessoa.jar
CheckIN
PessoaFisica.
PessoaJuridica
87
<<TCP/IP>> <<TCP/IP>>
Cliente A
0..*
Servidor de Aplicao
88
MySQL
89
90
O objetivo desta fase determinar a funcionalidade esperada pelo usurio do sistema. Num projeto de construo civil, esta fase corresponderia ao projeto de arquitetura, onde se descrevem as caractersticas da casa que so visveis ao seu morador. O produto desta fase chamado de Modelo de Requisitos. A estrutura do Modelo de Requisitos exibida na figura abaixo. Cada uma das caixas representa um ou mais documentos que devem ser apresentados no final da fase. O diagrama indica que o modelo de Requisitos composto de: Modelo de Casos de Uso, uma prottipo e um Glossrio. Por sua vez, o Modelo de Casos de uso composto de diagramas de caso de uso, cada destes contm uma descrio para o caso de uso.
Modelos de Requisitos
91
Modelo Esttico
Modelo Dinmico
92
93
94
95
Professor
Aluno
Secretaria
Sistema Cobrana
96
Manter Curriculum
Manter Horrio
97
98
99
<<extends>>
Validar Senha
Manter Curriculum
100
Diagrama de Seqncia:
Um Diagrama de Seqncia mostra interaes de objetos ordenados numa seqncia de tempo
: Aluno
Formulrio de Matrcula
Gerente de Matrculas
Matemtica Bsica
Matemtica lgebra
5: est aberto?
Tempo
101
: Secretaria
3: incui curso
Diretor : Diretor_do_Curso
102
Classes
Uma classe uma coleo de objetos com um estrutura, comportamento, relaes e semntica comuns Classes so descobertas pelo exame dos objetos nos diagramas de Seqncia e Colaborao Uma classe desenhada como um retngulo com trs compartimentos:
Primeiro: Nome da classe Segundo: Atributos (opcional) Terceiro: Mtodos (opcional)
Classes devem ser nomeadas usando o vocabulrio do domnio Padres de nomenclatura devem ser estabelecidos Regra: Todos os nomes de classes so substantivos no singular, iniciando com letra maiscula Exemplo: Cliente, Fornecedor, Pessoa, Aluno e etc.
103
Algortmo de Horrio
Curso
Professor
Oferta Curso
104
Matricula (aluno,curso)
Atributos:
105
Diretor Matrcula
incluiAluno(curso, AlunoInfo)
Algortmo de Horrio
Formulrio Matrcula
Aluno
nome nvel
curso
nome NmeroCrditos abrir() incluirAluno(AlunoInfo)
Professor
nome StatusCadeira
Oferta Curso
local abrir() incluirAluno(AlunoInfo)
106
Associao:
Uma associao uma conexo bidirecional entre classes Uma associao mostrada como uma linha conectando as classes relacionadas. Uma agregao um tipo mais forte de conexo, aonde a relao entre o todo e suas partes. Uma agregao mostrada como uma linha conectando as classes relacionadas com um losango perto da classes que representa o todo Uma relao de dependncia uma forma mais fraca de relao, mostrando uma relao entre um cliente e um fornecedor, aonde o cliente no tem conhecimento semntico do fornecedor Uma dependncia mostrada como uma linha pontilhada entre o cliente e o fornecedor
107
Diretor Matrcula
lgebra curso
3: insere aluno(Maria)
Diretor Matrcula
curso
108
Algortmo de Horrio
Diretor Matrcula
incluiAluno(curso, AlunoInfo)
curso
nome NmeroCrditos
abrir() incluirAluno(AlunoInfo)
Professor
nome StatusCadeira
Oferta Curso
local
abrir() incluirAluno(AlunoInfo)
109
110
Algortmo de Horrio
Diretor Matrcula
incluiAluno(curso, AlunoInfo)
curso
1 0..*
nome NmeroCrditos abrir() incluirAluno(AlunoInfo)
Formulrio Matrcula
0..*
Aluno
nome nvel
3..10
1 4 1..*
Professor
nome StatusCadeira
Oferta Curso
1
0..4
local
abrir() incluirAluno(AlunoInfo)
111
Formulrio Matrcula
Algortmo de Horrio
Diretor Matrcula
incluiAluno(curso, AlunoInfo)
curso
nome NmeroCrditos abrir() incluirAluno(AlunoInfo)
Usurio
nome
Aluno
nome nvel
Professor
nome StatusCadeira
Oferta Curso
local abrir() incluirAluno(AlunoInfo)
112
Iniciar Ao
fazer: Iiniciar curso
Abrir
entrar: Registrar Aluno Sair: incrementa contador
Cancelar
Cancelar
Cancelado
fazer: Notificar Aluno Matriculado
[ contador = 10 ]
Cancelar
Fechado
fazer: Finalize curso
113
114
Cobrana
Registro
Sistema Cobrana
Usurio
curso.jar
curso
pessoa.jar
Curso.class
Oferta curso.class
Aluno.class
Professor.class
115
Diagrama de Distribuio
Matrcula
Database
Biblioteca
Sede Principal
Salas
116
Declarao do Problema:
O Hotel S quero Sossego est precisando de sistema para automatizar suas principais atividades e facilitar o gerenciamento de suas operaes. O hotel contm um nmero de apartamentos disponveis para serem alugados aos hospedes. Cada apartamento tem as seguintes caractersticas: - Nmero, preos base, capacidade de pessoas - Tipo (Single, double, triplo ou sute) O preo de cada apartamento est relacionado com seu tipo e sazonalidades (perodos especiais, tais como: frias, natal, carnaval...) Um hospede pode fazer reserva de mais de um apartamentos atravs do telefone, Internet ou pessoalmente no balco de reserva do Hotel . As reversas devem ser registras no livro de reservas, que deve conter as seguintes informaes: - Tipo de apartamento, perodo, durao da estadia e data da reserva. A reserva somente confirmada aps a verificao da disponibilidade do apartamento na data informada. O cliente deve receber as seguintes informaes se confirmada a reserva: - Preo e detalhes sobre hotel. Caso contrrio deve receber a informao que no foi possvel fazer a reserva para data informada.
117
Exerccio:
- Fazer o Diagrama de Caso de Reserva - Fazer o Diagrama de Seqncia - Fazer o Diagrama de Classes (Classes de Negcio) - Fazer o Diagrama de Projeto (Refinamento de Casses) - Fazer o Diagrama de Competentes
Copyright Rildo Ferreira, e-tecnologia.com, 2009
118
Apndice
119
UML
ASSOCIAO DE Diagrama de Classes, Diagrama de Componentes. AGREGAO Diagrama de Classes, ASSOCIAO DE COMPOSIO Diagrama de Componentes. Diagrama de Casos de Uso, ASSOCIAO DE Diagrama de Classes, DEPENDNCIA Diagrama de Componentes, Diagrama de Implantao. ASSOCIAO DE GENERALIZAO Diagrama de Casos de Uso, Diagrama de Classes. Diagrama de Casos de Uso, Diagrama de Classes, Diagrama de Componentes, Diagrama de Implantao. Diagrama de Casos de Uso, Diagrama de Seqncia.
Caso de Uso Classes de Objetos Componentes Componentes Caso de Uso Classes de Objetos Caso de Uso Classes de Objetos Componentes Componentes Caso de Uso Caso de Uso
ASSOCIAO REGULAR
ATOR
CASO DE USO
Caso de Uso
CLASSE
Operaes
Diagrama de Classes.
Classes de Objetos
Nome do Componente
COMPONENTE
Diagrama de Componentes
Componentes
Diagrama de Estados,
Nome do Estado
ESTADO
120
UML
ou
INTERFACE
Diagrama de Componentes
Componentes
INTERVALO DE EXECUO DE OPERAO MENSAGEM DE RETORNO MENSAGEM E CHAMADA DE OPERAO Sncrona MENSAGEM E CHAMADA DE OPERAO Assncrona N
Diagrama de Seqncia
Caso de Uso
Diagrama de Seqncia
Caso de Uso
Diagrama de Seqncia
Caso de Uso
Diagrama de Seqncia
Caso de Uso
Diagrama de Implantao
Componentes
texto
NOTA
Em qualquer diagrama
identificador:Classe
ou
:Classe
Nome do Pacote
PACOTE
TRANSIO DE ESTADO
AUTODELEGAO
Diagrama de Seqncia
Caso de Uso
121
UML
Descreve
Requisitos funcionais do sistema pelo ponto de vista do usurio. Estrutura esttica do sistema.
Diagramas
diagramas de casos de uso
122
Notas: Linguagem
Marcas Registradas:
de Modelagem Unificada
UML
Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial so de responsabilidade de seus proprietrios. O autor informa no estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde j o autor informa que o uso apenas ilustrativo e/ou educativo, no visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. proibido o uso deste material para fins comerciais.
Melhoria e Reviso: Este material esta em processo constante de reviso e melhoria, se voc encontrou algum problema ou erro envie um e-mail ns.
Criticas e Sugestes: Ns estamos abertos para receber criticas e sugestes que possam melhorar o material, por favor envie um e-mail para ns.
123
Copyright Rildo Ferreira, e-tecnologia.com, 2009
Licena: Linguagem
de Modelagem Unificada
UML
124
Copyright Rildo Ferreira, e-tecnologia.com, 2009
Licena: Linguagem
de Modelagem Unificada
UML
125
Copyright Rildo Ferreira, e-tecnologia.com, 2009
UML
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial so de responsabilidade de seus proprietrios. O autor informa no estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde j o autor informa que o uso apenas ilustrativo e/ou educativo, no visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. Melhoria e Reviso: Este material esta em processo constante de reviso e melhoria, se voc encontrou algum problema ou erro envie um e-mail ns.
Criticas e Sugestes: Ns estamos abertos para receber criticas e sugestes que possam melhorar o material, por favor envie um e-mail para ns.
126