Modelagem Orientada a Objeto - UML

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Princípios da Orientação a Objetos e a Linguagem UML
Análise e Desenvolvimento de Sistemas
UML Modelando um sistema.
(Unified Modeling Language)
Identificando requisitos
Diagrama de Classes.
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise Orientada a Objetos
Modelagem Orientada a Objetos
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Análise e Projeto de Sistemas
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
O Paradigma de Orientação a Objetos
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
AOO - Análise Orientado a Objetos
Diagrama de Classes.
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Análise e Projetos de Sistemas
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Programação Orientada a Objetos
Análise e Projeto de Sistemas
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Análise Orientada a Objetos
Polimorfismo em C#.
Princípios de Orientação à Objetos
Diagrama de Classes e Colaboração
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Análise e Projeto de Sistemas
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Orientação a Objetos Parte I
Programação Orientada à Objetos
Programação Orientada a Objetos - Java
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
SISTEMAS DISTRIBUIDOS Aula 4
Aula prática 14 Orientação a Objetos – C++ Parte 2
O Processo Unificado (UP)
Programação Orientada à Objetos
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos Professor: Cheli Mendes Costa Introdução a Programação Orientada.
UML e a Ferramenta Astah
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Introdução a Orientação a Objetos
Análise e Projeto de Sistemas
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Engenharia de Software Orientada a Objetos
Análise Orientada a Objetos
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Modelagem Orientada a Objeto - UML

Objetivo A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.

Estruturada x Essencial x Orientada a Objeto Nos métodos de análise estruturada e essencial, o comportamento do sistema e seus dados são considerados separadamente. Na orientação a objetos, comportamento e dados são integrados, encapsulando detalhes internos de um objeto.

Estruturada x Essencial x Orientada a Objeto

Análise Orientada a Objetos Enxerga o mundo como objetos com estrutura de dados e comportamentos; O objetivo é desenvolver uma série de modelos de análise, satisfazendo um conjunto de requisitos definidos pelo cliente.

Análise Orientada a Objetos A abordagem OO se preocupa: Identificar os objetos a partir do domínio da aplicação; Encaixar os funções “ao redor” destes objetos, comportamentos; conceitos de OO podem ser aplicados em todo o ciclo de vida do desenvolvimento do sistema.

Introdução Programação Orientada a Objetos: Criado por Alan Kay, autor da linguagem de programação Smalltalk; Em 1967, conceitos de OO já eram aplicado através da linguagem Simula. Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida.

Introdução O mundo real é composto por objetos. Cada objeto tem propriedades e comportamentos. Segundo Yourdon, “Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.”

Introdução Objetos como entidades do mundo real; Dificuldades em fazer alterações nas estruturas de dados nas abordagens tradicionais. “Se eu alterar a definição desse dado, quais programas serão afetados?” Trabalha com conceitos já conhecidos - Modularidade, Abstração, Encapsulamento, etc.

Introdução Um programa é uma coleção de objetos dizendo uns aos outros o que fazer. Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto. Mensagem = Procedimento = Função (pertencente a um objeto em particular)

Introdução Um objeto pode ser composto por vários outros objetos; Você pode criar um novo tipo de objeto empacotando objetos existentes; Todo objeto tem um tipo. Cada objeto é uma instância de uma classe, onde classe é um sinônimo de tipo.

Conceitos fundamentais Abstração Classe Objetos Atributo Herança Encapsulamento Polimorfismo

Abstração Uma abstração é qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.

Abstração Ex: Entidade Pessoa - Sistema Folha de Pagamento Atributo: Cor dos olhos e nome(toda pessoa tem) Porém, cor dos olhos não é relevante para o sistema.

Abstração: exemplo Telefone 2.4 GHz tone discar Identidade:: número 2576-0989 Características: azul 2.4 GHz tone Comportamento: tocar discar

Abstração: exemplo Ônibus 30 assentos a diesel andar correr buzinar Identidade: placa LXY 7684 Características: cor amarela 30 assentos a diesel Comportamento: frear andar correr buzinar acelerar

