UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Desenvolvimento Testes Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema Marcada por uma entrevista com cliente Os interesses do cliente devem ser formalizados para próxima fase Para formaliza-los é usado o digrama UML de “casos de uso” Analise A fase de análise está preocupada com as primeiras abstrações (classes e objetos) Estas abstrações estarão presentes no domínio do problema As classes são modeladas e ligadas através de relacionamentos com outras classes, As colaborações entre classes também são mostradas neste diagrama para desenvolver os “casos de uso" modelados anteriormente Estas colaborações são criadas através de modelos dinâmicos em UML Analise Na análise, só serão modeladas classes que pertençam ao domínio principal do problema Estas são classes técnicas que gerenciem banco de dados, interface, comunicação, concorrência As demais classes não estarão presentes na modelagem dessa fase Projeto O resultado da análise é expandido em soluções técnicas Novas classes serão adicionadas para prover uma infra-estrutura técnica As classes do domínio do problema modeladas na fase de análise são mescladas nessa nova infraestrutura técnica O design resulta no detalhamento das especificações para a fase de programação do sistema Modelagem Desenvolver o modelo de uma aplicação antes de construí-la, é tão essencial quanto ter uma planta para a construção de uma casa Com o aumento da complexidade dos sistemas, é importância conhecer boas técnicas de modelagem A UML se tornou uma notação padrão da indústria de arquitetura de software Notação UML Visões: Mostram os diferentes aspectos do sistema, dando enfoque a ângulos e níveis de abstrações diferentes Modelos de Elementos: São os conceitos utilizados nos diagramas Mecanismos Gerais: Provém comentários, informações ou semântica sobre os elementos dos modelos. Diagramas: São gráficos que descrevem o conteúdo em uma visão Visões Cada visão é descrita por um número de diagramas que contém informações que dão ênfase aos aspectos particulares do sistema Tipos: – – – – – Visão de Casos de Uso Visão de Componentes Visão Lógica Visão de Organização Visão de Concorrência Visão de caso de Uso Descreve as funcionalidades do sistema desempenhada pelos atores externos É a visão central, base para as outras visões do sistema Descrita pelos diagramas: – – de Casos de Uso de Atividades Diagrama de caso de uso Elementos Caso de Uso Nome do Caso ATOR ASSOCIAÇÂO Diagrama de caso de uso Exemplo: Sistema Escola Cadastrar aluno Cadastrar professor Listar alunos Gerente da escola Listar professores Calcular média Diagrama de Atividades O Diagrama de Atividades mostra o fluxo de controle Eles capturam ações e seus resultados Eles focam o trabalho executado na implementação de uma operação (método) Tipicamente as atividades são estados de ação – estados que transitam para outro estado Diagrama de Atividades Elementos INICIO Nome do Estado ESTADO FIM TRANSIÇÂO FLUXO PARALELO TOMADA de DECIÇÂO Diagrama de Atividades Exemplo Visão Lógica Descreve como as funcionalidades do sistema serão implementadas Especifica a estrutura estática e dinâmica Representada pelos diagramas: – – – – – – de Classe de Objetos de Estado Seqüência Colaboração Atividades Diagrama de Classes É a descrição de conjunto de objetos que compartilham os mesmos atributos e relacionamentos (estado), operações e semântica (comportamento) O Diagrama de Classes mostra a estrutura estática do modelo da aplicação Este diagrama exibe as classes do sistema e o grau do relacionamentos entre elas Diagrama de Classes Elementos ASSOCIAÇÂO Cliente Nome : String Idade : Num Nome da Classe Criar() Destruir() Operações Atributos COMPOSIÇÃO GENERALIZAÇÃO DEPENDENCIA AGREGAÇÃO Diagrama de Classes Diagrama de classe (simples) Escola matricula Aluno contrata Professor Diagrama de Classes Exemplo Pessoa Principal exibe Mundo abriga abriga Animais ocupam Pessoas Local ocupam Diagrama de Classes Cardinalidade – Quantidade de objetos na relação Principal exibe 1 Mundo abriga 1 * abriga Animal * 1 1 ocupam * Pessoa ocupam 1 1 1 Local Diagrama de Classes Animal Animal - nome: String - peso: float - Posição: Local + mover(passos: int, direção: String) : local + comer(pesoDaComida:float ): float proteção + Define Publico - Define Privado Diagrama de Classes Exemplo: Sistema escola Escola alunos: Alunos[ ] professores: Professores[ ] adicionarAlunos(Aluno a) : void adicionarProfessor (Professor p) : void listarAlunos( ): void 1 * Aluno nome: String matricula: int nota1: int nota2: int construtor( ): executar( ) : void 1 * Professor nome: String matricula: int turmas: int construtor( ): Diagrama de Classes Exemplo Diagrama de Objetos O Diagrama de Objetos é muito similar ao Diagrama de Classes e utiliza quase a mesma notação Este diagrama mostra uma “fotografia” dos objetos existentes em um determinado momento na execução do sistema São muito úteis para exemplificar relacionamentos complexos entre objetos em determinado momento Diagrama de Objetos Exemplo Utilizando o JUDE Interface inicial JUDE Criando um Projeto JUDE Criando um Projeto JUDE Interface do Projeto JUDE Criando Diagramas JUDE Criando Diagramas JUDE Criando Diagramas JUDE Criando Diagramas JUDE Criando Diagramas JUDE Atividade – Fazer o diagrama de atividades do Sistema Escola