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



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

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

Paradigma Orientado a Objetos

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

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

UML - Unified Modeling Language

Modelagem de Processos. Prof.: Fernando Ascani

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Análise e Projeto Orientados a Objeto

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

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

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Wilson Moraes Góes. Novatec

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

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

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)

ANÁLISE ORIENTADA À OBJETO Conceitos do Paradigma de Orientação a Objetos

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

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

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

UML Linguagem de Modelagem Unificada

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

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

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

UML Unified Modeling Language

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

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

UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências

2 Diagrama de Caso de Uso

Lógica e Programação Java

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

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

Levantamento, Análise e Gestão Requisitos. Aula 04

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

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

Algumas propriedades dos objetos:

Orientação à Objetos. Aécio Costa

Programação de Computadores - I. Profª Beatriz Profº Israel

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Análise e Projeto Orientados por Objetos

Fase 1: Engenharia de Produto

Ciência da Computação ENGENHARIA DE SOFTWARE. UML-Unified Modeling Language Linguagem de Modelagem Unificada

Universidade Católica de Petrópolis Análise Orientada a Objetos. Introdução

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

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

3. PARADIGMA ORIENTADO A OBJETOS

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

Fundamentos de Banco de Dados e Modelagem de Dados

Profº. Enrique Pimentel Leite de Oliveira

Notas de Aula 04: Casos de uso de um sistema

Unified Software Development Process

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

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

Análise Orientada a Objetos

Padrões de projeto 1

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

UML Aspectos de projetos em Diagramas de classes

Análise e Projeto Orientados por Objetos

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML.

Modelagemde Software Orientadaa Objetos com UML

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Engenharia de Software I


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

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

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

Modelo conceitual Aula 08

Engenharia de Software I

2 Engenharia de Software

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

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

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

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

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

Engenharia de Software III

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

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

1 UML (UNIFIED MODELING LANGUAGE)

Orientação a Objetos

18º Congresso de Iniciação Científica UM ESTUDO EXPLORATÓRIO SOBRE TÉCNICAS DE MODELAGEM DE REQUISITOS DE SOFTWARE PARA SISTEMA EMBARCADO

Modelando com UML Unified Modeling Language

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva

Desenvolvimento estruturado versus orientado a objetos.

UML: Casos de Uso. Projeto de Sistemas de Software

Análise e Projeto de Sistemas

A Linguagem de Modelagem Unificada (UML)

Uma Abordagem usando PU

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos

Linguagem de Modelagem Unificada

UML Visão Geral. Slides baseados em material disponibilizado pela Rational e adaptação da tradução de João P. Faria Univ. Do Porto.

Transcrição:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação SSC 526: Análise e Projeto Orientados a Objetos Introdução à Orientação a Objetos e UML Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

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

Fases dos Modelos de Processo de Software DEFINIÇÃO Análise OO CONSTRUÇÃO Projeto OO MANUTENÇÃO Análise de Sistema Planejamento Análise de Requisitos Projeto Codificação Teste Entendimento Modificação Revalidação ATIVIDADES DE APOIO Controle e Acompanhamento do Projeto de Software Revisões Técnicas Formais Garantia de Qualidade de Software Gerenciamento de Configuração de Software Preparação e Produção de Documentos Gerenciamento de Reusabilidade Medidas Gerenciamento de Riscos

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, e 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 Orientação a Objetos (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 Orientação a Objetos (OO) FINS DOS ANOS 80 Paradigma de Orientação a Objetos abordagem poderosa e prática para o desenvolvimento de software Linguagens orientadas a objetos Smalltalk (1972), Ada (1983), Eiffel (~1985) Object Pascal (1986), Common Lisp (1986), C++ (1986) Java (~1990), Phyton (~1990), Perl 5 (2005)

Linguagens orientadas a objetos "puras tudo nelas é tratado consistentemente como um objeto, desde as primitivas até caracteres e pontuação. Exemplos: Smalltalk, Eiffel, Ruby. Projetadas para OO, mas com alguns elementos procedimentais. Exemplos: Java, Python. Linguagens historicamente procedimentais, mas que foram estendidas com características OO. Exemplos: C++, Fortran 2003, Perl 5. Fonte: Wikipedia

Histórico de OO Surgiram vários métodos de análise e projeto OO CRC (Class Responsability Collaborator, Beck 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) Notação UML processos: RUP, UP, XP

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 de software orientados a objetos ou não. 10

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 Language). Uma primeira versão, chamada Unified Method, foi divulgada em outubro de 1995. Jacobson juntou-se ao grupo, agregando o método OOSE (Object-Oriented Software Engineering). 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 11

