Apresentação do curso

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

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

2 Diagrama de Caso de Uso

Orientação a Objetos

Modelagem de Processos. Prof.: Fernando Ascani

Programação Orientada a Objetos em Java

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

Análise e Projeto Orientados por Objetos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

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

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

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

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

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

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

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)

Wilson Moraes Góes. Novatec

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

Orientação a Objetos com Java

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

Tópicos em Engenharia de Computação

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

UML Unified Modeling Language

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

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

UML - Unified Modeling Language

Programação Orientada a Objeto

Técnicas de Programação II

UML Aspectos de projetos em Diagramas de classes

A Linguagem de Modelagem Unificada (UML)

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Engenharia de Software III

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)

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

Introdução a Java. Hélder Nunes

Notas de Aula 04: Casos de uso de um sistema

Engenharia de Requisitos Estudo de Caso

Análise e Projeto de Sistemas

Linguagem de Programação I. Orientação a Objetos em Java

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

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Guia de Fatores de Qualidade de OO e Java

Implementando uma Classe e Criando Objetos a partir dela

Qualidade de Software

Noções sobre Objetos e Classes

Projeto de Software Orientado a Objeto

Mapa Mental de Engenharia de Software - Diagramas UML

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

Herança. Alberto Costa Neto DComp - UFS

Análise e Projeto Orientados por Objetos

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

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

Uma visão mais clara da UML Sumário

Java. Marcio de Carvalho Victorino

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

Unidade IV: Ponteiros, Referências e Arrays

Programação com Acesso a BD. Programação com OO Acesso em Java

Capítulo 8. Introdução UML

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

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

2 Orientação a objetos na prática

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

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

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

Prototype, um Design Patterns de Criação

DEFINIÇÃO DE MÉTODOS

CURSO DE PROGRAMAÇÃO EM JAVA

1 UML (UNIFIED MODELING LANGUAGE)

Análise e Projeto de Sistemas

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Orientação a Objetos

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Modelagemde Software Orientadaa Objetos com UML

Informática I. Aula 6. Aula 6-12/09/2007 1

Roteiro do Programa e Entrada/Saída

Fundamentos de Banco de Dados e Modelagem de Dados

UML: Casos de Uso. Projeto de Sistemas de Software

ProgramaTchê Programação OO com PHP

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

Profº. Enrique Pimentel Leite de Oliveira

Java 2 Standard Edition Como criar classes e objetos

Padrões de projeto 1

MC536 Bancos de Dados: Teoria e Prática

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

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

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Especificação do 3º Trabalho

Modelagem de Casos de Uso (Parte 1)

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Engenharia de Software I

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Sobre o Professor Dr. Sylvio Barbon Junior

Exercícios de Revisão Java Básico

Prof. Esp. Adriano Carvalho

UNIVERSIDADE FEDERAL DO PARANÁ

Transcrição:

Orientação a Objetos Hyggo Oliveira de Almeida Laboratório de Sistemas Embarcados e Computação Pervasiva Centro de Engenharia Elétrica e Informática Universidade Federal de Campina Grande Apresentação do curso Motivação para o curso Objetivos do curso Estudo de caso Conteúdo Resultado esperado Avaliação Bibliografia Dúvidas??? 1

Motivação para o curso Por que orientação a objetos??? Voltemos um pouco no tempo...... nos anos 80 e antes disso! O que é que está na moda? Paradigma estruturado!!! Análise (Entender o problema) Projeto (Modelar a solução) Programação (Implementar a solução) Pós-Sistemas de Informação - FAL 3 Motivação para o curso Entidades de abstração Funções e procedimentos Sistemas comerciais tradicionais Controle de estoque, por exemplo Linguagens Pascal, Cobol, C, Fortran Pós-Sistemas de Informação - FAL 4 2

Motivação para o curso Conjunto de procedimentos e funções invocados com base em uma seqüência Nível de complexidade dos sistemas condiz com o suporte do paradigma Problema Calcular o total do estoque Solução calculartotalestoque(); Pós-Sistemas de Informação - FAL 5 Motivação para o curso Problemas Aumento da complexidade dos sistemas Difícil gerenciamento Entidade de abstração muito granular Função Sistema corporativo Calcular lucro das vendas Recuperar informações das filiais Transmitir dados via rede Recuperar informações de câmbio Recuperar informações de taxas de juros... Pós-Sistemas de Informação - FAL 6 3

