Programa do Módulo 2. Fundações do Modelo Objeto



Documentos relacionados
Orientação à Objetos. Aécio Costa

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Programa do Módulo 2

UML Aspectos de projetos em Diagramas de classes

Sumário. Uma visão mais clara da UML

Uma visão mais clara da UML Sumário

2 Diagrama de Caso de Uso

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Engenharia de Software III

Notas de Aula 04: Casos de uso de um sistema

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Princípios de Análise e Projeto de Sistemas com UML

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Análise e Projeto Orientado a Objetos

A Linguagem de Modelagem Unificada (UML)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Desenho de Software. Desenho de Software 1

MC536 Bancos de Dados: Teoria e Prática

3. PARADIGMA ORIENTADO A OBJETOS

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Profº. Enrique Pimentel Leite de Oliveira

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Engenharia de Software I: Análise e Projeto de Software Usando UML

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

Questões de Concursos Públicos sobre Orientação a Objetos e UML

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Engenharia de Software na Prática Hélio Engholm Jr.

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

Modelagemde Software Orientadaa Objetos com UML

Orientação a Objetos com Java

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

UML - Unified Modeling Language

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Uma Abordagem usando PU

Persistência e Banco de Dados em Jogos Digitais

Wilson Moraes Góes. Novatec

Engenharia de Software

1 UML (UNIFIED MODELING LANGUAGE)

Projeto de Arquitetura

Análise Orientada a Objetos

O Processo Unificado: Captura de requisitos

Modelagem de Processos. Prof.: Fernando Ascani

Análise e Projeto de Software

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva

UML. Unified Modeling Language

Análise e Projeto Orientados por Objetos

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

UML: Diagrama de Casos de Uso, Diagrama de Classes

Capítulo 09. Construindo o Modelo do Domínio

Engenharia de Requisitos Estudo de Caso

4.2. UML Diagramas de classes

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Engenharia de Software

ISO/IEC 12207: Gerência de Configuração

Orientação a Objetos

UML Diagramas. UML Diagramas. UML Diagrama Diagrama de Classes. UML Diagrama Diagrama de Classes

Tópicos em Engenharia de Computação

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Casos de Uso (Parte 1)

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Modelo para Documento de. Especificação de Requisitos de Software

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Prof. Marcelo Henrique dos Santos

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Roteiro 2 Conceitos Gerais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

ENGENHARIA DE SOFTWARE I

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Guia para elaboração do Modelo de Domínio Metodologia Celepar

Engenharia de software para desenvolvimento com LabVIEW: Validação

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Databases. Ferramentas gráficas na modelação lógica das BD. O Modelo Entidade-Relação (Associação) O Modelo de Classes no UML

Programa do Curso de ESW

SISTEMAS DISTRIBUIDOS

QUESTÃO 2: A respeito do diagrama de caso de uso apresentado, assinale a alternativa correta.

DISSEMINAÇÃO DE CONHECIMENTO FERRAMENTA BIZAGI

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

UML & Padrões Aula 7. UML & Padrões - Profª Kelly C C Silva

Transcrição:

2.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) Processo Unificado (RUP) Fundações do Modelo Objeto 2.2 Programação Orientada a Objetos: é um método de implementação no qual programas são organizados como uma coleção cooperativa de objetos, cada um deles representando uma instância de alguma classe, as quais pertencem a uma hierarquia de classes unidas através de uma relação de herança. Análise Orientada a Objetos: é um método de análise que examina os requisitos através de perspectivas de classes e objetos encontrados no vocabulário do domínio do problema. Projeto Orientado a Objetos: é um método de projeto que engloba o processo de decomposição orientada a objetos e uma notação para representar as características lógicas e físicas assim como os aspectos estáticos e dinâmicos dos sistemas. Um Modelo Orientado a Objetos deve oferecer obrigatoriamente os seguintes elementos: Abstração, Encapsulamento, Modularidade e Hierarquia, podendo também oferecer as seguintes características: Tipagem, Concorrência e Persistência. Object-Oriented Oriented Analysis and Design G. BBooch - 2nd edition - Addison-Wesley

