Introdução a Orientação a Objetos e UML



Documentos relacionados
Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

INTRODUÇÃO À ORIENTAÇÃO A OBJETOS E UML

Aula 1 Introdução à Orientação a Objetos (OO) e UML

Introdução à Orientação a Objetos e UML

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Introdução à Orientação a Objetos e UML

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Engenharia de Software

Requisitos de sistemas

Análise de Sistemas. Aula 5

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

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

Introdução. Pacote. Classe. UML Diagrama de. Atributo. Classes. Método. Prof. Dr. Enzo Seraphim. Visibilidade

Programação Orientada a Objetos

UML - Linguagem de Modelagem Unificada

Marcelo Henrique dos Santos

UML (Unified Modelling Language)

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

INF1013 MODELAGEM DE SOFTWARE

UML. Adriano J. Holanda 21/3/

Requisitos de Sistemas

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Engenharia de Software II e III - Introdução ao Diagrama de Classe

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Modelos em Sistemas de Informação. Aula 2

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Orientação a Objetos e UML

Introdução à Orientação a Objetos

PUC-GO- ADS: Prof. Vicente P. de Camargo. Desenvolvimento de Aplicações para Cliente Servidor

Engenharia de Software II e III - Material para estudo Diagrama de Classe

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Linguagem de Modelagem Unificada UML

Unidade: Introdução à POO (Programação Orientada a Objetos)

Orientação a Objetos (OO)

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Laboratório de programação II

Princípios de Análise e Projeto Orientados a Objetos com UML

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

APÊNDICE D Unified Model Language (UML)

Conceitos de Programação Orientada a Objetos

RUP Unified Process. Profª Jocelma Rios

Complexidade do Software

Análise e Projeto Orientados a Objetos

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Capítulo 2. Orientação a Objetos

Linguagem de Programação I Apresentação da Disciplina

Modelo do Mundo Real. Abstração. Interpretação

UML Unified Modeling Language Linguagem de Modelagem Unificada

UML - Unified Modeling Language

Introdução à Análise e Projeto de Sistemas

Programação Orientada a Objetos em Python

Introdução a Programação Orientada a Objetos

Marilan Ricardo Tagliari - TCC Marilan Ricardo Tagliari - TCC Orientando: Marilan Ricardo Tagliari Orientador: Everaldo Artur Grahl

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

Análise e Projeto Orientados a Objeto

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

UML e seus diagramas

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.

Modelagem de Sistemas. Análise de Requisitos. Modelagem

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Introdução ao Java. Prof. Herbert Rausch Fernandes

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Especificação de Sistemas de Software e a UML

Daniel Wildt

Introdução à UML. Prof. Jesus José de Oliveira Neto

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

ANÁLISE E PROJETO DE SISTEMAS TÓPICO IV - INTRODUÇÃO A UML

Introdução a Orientação a Objetos UML

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Transcrição:

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Introdução a Orientação a Objetos e UML 879SCC Projeto e Desenvolvimento de Sistemas de Informação 1 o Semestre de 2014

Resumo Modelo de Processo de Software Definição de Orientação a objetos Histórico de OO Linguagens OO Vantagens da OO Introdução à Orientação a Objetos Introdução à UML

Introdução Necessidade de abordagens para desenvolver software de maneira organizada e estruturada Análise Estruturada Análise Essencial Análise OO

Conceitos básicos Orientação a objetos (OO) é uma abordagem de programação que procura explorar nosso lado intuitivo. Os objetos da computação são análogos aos objetos existentes no mundo real. No enfoque de OO, os átomos do processo de computação são os objetos que trocam mensagens entre si. Essas mensagens resultam na ativação de métodos, os quais realizam as ações necessárias.

Conceitos básicos Os objetos que compartilham uma mesma interface, ou seja, respondem as mesmas mensagens, são agrupados em classes. Objeto é algo dinâmico: é criado por alguém, tem uma vida, morre ou é morto por alguém. Assim durante a execução do sistema, os objetos podem: Ser construídos Executar ações Ser destruídos Tornar-se inacessíveis

