Ementrio O Modelo de Objetos Histrico da evoluo
Ementário • O Modelo de Objetos: – Histórico da evolução das linguagens de programação, PE versus POO, fundamentos do modelo de objetos, a importância da modelagem, métodos OO. • Tecnologias para apoio a orientação a objetos. • UML- Unified Modeling Language. • A Linguagem Java: – introdução, a sintaxe, estruturas de controle e mecanismo de modularização. • Vocabulário da Orientação a Objetos: uma abordagem com Java.
Considerações Iniciais: a importância da modelagem A modelagem é uma parte central de todas as atividades que levam à implantação de um “bom” software. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. Objetivos da Modelagem: • Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja. • Os modelos permitem especificar a estrutura (organização) ou o comportamento (dinâmica) de um sistema. • Os modelos proporcionam um guia para a construção (implementação) do sistema. • Os modelos documentam as decisões tomadas.
Considerações Iniciais: fundamentos do modelo de objetos Nesta visão, o principal bloco de construção de todos os sistemas de software é o objeto ou a classe. Um objeto é alguma coisa geralmente estruturada a partir do vocabulário do espaço do problema ou do espaço da solução; uma classe é a descrição de um conjunto de objetos comuns. Objeto: pessoa 1 {“Hommer Jay Simpson”, Classes: ‘M’, 15/01/1955} “Data” e “Pessoa” Objeto: pessoa 2 {“Madre Teresa de Calcutá”, ‘F’, 26/08/1910}
Visão Geral • vários métodos de Análise e Projeto já foram publicados • as similaridades são maiores que as diferenças • metodologias híbridas = combinação dos aspectos da orientação a objetos (OO) e métodos estruturados • OO = uma nova maneira de pensar, um novo paradigma, e não simplesmente uma linguagem de programação
Métodos OO • historicamente: – apareceram entre meados de 70 e início dos anos 80 – 1989 à 1994 saltaram de menos de 10 para mais de 50 • existe um conflito grande na área para se definir as características de OO
Alguns Métodos OO • • Booch Rumbaugh (OMT) Jacobson (OOSE) Shlaer / Mellor • • Coad / Yourdon Martin / Odell Wirfs-Brock Embley / Kurtz
Grady Booch • desenvolvimento da linguagem Ada na Rational Software • emprego de técnicas de desenho OO (design) • estende para todas as fase da análise OO • características de OO: – abstração, encapsulamento, modularidade e hierarquia
James Rumbaugh (1/2) • GE- Research and Development Center • Técnica de Modelagem de Objetos (OMT- Object Modeling Technique • conceitos de modelagem de dados (atributos e relacionamento), objetos (composição / agregação) e herança • enfoque conservador no uso da teoria de objetos • características de OO: – identificação, classificação, polimorfismo e herança
James Rumbaugh (2/2)
Ivar Jacobson (1/2) • OOSE- Object-Oriented Software Engineering e Objectory • consiste de um modelo com foco em diagramas de casos de uso (use-cases), descrição das interfaces e um modelo de objetos do domínio
Ivar Jacobson (2/2)
Sally Shlaer / Stepen Mellor • DFD’s- diagramas de fluxo de dados • conjunto integrado de modelos de análise: diagramas de E/R e transição de estado • enfoque de modelagem bottom-up (métodos estruturados top-down) • análise e desenho OO
Peter Coad / Ed Yourdon (1/2) • AOO = classes e objetos • objeto = abstração de um domínio do problema • classe = coleção de um ou mais objetos com atributos e serviços • componentes básicos: interação humana, domínio do problema, gerenciamento de tarefas e de dados
Peter Coad / Ed Yourdon (2/2) • características de OO: – classe, objeto, abstração, encapsulamento e herança • método facilmente compreendido por iniciantes • premissa: menos notação e burocracia de documentos
James Martin / Jim Odell • enfoques baseados na experiência com a engenharia da informação • OOIE- Object-Oriented Information Engineering • ênfase na modelagem de dados
Rebecca Wirfs-Brock • projeto dirigido a responsabilidades (RDDResponsibility Driven Design) • CRC- Class-Responsibility-Collaboration • conceitos de contratos e colaboração
Embley / Kurtz • • Universidade de Brigham Young fundamentação na modelagem de dados modelo O/R menos popular
Referência • Modelagem de Objetos através da UML the Unified Modeling Language – José Davi Furlan – MAKRON Books, 1998 – Capítulo 1 - Rumo à orientação a objeto, item 3. – pg. 23. . 30
Introdução a UML (The Unified Modeling Language)
UML- Unified Modeling Language • explosão de métodos OO (de 10 para 50 em 5 anos) • principais métodos OO já estavam convergindo: – diagramação semelhante a OMT (Rumbaugh) – estrutura e projeto semelhante a Booch – uso de diagrama de caso de uso (use-cases) de Jacobson
OMG- Object Management Group • www. omg. org • Organização fundada em 1989 com o objetivo de difundir a OO • mais de 850 membros • em 1991, CORBA- Common Object Request Broker Architecture “. . . estabelecer guias e especificações de gerência de objetos para a indústria, visando prover uma base comum para o desenvolvimento de aplicações distribuídas”
Definição UML (Unified Modeling Language, ou Linguagem de Modelagem de Objetos Unificada) é uma linguagem de modelagem padrão para elaboração da estrutura de projetos de software orientado a objetos. A UML poderá ser empregada para a especificação, a visualização, a construção e a documentação de artefatos de sistemas de software bem como para modelagem de negócios.
História da UML (1/2) • • final dos anos 80, início de uso de métodos OO explosão de métodos (1989 à 1994) em out. /1994 (Booch + Rumbaugh) em out. /1995 primeira versão- UML 0. 8 (+ Jacobson) expressivo em design expressivo em análise OMT Rumbaugh + Booch use-cases + OOSE Jacobson = UML
História da UML (2/2) • out. /1996 novas versões publicadas UML 0. 9 e 0. 91 • UML 1. 0 – consórcio de parceiros: MS, HP, i-Logix, Oracle, Jim Odell, Unisys, IBM, Texas Instruments – jan. /1997, submetida a padronização • UML 1. 1 – set. /1997, não proprietária – nov. /1997, aprovação
Evolução da UML Industrialização Normalização Unificação Fragmentação
Unificação de métodos e formalismos
O que influenciou a UML • • • modelagem de dados (E/R) modelagem de negócios (workflow) modelagem de objetos e componentes incorporou ideias de vários autores selecionar e integrar as melhores ideias (best of breed) do mercado
Objetivos da UML (1/3) • fornecer aos usuários uma linguagem de modelagem visual expressiva e pronta para uso visando o desenvolvimento de modelos de negócio – visualização dos relacionamentos entre os componentes de forma a antever o produto final – gerenciamento da complexidade: cada aspecto do sistema é desenhado à parte em um modelo específico – comunicação: utilização de símbolos
Objetivos da UML (2/3) • fornecer mecanismos de extensibilidade especialização para apoiar conceitos essenciais • ser independente de linguagens de programação e processos de desenvolvimento • prover uma base formal para entender a linguagem de modelagem • encorajar o crescimento no número de ferramentas orientadas a objeto no mercado
Objetivos da UML (3/3) • suportar conceitos de desenvolvimento de nível mais elevado tais como colaborações, estrutura de trabalho, padrões e componentes • integrar e melhorar práticas A UML é uma linguagem de modelagem, não uma metodologia.
Documentos Oficiais da UML • • Sumário da UML Semântica da UML Guia da Notação da UML Extensões de Processos UML
Semântica da UML • expressa usando um metamodelo • um modelo descreve algo de forma abstrata – ex. um pedaço de software • um metamodelo descreve um modelo – explica sintaxe e semântica
Guia da Notação UML • notação é o material gráfico visto em modelos • descreve a notação e disponibiliza exemplos da UML • a notação gráfica e a sintaxe textual são as partes mais visíveis da UML • são representações de um modelo a nível do usuário • é uma instância do metamodelo
Diagramas da UML um diagrama é uma apresentação gráfica de uma coleção de elementos de modelo, frequentemente mostrado como um gráfico conectado de arcos (relacionamentos) e vértices (outros elementos do modelo): • diagrama de classe (objeto) • diagrama de caso de uso • diagrama de pacotes • diagrama de estrutura • diagramas de interação: sequência e colaboração • diagrama de tempo • diagrama de estado: atividade • diagrama de interatividade • diagrama de implementação: componente e implantação
Diagrama de Classes UML Associação Atributos (ou propriedades) Agregação Classe associativa Classe Visibilidade Multiplicidade Superclasse Generalização (herança) Operações (ou métodos) Restrição Subclasses
Diagrama de Classes UML Atributos (ou propriedades) Classe Superclasse Multiplicidade Associação Agregação Generalização (herança) Operações (ou métodos) Subclasses Visibilidade
Conclusões (1/2) • existem vários métodos de Análise e Projeto OO • usam técnicas semelhantes • unificação OMG- Object Management Group • Booch, Rumbaugh e Jacobson (UML- Unified Modeling Language)
Conclusões (2/2) • a UML combina as melhores evoluções dos métodos de Análise e Projeto OO • pode ser usada para todo tipo de desenvolvimento de software • objetivo = padronização e industrialização
Referência • Modelagem de Objetos através da UML the Unified Modeling Language – José Davi Furlan – MAKRON Books, 1998 – Capítulo 1 - Rumo à orientação a objeto, itens 4. – pg. 31. . 39
- Slides: 39