Vous êtes sur la page 1sur 59

UML

Unified Modeling Language

Linguagem de Modelagem Unificada

Professor Cleber @ Tavares Junior .com

UML

O que ?

Uma linguagem no-proprietria para modelagem de sistemas Permite que os desenvolvedores visualizem os produtos de seus trabalhos de forma padronizada

Professor Cleber @ Tavares Junior .com

UML
Para qu serve?

uma forma eficiente de comunicao entre analistas, dba's, programadores, usurios e stake-holders de sistemas Especificar, documentar, estruturar, sub-visualizar sistemas

Professor Cleber @ Tavares Junior .com

UML
O que no ? UML no metodologia de desenvolvimento (rup/scrum/xp...) No diz o que fazer antes ou depois ou como projetar seu sistema Ela sim auxilia a visualizar seu projeto/desenho e a comunicao entre seus objetos

Professor Cleber @ Tavares Junior .com

UML
Qual sua histria? 1994 Rumbaugh se junta a Booch na Rational, se juntam a Jacobson e fazem um esforo de um ano para unificar as melhores prticas de engenharia 1997 Aprovada como padro pela OMG (object management group)

Professor Cleber @ Tavares Junior .com

UML
Qual seu futuro?

Pode ser estendida sem alterar sua estrutura Muitas ferramentas de desenvolvimento j a usam para modelagem visual Ajuda a acelerar o desenvolvimento de softwares orientados a objetos (reuso)

Professor Cleber @ Tavares Junior .com

UML
Como usa?

Professor Cleber @ Tavares Junior .com

UML
Quais ferramentas auxiliam? Astah (ex-Jude): http://astah.net/editions/community Free UML tool: http://www.visual-paradigm.com/solution/freeumltool/ E muitas outras...

Professor Cleber @ Tavares Junior .com

UML

Quais alguns conceitos?

Ator papel relativo ao sistema Atividade fluxos conduzidos por processamento Evento resultado de uma ao

Professor Cleber @ Tavares Junior .com

UML
Quais alguns conceitos? Classe abstrao de caractersticas similares Interface camada de abstrao que permite o reuso Pacote conjunto de classes

Professor Cleber @ Tavares Junior .com

UML
Quais alguns elementos e diagramas?

Diagrama de classes Diagrama de objetos Diagrama de interfaces Diagrama de pacotes


Diagrama de estrutura (fsica) Diagrama de implementao (estruturais)
Professor Cleber @ Tavares Junior .com

UML
Quais alguns elementos e diagramas?

Diagrama de casos de uso Diagrama de transio de estados Diagrama de atividades Diagrama de sequncia Diagrama de interatividade Diagrama de colaborao
(comportamentais e de interao)
Professor Cleber @ Tavares Junior .com

UML

Quais algumas referncias?

Fonte original: http://www.uml.org/


Use a Cabea: Anlise e Projeto Orientado ao Objeto (UML)

Professor Cleber @ Tavares Junior .com

UML
Exerccios
Descreva com suas palavras o qu voc entendeu por UML, qual a importncia que voc v nessa linguagem para sua vida profissional? Mande sua resposta por email para o professor (vide rodap) com o assunto INFNET turmaA2011 tarefa01

Professor Cleber @ Tavares Junior .com

UML
Exerccios

- Montagem dos grupos / empresas


- Cada empresa deve definir rea de atuao (podendo ou no existirem iguais) - Cada empresa deve definir um sistema necessrio sua rea de atuao
Professor Cleber @ Tavares Junior .com

UML

Exerccios - Cada empresa deve iniciar a anlise de requesitos deste sistema - Para isso, ser utilizado a descrio de Casos de Uso e seu diagrama UML

Professor Cleber @ Tavares Junior .com

UML

Casos de uso:

Tratam da formalizao, documentao e comunicao de partes dos requisitos funcionais de sistemas computacionais e processos de negcios

Professor Cleber @ Tavares Junior .com

UML
Casos de uso:

- No uma tarefa trivial - Requer ateno aos detalhes


Um exemplo: Saque de dinheiro em mquina ATM

Professor Cleber @ Tavares Junior .com