Motivação para o curso SIMULA 67 Simulação de objetos do mundo real Objetos e relacionamento entre eles Que tal aproveitar a abstração??? Cadeira Sala Mesa Funções e dados dispersos e não coesos Enxergar o problema... pensando em objetos!!! Pós-Sistemas de Informação - FAL 7 Objetivo do curso Convencê-los de que OO é uma boa ferramenta para o desenvolvimento de sistemas de informação Introduzir conceitos básicos de OO Noções de... Análise orientada a objetos Projeto orientado a objetos Programação orientada a objetos Notação UML diagramas mais usados Pós-Sistemas de Informação - FAL 8 4

Estudo de caso Sistema de informação, em geral, possui complexidade de projeto Maior que a complexidade algorítmica De acordo com o tempo de curso......foco em aprender os conceitos...saber como aplicá-los Vamos desenvolver uma agenda simples Nomes, endereços e telefones Pós-Sistemas de Informação - FAL 9 Conteúdo do curso (Parte I) OO - Conceitos básicos Visão abstrata Classificação Especialização Polimorfismo Visão concreta Encapsulamento, information hiding, passagem de mensagem Herança Ligação dinâmica, variáveis polimórficas Entendendo o estudo de caso com OO! Pós-Sistemas de Informação - FAL 10 5

Conteúdo do curso (Parte II) Análise Orientada a Objetos Análise de requisitos UML O que é? Pra que serve? Diagrama de casos de uso Modelo conceitual Analisando o estudo de caso! Pós-Sistemas de Informação - FAL 11 Conteúdo do curso (Parte III) Projeto Orientado a Objetos Explodindo casos de uso: diagramas de interação Diagrama de seqüência Diagrama de colaboração Definindo classes, atributos e métodos: diagrama de classes Projetando o estudo de caso! Pós-Sistemas de Informação - FAL 12 6

Conteúdo do curso (Parte IV) Programação Orientada a Objetos Introdução à linguagem Java Mapeando conceitos para elementos da linguagem Oi, eu sou um programa Java! Programando o estudo de caso! Pós-Sistemas de Informação - FAL 13 Ao terminar o curso vocês devem... conhecer conceitos básicos da orientação a objetos! entender por que OO pode ser uma boa solução para o desenvolvimento de software saber realizar uma análise orientada a objetos entender conceitos de projeto orientado a objetos ter noções básicas de programação orientada a objetos Pós-Sistemas de Informação - FAL 14 7

Avaliação (em dupla) Entendendo o estudo de caso com OO! Exercício: 2,5 pontos Analisando o estudo de caso! Exercício: 2,5 pontos Projetando o estudo de caso! Exercício: 2,5 pontos Programando o estudo de caso! Exercício: 2,5 pontos Pós-Sistemas de Informação - FAL 15 Bibliografia Livros Object-Oriented Analysis and Design with Applications, Grady Booch,1993 Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, Larman, Prentice-Hall, 1998 UML Guia do usuário, James Rambaugh, Campus, 2000 Java How to Program, Harvey M. Deitel Paul J. Deitel, Prentice Hall, 2002 Artigos Object Orientation Revealed!, Dr Ashley M. Aitken, School of Information Systems, Curtin University of Technology, Perth, Australia Outras fontes Internet!!! Pós-Sistemas de Informação - FAL 16 8

Dúvidas sobre o curso??? Dúvidas sobre o conteúdo... É só isso??? Isso tudo professor??? E vai dar tempo??? Meu e-mail de contato: hyggo@dee.ufcg.edu.br Pós-Sistemas de Informação - FAL 17 Conceitos Básicos de Orientação a Objetos Visão abstrata Classificação Especialização Polimorfismo Visão concreta Encapsulamento Information hiding Passagem de mensagem Herança Ligação dinâmica Variáveis polimórficas Entendendo o estudo de caso com OO! 9

Visão abstrata Por que visão abstrata? Em geral, os conceitos de orientação a objetos são ensinados utilizando a tecnologia que dá suporte à OO Java em 15 dias e meio C++ e OO, sem desespero Agora vai! PHP com OO É pra amanhã? Java e OO em uma noite! Problema! Não se sabe a diferença entre conceito e tecnologia É possível implementar um código Java que não é orientado a objetos!!! Pós-Sistemas de Informação - FAL 19 Visão abstrata Os conceitos de OO são independentes de tecnologia O paradigma de OO define uma nova maneira de enxergar o mundo (leia-se, contexto do problema) Primeiro vamos aprender a enxergar o mundo pensando em objetos...... depois aprendemos uma tecnologia para tornar a implementação possível Em Java! Pós-Sistemas de Informação - FAL 20 10