O que é um Objeto? 2.3 Objetos permitem que se represente conceitos do mundo real no projeto de software Tudo que representa o pensamento, que é motivo ou matéria para a atividade do espírito. Informalmente um Objeto representa uma entidade física, conceitual ou de software. Entidade Física Entidade Conceitual Caminhão Processo Químico Entidade de Software Lista Ligada Objetos: Uma Definição Formal 2.4 Um objeto é uma entidade com identidade e uma fronteira bem definida que encapsula um estado e um comportamento. A estrutura e o comportamento de objetos similares é definido em sua classe comum. Estado Interno: uma memória interna (os atributos) onde os valores podem ser armazenados e modificados durante a vida do objeto; Comportamento: um conjunto de ações (operações) através das quais pode-se mudar o estado interno de um objeto e através das quais o objeto responde aos pedidos que lhe fazem os outros objetos; o estado de um objeto representa o resultado cumulativo de seu comportamento; Identidade: é a propriedade que distingue um objeto de todos os outros objetos. O conjunto estado interno e comportamento compõem o conceito de objeto Encapsulamento. O mecanismo utilizado para mudar o estado interno dos objetos é baseado em Mensagens. Atributos Operações Objeto &

Um Objeto tem um Estado Estado é uma das possíveis condições nas quais o objeto pode existir, é uma condição ou situação durante a vida do objeto, que satisfaz alguma condição, faz alguma coisa ou aguarda por um evento. O estado do objeto é normalmente implementado por um conjunto de propriedades denominadas atributos e pelas ligações que o objeto tem com outros objetos. O estado de um objeto normalmente muda durante o tempo. Name: J Clark Employee ID: 567138 Date Hired: July 25, 1991 Status: Tenured Discipline: Finance Maximum Course Load: 3 classes Name: J Clark Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad: 3 Professor Clark 2.5 Um objeto tem um Comportamento 2.6 O comportamento determina como um objeto age ou reage. O comportamento visível de um objeto é modelado pelo conjunto de mensagens as quais ele pode responder (as operações que o objeto pode executar). Comportamento do Professor Clark Submit Final Grades Accept Course Offering Take Sabbatical Set Max Load SubmitFinalGrades() SetMaxLoad() AcceptCourseOffering() TakeSabbatical() Professor Clark

Um Objeto tem Identidade 2.7 Cada objeto tem uma identidade única, mesmo se seu estado for idêntico ao de outro objeto. Professor J Clark ensina Biologia Professor J Clark ensina Letras Princípios Básicos da Orientação a Objetos 2.8 Abstração Orientação a Objetos Encapsulamento Modularidade Hierarquia

Princípios Básicos da Orientação a Objetos 2.9 Elementos do Modelo Objeto: Abstração Denota as características essenciais de um objeto que o distinguem de todos os outros objetos e portanto oferece limites conceituais bem definidos, relativos a perspectiva do observador A abstração possibilita o gerenciamento da complexidade pois possibilita que o foco seja dirigido unicamente às características de uma entidade que a distinguem de todas as outras. Abstração Orientação a Objetos Encapsulamento Modularidade Hierarquia Object-Oriented Analysis and Design G. Booch -2nd edition - Addison-Wesley & Princípios Básicos da Orientação a Objetos Abstração: Exemplo 2.10 Estudante Professor Oferecimento do curso (9:00, Segunda Quarta Sexta) Curso (ex:. Álgebra)

