ENGENHARIA DE SOFTWARE UML Notação UML A UML (Unifield Modeling Language) é uma linguagem padrão para a elaboração da estrutura de projetos de software, que surgiu em meados da década de 90 visando unificar as diversas notações de modelagem orientadas a objetos, como por exemplo: OMT (Object Modeling Technique – Rumbaugh), OOSE (Object-Oriented Software Engineering – Jacobson), Booch, entre outras. Cada uma dessas notações citadas possui suas qualidades e deficiências, o OMT é forte em análise e mais fraco em projeto, Booch é forte em projeto e mais fraco em análise, Jacobson é forte em comportamento de análise e mais fraco em outras áreas. Com isso, a UML é uma notação unificada e padrão de todas as notações mais utilizadas na modelagem de sistemas. Notação UML Pode-se definir UML como uma linguagem de modelagem usada para especificar, visualizar, construir e documentar sistemas orientados a objetos. Durante o curso o UML será utilizado como notação principal para a metodologia orientada a objetos em conjunto com a ferramenta Rational Rose. O que é a UML ? Linguagem visual para a especificação de sistemas orientados a objetos; Visa: Visualizar Especificar Construir Documentar É independente de: Fases de desenvolvimento de software Processo de software utilizado Linguagens de programação Objetivos da UML Modelar sistemas utilizando conceitos de Orientação a Objetos; Estabelecer uma clara ligação entre os modelos conceituais e de implementação; Explicitar os pontos notáveis em sistemas complexos ou de missão crítica; Definir uma linguagem de modelagem passível de uso por pessoas e máquinas. Aspectos da UML Funcional Casos de Uso Estático (Estrutural) Diagrama de Classes Dinâmico (Comportamental) Diagrama de Seqüência, Atividades e Estados Visão Geral dos Modelos da UML Diagrama de Casos de Uso: descreve as funcionalidades do sistema e os usuários e entidades externas, organizando o comportamento do sistema. Além do diagrama há toda a descrição de atores e casos de uso. Diagrama de Classes: descreve a estrutura de solução do sistema, através de um conjunto de classes (compostas de atributos e operações), e relacionamentos. Geralmente é dividido em diagrama de classes de análise (domínio) e diagrama de classes de projeto (implementação). Diagrama de Objetos: descreve um conjunto de objetos e seus relacionamentos. Esse diagrama ilustra as estrutura de dados e instâncias do diagrama de classes. Diagrama de Sequência: faz parte do conjunto de diagramas de interação, descreve o comportamento do sistema, enfatizando a comunicação dos objetos através da passagem de mensagem entre os mesmos; Visão Geral dos Modelos da UML Diagrama de Colaboração ou Comunicação (na UML 2.0): faz parte do conjunto de diagramas de interação, descreve o comportamento do sistema, enfatiza a organização estrutural dos objetos que enviam e recebem mensagens; Diagrama de Atividades: descreve o comportamento do sistema, através do fluxo de controle de funções. Diagrama de Estados: descreve o comportamento do sistema, enfatizando os estados que o objeto pode possuir. Diagrama de Componentes: descreve os componentes que irão ser criados no sistema e a comunicação entre eles; Diagrama de Distribuição: descreve a arquitetura física e os componentes utilizados no sistema. Visão Geral dos Modelos da UML Diagrama de Pacotes (na UML 2.0): fornece um mecanismo de organização para os elementos da UML. O pacote é utilizado para agrupar elementos da modelagem. Diagrama de Interação – Visão Geral (na UML 2.0): faz parte do conjunto de diagrama de interação, apresenta a visão geral, de congregação, dos outros diagramas de interação (seqüência, comunicação e tempo). Diagrama de Tempo (na UML 2.0): faz parte do conjunto de diagrama de interação, descreve o comportamento de um ou mais objetos em dado período de tempo, mostrando suas alterações de estados. Diagrama de Composição de Estrutura (na UML 2.0): descreve a composição de diversos elementos de modelagem, como: interfaces, objetos ou classes, mas que não perdem suas características em combinação com outras. Visões Arquiteturais Visão de Casos de Uso Descreve as funcionalidades do sistema – o quê; Facilita o entendimento dos usuários; Base para as demais visões; Representada pelos diagramas de casos de uso e diagrama de atividades (eventual). Visão Lógica Descreve como as funcionalidades serão fornecidas; Define o comportamento do sistema; Representada pelos diagramas de classes, seqüência, estados e atividades. Visão de Processo Descreve a divisão do sistema em processos; Centrado na visão não funcional do sistema, como desempenho, segurança e concorrência; Representada pelos diagramas seqüência, estados e atividades. Visão de Implementação Descreve os módulos de implementação, suas estruturas e dependências; Utilizada pelos desenvolvedores; Representada pelo diagrama de componentes. Visão de Distribuição Exibe a distribuição física do sistema através de nós e suas conexões; Mapeia quais programas e objetos são executados em cada computador; Representada pelo diagrama de distribuição. Algumas Ferramentas: Rational Modeler / Rational Rose OMondo ArgoUML Astah Enterprise Architect StarUML Bibliografia Complementar UML Essencial Martin Fowler e Kendall Scott Editora Bookman Capítulo 1 UML Guia do Usuário Rumbaugh, J., Booch, G., Jacobson, I.; Editora Campus, 2006; Java Como Programar 4ª Edição H. M. Deitel, P.J. Deitel Editora Bookman Capítulo 2 – Estudo de Caso – Item 2.9 Agradecimentos Copyright © 2013 - 2014 Profa. Ana Paula Gonçalves Serra Todos direitos reservados. Reprodução ou divulgação total ou parcial deste documento é expressamente proibido sem o consentimento formal, por escrito, da Profa. Ana Paula Gonçalves Serra.