Conceitos fundamentais Encapsulamento: Processo de ocultamento de partes internas da implementação de um objeto e permissão de acesso ao estado do objeto somente através de uma interface bem definida. proíbe-nos de mexer diretamente nos dados internos de um objeto. Assim, todas as comunicações com os objetos são feitas através do envio de mensagens.

Conceitos fundamentais Encapsulamento Vantagem: toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados; protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados.

Encapsulamento Uma interface pode ter várias formas de implementação. Princípio: a implementação de um serviço no objeto servidor não importa para o objeto cliente. (O cliente confia em interfaces e não em implementações)

Classe Definição: Abstrações utilizadas para representar um conjunto de objetos com características e comportamento idênticos Uma classe pode ser vista como uma “fábrica de objetos”

Classe: exemplo classe instância da classe (objeto) Identidade::o beija-flor que vem ao meu jardim Características: cor das penas: azuis formato do bico: fino velocidade de vôo: rápida instância da classe (objeto) Comportamento: voar piar

Classe Subclasse é uma nova classe que herda características de sua(s) classe(s) pai

Classes Classe Instâncias (objetos)

Objeto Objeto: “instâncias” em tempo de execução de uma classe. Um objeto pode ser real ou abstrato; Todos os objetos de uma classe são idênticos no que diz respeito a sua interface e implementação (o que difere um objeto de outro é seu estado e sua identidade).

Objeto Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Objeto Representação Serviços ou Interface Mário Identidade Características (estado) Mário Comportamento Serviços ou Interface

Exercício Identifique as classes e objetos: Na escola Fucapi é realizado processo de matrícula de alunos. Um aluno se desloca a secretaria da instituição. O aluno solicita a realização da matrícula à secretária. O aluno informa o curso(nome) e disciplinas(nome, carga horária, professor).

Atributos Descrevem as características das instâncias de uma classe Seus valores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua existência A identidade de um objeto, contudo, nunca muda Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade

Serviços/Operações/Métodos Representam o comportamento das instâncias de uma classe Correspondem as ações das instâncias de uma classe Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade 4000 Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade 3000 Informar Salário?

Método Bidu é uma instância da classe Cachorro: latir, implementada através do método latir(); Um método em uma classe é apenas uma definição; A ação só ocorre quando o método é invocado através do objeto, no caso Bidu; Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular. Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido.

Modos de Visibilidade/Acesso Pode-se controlar a manipulação de atributos e operações (membros); Modificadores:

Modificador private Um membro qualificado como private somente é acessível a partir de métodos da própria classe à qual pertence o membro.

Modificador public Um membro qualificado como public é acessível a partir de qualquer operação de qualquer classe, independentemente de subclasse e de pacote.

Modificador protected Um membro qualificado como protected é acessível a partir de qualquer operação de qualquer classe, exceto se a classe de acesso estiver em pacote distinto e não for subclasse da classe à qual pertence o membro.

Herança Subclasse herda a estrutura e/ou comportamento de uma ou mais superclasses; Relação entre Classes de Objetos, e não uma relação entre instância das Classes. Ex. Mamífero Cachorro Gato

Herança Para que serve a herança? Considere a criação de uma classe ClasseB; Que métodos estão disponíveis através de uma referência para a ClasseB (isto é, um objeto)?

Herança Suponha agora que a classe ClasseB herda de ClasseA; Que métodos estão agora disponíveis para uma referência da ClasseB (um objeto) ?

Herança Poderoso mecanismo para o reaproveitamento de código; O objeto objB tem agora disponíveis os métodos da ClasseA sem ser necessário reescrevê-los na ClasseB Um objeto da ClasseB também é um objeto da ClasseA. Facilita a manutenção do código: Os métodos não são replicados. Se for necessário alterar o código do método m3, basta alterá-lo em ClasseA. ClasseB pode "recusar" parte da herança reimplementando os métodos herdados

