Análise de Programação Modelagem Orientada a Objetos com UML Prof. Gilberto B. Oliveira Modelagem Orientada a Objetos O problema O objetivo A importância de um projeto Conceitos de modelagem O que é um modelo Princípios da modelagem de software Origem da UML O que é UML Aplicação da UML Blocos de construção UML Exemplo de item Exemplo de relacionamento Regras UML Mecanismos básicos UML Arquitetura de software Ciclo de desenvolvimento de 2 software O problema 3 O objetivo O que é desenvolver software com sucesso? Software de qualidade Capaz de atender as necessidades do usuário Dentro do prazo, custo e recursos planejados Interagir com usuários de maneira disciplinada Expor os requisitos do sistema Arquitetura sólida que permite alterações 4 A importância de um projeto 5 Conceitos de Modelagem Por que modelar? Comunicar a estrutura e o comportamento desejado do sistema Visualizar e controlar a arquitetura do sistema Compreender melhor o sistema a ser elaborado expondo oportunidades de simplificação e reaproveitamento Gerenciar os riscos 6 O que é um modelo Simplificação da realidade Permitem compreender melhor o sistema que estamos construindo Visualizar o sistema como ele é ou como desejamos que ele seja Especifica a estrutura ou o comportamento de um sistema Orienta a construção do sistema Documenta as decisões tomadas Modelos de sistemas complexos permitem compreendê-los em sua totalidade 7 Princípios da modelagem de software A escolha do modelo influencia A maneira de resolver problemas A definição das soluções encontradas Cada modelo poderá ter diferentes níveis de precisão Melhores modelos estão relacionados à realidade Sistemas minimamente complexos usam um conjunto de modelos. 8 Origem da UML Década de 90: Projetos de software mais complexos Desenvolvimento de linguagens de programação orientada a objetos Desenvolvimento de novos métodos para programação orientada a objetos Booch OOSE (Object Oriented Software Engineering) OMT (Object Modeling Technique) etc... 9 Origem da UML Por que criar uma Linguagem de Modelagem Unificada Métodos convergentes Foco na padronização de mercado Resolução de problemas que não poderiam ser resolvidos com os métodos existentes. Objetivo da UML Modelar o sistema desde o conceito até o artefato com técnicas de orientação a objeto Resolver problemas complexos e de tarefas críticas Linguagem de modelagem que possa ser usada por pessoas e máquinas 10 O que é UML? Linguagem de modelagem de artefatos de software: Visualizar Especificar Construir Documentar Requisitos Arquitetura Projeto Código Fonte Planos do projeto Testes Protótipos Versões 11 Aplicação da UML Sistemas de informação complexos: Sistemas de informação corporativos Sistemas bancários e financeiros Telecomunicações Transportes Defesa/espaço aéreo Vendas e varejo Eletrônica médica Científicos Serviços distribuídos baseados em Web A UML pode modelar um sistema legal, comportamental e de hardware 12 Blocos de construção UML Itens Estruturais Comportamentais De agrupamentos Anotacionais Relacionamentos Dependência Associação Generalização Diagramas De classes De caso de uso De objetos De iteração De seqüência De colaboração De gráficos de estado De atividades 13 Exemplo de Item Classe: Descrição de conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica Implementam uma ou mais interfaces 14 Exemplo de Relacionamento Generalização Objetos filhos relacionados com objetos pais Os filhos compartilham a estrutura e o comportamento dos pais 15 Regras UML Nomes De Itens, Relacionamentos e Diagramas Escopo Contexto que dá significado a um nome Visibilidade Nomes vistos pelos demais escopos Integridade Relacionamento consistente entre os itens Execução Simular um modelo dinâmico 16 Mecanismos básicos da UML Adorno: Classes ornamentadas facilitam a compreensão do modelo Exemplo: Classe Abstrata Método público Método protegido Método privado 17 Arquitetura de software Organização do sistema de software Seleção de elementos estruturais e interfaces que compõem o sistema O comportamento do sistema conforme especificado na colaboração entre esses elementos A composição dos elementos estruturais e comportamentais em subsistemas cada vez maiores O estilo da arquitetura que orienta a organização: elementos estáticos e dinâmicos. 18 Arquitetura de software vocabulário funcionalidade gerenciamento de configurações montagem do sistema Visão de Projeto comportamento Visão de Caso de Uso Visão do Processo desempenho escalabilidade Visão de Implementação Visão da Implementação topologia do sistema distribuição fornecimento 19 instalação Ciclo de desenvolvimento Concepção vida de software Elaboração Construção Transição Modelagem do negócio Requisitos Análise e projeto Implementação Teste Implantação Gerenciamento de configuração de alteração Gerenciamento de projeto Ambiente 20