Princípios Básicos da Orientação a Objetos Encapsulamento Abstração Orientação a Objetos É o processo de compartimentação dos elementos de uma abstração Estes elementos constituem sua estrutura e comportamento. Abstração e encapsulamento são conceitos complementares: a abstração representa o comportamento observável do objeto e o encapsulamento, a implementação que dá origem a este comportamento. O encapsulamento é também chamado de ocultamento da informação esconde-se os segredos de um objeto que não contribuem para a definição de suas características essenciais (seus dados e operações) Cliente só conhece a interface. Clientes não são influenciados por alterações na implementação e portanto alterações em uma operação não se repercutem no cliente Manutenção facilitada e menos onerosa. Encapsulamento oferece duas proteções: (a) evita que o estado do objeto seja alterado pelos clientes do mesmo modo que (b) o código do cliente pela implementação do objeto. Encapsulamento Modularidade Hierarquia 2.11 & Object-Oriented Analysis and Design G. BBooch -2nd edition - Addison-Wesley Encapsulamento: Exemplo 2.12 O Professor Clark deve ensinar 4 cursos no semestre. SetMaxLoad(4) A chave para o encapsulamento é o conceito de interface. Interfaces definem que a comunicação com o objeto se dá através de operações pré-definidas Os dados do objeto são acessíveis unicamente através das operações. SubmitFinalGrades() SetMaxLoad() Professor Clark AcceptCourseOffering() Name: J Clark Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad:4 TakeSabbatical()

Princípios Básicos da Orientação a Objetos Modularidade É a propriedade que um sistema tem de poder ser decomposto em um conjunto de módulos coesos e fortemente ligados facilitando sua compreensão. Divide um sistema complexo em módulos menores e melhor gerenciáveis individualmente. Abstração Orientação a Objetos O conceito de Pacotes será utilizado para a implementação da modularidade. Encapsulamento Modularidade Hierarquia 2.13 & Object-Oriented Analysis and Design G. Booch -2nd edition - Addison-Wesley Princípios Básicos da Orientação a Objetos Modularidade: Exemplo 2.14 Divisão de um sistema complexo em módulo menores. Sistema de Controle Acadêmico Sistema de Pagamento Sistema de Cadastro de Cursos Sistema de Controle de Estudantes

Princípios Básicos da Orientação a Objetos Hierarquia É a categorização ou ordenamento de abstrações em uma estrutura do tipo árvore. Hierarquias permitem que se implemente ordenamentos que respeitam uma ordem particular, segundo uma perspectiva qualquer. A utilização de hierarquias permite que se defina abstrações mais descritivas e coesas com melhor alocação de responsabilidades. Abstração Orientação a Objetos Encapsulamento Modularidade Hierarquia Hierarquia é uma organização taxonômica que facilita que se reconheça semelhanças ou diferenças. 2.15 Object-Oriented Analysis and Design G. Booch -2nd edition - Addison-Wesley & Benefícios do Modelo Objeto 2.16 O modelo objeto permite a utilização das poderosas linguagens de programação orientadas a objetos. A utilização do modelo objeto encoraja, por suas características, a reutilização não somente do software mas de todo o trabalho de projeto. A utilização dos modelos objeto leva à produção de sistemas que são mais resistentes às mudanças. O modelo objeto utiliza conceitos naturais a maneira humana de pensar.

O que é uma Classe? 2.17 Uma classe é um padrão para uma categoria de itens estruturalmente idênticos e um mecanismo para criar estes itens, as instâncias, baseando-se neste padrão. Uma classe é a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica A classe agrega as características estáticas (os atributos) e dinâmicas (as operações) de suas instâncias. Um objeto único é simplesmente uma instância de uma classe. Uma classe é uma abstração que: Enfatiza as características relevantes enquanto; Suprime as outras características. Uma Classe Simples 2.18 Propriedades Nome Local Alunos Dias de aula Créditos # Vagas Hora início Hora de fim Classe Curso Comportamento Adicionar um estudante Suprimir um estudante Recuperar a lista Determinar se há vagas