UML
Ator Primrio: Correntista Objetivo: Permitir ao correntista de um banco conveniado ao banco ATM realizar o saque de dinheiro em espcie. Fluxo Principal 1. O correntista insere o carto na mquina ATM. 2. O correntista insere a senha e o valor a ser retirado. 3. O correntista retira o dinheiro da mquina ATM.
Professor Cleber @ Tavares Junior .com

UML

O cenrio descrito acima est correto?

Apesar de atingir o fim esperado, no descreve a interao entre o ator e o sistema. O objetivo do caso de uso descrever a interao entre os atores e o sistema sob desenho. Deve haver captura dos processos de negcio que devem ser conduzidos pelo sistema.

Professor Cleber @ Tavares Junior .com

UML
Fluxo Principal 1. O correntista insere o carto na mquina ATM. 2. O sistema realiza a validao do carto. 3. O correntista insere a senha e o valor a ser retirado. 4. O sistema valida a senha e o saldo do correntista. 5. O sistema disponibiliza o dinheiro na dispensadora e o recibo da transao. 6. O correntista retira o dinheiro da mquina ATM.
Professor Cleber @ Tavares Junior .com

UML
E agora? Existe uma evoluo. H dilogo entre o ator e o sistema em uso. Mas ainda h o que se melhorar. No passo 2, por exemplo. A mquina ATM no pode dizer se o carto est bloqueado, apenas a instituio financeira real (banco) pode fazer isso. Precisamos de um ator secundrio.

Professor Cleber @ Tavares Junior .com

UML

Ator Primrio: Correntista Ator Secundrio: Instituio de Crdito Objetivo: Permitir ao correntista de uma instituio de crdito conveniada ao banco ATM realizar o saque de dinheiro em espcie.

Professor Cleber @ Tavares Junior .com

UML
Fluxo Principal 1. O correntista insere o carto na mquina ATM 2. O sistema realiza a validao fsica do carto e solicita Instituio de Crdito realizar a validao da expirao ou restries associadas ao carto. 3. O correntista insere a senha e o valor a ser retirado. 4. O sistema solicita Instituio de Crdito que valide a senha e o saldo do correntista. 5. O sistema disponibiliza o dinheiro na dispensadora e o recibo da transao. 6. O correntista retira o dinheiro da mquina ATM.
Professor Cleber @ Tavares Junior .com

UML
E agora? Um caso de uso deve capturar todos os processos de negcio, sem entrar no mrito de como eles sero implementados. Ou seja, casos de uso capturam interaes (O QU), sem se preocupar com o cdigo (COMO). Acima, faltam validaes de dinheiro disponvel na dispensadora, restrio de saque dirio e horrio, e dbito em conta ao final.
Professor Cleber @ Tavares Junior .com

UML
Fluxo Principal 1. O correntista insere o carto na mquina ATM. 2. O sistema realiza a validao fsica do carto e solicita Instituio de Crdito realizar a validao da expirao ou restries associadas ao carto. 3. O correntista insere a senha e o valor a ser retirado. 4. O sistema solicita Instituio de Crdito que valide a senha, o saldo do correntista e o limite dirio de saque. 5. O sistema verifica a disponibilidade de dinheiro na mquina ATM, os limites dirios de saque suportados e avalia as restries de limite de saque em horrios e dias especiais. 6. O sistema solicita Instituio de Crdito que realize o dbito do saque na conta corrente do Correntista. 7. O sistema disponibiliza o dinheiro na dispensadora e o recibo da transao. 8. O correntista retira o dinheiro da mquina ATM.
Professor Cleber @ Tavares Junior .com

UML

E agora? No podemos esquecer dos fluxos alternativos ou de extenso, ou seja, e se algo der errado, qual deve ser o procedimento? No fluxo principal acima, podemos colocar os seguintes pontos de extenso / fluxos alternativos:

Professor Cleber @ Tavares Junior .com

UML

Ativado do Passo 2 - Carto Invlido Ativado do Passo 2 - Carto Bloqueado ou Expirado Ativado do Passo 2 - Carto No Suportado pela Mquina 24 horas Ativado do Passo 4 - Senha Invlida Ativado do Passo 4 - Saldo Insuficiente Ativado do Passo 4 - Limite Dirio na Instituio de Crdito Ultrapassado Ativado do Passo 5 - Limite de Saque do Banco 24 horas Ultrapassado Ativado do Passo 5 - Limite de Saque no Horrio Ultrapassado Ativado em Qualquer Passo - Cancelamento da Operao pelo Correntista

