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