Histórico de OO A OO surgiu no final da década de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language) 1967 Linguagem de Programação Simula-67 conceitos de classe e herança O termo Programação Orientada a Objeto (POO) é introduzido com a linguagem Smalltalk (1983)

Histórico de LOO FINS DOS ANOS 80 => Paradigma de Orientação a Objetos Abordagem adequada e prática para o desenvolvimento de software Linguagens OO Puras: Smalltalk (~1980), Eiffel(~1985), Ruby Projetadas para OO e com elementos procedimentais: java(1990) Python (1990) Liguagens procedimentais que foram estendidas: C++ (1986), Object-Pascal(1986) e outras

Histórico de OO Surgiram vários métodos de análise e projeto OO CRC (Class Responsability Collaborator, Beecke e Cunningham, 1989) OOA (Object Oriented Analysis, Coad e Yourdon, 1990) Booch (1991) OMT (Object Modeling Technique, Rumbaugh, 1991) Objectory (Jacobson, 1992) Fusion (Coleman, 1994) UML (Unified Modeling Language, 1997)

Vantagens de OO Abstração de dados: os detalhes referentes às representações das classes serão visíveis apenas a seus atributos; Compatibilidade: as heurísticas para a construção das classes e suas interfaces levam a componentes de software que são fáceis de combinar; Diminuição da complexidade: as classes delimitam-se em unidades naturais para a alocação de tarefas de desenvolvimento de software;

Vantagens de OO Reutilização: o encapsulamento dos métodos e representação dos dados para a construção de classes facilitam o desenvolvimento de software reutilizável, auxiliando na produtividade de sistemas; Extensibilidade: facilidade de estender o software devido a duas razões: Herança: novas classes são construídas a partir das que já existem; As classes formam um estrutura fracamente acoplada, o que facilita alterações; Manutenibilidade: a modularização natural em classes facilita a realização de alterações no software.

Vantagens de OO Maior dedicação à fase de análise, preocupando-se com a essência do sistema; Mesma notação é utilizada desde a fase de análise até a implementação. Frente a essas vantagens, a abordagem OO tem se mostrado popular e eficaz.

Conceitos de Orientação a Objetos Classes e objetos Abstração Encapsulamento Atributos Métodos e mensagens Associações entre classes Herança Polimorfismo

Tudo em OO é objeto Objetos Objeto, no mundo físico, é tipicamente um produtor e consumidor de itens de informação Definição (mundo do software) Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e métodos que os manipulam Martin, Odell (1995) Abstração de uma entidade do mundo real de modo que essa entidade possui várias características

Classes e Objetos

Classes Agrupamento de objetos similares. Todo objeto é uma instância de uma classe. Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos. Conjunto de objetos que possuem propriedades semelhantes (atributos), o mesmo comportamento (métodos), os mesmos relacionamentos com outros objetos e a mesma semântica.

Abstração Processo pelo qual conceitos gerais são formulados a partir de conceitos específicos. Detalhes são ignorados, para nos concentrarmos nas características essenciais dos objetos de uma coleção

Abstração

Encapsulamento Permite que certas características ou propriedades dos objetos de uma classe não possam ser vistas ou modificadas externamente, ou seja, ocultam-se as características internas do objeto Outras classes só podem acessar os atributos de uma classe invocando os métodos públicos; Restringe a visibilidade do objeto, mas facilita o reuso

Atributos Representam um conjunto de informações, ou seja, elementos de dados que caracterizam um objeto Descrevem as informações que ficam escondidas em um objeto para serem exclusivamente manipuladas pelas operações daquele objeto São variáveis que definem o estado de um objeto, ou seja, são entidades que caracterizam os objetos Cada objeto possui seu próprio conjunto de atributos.

Métodos São procedimentos definidos e declarados que atuam sobre um objeto ou sobre uma classe de objetos Métodos são invocados por mensagens Cada objeto possui seu próprio conjunto de métodos

Diagrama Métodos e Mensagens Código

Atributos e Métodos Leitor Nome Número datanascimento alterarnome emprestarlivro revervarlivro