Herança Tipos de Herança Herança simples é quando uma subclasse herda estrutura e/ou comportamento de uma única superclasse.   Herança múltipla é quando uma subclasse herda estrutura e/ou comportamento de mais de uma superclasse.

Herança Refatoração Superclasse (características comuns) Subclasses (características específicas)

Herança Uma subclasse herda: Atributos, Operações, Relacionamentos. Uma subclasse pode: Adicionar novos atributos, operações e relacionamentos. Redefinir operações herdadas.

Herança Classes ancestrais: classes das quais as outras dependem. Classes descendentes: as classes originadas a partir de outra.

Classes Abstratas Classes Abstratas(pura): classes cujos objetos nunca são instanciados diretamente, mas sempre por uma classe descendente dela. Não possuem um comportamento.

Classes Abstratas

Generalização Capacidade de se criar superclasses que encapsulam estrutura e/ou comportamento comuns a várias subclasses.

Generalização Relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe. Especialização: relacionamento inverso; Superclasse: versão mais abstrata de outra classe, a subclasse; Subclasse: versão mais refinada de outra classe, a superclasse.

Conceitos fundamentais Generalização Automóvel Automóvel esportivo Porsche Especificação

Conceitos fundamentais Polimorfismo: princípio relacionado com as diferentes formas de um objeto. Onde se pode instanciar o objeto de várias formas:

Polimorfismo Assume muitas formas; A subclasse redefine a implementação de uma operação herdada da superclasse; Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe.

Polimorfismo Trata objetos na mesma hierarquia de classes como se todos fossem objetos da superclasse; Tornam o programa extensível: Facilidade para adicionar novas classes Invoca os métodos das subclasses usando referências para a superclasse.

Polimorfismo Conceito Chave Objetos das subclasses podem ser tratados como objetos da superclasse A classe B É UMA classe A  Um objeto da classe B pode ser usado em qualquer lugar onde um objeto A é esperado. B A

Identificando Objetos Geralmente identificado por um substantivo; Contém estrutura e comportamento; Dois objetos são distintos, mesmo que eles apresentem as mesmas características. Ex: 1 dezena de automóveis Astra Cada automóvel é um objeto! Todos tem a mesma característica! Classes são fábricas de objetos.

UML: definição UML Linguagem visual para especificação (modelagem) de sistemas orientados a objetos.

UML Fornece representação gráfica para os elementos essenciais do paradigma orientado a objetos; Usada para visualizar, especificar, documentar e construir os artefatos de um sistema.

+ O que é UML ? UML Metodologia : . LINGUAGEM GRÁFICA . MÉTODO UML diz o que pode ser feito mas não diz como deve ser feito. É independente de processo.

UML Não está presa a uma etapa do desenvolvimento de software: Análise Projeto Implementação Testes

UML Não está presa a um Processo de Desenvolvimento de Software Ciclo de Vida em Cascata Incremental Processo Unificado

UML Privilegia a descrição de um sistema segundo três perspectivas: Dados (estrutural) Diagrama de Classes Operações (funcional) Diagrama de Caso de Uso Eventos (temporal) Diagrama de Seqüência, Atividades, de Transição, de Estados.

Diagramas: Notação da UML gráficos que descrevem o conteúdo em uma visão.

Modelagem de estruturas estáticas: UML - Diagramas Modelagem de estruturas estáticas: Diagrama de Casos de Uso; Diagrama de Classes; Diagrama de Objetos; Diagrama de Componente; Diagrama de Implantação

Modelagem de estruturas Dinâmicas: UML - Diagramas Modelagem de estruturas Dinâmicas: Diagramas de Interação Diagrama de Seqüência. Diagrama de Colaboração. Diagramas de Estado. Diagramas de Atividade.

UML: ferramentas CASE Ferramentas Licensa 1 Rational Rose proprietária 2 TogetherSoft ControlCenter 3 Argo UML livre 4 Poseidon 5 Jude Proprietária/livre 6 Outras