Baixe o app para aproveitar ainda mais
Prévia do material em texto
08/05/2014 1 UML Unified Modeling Language Análise e Projeto de Sistemas Orientados a Objetos Slides referência: Prof. Diego Asfora Histórico Nos meados dos anos 90 existiam mais de 50 métodos OO Alguns dos métodos de maior destaque eram Booch (Grady Booch), OOSE – OO Software Engineering (Jacobson) e OMT – Object Modelling Technique (Rumbaugh) Os três autores se juntaram e em 1996 foi lançada a UML 0.9 No início de 1997 foi lançada a UML 1.0, com a colaboração de um consórcio de empresas Histórico Em novembro de 1997 a UML 1.1 (revisada) foi adotada pelo OMG – Object Management Group A manutenção da UML foi assumida pela RFT (Revision Task Force) do OMG, que produziu as versões 1.3, 1.4 e 1.5 Entre 2000 e 2003, a UML foi amplamente revisada e atualizada No início de 2005 a UML 2.0 foi a adotada pela OMG O que é Modelagem de Software? Atividade responsável por construir modelos que expliquem as características e comportamento do software A modelagem é uma parte central de todas as atividades que levam a implantação de um bom software Um modelo é uma simplificação da realidade Construímos modelos para: • Comunicar a estrutura e o comportamento desejados do sistema • Visualizar e controlar a arquitetura do sistema • Compreender melhor o sistema que estamos construindo • Gerenciar riscos Exemplo de uma Arquitetura de Software Por que Fazer Modelagem? Construímos modelos para compreender melhor o sistema que estamos desenvolvendo Com a modelagem, alcançamos quatro objetivos: • Ajudam a visualizar o sistema como ele é ou como desejamos que seja • Permitem especificar a estrutura ou comportamento de um sistema • Os modelos proporcionam um guia para a construção do sistema • Documentam as decisões tomadas Não são restritas a grande sistemas • Construímos modelos de sistemas complexos porque não é possível compreendê-los em sua totalidade 08/05/2014 2 Modelagem Orientada a Objetos Existem várias maneiras de se definir um modelo quando falamos de software As duas maneiras mais comuns são: • Perspectiva de um algoritmo (visão tradicional – procedimentos e funções) • Perspectiva orientada a objetos (visão contemporânea) A modelagem orientada a objetos é a mais utilizada pois: • Pode ser utilizada em todos os domínios de problemas • Todos os graus de tamanho • Todos os graus de complexidade Ao escolher a modelagem orientada a objetos, precisamos saber como iremos realizar a visualização, construção e a documentação do sistema A UML tem exatamente esse objetivo O que é a UML? UML (Unified Modeling Language) – é a linguagem padrão para especificação, visualização, construção e documentação de artefatos de um sistema de software Linguagem muito expressiva que abrange todas as visões necessárias ao desenvolvimento e implantação de softwares Entretanto, a UML é apenas uma linguagem que pode ser usada por um processo de desenvolvimento de software O que é a UML? Ela não nos indica como devemos fazer um software, apenas as formas que podem ser utilizadas para representar um software em diversos estágios de desenvolvimento Com a UML, conseguimos “pensar” um software em um local e codificá-lo em outro UML – Visão Geral As linguagens fornecem um vocabulário e as regras para a combinação de palavras desse vocabulário com a finalidade de comunicar algo O vocabulário e as regras da UML indicam como criar e ler modelos bem-formados Entretanto, a UML não aponta quais/quando modelos devem ser criados. Isto cabe a um processo de desenvolvimento de software, ex: UP Por que UML? Automatizar produção de software Adicionar qualidade e reduzir custos Gerenciar a complexidade de sistemas quando estes crescem em escopo e escala Resolver problemas de arquitetura: • Distribuição física • Concorrência • Segurança • Tolerância a falhas • Etc. Benefícios da UML Software desenhado e documentado profissionalmente antes de iniciar a codificação. Controle do software que você tem Maior facilidade para detectar casos de reutilização de componentes Menor custo de desenvolvimento Durante a codificação serão encontrados menos erros Tomada de decisões antes de iniciar a codificação 08/05/2014 3 Benefícios da UML Visão geral mais apurada do software Diminuição no custo de manutenção, uma vez que é mais fácil entender os diagramas UML do que códigos de programas Melhor entendimento por parte de novos integrantes da equipe de codificação UML como Linguagem para Visualização Algumas coisas são modeladas melhor em forma textual (algoritmos, por exemplo). No entanto, há estruturas ou comportamentos que são melhor visualizadas na forma gráfica A UML provê formas gráficas para criação de modelos que facilitam a comunicação Por trás de cada símbolo gráfico empregado na notação da UML existe uma semântica bem definida Desta forma, qualquer modelo escrito em UML pode ser interpretado da mesma maneira e sem ambiguidades por desenvolvedores e ferramentas UML como Linguagem para Especificação No contexto, especificar significa construir modelos precisos, sem ambiguidades e completos A UML permite uma especificação precisa, não ambígua e completa. A especificação abrange levantamento e análise de requisitos, desenho e implementação do desenvolvimento de sistemas de software UML atende as decisões importantes que devem ser tomadas durante o ciclo de desenvolvimento de software UML como Linguagem para Construção A UML não é uma linguagem visual de programação mas os modelos podem ser associados a linguagens de programação para geração de código. • Isso permite que coisas melhor expressas graficamente sejam definidas em UML e coisas melhor expressas textualmente sejam definidas em linguagens de programação A UML permite geração de código em uma linguagem de programação a partir de modelos: engenharia direta. A engenharia reversa é também possível se a ferramenta provê mecanismos para tal. Além disso, a UML pode ser usada para a simulação de modelos UML como Linguagem para Documentação Abrange a documentação da arquitetura do sistema e seus detalhes Proporciona uma linguagem para expressão de requisitos e para realização de testes Oferece uma linguagem para a modelagem das atividades de planejamento do projeto e de gerenciamento de versões Onde a UML pode ser utilizada? Destinada principalmente para o desenvolvimento de sistemas complexos Tem sido utilizada efetivamente nos seguintes domínios: • Serviços de informações corporativos • Serviços bancários e financeiros • Telecomunicações • Transportes • Defesa/espaço aéreo • Venda de varejo • Eletrônica Médica • Científicos • Serviços distribuídos baseados na Web A UML não é restritiva à modelagem de software 08/05/2014 4 Elementos Principais da UML Blocos de Construção Regras Mecanismos Comuns Elementos Principais da UML Blocos de Construção Regras Mecanismos Comuns Blocos de Construção da UML O vocabulário abrange três tipos de blocos de construção Itens Relacionamentos Diagramas Blocos de Construção da UML Itens Relacionamentos Diagramas Blocos de Construção :: Itens São as abstrações identificadas como cidadãos de primeiraclasse em um modelo Existem quatro tipos de itens: Estruturais Comportamentais Agrupamentos Anotacionais Blocos de Construção :: Itens Estruturais Comportamentais Agrupamentos Anotacionais 08/05/2014 5 Blocos de Construção :: Itens :: Estruturais São os substantivos, parte estática do modelo, representando elementos conceituais ou físicos. Classe +atributo +metodo() Interface ColaboraçãoCaso de Uso Classes Ativas +metodos() Componentes Nó Blocos de Construção :: Itens Estruturais Comportamentais Agrupamentos Anotacionais Blocos de Construção :: Itens :: Comportamentais Partes dinâmicas dos modelos de UML São os verbos de um modelo, representando comportamentos no tempo e no espaço Mensagens Estados Blocos de Construção :: Itens Estruturais Comportamentais Agrupamentos Anotacionais Blocos de Construção :: Itens :: Agrupamentos São as partes organizacionais dos modelos de UML São os blocos em que o modelo pode ser decomposto Organiza os objetos da UML em grupos Pacote Blocos de Construção :: Itens Estruturais Comportamentais Agrupamentos Anotacionais 08/05/2014 6 Blocos de Construção :: Itens :: Anotacionais São as partes explicativas do modelo São comentários, incluídos para descrever, esclarecer e fazer alguma observação, sobre qualquer elemento do modelo Anotação Blocos de Construção da UML Itens Relacionamentos Diagramas Blocos de Construção :: Relacionamentos Dependência Associação Generalização Realização Esses relacionamentos são os blocos relacionais básicos de construção da UML São utilizados para escrever modelos bem-formatados Existem quatro tipos de relacionamentos: Blocos de Construção :: Relacionamentos Dependência Associação Generalização Realização Blocos de Construção :: Relacionamentos :: Dependência Relacionamento semântico entre dois itens, nos quais a alteração de um pode afetar o outro Dependência Blocos de Construção :: Relacionamentos Dependência Associação Generalização Realização 08/05/2014 7 Blocos de Construção :: Relacionamentos :: Associação Relacionamento estrutural que descreve um conjunto de ligações (conexões) entre objetos Associação *0..1 Blocos de Construção :: Relacionamentos Dependência Associação Generalização Realização Blocos de Construção :: Relacionamentos :: Generalização Relacionamento entre um item pai e um item filho, no qual o item filho herda a estrutura e comportamento do item pai Generalização Blocos de Construção :: Relacionamentos Dependência Associação Generalização Realização Blocos de Construção :: Relacionamentos :: Realização Relacionamento semântico entre dois itens, no qual um item apenas especifica os serviços e o outro item executa estes serviços Realização Blocos de Construção da UML Itens Relacionamentos Diagramas 08/05/2014 8 Blocos de Construção :: Diagramas Diagrama Diagrama Estrutural Diagrama Comportamental Diagrama de Classes Diagrama de Artefato Diagrama de Componentes Diagrama de Implantação Diagrama de Objetos Diagrama de Pacote Diagrama de Atividade Diagrama de Casos de Uso Diagrama de Máquina de Estados Diagrama de Interação Diagrama de Sequência Diagrama de Comunicação Diagrama de Temporização Diagrama de Visão Geral da Interação Blocos de Construção :: Diagramas :: Caso de Uso Exibe um conjunto de casos de uso (funcionalidades) e atores, e seus relacionamentos. São importantes principalmente para a organização e a modelagem de comportamentos do sistema Principais Componentes • Ator – usuário ou outro sistema que interage com o sistema em questão (agentes externos ao sistema). • Caso de Uso – representa uma ação de um Ator no sistema Ator Caso de Uso Blocos de Construção :: Diagramas :: Classes Exibe um conjunto de classes, interfaces e colaborações, bem como seus relacionamentos. Abrangem uma visão estática da estrutura do sistema Um dos diagramas mais utilizados Representa Classes e interfaces do sistema e seus relacionamentos, bem como características (atributos) e métodos Podem representar objetos do sistema, se tornando Diagrama de Objetos Também são utilizados de sistemas executáveis através da engenharia reversa MeioDeTransporte +capacidade +tipoCombustivel Carro +qtdRodas Aviao +qtdTurbinas Blocos de Construção :: Diagramas :: Objetos Exibe um conjunto de objetos e seus relacionamentos em um determinado ponto no tempo Representa retratos estáticos de instâncias de itens encontrados em digramas de classes Abrangem um visão estática da estrutura do sistema, mas sob perspectiva de casos reais. Blocos de Construção :: Diagramas :: Componentes Exibe um conjunto de componentes e suas propriedades Componentes permitem o encapsulamento de partes do sistema para reduzir as dependências, torná-las explícitas e melhorar a capacidade de substituição e a flexibilidade. Blocos de Construção :: Diagramas :: Interação Exibe uma interação, que consiste de um conjunto de objetos ou papéis, e as mensagens que podem ser trocadas entre eles Pode ser de três tipos: • Diagrama de Sequência • Diagrama de Comunicação • Diagrama de Temporização • Diagrama de Visão Geral de Interação 08/05/2014 9 Blocos de Construção :: Diagramas :: Sequencia Descreve a sequencia de mensagens trocadas entre objetos do sistema Representa as interações entre objetos de um cenário, realizadas através de operações ou métodos Ênfase está na ordenação temporal das mensagens Blocos de Construção :: Diagramas :: Comunicação Antigo diagrama de colaboração Assim como o diagrama de sequencia, mostra a interação entre um conjunto de objetos e seus relacionamentos A diferença é que este diagrama dá ênfase à organização estrutural dos objetos Blocos de Construção :: Diagramas :: Temporização Mostra os tempos reais em diferentes objetos ou papéis, em vez de sequências de mensagens relativas Muito utilizado por engenheiros elétricos no uso de demonstração do estado de máquinas digitais Recomendação de uso: A documentação UML 2.0 aconselha que pode ser mais cômodo representar a mudança de estado de um objeto em determinado período de tempo Pode-se utilizar o diagrama de estado e/ou sequencia. Blocos de Construção :: Diagramas :: Visão Geral de Interação Híbrido de um diagrama de atividades e um diagrama de sequência Seu objetivo é fornecer uma visão geral do controle de fluxo Blocos de Construção :: Diagramas :: Atividades Exibe o fluxo de controle de uma atividade para outra, concorrências e ramificações de controle. Enquanto os diagramas de interação dão ênfase ao fluxo de controle de um objeto para outro, os diagramas de atividades dão ênfase ao fluxo de controle de uma atividade (etapa) para outra. Blocos de Construção :: Diagramas :: Máquina de Estados Exibe uma máquina de estados, formada por estados, transições, eventos e atividades. Máquina de estados é um comportamento que especifica as seqüências de estados pelas quais um objeto passa durante seu tempo de vida em resposta a eventos, juntamente com respostas a esses eventos. 08/05/2014 10 Blocos de Construção :: Diagramas :: Implantação Mostra a configuraçãodos nós de processamento em tempo de execução e os componentes neles existentes Determina as necessidades de hardware do sistema, características físicas como servidores, estações, topologias e protocolos de comunicação Blocos de Construção :: Diagramas :: Artefatos Mostra a organização e as dependências existentes entre um conjunto de artefatos. Envolve a modelagem de itens físicos que residem em um nó, como executáveis, bibliotecas, tabelas, arquivos e documentos. Blocos de Construção :: Diagramas :: Pacotes Mostra a decomposição do sistema em unidades organizacionais e suas dependências Elementos Principais da UML Blocos de Construção Regras Mecanismos Comuns Regras da UML Os Blocos de Construção não podem ser simplesmente combinados de forma aleatória A UML tem um conjunto de regras que especificam o que deverá ser um modelo bem-formado Os modelos bem-formados são aqueles auto-consistentes semanticamente e em harmonia com todos os modelos a eles relacionados Regras da UML Nomes: quais nomes podem ser atribuídos a itens, relacionamentos e diagramas Escopo: o contexto que determina um significado específico para um nome Visibilidade: como esses nomes podem ser vistos e utilizados pelos outros Integridade: como os itens se relacionam entre si de forma adequada e consistente Execução: o que significa executar ou simular um modelo dinâmico 08/05/2014 11 Regras da UML No entanto, modelos são complexos, evoluem e envolvem vários tipos de pessoas de diversas maneiras e em tempos diferentes. Sendo assim, é comum, em determinados momentos, modelos não bem formados que são: Parciais • Alguns elementos são escondidos para simplificar uma visão Incompletos • Alguns elementos podem estar faltando Inconsistentes • A integridade do modelo não é garantida Elementos Principais da UML Blocos de Construção Regras Mecanismos Comuns Mecanismos Comuns Existe um conjunto de mecanismos comuns que pode ser utilizado, independentemente do diagrama Especificações Adorno Divisão Comum Mecanismos de Extensão Mecanismos Comuns :: Especificações A UML não é só uma linguagem gráfica – por trás de toda parte gráfica há uma especificação que define a sintaxe e semântica de um elemento Por exemplo, uma classe pode ser mostrada na forma de ícone ou na forma convencional com um ou mais compartimentos mas a especificação a ela associada é sempre a mesma ClasseA ClasseB Mecanismos Comuns :: Adorno A UML oferece notações gráficas que proveem uma representação visual dos aspectos mais importantes de um elemento Adornos podem ser adicionadas a essas representações para acrescentar detalhes Exemplos: • Identificar se uma classe é abstrata (nome da classe em itálico), • Identificar a visibilidade de operações (“+” – pública, “#” – protegida ou “-” – privada; antes do nome da operação) Relogio +marca #tipo -horario +data +mostrarHora() +acertar() +mudarDisplay() +zerarCronometro() +iniciarCronometro()Relogio +mostrarHora() +acertar() +mudarDisplay() +zerarCronometro() +iniciarCronometro() Relogio +marca #tipo -horario +data Relogio +marca #tipo -horario +data +mostrarHora() +acertar() +mudarDisplay() +zerarCronometro() +iniciarCronometro() Mecanismos Comuns :: Divisão Comum Na modelagem OO, o mundo costuma ser divido pelo menos de duas maneiras: • 1º Divisão de Classes e Objetos – uma classe é uma abstração, um objeto é uma manifestação concreta dessa abstração • 2º Separação de Interface e Implementação – uma interface declara um contrato, e a implementação representa uma realização completa desse contrato IUnknown ISpelling spellingwizard.dll Aluno -nome -endereco -sexo fernanda : Aluno jose : Aluno andre : Aluno 08/05/2014 12 Mecanismos Comuns :: Mecanismos de Extensão Mecanismos que permitem estender a linguagem de uma maneira controlada Existem 3 mecanismos de extensão: • Estereótipos • Valor Atribuído (Tagged Value) • Restrições (constraints) Mecanismos Comuns :: Mecanismos de Extensão Estereótipos – amplia o vocabulário da UML, descreve nova semântica aos elementos já existentes Pode-se criar novos ícones para representar esses elementos em um forma gráfica individualizada. Gerente Funcionário Técnico <<Actor>> Mecanismos Comuns :: Mecanismos de Extensão Valor Atribuído (Tagged Value) – estende as propriedades dos blocos de construção, permitindo a criação de novas informações na especificação de um elemento Cliente {Persistence = PERSISTENT} LeitoraCartao {Persistence = TRANSITORY} Mecanismos Comuns :: Mecanismos de Extensão Restrições (constraints) – amplia as semânticas dos blocos de construção, permitindo acrescentar novas regras ou modificar as já existentes Pessoa Empresa +Diretor 13 +Funcionário 11..* {subset}
Compartilhar