Atributos e Métodos

Atributos e Métodos

Conceitos básicos Associações entre classes

Herança Mecanismo que permite que características comuns a diversas classes sejam colocadas em uma classe base, ou superclasse. As propriedades da superclasse não precisam ser repetidas em cada subclasse. Por exemplo, JanelaRolante e JanelaFixa são subclasses de Janela. Elas herdam as propriedades de Janela, como uma região visível na tela. JanelaRolante acrescenta uma barra de paginação e um afastamento.

Herança Superclasse Janela Subclasse Janela Rolante Janela Fixa (Herança)

Herança Generalização/Especialização

Herança

Herança Múltipla Uma classe é declarada como uma subclasse de mais de uma superclasse: Estudante Pós Graduação Professor Estagiário Docência

Polimorfismo O polimorfismo significa várias formas Em OO é uma propriedade segundo a qual pode existir, em um programa, vários métodos com o mesmo nome operando em classes diferentes. Ao receber uma mensagem para efetuar uma operação, é o objeto que determina como a operação deve ser efetuada; Permite a criação de várias classes com interfaces idênticas, porém objetos e implementações diferentes.

Polimorfismo Exemplos: O operador + pode ser usado com inteiros, pontos-flutuantes ou strings. A operação mover pode atuar diferentemente nas classes Janela e PeçadeXadrez. A operação inserir pode ser definida tanto na classe Pilha como na classe Fila.

Introdução à UML Histórico Ferramentas de apoio Diagramas da UML

Introdução à UML UML (Unified Modelling Language) É uma linguagem para especificação, construção, visualização e documentação de sistemas. É uma evolução das linguagens para especificação de conceitos de Booch, OMT e OOSE e também de outros métodos de especificação de requisitos orientados a objetos ou não.

Histórico da UML Início em Outubro de 1994: Booch e Jim Rumbaugh começaram um esforço para unificar o método de Booch e OMT Object Modeling Technique). Uma primeira versão chamada Unified Method, foi divulgada em outubro de 1995. Jacobson juntou-se a grupo, agregando o método OOSE (Object- Oriented Software Engineering).

Histórico da UML O esforço dos três resultou na liberação da UML versão 0.9 e 0.91 em junho e outubro de 1996. Em janeiro de 1997, foi liberada a versão 1.0 da UML. Adotada como padrão segundo a OMG (Object Management Group, http://www.omg.org ) em Novembro de 1997 UML 2.0 em 2004

Histórico da UML

Ferramentas de Apoio Diversas empresas lançaram ferramentas para : auxiliar a modelagem e projeto de sistemas utilizando UML; gerar código a partir da modelagem e projetos e; realizar engenharia reversa, ou seja, obter o modelo em UML a partir do código.

Ferramentas de Apoio Exemplos: A família Rational Software Modeler (da Rational Software Corporation ( www- 306.ibm.com/software/rational) que é uma ferramenta visual de modelagem e projeto baseada na UML 2.0. ArgoUML- free http://argouml.tigris.org/ www.objectsbydesign.com/tools/umltools_by Company.html (lista de ferramentas que envolvem a UML), entre elas Jude (agora Astah) e Visual Paradigm StatUML: free http://staruml.souceforge.net

Diagramas da UML Diagramas de Casos de Uso Diagramas de classe Diagramas de Comportamento Diagrama de Sequência Diagrama de Comunicação Diagrama de Estado Diagrama de Atividade Diagramas de Implementação Diagrama de Componente Diagrama de Implantação

Material sobre UML http://www.rational.com (Rational) http://www.omg.org (Object Management Group) Page-Jones, M.; Fundamentos do desenho orientado a objeto com UML, Makron Books, 2001. Furlan, J.D.; Modelafem de Objetos Através da UML, Makron Bools, 1998. Rumbaugh, J., Jacobson, I., Booch, G; The Unified Modeling Language Reference Manual, Addison- Wesley, c1999. Conallen,J.; Building Web Applications with UML, Addison-Wesley, 1999. Fowler, M, Scott, K.; UML Essencial, Bookman, 2000.