Visão abstrata Orientação a objetos é... enxergar e modelar o mundo como um conjunto de objetos interrelacionados e em interação Pós-Sistemas de Informação - FAL 21 Visão abstrata Uma vez que já vemos o mundo desta forma... tornase bem conveniente Enxergar o mundo...... ou qualquer outro sistema... inclusive um sistema de software. Pós-Sistemas de Informação - FAL 22 11

Visão abstrata Ok... mas o que são objetos? Árvore Casa Pessoa Bicicleta Churrasqueira Carro Árvore Pós-Sistemas de Informação - FAL 23 Visão abstrata Um objeto é uma entidade física ou conceitual que possui uma identidade, propriedades e operações. E que pode ser construído e destruído. Pós-Sistemas de Informação - FAL 24 12

Visão abstrata Identidade define a unicidade do objeto! MinhaÁrvore MinhaCasa MeuPai Minha Bicicleta Minha Churrasqueira MeuCarro MinhaOutra Árvore Pós-Sistemas de Informação - FAL 25 Visão abstrata Propriedades definem o estado do objeto!!! cor: verde espécie: pé de mato cor: marrom valor: 50000 nome: João profissão: jogador idade: 45 cor: preta marchas:32 grelhas: 4 material: ferro cor: azul marca: ford ano: 1975 quilometragem: 5000 cor: verde espécie: pé de pau! Pós-Sistemas de Informação - FAL 26 13

Visão abstrata Operações definem os comportamentos que podem ser desempenhados pelo objeto!!! germinar fazer sombra andar comer beber acelerar frear assar acelerar frear ligar desligar germinar fazer sombra Pós-Sistemas de Informação - FAL 27 Visão abstrata Mas eu preciso sempre enxergar todos os objetos do meu mundo (ou do meu sistema)??? Não!!! A maneira como eu enxergo o mundo depende do contexto do problema!!! Pós-Sistemas de Informação - FAL 28 14

Visão abstrata De que ferramenta eu preciso pra enxergar o mundo de acordo com o contexto??? Abstração Exercício intelectual de seleção de alguns aspectos de domínio do problema, desconsiderando outros aspectos não interessantes para o problema em questão Conceito fundamental da OO Pós-Sistemas de Informação - FAL 29 Visão abstrata Mundo Apenas o que interessa no mundo... Contexto do problema... de acordo com o contexto! Pós-Sistemas de Informação - FAL 30 15

Visão abstrata Objeto Propriedades: Modelo Descrição Custo Preço de venda Propriedades: Tamanho Velocidade Número Instruções Vendedor Estudante Pós-Sistemas de Informação - FAL 31 Visão abstrata Objeto Operações: faturar garantir requisitar Operações: somar subtrair multiplicar dividir Abstração Vendedor Enxergar os objetos de acordo com o contexto Estudante Pós-Sistemas de Informação - FAL 32 16

Visão abstrata Outros conceitos fundamentais da OO Classificação Orientação a Objetos Especialização Polimorfismo Pós-Sistemas de Informação - FAL 33 Visão abstrata Classificação Agrupamento de objetos que possuem um conjunto de propriedades e operações em comum. Define um tipo de objetos pelo conjunto de propriedades e operações cor: verde espécie: pé de mato germinar fazer sombra cor: verde espécie: pé de pau! Pós-Sistemas de Informação - FAL 34 17

Visão abstrata Classificação Tipo: árvore Propriedades: cor e espécie Operações: germinar e fazer sombra Objetos que são do tipo árvore Pé de mato Pé de pau Pós-Sistemas de Informação - FAL 35 Visão abstrata Especialização Identificação de um subconjunto de objetos dentro de uma classificação (tipo) que possui um conjunto adicional de propriedades e operações. Define um subtipo do tipo original Propriedades originais + propriedades adicionais Operações originais + operações adicionais Pós-Sistemas de Informação - FAL 36 18

Visão abstrata Especialização Tipo: árvore Propriedades: cor, espécie Operações: germinar, fazer sombra Subtipo: árvore frutífera Propriedades: cor, espécie e fruta Adicional Adicional Operações: germinar, fazer sombra e dar frutos Pós-Sistemas de Informação - FAL 37 Visão abstrata Especialização Tipo: árvore Especialização Pé de pau Pé de mato Subtipo: árvore frutífera Macieira Generalização Cajueiro Pós-Sistemas de Informação - FAL 38 19

