Análise e Projetos de Sistemas Revisão de Conteúdo UML-Linguagem de Modelagem Unificada Professor: Armando Hage Belém-2008 Resumo da Unidade Objetivos Conceitos de Orientação a Objetos(OO) Breve Histórico da UML Diagramas da UML Diagrama de Caso de Uso Diagrama de Classes Diagrama de Sequencia Conclusão Objetivos Apresentar e praticar alguns principais modelos fornecidos pela principais modelos fornecidos pela UML. Exercícios de modelagem Exercícios de modelagem. Praticar algumas situações típicas de projeto de software projeto de software. Referências Bezerra,Projeto Orientados a Objetos. Campus, 2002. Booch, G. et al. UML Booch, G. et al. UML Guia do Usuário. Campus, 2000. COAD, P.; YOURDON, E. Análise Baseada em Objetos. 2.ed. Rio de Janeiro: Campus, 1996. (005.1 C652a) DAVIS, William S. Análise e Projeto de Sistemas: uma abordagem estruturada. Rio de Janeiro: LTC, 1987. Visão Geral Desnvolvimento de Software Atualmente Uso de linguagens de programação Orientadas a Objeto (OO) Delphi, Java, PHP Linguagens compactas com bibliotecas de classes poderosas Ambientes de programação Sistemas de Banco de Dados Relacionais Oracle, SQL Oracle, SQL-Server, mySQL, Firebird, Postgres Conceitos de OO Modelos – São representações simplificadas de objetos do mundo real. Dados – Como o mesmo é uma simplificação do mundo real, os dados contidos no modelo são somente os relevantes à abstração do mundo real. Operações – Um modelo contém operações e procedimentos associados a ele. Abstração- Uma abstração descreve as características essenciais de uma entidade que a distingüe de todos os outros tipos de entidades. Pessoa como empregado de Empresa Dados (nome, cargo, salário e horasExtrasTrabalhadas) Operações(calcularSalário,aumentaSalário) Pessoa como paciente de uma clínica médica Dados(nome,sexo,altura,peso, histórico) Operações (AdicionaInformaçãoaoHistórico) Conceitos de OO Classe São estruturas das linguagens de programação OO que contem, para determinado modelo, os dados que devem ser representados e as operações que devem ser efetuadas com estes dados. A classe envolve, associa, funções e dados, controlando o acesso a estes. Defini-lá implica em especificar os seus atributos (dados) e seus métodos (funções). Ex:Interface controladora de um motor elétrico. Classe:motor Atributos: temperatura, velocidade, tensão aplicada. Conceitos de OO Objeto ou instância Representa uma materialização da classe. É um pacote de software contendo dados e procedimentos(código)relaciona do. Possui estado,identidade única e comportamento. Abstração de Dados Processo mental através do qual nos concentramos nos aspectos relevantes de um conjunto de objetos desconsiderando as suas diferenças. Conceitos de OO Na Orientação a Objetos, o mecanismo principal de abstração é a Classe. Uma Classe descreve um conjunto de Objetos que compartilham características comuns A Classe corresponde à noção de módulo em um sistema orientado a objetos Modularidade é importante pois torna o projeto de um sistema mais simples e reutilizável Classe “encapsula” dados e operações. Conceitos de OO Classificação Conceitos de OO Encapsulamento de dados e operação Conceitos de OO Encapsulamento de dados e operação Encapsulamento de dados e operações Ocultamento Ocultamento da Informação da Informação O acesso aos dados internos de objetos só pode ocorrer a partir de mensagens Independência de aplicação Um método deve acessar informações internas do objeto objeto Conceitos de OO Encapsulamento de dados e operação • Lei de Deméter – Para cada objeto para cada objeto o, e para cada um dos seus , métodos m, os objetos que podem receber , os objetos que podem receber mensagens de o são • o próprio o próprio o – especificamente especificamente self e super (em SmallTalk),this (em C++/Java)atributos de objeto de o Conceitos de OO Classificação - Associação de Objetos Conceitos de OO Agregação - Um objeto é composto por outro Conceitos de OO Generalização/Especialização - Um objeto é composto por outro Conceitos de OO Generalização/Especialização - Um objeto é composto por outro É o mecanismo que permite a uma classe herdar todo o comportamento e os atributos de outra classe, adquirindo imediatamente toda a funcionalidade de uma classe existente. Classe Uma classe que herda de C outra classe é chamada de subclasse e a classe que fornece a herança é chamada de superclasse. Classe A Classe B Classe D Classe E Comparações entre abordagem imperativas e OO Paradigma Objetos Classes Objeto / Instância Operação / Método Paradigma Procedural Envio de Mensagem Tipos de dados Variável Função/Procedimento Chamada de função Processo de Software Top-Down Processo de Software Bottom-up Modelos-Esqueletos de Programas UML Unificada Linguagem de Modelagem Unificada Surgiu para apoiar OO Evolução a partir de linguagens C++ e SmallTalk Anos 80 Anos 80-90: diversidade de autores Anos 98-2000: unificação em torno de 2000: unificação em torno de UML. UML Unificada Linguagem de Modelagem Unificada UML Unificada Linguagem de Modelagem Unificada Grady Booch Um dos pioneiros da OO Um dos pioneiros da OO 1980: ênfase em técnicas de projeto para Ada 1992-1994: livros Object Object Design Design with Applications Projeto de programas em C++ e Ada 1998: Fundação da Rational UML Unificada Linguagem de Modelagem Unificada Ivar Jacobson Modelagem OO baseado em Casos de Uso Objectory Basea-se na necessidades do usuário, o objetivo do sistema, sem preocupações com a ordem de ocorrência de cada fato e suas relações. UML Unificada Linguagem de Modelagem Unificada James Rumbaugh Object Modeling Modeling(OMT) Desenvolvida na GE Metodologia baseada em notações pré-existentes (ER, DTE, DFD) Clara distinção entre as três visões do problema. UML Unificada Linguagem de Modelagem Unificada UML Unificada Linguagem de Modelagem Unificada Linguagem visual para especificação Linguagem(modelagem) de sistemas orientados a objetos objetos Fornece representação gráfica para os elementos essenciais do paradigma de objetos Classes, atributos, objetos, troca de mensagens, ... UML Unificada Linguagem de Modelagem Unificada De propósito geral Não está presa a uma etapa do desenvolvimento software Análise Análise Projeto Projeto Implementação Testes Ciclo de vida em cascata Incremental Processo Unificado Não está presa a uma linguagem de programação UML Unificada Linguagem de Modelagem Unificada UML apoia o desenvolvimento incremental UML Unificada Linguagem de Modelagem Unificada De propósito geral Não se prende a nenhuma linguagem de programação UML Unificada Linguagem de Modelagem Unificada Padrão OMG Toda a documentação disponível em http://www.omg.orgagem Privilegia a descrição de um sistema segundo três perspectivas: Dados (estrutural) Operações (funcional) Diagrama de Caso de Uso Eventos (temporal) Diagrama de Classes Diagramas de Seqüência, Atividades, de Transição de Estados de Estados UML Unificada Linguagem de Modelagem Unificada Ferramentas mais utilizadas Rational Rose -http://www.rational.com Visual Paradigm - http://www.visual-paradigm.com/ Poseidon - http://www.gentleware.com/index.php Argo UML - http://argouml.tigris.org/ Umbrello - http://www.umbrello.org/