Professor Cleber @ Tavares Junior .com

UML
Fluxo Alternativo - Senha Invlida 4a. Se o nmero de tentativas invlidas for igual a 1: 4a1. O sistema exibe a mensagem Senha Invlida. 4a2. O sistema retorna ao passo 3. 4b. Se o nmero de tentativas invlidas for igual a 2: 4b1 O sistema exibe a mensagem Senha Invlida - O carto ser retido se trs tentativas invlidas forem realizadas. 4b2 O sistema retorna ao passo 3. 4c. Se o nmero de tentativas invlidas for igual a 3: 4c1. O sistema retm o carto 4c2. O sistema exibe a mensagem Senha Invlida - Carto Retido. Procure a sua agncia bancria para devoluo do carto. 4c3 O sistema termina a operao.
Professor Cleber @ Tavares Junior .com

UML
Isto deve ser detalhado para cada ponto acima.
Porque tanto detalhe neste ponto de desenvolvimento do sistema? Menor custo de correo agora do que quando o sistema estiver implantado. Esta documentao vai do analista para os programadores.
Professor Cleber @ Tavares Junior .com

UML
Tarefa para *hoje*: No sistema imaginado para a empresa, identificar *pelo menos um* caso de uso (cadastrar usurio, por exemplo normal ter vrios casos de uso no sistema) e descrev-lo em termos de: Atores (principal e secundrio) Objetivo (sem s, UM s) Fluxo (principal e secundrio)
Professor Cleber @ Tavares Junior .com

UML
Mande sua resposta por email para o professor (vide rodap) com o assunto INFNET turmaA2011 tarefa02 Prximas aulas, diagramas UML das descries de casos de uso desenvolvidos aqui em sala (Astah?)

Professor Cleber @ Tavares Junior .com

UML
Correes e alguns exemplos: Em geral: erros de portugus, esquecimento de autoria... Grupos: - Grupo restaurante - Grupo lanhouse - Grupo MALFT - Grupo construtora - Grupo segurana - Grupo ensino
Professor Cleber @ Tavares Junior .com

UML

Amostras: - Lanhouse

Professor Cleber @ Tavares Junior .com

UML
Ator Principal: Funcionrio Objetivo: cadastrar cliente Fluxo principal: 1- Inserir CPF do cliente 1- O funcionrio insere o CPF do cliente 2- o sistema validou o CPF? Sim 2- O sistema valida o CPF do cliente 3- Sistema encontrou cadastro com CPF informado? No 4- cadastrar cliente 5- informar Nome completo, CPF, telefone, data de nascimento e telefone para contato 3- O sistema abre a tela de novo registro j com o novo CPF informado, com os campos apelido*, senha*, CONFIRMAR SENHA*, nome completo, telefone e data de nascimento do cliente devendo ser digitados pelo funcionrio 6- Informar nick 7- nick ja existe? No 8- informar nova senha alfa numrica com mnimo de 6 caracteres 9- senha informada vlida? Sim 4- O sistema valida a presena dos campos obrigatrios (?), verifica se j existe o apelido (login), se as senhas so iguais e vlidas. Professor Cleber @ Tavares Junior .com

UML

10-usurio cadastrado com sucesso 11-usurio salvo no sistema. 5- O sistema apresenta a tela de cliente cadastrado com sucesso, pergunta se deseja cadastrar outro ou ir para tela principal (CASO DE USO: BUSCAR CLIENTE) ISTO OUTRO CASO DE USO: INSERIR TEMPO PARA CLIENTE 12-perguntar se o usurio deseja colocar tempo 13-se sim, informar o tempo desejado 14-tempo creditado. 15-aps tempo creditado, informar mquina disponvel

Professor Cleber @ Tavares Junior .com

UML