Visão abstrata Especialização/Generalização Especialização Pessoa Formada Oftalmologista Generalização Veiculo Carro Carro de corrida Pós-Sistemas de Informação - FAL 39 Visão abstrata Polimorfismo acelerar frear É a habilidade de diferentes tipos de objetos realizarem as mesmas propriedades e operações de formas diferentes Tipo: veículo acelerar frear Subtipo: bicicleta Subtipo: carro Pós-Sistemas de Informação - FAL 40 20

Visão abstrata Polimorfismo Veículo pode acelerar e frear. Acelerar e frear possuem formas diferentes pra cada subtipo Subtipo: bicicleta Subtipo: carro acelerar = pedalar!!! frear = apertar o freio!!! frear = pisar no freio!!! acelerar = pisar no acelerador!!! Pós-Sistemas de Informação - FAL 41 Visão abstrata Entenderam os conceitos abstratos??? Observem que os conceitos são independentes de tecnologia Se aplicam a qualquer tipo de sistema Nenhuma linguagem de programação foi utilizada!!! Pensar orientado a objetos é independente de programar usando uma linguagem com suporte à orientação a objetos!!! Sendo assim... É possível entender a orientação a objetos, sem saber programar em nenhuma linguagem!!! Pós-Sistemas de Informação - FAL 42 21

Visão abstrata Mão na massa!!! Enxergue um dos objetos presentes na imagem abaixo de acordo com o triângulo de orientação a objetos! Menos os veículos, é claro!!! Classificação OO Polimorfismo Especialização Pós-Sistemas de Informação - FAL 43 Visão concreta Como construir objetos do mundo real usando objetos de software???? Pós-Sistemas de Informação - FAL 44 22

Visão concreta Em primeiro lugar... teremos que criá-los! Certo??? Nem tudo é observação!!! Sistema de controle de estoque produto item estoque Sistema de acadêmico aluno professor matrícula nota Sistema de controle de tráfego carro rua vaga Pós-Sistemas de Informação - FAL 45 Visão concreta Precisamos ter noção de como os objetos são criados...... mais ainda, precisamos de um modelo pra criação de objetos diferentes de acordo com um mesmo tipo! Na visão concreta... precisamos de uma CLASSE!!! Pós-Sistemas de Informação - FAL 46 23

Visão concreta Uma classe é um modelo, um protótipo para a criação de exemplares ou instâncias de um mesmo tipo. Um objeto é um exemplar de uma classe Classe Objetos new Pé-de-pau B Modelo de pé de pau new Pé-de-pau A Pé-de-pau C Meu pé-de-pau Pós-Sistemas de Informação - FAL 47 Visão concreta Apesar da semelhança, classe é diferente de tipo Uma classe define, automaticamente, um tipo e uma implementação Tipo:Carro Define o que Classe:Carro Define como frear = pisar no freio!!! acelerar = pisar no acelerador!!! Pós-Sistemas de Informação - FAL 48 24

Visão concreta Todo objeto, instância de uma classe, terá: as mesmas propriedades/atributos da classe as mesmas operações/métodos da classe A classe então é uma ferramenta para padronizar a criação de objetos de um determinado tipo E aí? Entenderam pra que serve uma classe? Dúvidas sobre a construção de objetos? Relação objeto x classe? Podemos seguir na visão concreta de OO? Pós-Sistemas de Informação - FAL 49 Visão concreta Além da classe, para tornar os conceitos abstratos definidos anteriormente em tecnologia... Linguagem de programação Modelagem Modelos de banco de dados Modelos formais Etc... Especialização Classificação OO Polimorfismo... as seguintes ferramentas devem ser providas: Encapsulamento, information hiding, passagem de mensagem, herança, variáveis polimórficas e ligação dinâmica Pós-Sistemas de Informação - FAL 50 25

Visão concreta As ferramentas da visão concreta dão suporte às diferentes fundações da visão abstrata Encapsulamento Information Hiding Classificação Passagem de mensagem OO Herança Especialização Polimorfismo Variáveis polimórficas Ligação dinâmica Pós-Sistemas de Informação - FAL 51 Visão concreta Concretizando classificação: Encapsulamento Agrupamento de atributos e métodos dentro de um objeto Objeto Métodos Acesso aos atributos apenas via métodos! Atributos O que você comeu no almoço? Pós-Sistemas de Informação - FAL 52 26

