990 likes | 1.1k Views
IN1008 – Projeto Conceitual de BD. Diagramas UML para Modelagem de Dados Por: Clarissa César Borba ccb@cin.ufpe.br Fabrício Cabral fbc@cin.ufpe.br. Roteiro. Motivação Estado da Arte Introdução Diagramas Diagrama de Casos de Uso Diagrama de Classes Referências. Motivação.
E N D
IN1008 – Projeto Conceitual de BD Diagramas UML para Modelagem de Dados Por: Clarissa César Borba ccb@cin.ufpe.br Fabrício Cabral fbc@cin.ufpe.br
Roteiro • Motivação • Estado da Arte • Introdução • Diagramas • Diagrama de Casos de Uso • Diagrama de Classes • Referências
Motivação • A UML foi planejada para ser uma linguagem flexível e customizável, podendo ser utilizada para vários propósitos, não só para a construção de aplicações Orientada a Objetos • Permite diferentes tipos de modelagem, incluindo modelos para processos de negócio, fluxo de eventos, aplicações, arquiteturas e banco de dados • Unificação de todos os modelos do sistema (aplicação e bando de dados) em torno de uma única linguagem, que pode ser compartilhada por todos os envolvidos no desenvolvimento do sistema (analistas, programadores, DBAs, etc)
Estado da Arte • A UML está em contínuo desenvolvimento • UML 1.1, 1.3, 1.4, 1.5, 2.0 e UML 2.1 • Novas linguagens baseadas na UML estão sendo desenvolvidas, a fim de solucionar problemas específicos • SysML (Systems Modeling Language)
Introdução • Unified Modeling Language • A UML é uma linguagem de modelagem para: • Visualização • Especificação • Construção • Documentação • Comunicação
Criadores da UML • James Rumbaugh - Object Modeling Technique (OMT) • Grady Booch - Booch Method • Ivar Jacobson - Objectory (OOSE) Process
Por que os 3 autores resolveram criar a UML? • Cada autor adotava idéias dos métodos dos outros, então, evoluindo juntos produziriam melhorias • A unificação dos 3 métodos trariam estabilidade para o mercado
História Fonte: http://www.cin.ufpe.br/~if119
Elementos Essenciais Elementos Estruturais Elementos Comportamentais Elementos de Agrupamento Elementos de Anotação
Elementos Estruturais • São as partes estáticas de um modelo, representando elementos que são ou conceituais ou físicos. • Exemplos: • Classe • Interface • Use Cases • Componente • Nó
Elementos Comportamentais • São as partes dinâmicas dos modelos da UML. • Exemplos: • Interação - especifica um conjunto de mensagens trocadas entre objetos • Máquina de Estado - especifica seqüências de estados de um objeto
Elementos de Agrupamento • São as partes organizacionais dos modelos da UML. • Exemplos: • Pacotes - mecanismo para organização de elementos dentro de grupos
Elementos de Anotação • São partes explicativas dos modelos da UML. São comentários que você aplica para descrever, iluminar e remarcar elementos no modelo. • Exemplos: • Nota - símbolo contendo restrições ou comentários que são melhor expressadas em textos
Diagramas • São representações gráficas de um conjunto de elementos. São desenhados para visualizar um sistema de diferentes perspectivas. • Exemplos: • Diagramas Estruturais • Diagramas Comportamentais • Diagramas de Interação
Diagramas Estruturais • Diagramas Estruturais • Diagrama de Objetos • Diagrama de Classes • Diagrama de Componentes • Diagrama de Instalação • Diagrama de Pacotes • Diagrama de Estrutura (UML2.0)
Diagramas Comportamentais • Diagramas Comportamentais • Diagrama de Caso de Uso • Diagrama de Transição de Estados • Diagrama de Atividade
Diagramas de Interação • Diagramas de Interação • Diagrama de Sequência • Diagrama de Interatividade • Diagrama de Colaboração ou Comunicação • Diagrama de Tempo (UML2.0)
Diagramas de Use Case • São especialmente importantes na organização e modelagem dos comportamentos de um sistema • Use Case é a especificação de sequências de ações que um sistema, subsistema ou classe pode realizar, interagindo com um dos agentes
Solicitar Solicitar histórico do <<estende>> histórico semestre atual <<estende>> Solicitar histórico de Estudante todos os semestres Sistema de controlede pré-requisitos Matricular <<inclui>> aluno Verificar dependências Secretária Diagramas de Use Case
Diagramas de Classe • Os diagramas de classes são os principais diagramas estruturais da UML • Diagramas de classe mostram classes, interfaces e seus relacionamentos • As classes especificam a estrutura e o comportamento dos objetos, que são instâncias de classes
Cliente Pedido -nome: String -codigo: Integer -endereco: String -dataRecebido -dataPrimeiraCompra: Date -total: Currency -dataUltimaCompra: Date -totalComprado: Currency +confirmar() +cancelar() #creditoPermitido: Currency -calcularTotal():Currency #nivelCredibilidade() gerarNovoCodigo: String itens * Cliente pessoa-jurídica Cliente pessoa-física Item de Pedido nomeContato: String nome: String -quantidade: Integer telefones[1..10]: String CPF: String -preco: Currency CGC: String numCartaoCredito -emEstoque: Boolean FAX[1..3]: String colocarListaNegra() representante * de vendas * Produto Empregado IPessoa Diagramas de Classe
Diagramas de Objetos • Mostram objetos e seus relacionamentos • Representam instâncias estáticas de elementos dos diagramas de classes • Os diagramas de objetos são úteis para a modelagem de estruturas de dados complexas
Curso Aluno Professor ministra -codDisciplina: String -matrícula: String * -matrícula: String -descrição: String -nome: String [1..3] [1..5] [0..10] -nome: String -codTurma: String -período: Integer p1: Professor p2: Professor matricula: "205-6712-09" nome: "Jaelson Castro" c1: Curso c3: Curso : Curso c2: Curso : Curso codCurso: "IF291" codCurso: "IF185" descrição: "MPS" : Aluno descrição: "AER" : Aluno codTurma: I7 codTurma: I6 : Aluno : Aluno : Aluno :aluno Bill Lewinsky matricula: "219846534" :aluno nome: "Nelson Mandella" : Aluno matricula: "562746134" nome: "John Major" Diagramas de Objetos
Diagramas de Seqüência • Mostram um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles
Janela de entrada p: Pedido : ItemPedido :ItemEstoque de pedido preparar() * [para cada item do pedido] preparar() emEstoque := verificar() [emEstoque] estoqueBaixo := remover() verificEstoqueBaixo() [estoqueBaixo] <<criar>> :ItemRenovEstoque [emEstoque] <<criar>> :ItemEntrega Diagramas de Seqüência
Diagramas de Colaboração • Mostram um conjunto de objetos, seus relacionamentos e as mensagens que enfatizam a organização dos objetos que trocam mensagens
Diagramas de Estados • Mostram uma máquina contendo estados, transições, eventos e atividades • Estes diagramas são usados para modelar o comportamento de objetos (com comportamento complexo) • Nestes diagramas são modelados os estados em que um objeto pode estar e os eventos que fazem o objeto passar de um estado para outro
Diagramas de Atividades • São um caso especial dos Diagramas de Estados, com a maioria das transições resultantes do término das atividades • Mostram o fluxo entre atividades (ações não-atômicas) • São semelhantes aos antigos fluxogramas • São muito usados para modelar atividades concorrentes
Pessoa [semcafé] [sem Coca] H Procurar bebida [achou café] [achou Coca] Colocar café Adicionar água à Pegar Pegar lata no filtro máquina xícara de Coca Colocar filtro na máquina Ligar máquina Filtrar café Colocar café na H Beber xícara Diagramas de Atividades
Diagramas de Componentes • Mostram componentes e os relacionamentos entre eles • São usados para modelar o aspecto físico de um sistema • Exemplos de componentes são documentos, executáveis e tabelas de bancos de dados
Cadastro.exe <<link>> Usuários FormCadastro.html Banco <<link>> Autenticacao.exe Senhas Principal.html FormEntrada.html Diagramas de Componentes
Diagramas de Implantação • São usados para modelar o ambiente em que o sistema será executado • São compostos por nós e relacionamentos de comunicação • Um nó pode ser um computador, uma rede, um disco rígido, um sensor, etc.
PC - G309 Nestscape Communicator 5.0 Principal.html servidorWeb FormCadastro.html Autenticação.exe servidorDeArquivos Cadastro.exe FormEntrada.html O SGBD a ser servidorBancoDeDados utilizado ainda não foi escolhido. SGBD Diagramas de Implantação
Ferramentas • JUDE • http://jude.change-vision.com • Rational Rose • http://www-306.ibm.com/software/rational • Borland Together • http://www.borland.com/us/products/together • Poseidon (baseada no ArgoUML) • http://www.gentleware.com • MagicDraw UML • http://www.magicdraw.com
Origem • Ivar Jacobson • Alistair Cockburn
Caso de Uso • Caso de uso (use case) é uma técnica empregada para especificar o comportamento que se espera do sistema. • Casos de uso possibilitam que desenvolvedores obtenham uma compreensão comum do sistema, junto aos usuários e especialistas do domínio.
Caso de Uso • Cada caso de uso descreve uma funcionalidade requerida do sistema. • Um caso de uso é uma descrição de um conjunto de seqüência de ações, incluindo variações, que um sistema executa a partir da interação de coisas externas ao sistema. • Casos de uso podem incluir seqüências alternativas, ou sequências excepcionais (de erro)
Estudo de Caso • Uma universidade X deseja informatizar a sua biblioteca. Em conversas com o usuário, as seguintes características foram levantadas: • Alunos e professores podem ter acesso ao acervo da biblioteca • Usuários devem ser cadastrados antes que possam ter acesso ao acervo
Estudo de Caso • O acervo da biblioteca é constituído por títulos e periódicos • Apenas títulos podem ser emprestados aos usuários, sendo os periódicos mantidos apenas para consulta • O atraso na devolução de títulos implica na cobrança de multa sobre cada dia de atraso • O usuário pode também reservar títulos emprestados
Estudo de Caso • Documentos para o acervo da biblioteca são adquiridos através de compra ou de doação • Professores podem solicitar a compra de novos títulos ou periódicos para o acervo • Periodicamente, auditorias são realizadas para que o extravio de títulos possa ser averiguado.
Casos de Uso Notação Nome do caso de uso
Casos de Uso Exemplo Realizar reserva Cadastrar cliente
Atores • Um caso de uso envolve a interação de atores com o sistema. • Um ator é uma entidade externa ao sistema que, de alguma maneira, interage com ele. • Um ator, tipicamente, estimula o sistema com eventos de entrada ou recebe algo dele.
Atores • Atores não são, necessariamente, pessoas. • Atores podem ser outros sistemas ou hardware externo que interage com o sistema.
Atores Notação Nome do ator