Conceitos do Paradigma Objeto Generalização É uma relação do tipo generalização/especialização na qual os objetos de um elemento especializado (um filho) podem ser substituídos por objetos do elemento geral (o pai) [BOO99]. É uma maneira natural de modelar o mundo real (o Domínio da Aplicação) de maneira a fornecer um modelo conciso para a análise, o projeto e também para a implementação orientada a objetos. Este tipo de modelagem é implementada no paradigma de objetos através de uma estrutura hierárquica de classes, baseada em uma relação que é transitiva e antisimétrica entre classes e que é denominada Herança. A modelagem pode ser testada verificando se o elemento especializado é do tipo do elemento geral. Normalmente os termos generalização e herança são usados no mesmo sentido, mas uma diferenciação pode ser realizada: generalização é o nome do relacionamento enquanto herança é o mecanismo que implementa o relacionamento. 2.19 Conceitos do Paradigma Objeto Generalização: Herança Herança é o mecanismo através do qual elementos mais específicos incorporam a estrutura e comportamento de elementos mais gerais [BOO99]. Super-Classe (classe mãe ou classe base) Elemento mais geral utilizado para evitar as redundâncias de descrição. Sub-Classe (classe filha ou classe) Elemento mais específico utilizado para descrever as particularidades das classes. A sub-classe pode ser utilizada onde a super-classe é mas não o contrário. O processo de criação de super-classes é chamado Generalização e o de criação das sub-classes é chamado de Especialização. Quando se criam sub-classes partindo de uma super-classe emprega-se o conceito de herança A herança é portanto uma propriedade que possibilita a criação de uma classe partindo de outra classe. Atributos, operações e relacionamentos comuns devem ser representados no mais alto nível da hierarquia. O que é herdado: As sub-classes criadas herdam o estado (atributos e relacionamentos) e o comportamento (operações) da(s) super-classe(s) associada(s) (herança simples ou múltipla). As sub-classes podem incluir, alterar ou suprimir atributos, operações e relacionamentos da super-classe. 2.20

Conceitos do Paradigma Objeto 2.21 Polimorfismo O Polimorfismo é uma propriedade que caracteriza o compartilhamento de uma ação única através de uma hierarquia de classes Uma função pode agir sobre dados inteiros, reais, gráficos, etc. O polimorfismo permite que se esconda diferentes implementações de uma mesma operação sob a mesma interface Encapsulamento. A operação é definida em uma super-classe e o código é definido nas sub-classes. O mecanismo que suporta o conceito de polimorfismo é denominado Ligação Dinâmica ou Resolução Tardia ( Late Binding ). Conceitos do Paradigma Objeto Polimorfismo: Exemplo 2.22 financialinstrument.getcurrentvalue() getcurrentvalue() getcurrentvalue() getcurrentvalue() Stock Bond Mutual Fund

Conceitos do Paradigma Objeto 2.23 Mensagem Utiliza-se Mensagens com a finalidade de representar a comunicação entre um usuário e um objeto ou entre objetos. Uma mensagem é composta do nome do objeto que a receberá, de um seletor que representa o nome da operação que será executada e de parâmetros definidos pela assinatura da operação de destino. Após o envio de uma mensagem, o objeto receptor deve definir qual operação será executada segundo a interface de sua classe ou de uma das sub-classes desta classe Polimorfismo. Conceitos do Paradigma Objeto 2.24 Relações Instanciação: é uma relação existente entre um padrão e qualquer coisa que é definida a partir deste padrão Classe Objeto. Associação: é uma relação que descreve uma conexão entre classes ou entre objetos As associações podem ter atributos que as caracterizam. Alguns Métodos Orientados a Objetos MOO fazem uma distinção entre relações entre classes e entre objetos. Utilização: é uma relação que aparece nos MOO para representar relações do tipo cliente/servidor: o cliente depende do servidor para cumprir com suas responsabilidades: ele utiliza os serviços do servidor Envio de mensagens. Agregação: é uma relação do tipo todo-parte, onde o todo é composto de suas partes É uma relação transitiva e anti-simétrica. Este tipo de relação estabelece uma ligação entre um composto e seus componentes e é chamada também Relação de Composição.

Conceitos do Paradigma Objeto Histórico das Linguagens 2.25 Developing Software with UML B. Oestereich Addison-Wesley Conceitos do Paradigma Objeto O que é um objeto? Revisão 2.26 Quais são os quatro princípios da orientação a objetos? Descreva-os. O que é uma classe? Qual o relacionamento que existe entre classes e objetos? O que é um atributo? O que é uma operação? Defina polimorfismo. Forneça um exemplo de polimorfismo. O que é generalização?