Visão concreta Concretizando classificação: Information Hiding Mostre ao cliente apenas o que ele pode ver!!! Objeto Métodos Privados/Protegidos Acesso apenas aos Métodos públicos! Atributos Pós-Sistemas de Informação - FAL 53 Visão concreta Concretizando classificação: Passagem de mensagem Diga ao objeto o que ele tem de fazer!!! Cliente (outro objeto) Objeto, me dá o teu nome pra eu mostrar na tela!!! getnome Objeto Cliente (outro objeto) Objeto, imprima seu nome na tela!!! imprimirnome Objeto Pós-Sistemas de Informação - FAL 54 27

Visão concreta Concretizando especialização: Herança Inclua os atributos e métodos de uma (super)classe em suas (sub)classes Classe A A herda de B ou A estende B Classe B Herança Compartilhamento Pós-Sistemas de Informação - FAL 55 Visão concreta Concretizando polimorfismo: Variáveis polimórficas Variáveis/Atributos podem manipular objetos de mais de um tipo específico Pessoa p Polimorfismo p = new Pessoa p = new Aluno Mesmo tipo Subtipo Tipo Nome p = new Professor Pós-Sistemas de Informação - FAL 56 28

Visão concreta Concretizando polimorfismo: Ligação dinâmica Que método executar em tempo de execução??? Veiculo p acelerar Polimorfismo p = new Veiculo acelerar p = new Carro acelerar p = new Bicicleta acelerar Pós-Sistemas de Informação - FAL 57 Visão concreta Mão na massa!!! Utilize objetos da figura para exemplificar cada um dos conceitos concretos definidos anteriormente Pós-Sistemas de Informação - FAL 58 29

Avaliação Mão na massa!!! Entendendo o estudo de caso com OO! Identifique cada um dos conceitos aprendidos e enxergue o estudo de caso utilizando orientação a objetos Classificação Especialização Polimorfismo Pós-Sistemas de Informação - FAL 59 Análise Orientada a Objetos Análise de requisitos Descrição dos requisitos Métodos de análise UML O que é? Pra que serve? Diagrama de casos de uso Modelo conceitual Analisando o estudo de caso! 30

Análise de requisitos Independente do paradigma utilizando, no contexto de desenvolvimento de software, tem-se uma análise de requisitos O que desenvolver? Como funciona o software? Quais são seus requisitos funcionais e não-funcionais? Quem são os usuários do sistema? Quais as funcionalidades referentes a cada usuário do sistema? Quem manda??? O cliente!!!! Pós-Sistemas de Informação - FAL 61 Análise de requisitos Durante a análise de requisitos, como descrever as informações obtidas (do cliente) Linguagem conhecida por todos os desenvolvedores Compartilhamento dos requisitos deve ser simples Novos desenvolvedores podem entrar na equipe A equipe pode ser completamente alterada Pós-Sistemas de Informação - FAL 62 31

Descrição dos requisitos Análise estruturada Modelo Entidade-Relacionamento Diagrama de Fluxo de Dados Envia sinal Requisita cliente Cliente Se recebeu dados Espera recepção de dados Se não recebeu dados Consulta Armazenamento Dados em memória Analisa dados Memoriza Processos Devolve Pós-Sistemas de Informação - FAL 63 posição Descrição dos requisitos Análise estruturada Modelo de fluxo de controle Sistemas dirigidos a eventos CSPEC Especificação de controle PSPEC: especificação de processo Texto narrativo, equações, tabelas... Ex.: processar senha... Dicionário de dados Listagem organizada das definições de todos os elementos pertinentes ao sistema Pós-Sistemas de Informação - FAL 64 32

Métodos de análise Análise orientada a objetos É necessário haver uma forma de mapear os requisitos em entidades do mundo real Se estamos no mundo de objetos, o fluxo de controle/dados utilizado anteriormente não é suficiente Precisamos mapear os mundos dos requisitos para os modelos conceituais de objetos Enfim...como descobrir classes a partir de um conjunto de requisitos??? Pós-Sistemas de Informação - FAL 65 Métodos de análise Principais métodos OMT - Rumbaugh Booch Fusion (HP) Objectory - Jacobson Coad / Yourdon Martin / Odell Shlaer / Mellor Pós-Sistemas de Informação - FAL 66 33