Extenses: Ativado do passo 2: CPF invlido Ativado do passo 2: CPF j existente no sistema Ativado do passo 4: apelido (login) j existente no sistema Ativado do passo 4: senha com caracteres invlidos Ativado do passo 4: senha e confirmao de senha no conferem Ativado do passo 4: campos no validados (vazios ou com caracteres invlidos)

Professor Cleber @ Tavares Junior .com

UML

Fluxo alternativo : 2A - CPF invlido 2A1 O sistema informa o ocorrido e volta ao passo 1 2B CPF j existente no sistema 2A1 O sistema informa o ocorrido e abre a tela de edio daquele usurio (CASO DE USO: editar usurio)

Professor Cleber @ Tavares Junior .com

UML

Casos de uso para o ator Funcionrio (lanhouse) gerado com a ferramenta Gliffy: http://www.gliffy.com Professor Cleber @ Tavares Junior .com

UML
Exerccios

- Pesquisa individual a ser realizada e entregue via email ao professor at a prxima aula de segunda-feira com o assunto INFNET turmaA2011 tarefa03:
Uma apresentao (doc ou ppt) com a diferena entre Casos de Uso (utilizada neste levantamento de requesitos) e User Stories (histrias de usurio, utilizada em agile)
Professor Cleber @ Tavares Junior .com

UML

Amostras: - Alessandra

Professor Cleber @ Tavares Junior .com

UML
Resumo e reviso de casos de uso: - Descrevem relacionamentos entre um grupo de Caso de Uso (atividades num sistema que produzem um resultado concreto e tangvel) e os Atores participantes deste processo. - So feitos para facilitar a comunicao com os futuros usurios do sistema, com o cliente, e so especialmente teis para determinar os recursos que o sistema deve ter. - No so adequados para representar o desenho (design, projeto) e no podem descrever os mecanismos internos de um sistema. - Dizem o qu o sistema deve fazer, mas no fazem, e no podem, especificar o como isso ser conseguido (implementao) - Representam a interface externa do sistema e especificam um conjunto de exigncias do que o sistema deve fazer (lembre-se: somente o qu, no o como) - Quando trabalhar com Casos de Uso, importante lembrar-se de algumas regras simples: Cada Caso de Uso est relacionado com no mnimo um ator Cada Caso de Uso possui um iniciador (isto , um ator) Cada Caso de Uso liga-se a um resultado relevante (um resultado com valor de negcio)

Professor Cleber @ Tavares Junior .com

UML
Resumo e reviso de casos de uso: Atores

Um ator uma entidade externa (fora do sistema) que interage com o sistema. Atores podem ser pessoas reais (por exemplo usurios do sistema), outro sistema de computador ou eventos externos.
Um ator no representa a pessoa fsica ou sistema, mas sua regra. Isto significa que quando por exemplo uma pessoa interage com o sistema de diferentes maneiras (assumindo diferentes regras, usando diferentes chapus) ela ser representada por diferentes atores. Por exemplo uma pessoa que fornece suporte ao cliente por telefone e recebe ordens de compra do cliente para o sistema pode ser representado por um ator Equipe de Suporte e um ator Representante de Venda.

Professor Cleber @ Tavares Junior .com

UML
Resumo e reviso de casos de uso: Descrio do Caso de Uso

Descrio do Caso de Uso so narrativas de texto dos Diagramas de Caso de Uso. Elas usualmente tomam a forma de um documento que de alguma maneira ligado ao Caso de Uso, e explana o processo ou atividades que tomaro lugar no Caso de Uso.

Professor Cleber @ Tavares Junior .com

UML
Resumo e reviso de casos de uso: Casos de uso podem incluir dependncias entre si, a saber:

<<inclui>> que especifica que um Caso de Uso toma lugar dentro de outro Caso de Uso <<estende>> que especifica que em determinadas situaes, ou em algum ponto (chamado um ponto de extenso) um Caso de Uso ser estendido por outro. Generalizao especifica que um Caso de Uso herda as caractersticas do Super Caso de Uso, e pode sobrepor algumas delas ou adicionar novas de maneira semelhante a herana.

Professor Cleber @ Tavares Junior .com

UML
Resumo e reviso de casos de uso: Um exemplo de Diagrama de Caso de Uso:

Professor Cleber @ Tavares Junior .com

UML

CLASSES

