Prévia do material em texto
Engenharia de Software Unidade IV – A Linguagem UML Objetivo: Visualizar a simbologia e os elementos da Linguagem de Modelagem Unificada (UML) bem como os principais diagramas Prof. Nécio de Lima Veras Roteiro Introdução (métodos OO) UML Conceitos História Utilidade e Desenvolvimento Modelos e Diagramas Introdução – Métodos Orientado a Objetos • Booch (Grady Booch): 1. Um objeto = um modelo do mundo real com dados e habilidades; 2. Desenho estruturado e OO; Estruturado: Separa o sistema em módulos; OO: Problema com os objetos que existem em um domínio de problema; Introdução – Métodos Orientado a Objetos • OMT (Rumbaugh): Técnica de Modelagem de Objetos 1. Desenvolvido pela GE Corporation; 2. Baseado na modelagem semântica de dados; 3. Suporta: • Atributos e relacionamentos (modelagem de dados); • composição/agregação (objetos); e • Herança. 4. Ponto forte: Notação utilizada (OMT reformula E-R); 5. Ponto fraco: Sem notação específica para representar troca de mensagens entre os objetos; Introdução – Métodos Orientado a Objetos • OOSE (Jacobson): Object-Oriented Software Engineering; 1. A diferença em relação aos outros métodos é o seu foco: – Casos de uso (domínio do problema e interfaces); – Categorização de pessoas e equipamentos, dependendo do seu papel no sistema; 2. Ponto fraco: Notação simplista para objetos de domínios (objetos = círculos); 3. Ponto forte: Foi adaptado a engenharia de negócios (idéias usadas para modelar e melhorar processos); Introdução – Métodos Orientado a Objetos • Shlaer/Mellor (Sally Shlaer e Stephen Mellor): 1. Pode utilizar ferramentas tradicionais (DFD); 2. Pode ser usado quando a organização decide manter suas antigas ferramentas de trabalho, enquanto avalia outra (OO); 3. Utilizava diagrama de ER e transição de estados; 4. Recebeu muitas críticas por: – Não fornecer esquema de tratamento de mensagens e encapsulamento; – pobreza no suporte a conceitos e herança; Introdução – Métodos Orientado a Objetos • Coad/Yourdon (Peter Coad e Ed Yourdon): 1. Enfoque simples e eficaz; 2. Divide a análise em classes e objetos; 3. Objetos = Abstrações do mundo real; 4. Classes = Coleção de um ou mais objetos com atributos e serviços; Introdução – Métodos Orientado a Objetos Outros métodos: Embley/Kurtz; Martin/Odell; Wirfs-Brock; UML Leitura recomendada: UML Essencial: Um breve guia para a linguagem-padrão de modelagem de objetos. Martin Fowler, Bookman, 3a Edição, 2004. UML O que é UML? Linguagem de modelagem unificada; Projetada para descrever modelos de sistemas (do mundo real e de softwares); Baseada em Objetos; Padrão É hoje um padrão consolidado (adotada pela indústria de hardware e software); Tem evoluído bastante durante os últimos anos; Como surgiu UML? Inicio-se com um esforço de Grady Booch e Jim Raumbaugh em 1994 para combinar seus métodos populares (Booch e OMT); Posteriormente, juntou-se a eles Ivar Jacobson (OOSE); Assim originou-se o termo “UNIFICADA”; Em 1997, foi submetida pela OMG como candidata a se tornar uma linguagem e uma notação padrão de modelagem; Como surgiu UML?(cont.) A OMG aceitou e assim a UML tem recebido a aprovação geral (indústrias de hardware e software); Muitas empreses de desenvolvimento de software e vendedores de ferramentas CASE adotaram a UML; Assim, a UML está acessível a todos, sendo uma linguagem padrão que é elegante, expressiva e flexível; Leitura complementar sobre as especificações da notação UML: www.uml.org Utilidade da UML É independente do processo de desenvolvimento de software; Finalidade principal: Ser uma linguagem para modelagem e não um guia de desenvolvimento de software, como por exemplo: Como fazer análise e projeto OO; Qual o processo (etapas, workflows) a seguir; Não define um ciclo padrão de desenvolvimento; Desenvolvimento da UML Os esforço iniciais dos autores foram: Identificar e definir a semântica dos conceitos fundamentais; Criar uma representação gráfica, cuja sintaxe pudesse ser bem simples, intuitiva e expressiva; Foi dividida em subconjuntos da UML,definida como meta-modelagem; Vantagem: Permitir a classificação dos conceitos por nível de abstração, complexidade e pelo domínio da aplicação; Desenvolvimento da UML(cont.) Um meta-modelo descreve formalmente os elementos do modelo; O modelo é uma descrição abstrata de um sistema ou processo; A forma do modelo depende do meta-modelo; Cada meta-modelo define elementos do modelo e suas regras para composição; O conteúdo do modelo depende do problema; É a unidade básica do desenvolvimento e é construído por elementos com suas diferentes representações; Tipo de Modelos em UML A UML (v2) define diferentes tipos de modelos para representar sistemas. Exemplos: Classes: Captura a estrutura estática; Estados: Expressa o comportamento dinâmico dos objetos; Casos de Uso: Descreve os requerimentos dos usuários; Interações: Representa os cenários do fluxo de mensagens; Implementação: Mostra as unidades trabalhando; Implantação: Fornece os detalhes pertencentes ao processo de alocação de recursos; Tipos de Diagramas em UML • Um modelo pode ser constituído por um ou mais diagramas correspondentes; • A UML 2 define 13 diferentes tipos de diagramas divididos em grupos: Tipos de Diagramas em UML 1. Diagrama de classes; Descreve os tipos de objetos em um sistema e os vários tipos de relações estáticas entre eles; Demonstra os atributos e métodos de uma classe e a com que os objetos estão conectados; Tipos de Diagramas em UML 2. Diagrama de seqüências: Mostra as interações entre objetos organizados em uma seqüência de tempo, ilustrando as mensagens trocadas; 3. Diagrama de Comunicações: Mostra as interações organizadas em torno dos “roles” – objetos ou links; 4. Diagrama de Objetos: Mostra objetos e suas relações em um certo ponto no tempo; É considerado um caso especial do diagrama de classes em que instâncias e classes podem ser mostradas; Tipos de Diagramas em UML 5. Diagrama de Máquina de Estados: Mostra uma máquina de estados, incluindo estados simples, transições e compostos; Descreve todos os possíveis estados que este objeto pode assumir; 6. Diagrama de Atividades: Descreve uma seqüência de atividades, com suporte de comportamento condicional e paralelo; 7. Diagrama de Casos de Uso: Mostra seqüências de ações entre atores e “uses cases”; Tipos de Diagramas em UML 8. Diagrama de Componentes: Mostra dependências entre componentes de software – incluindo componentes de código-fonte, código objeto e executáveis; 9. Diagrama de Implantação: Mostra as relações físicas entre componentes de hardware e software; 10. Diagrama de Estrutura Composta: Descreve a estrutura interna de uma classe ou componente, além de permitir a descrição de colaboradores; 11. Diagrama de Pacotes: Representa um subsistema englobado por um sistema de forma a determinar as partes que o compõem. Tipos de Diagramas em UML 12. Diagrama de Interação Geral: Uma variação do diagrama de atividades que fornece uma visão geral do fluxo de informações; 13. Diagrama de Tempo: Descreve uma mudança de estado ou condição de instância, ou ainda, seu papel durante o tempo, tipicamente, em resposta a eventos externos; Assim, a UML fornece uma notação compreensível para todo o ciclo de desenvolvimento OO; Exercícios Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22