Métodos de análise O objetivo do curso não é apresentar processos de desenvolvimento...... portanto, o ciclo padrão de desenvolvimento de software, com Análise, Projeto e Implementação será seguido. Simplificação do CDI Documentação???? UML!!!! Redefinição de fases para processos atuais RUP Fases diferentes: Análise, Elaboração, Implementação e Implantação XP Foco inicial em testes, fase de refatoramento Pós-Sistemas de Informação - FAL 67 Unified Modeling Language Linguagem de Modelagem Unificada OMG 1994 Booch, Rambaugh, Jacobson ( Três amigos ) Unificação de várias outras linguagens (Objectory, Booch, OMT,...) Não define um processo... é apenas uma linguagem!!! Processos: Rational Unified Process (RUP) Três amigos extreme Programming (XP) Agile Modeling (AM) Ciclo de Desenvolvimento Iterativo (CDI) Object Modeling Technique (OMT) Pós-Sistemas de Informação - FAL 68 34

Unified Modeling Language UML serve para Comunicação Desenvolvedores compartilham idéias e informações Documentação Facilidade de manutenção e atualização do software Construção Facilita o processo de definição do projeto de software Especificação Facilita a especificação dos requisitos do software Concepção Facilita a atividade de abstração e mapeamento do problema para o mundo de objetos Pós-Sistemas de Informação - FAL 69 Unified Modeling Language Elementos da UML Estruturais Qual o desenho do software? Comportamentais Como o software funciona? Agupamento Como as entidades lógicas (objetos) e físicas (entidades computacionais) são agrupadas Pós-Sistemas de Informação - FAL 70 35

Unified Modeling Language Diagramas da UML (Modelo estático) Casos de Uso Descrição das funcionalidades do sistema Classe Qual o modelo de classes do sistema? Objetos. Qual o modelo de objetos do sistema, ou seja, como as instâncias das classes se relacionam em tempo de execução? Componentes Como as classes estão organizadas em componentes binários??? Implantação Como é a arquitetura física do sistema??? Pós-Sistemas de Informação - FAL 71 Unified Modeling Language Diagramas da UML (Modelo dinâmico) Seqüência Como ocorre a interação entre as entidades em relação ao tempo? Colaboração Como ocorre a interação entre as entidades em relação à agrupamentos funcional, organização ou conjunto de classes? Estados Quais os retratos do estado do sistema e de cada instância de classe em tempo de execução? Atividades Quais as atividades relacionadas à execução do sistema, em termos dos seus estados? Pós-Sistemas de Informação - FAL 72 36

Unified Modeling Language Os diagramas UML serão apresentados durante o curso de acordo com a necessidade de uso Voltemos ao foco de análise...... lembram??? Precisamos de uma maneira de descobrir possíveis classes a partir de requisitos De acordo com o CDI... Diagrama de Casos de Uso Modelo conceitual Pós-Sistemas de Informação - FAL 73 Diagramas de casos de uso Técnica simples e intuitiva Identificação dos requisitos de um sistema Mais especificamente, serve para: captar os requisitos dos usuários; identificar objetos e suas propriedades; particionar um sistema em partes conhecidas e compreendidas pelos usuários; facilitar a definição da melhor alternativa de projeto. Pós-Sistemas de Informação - FAL 74 37

Diagramas de casos de uso Mais especificamente, serve para: elaborar o plano de testes e aceitação do sistema; descrever a funcionalidade do sistema e criar a documentação para os usuários; estimar porte e esforço de desenvolvimento do sistema. Pós-Sistemas de Informação - FAL 75 Diagramas de casos de uso O que é um caso de uso??? Casos de uso são cenários que descrevem as diversas situações em que os usuários utilizam o sistema. O conjunto desses cenários descreve a funcionalidade do sistema. Pós-Sistemas de Informação - FAL 76 38

Diagramas de casos de uso Notação de casos de uso Sistema Ator 1 Caso de uso 1 Fronteira do sistema Atores Caso de uso 2 Ator 2 Ator 3 Caso de uso 3 Casos de uso Pós-Sistemas de Informação - FAL 77 Diagramas de casos de uso O que é descrito num diagrama de casos de uso? Seqüência de ações / interações que ocorrem durante uma determinada execução do sistema. Conjunto de cenários mostrando as diversas seqüências de interação entre os atores e o sistema. Diálogo realizado entre um usuário e o sistema para se atingir algum objetivo. Pós-Sistemas de Informação - FAL 78 39

Diagramas de casos de uso Exemplo: Sistema de vendas (Loja) Sistema Cliente Comprar produto Notificar promoções... Gerente Adicionar/Remover produto... Pós-Sistemas de Informação - FAL 79 Diagramas de casos de uso Exemplo: Sistema de agência de viagens Sistema Passageiro Comprar passagem Adquirir Ticket... Listar passageiros Atendente... Pós-Sistemas de Informação - FAL 80 40