Professor Cleber @ Tavares Junior .com

UML
Iniciemos com um exemplo prtico de um Diagrama de Classes:

Professor Cleber @ Tavares Junior .com

UML
Iniciemos com um exemplo prtico de um Diagrama de Classes

Professor Cleber @ Tavares Junior .com

UML
O qu o Diagrama de Classes anterior representa?

Professor Cleber @ Tavares Junior .com

UML
Ressaltando que a modelagem de classes de um sistema pode representar qualquer coisa:

- Um sistema de entretenimento (jogo);


- Um sistema de segurana bancria; - Um sistema de controle de acesso de lanhouse; - Um sistema de pedidos em um restaurante; - Um sistema de venda de construo de casas online; - Um sistema de ensino distncia; - Um sistema de controle de estoque;

Professor Cleber @ Tavares Junior .com

UML
Lembrando que o diagrama de classes um diagrama estrutural de um sistema, ou seja, representa a forma como ele contrudo!

Professor Cleber @ Tavares Junior .com

UML
Enquanto os Diagramas de Caso de Uso representam o comportamento esperado de um sistema, isto , o qu ele deve fazer, no Diagrama de Classes estamos olhando para dentro do sistema, isto , o como ele est construdo. E isto pode ser feito de diferentes maneiras. Mas o tempo revela as melhores prticas em cada caso.

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Classes so uma maneira de representar objetos do mundo real em termos de linguagens de programao (paradigma de programao orientada objetos) Por exemplo, olhando para o mundo real, podemos ver uma srie de objetos, e a realidade construda segundo a interao entre estes objetos: Na sala, temos uma srie de computadores, cada um com caractersticas em comum entre si (todos tem um tamanho e peso e possuem uma posio no espao da sala), mas cada um possui determinadas caractersticas que o distingue dos outros (todos possuem o mesmo tamanho e peso mas certamente esto em posies diferentes no espao da sala...)

Cada computador possui uma srie de comportamentos (por exemplo, ligar() e desligar())
Palavras-chave: Classe, objeto, atributo e mtodo.

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Cada computador possui uma srie de comportamentos (por exemplo, ligar() e desligar()), que so acionados quando objetos do tipo Pessoa (professor, aluno...) enviam mensagens eles acionando estes comportamentos. Mas como um computador ligado, qual exatamente seus processos internos para que isto ocorra? No necessariamente sabemos, nem precisamos saber disso para faz-lo funcionar. Dizemos que esta caracterstica est encapsulada no objeto. Palavra-chave: Encapsulamento

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Voltando Classe Pessoa, cada objeto deste tipo tem caractersticas (atributos e metodos()) em comum, mas em termos do nosso sistema de exemplo (um simulador da sala de aula), interessante termos uma Classe Aluno que represente os alunos, e uma Classe Professor, que represente os professores. Tanto Aluno quanto Professor compartilham caractersticas com Pessoa. (nome, cpf...) Mas tem diferenciais suficientes (aluno tem matricula, aluno recebePassagem(), professor tem dataEfetivacao, professor acessaSalaProfessores())

Dizemos que as Classes Professor e Aluno herdam de Pessoa


Palavra-chave: Herana

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Mesmo que Aluno e Professor possuam um mesmo comportamento / mtodo (acessarAVA();) eles no produzem necessariamente o mesmo resultado (se um Professor acessarAVA() ele ativar outros privilgios de acesso ao sistema). Um mesmo comportamento / mtodo pode ser chamado / acionado de diversas maneiras (com diferentes parmetros): uma Pessoa pode Andar(15 passos), Andar(15 passos, rpido), Andar(rpido), ou apenas Andar()) Palavra-chave: Polimorfismo e sobrecarga.

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Nem toda Classe pode / precisa ser instanciada instanciar = criar um objeto de uma certa Classe Na nossa modelagem de sistemas, podemos imaginar classes genricas apenas para organizar nosso cdigo Voc consegue imaginar uma Classe em um sistema que no possa ser instanciada (representada) por um objeto concreto? Palavra-chave: Classe abstrata

Professor Cleber @ Tavares Junior .com

UML
Mas o qu so Classes? Exerccio:

Professor Cleber @ Tavares Junior .com