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 infra-estrutura 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 ASSOCIAÇÂO ATOR
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 COMPOSIÇÃO DEPENDENCIA GENERALIZAÇÃO AGREGAÇÃO
Diagrama de Classes Diagrama de classe (simples) Escola contrata matricula Aluno Professor
Diagrama de Classes Exemplo Pessoa Principal Mundo Pessoas exibe abriga Animais Local ocupam ocupam
Diagrama de Classes Cardinalidade Quantidade de objetos na relação Principal Mundo abriga Animal exibe 1 * 1 * 1 * 1 abriga ocupam Pessoa ocupam Local 1 1
Diagrama de Classes Animal proteção + Define Publico - Define Privado - 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 1 1 Professor alunos: Alunos[ ] professores: Professores[ ] adicionarProfessor (Professor p) : void adicionarAlunos(Aluno a) : void executar( ) : void listarAlunos( ): void 1 1 * * Professor nome: String matricula: int turmas: int construtor( ): Aluno nome: String matricula: int construtor( ): nota1: int nota2: int
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