Diagramas de casos de uso Exemplo: Sistema acadêmico Sistema Ver notas Aluno Professor... Gerenciar Notas... Gerenciar disciplina Administrador... Pós-Sistemas de Informação - FAL 81 Diagramas de casos de uso Detalhando casos de uso Gerenciar Disciplina Adicionar Disciplina Gerenciar Disciplinas Remover Disciplina Editar Disciplina Pós-Sistemas de Informação - FAL 82 41

Diagramas de casos de uso Casos de uso: versão estendida Caso de uso: Adicionar disciplina Atores: Administrador Descrição: O administrador solicita a adição de disciplina ao sistema, repassando o nome e o código da disciplina a ser adicionada. O sistema retorna um ok caso a operação tenha sucesso. Seqüência de eventos Ação do ator 1. Administrador solicita adição de disciplina repassando nome e código. Resposta do Sistema 2. Sistema verifica se não há outra disciplina com mesmo código e adiciona disciplina. 3. Sistema retorna ok para Administrador. Pós-Sistemas de Informação - FAL 83 Diagramas de casos de uso Mão na Massa!!! Crie um diagrama de casos de uso para o sistema de informação de sua empresa Identifique os atores Identifique as funcionalidades do sistema Relacione as funcionalidades aos atores Escolha 3 casos de uso para descrevê-los de forma estendida! Pós-Sistemas de Informação - FAL 84 42

Modelo conceitual Já sabemos analisar os requisitos do software......vamos agora enxergar o problema de acordo com os conceitos da orientação a objetos Objetivo: identificar as classes que fazem parte do sistema Através da identificação de objetos Aplicação do triângulo da OO Para descrever os objetos que fazem parte do modelo utilizaremos a notação UML Pós-Sistemas de Informação - FAL 85 Modelo conceitual Notação UML para classe Bicicleta Bicicleta marchas cor Nome Atributos Bicicleta marchas cor pedalar frear Métodos Pós-Sistemas de Informação - FAL 86 43

Modelo conceitual Em análise, os métodos das classes podem ser omitidos A idéia do modelo conceitual é ter uma primeira visão de como os objetos do sistema se relacionam Relacionam???? Tipos de relacionamento: Herança Associação Agregação/Composição Pós-Sistemas de Informação - FAL 87 Modelo conceitual Descrevendo herança (relacionamento é um ) Veiculo Veiculo Bicicleta Bicicleta Carro CarroEsportivo CarroCorrida Pós-Sistemas de Informação - FAL 88 44

Modelo conceitual Associação (relacionamento comum) Aluno estuda Assunto Bidirecional Rótulos matricula-se Disciplina ensina Direção do relacionamento Professor Pós-Sistemas de Informação - FAL 89 Modelo conceitual Agregação/Composição ( é composto de ) Carro Roda Motor Painel Velocimetro Relógio Porta luvas Pós-Sistemas de Informação - FAL 90 45

Modelo conceitual Cardinalidade Carro * 0..* Motorista 4 1 1 Roda Motor Painel 1 1 1 Velocimetro Relógio Porta luvas Pós-Sistemas de Informação - FAL 91 Modelo conceitual Mão na Massa!!! Crie um modelo conceitual para o sistema de informação de sua empresa Identifique as entidades do modelo Identifique as classes envolvidas Defina as associações entre as classes Pós-Sistemas de Informação - FAL 92 46

Avaliação Mão na Massa!!! Realize uma análise orientada a objetos do estudo de caso Casos de uso Modelo conceitual Pós-Sistemas de Informação - FAL 93 Projeto Orientado a Objetos Explodindo casos de uso: diagramas de interação Definindo classes, atributos e métodos: diagrama de classes Agrupando funcionalidades: pacotes Diagrama de pacotes Diagramas de Implementação Projetando o estudo de caso! 47

Explodindo casos de uso: diagramas de interação Como mapear os requisitos descritos nos casos de uso em métodos das classes??? Ator 1 Ator 2 Caso de uso 3... Caso de uso 2... Classe A Classe B Classe C Ator 3 Caso de uso 1... Classe D Pós-Sistemas de Informação - FAL 95 Explodindo casos de uso: diagramas de interação Diagramas de interação modelagem dos aspectos dinâmicos do sistema mostra uma interação formada por um conjunto de objetos e seus relacionamentos, incluindo as mensagens que poderão ser trocados entre eles Interação = Objetos + Vínculos + Mensagens Dois tipos Diagramas de seqüência Diagramas de colaboração Pós-Sistemas de Informação - FAL 96 48