Introdução: UML Grafo de Interação de Objetos (diagrama de colaboração) FUSION (Coleman et al) STATECHARTS (Harel) Diagrama de Estados Diagrama de Classes Diagrama de Objetos (diagrama de colaboração) Diagrama de Processos (diagrama de implantação) Diagrama de Módulos (diagrama de componentes) UML (Rumbaugh, Booch e Jacobson) OMT (Rumbaugh et al) OOSE/Objectory (Jacobson) BOOCH (Booch) Diagrama de Casos de Uso Subsistemas (pacotes)

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 projeto e realizar engenharia reversa, ou seja, obter o modelo em UML a partir do código. 13

Ferramentas de Apoio Exemplos: A família Rational Rose Enterprise (da Rational Software Corporation www.rational.com) que gera código em Smalltalk, PowerBuilder, C++, J++ e VB. ArgoUML- free http://argouml.tigris.org/ www.objectsbydesign.com/tools/umltools_bycomp any.html (lista de ferramentas que envolvem a UML), entre elas Jude (agora Astah) e Visual Paradigm StarUML: Livre http://staruml.sourceforge.net 14

Diagramas da UML Diagramas de Casos de Uso Diagramas de Classe Diagramas de Comportamento Diagrama de Estado Diagrama de Atividade Diagrama de Seqüência Diagrama de Colaboração Diagramas de Implementação Diagrama de Componente Diagrama de Implantação (Deployment) 15

Diagramas UML 1.X UML 2 Atividades Caso de Uso Classe Objetos Seqüência Colaboração Estado Atividades Caso de Uso Classe Objetos Seqüência Comunicação Estado... Pacotes Componentes Implantação Componentes Implantação... Interação Visão Geral... Diagrama de Tempo... Diagrama de Estrutura Composta

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 uma 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 provado ser popular e eficaz.

Objetos Tudo em OO é OBJETO 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

Objetos e Classes Leitor nome numerousp datanascimento le1: Leitor nome = Maria dos Santos numerousp = 342343 datanascimento = 04/25/1973 le2: Leitor nome = Joao da Silva numerousp = 323232 datanascimento = 02/23/1978 classes objetos FornoDeMicroondas capacidade potência status horário forno1: FornoDeMicroondas capacidade = 40 potencia = 600 status = desligado hora = 09:35

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.

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

Métodos X Mensagem mensagem le1.alterarnome( Rosa Olivera ) le1: Leitor nome = Maria dos Santos numerousp = 342343 datanascimento = 04/25/1973 método método alterarnome(char[30] novonome) Inicio Fim nome := novonome;

Atributos e Métodos Automóvel proprietário marca placa ano registrar transferir_proprietário mudar_placa Atributos Métodos

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

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 reúso

Conceitos Básicos Associações entre Classes Proprietário nome endereço telefone consultar incluir possui Automóvel proprietário marca placa ano registrar transferir_proprietário mudar_placa

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: Generalização/Especialização Superclasse Estudante Subclasse Estudante de Graduação Estudante de Pós- Graduação GENERALIZAÇÃO ESPECIALIZAÇÃO (herança)

Herança Forno capacidade Microondas horario potencia A Gas temperatura Elétrico v oltagem A Lenha quantmaxlenha Analógico Digital Acendimento Elétrico Acendimento com Fósf oro Camping

Herança Múltipla Existe mais de uma superclasse, ou seja, uma classe é declarada como uma subclasse de uma ou mais superclasses. Estudante data_ingresso Funcionário data_admissão salario Leitor da Biblioteca num_cadastro

Polimorfismo O Polimorfismo geralmente representa a qualidade ou estado de um objeto ser capaz de assumir diferentes formas. Mais especificamente, propriedade segundo o qual vários métodos podem existir com o mesmo nome. Ao receber uma mensagem para efetuar uma Operação, é o objeto quem 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.

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.; Modelagem de Objetos Através da UML, Makron Books, 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. 37