Explodindo casos de uso: diagramas de interação Diagramas de Seqüência Descrevem um comportamento interno Mostram os eventos entre objetos Descrevem uma interação no tempo Ideal para especificações de tempo real Não mostram os tipos de associação entre objetos Pós-Sistemas de Informação - FAL 97 Explodindo casos de uso: diagramas de interação Diagramas de Seqüência Possui duas características que os diferencia de diagramas de colaboração: Linha de vida do objeto Representa a existência de um objeto de acordo com o tempo Foco de controle Representa o período em que o objeto está executando algum processamento Pós-Sistemas de Informação - FAL 98 49

Explodindo casos de uso: diagramas de interação Diagramas de Seqüência Que interação/cenário iremos modelar? Conexão telefônica! 1 2 tuuuuuuuuuuuuuu... uuuuuuuuuu... 3 O chamador inicia a chamada 6 Sinal de linha 5 trimmm... trimmm Discar 4 trimmm... trimmm Conexão estabelecida! Toca no chamador Toca no receptor Pós-Sistemas de Informação - FAL 99 Explodindo casos de uso: diagramas de interação Diagramas de Seqüência Objetos Ator Chamador :Telefone :Recebedor Linha de tempo t = 0s t = 5s t = 15s t = 20s levanta telefone ouve o sinal disca toca campainha atende toca campainha pare de tocar Linha de vida Período de atividade t = 30s pare de tocar Fim da linha! Pós-Sistemas de Informação - FAL 100 50

Explodindo casos de uso: diagramas de interação Diagramas de Colaboração Representam interações entre classes O eixo dos tempos não está explicito As classes/objetos trocam mensagens, através de vínculos, ligações estabelecidas entre elas São semelhantes aos diagramas de seqüência, contendo as mesmas informações Pós-Sistemas de Informação - FAL 101 Explodindo casos de uso: diagramas de interação Diagramas de Colaboração Possui duas características que os diferencia de diagramas de seqüência: Caminho Existe o caminho para indicar como um objeto esta vinculado a outro Número de seqüência Ordem temporal de uma mensagem Pós-Sistemas de Informação - FAL 102 51

Explodindo casos de uso: diagramas de interação Diagramas de Colaboração Seqüência Objetos 1:procura assunto :GerenteMaterial 2:fornece opções 3:pede detalhes Usuário 3.2:detalhes 3.1:pede detalhes :Livro Ator Pós-Sistemas de Informação - FAL 103 Explodindo casos de uso: diagramas de interação Voltemos à pergunta: Como mapear os requisitos descritos nos casos de uso em métodos das classes??? Exemplo: Sistema acadêmico Ver boletim Aluno Professor... Gerenciar Notas... Administrador Gerenciar disciplina... Pós-Sistemas de Informação - FAL 104 52

Explodindo casos de uso: diagramas de interação Explodindo Ver boletim Ver boletim Quais as entidades envolvidas? Atores Aluno Entidades do modelo conceitual Aluno Nota Boletim Disciplina Pós-Sistemas de Informação - FAL 105 Explodindo casos de uso: diagramas de interação Descrição estendida do caso de uso Caso de uso: Ver notas Descrição: o aluno solicita ao sistema a visualização do boletim, o sistema retorna o boletim do aluno de acordo com as disciplinas que ele faz parte. Seqüência de eventos: Ação do ator 1. Aluno solicita a visualização do seu boletim repassando sua matrícula. Resposta do sistema 2. Sistema recupera boletim do aluno. 3. Sistema exibe o boletim ao aluno. Pós-Sistemas de Informação - FAL 106 53

Explodindo casos de uso: diagramas de interação Mão na massa!!! Crie um diagrama de seqüência e um diagrama de colaboração para o caso de uso ver boletim. Atores Entidades do modelo conceitual Aluno Nota Aluno Boletim Disciplina Pós-Sistemas de Informação - FAL 107 Explodindo casos de uso: diagramas de interação Diagrama de seqüência aluno1:aluno Aluno novo( Hyggo ) exibir() :Boletim :Nota getvalor() retorna valor getnome() retorna nome mostrarnatela :Disciplina Pós-Sistemas de Informação - FAL 108 54