orientação a objetos - início - sefazwebx.sefaz.al.gov.br/posengsoft/documentos/as1/oo.pdf ·...
Post on 10-Nov-2018
214 Views
Preview:
TRANSCRIPT
1
Orientação a Objetos
Hyggo Oliveira de Almeida
Laboratório de Sistemas Embarcados e Computação PervasivaCentro de Engenharia Elétrica e Informática
Universidade Federal de Campina Grande
Apresentação do cursoMotivação para o curso
Objetivos do cursoEstudo de caso
ConteúdoResultado esperado
AvaliaçãoBibliografia
Dúvidas???
2
Pós-Sistemas de Informação - FAL 3
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 4
Motivação para o curso
Entidades de abstraçãoFunções e procedimentos
Sistemas comerciais tradicionaisControle de estoque, por exemplo
LinguagensPascal, Cobol, C, Fortran
3
Pós-Sistemas de Informação - FAL 5
Motivação para o curso
Conjunto de procedimentos e funções invocados com base em uma seqüênciaNível de complexidade dos sistemas condiz com o suporte do paradigmaProblema
Calcular o total do estoque
SoluçãocalcularTotalEstoque();
Pós-Sistemas de Informação - FAL 6
ProblemasAumento da complexidade dos sistemasDifícil gerenciamentoEntidade de abstração muito granular
Função Sistema corporativo“Calcular lucro das vendas”
Recuperar informações das filiaisTransmitir dados via redeRecuperar informações de câmbioRecuperar informações de taxas de juros...
Motivação para o curso
4
Pós-Sistemas de Informação - FAL 7
SIMULA 67Simulação de objetos do mundo realObjetos e relacionamento entre eles
Que tal aproveitar a abstração???
Motivação para o curso
Cadeira
Mesa
Sala
Funções e dadosdispersos e não
coesos
Enxergar o problema... pensando em objetos!!!
Pós-Sistemas de Informação - FAL 8
Objetivo do curso
Convencê-los de que OO é uma boa ferramenta para o desenvolvimento de sistemas de informaçãoIntroduzir conceitos básicos de OONoções de...
Análise orientada a objetosProjeto orientado a objetosProgramação orientada a objetos
Notação UML diagramas mais usados
5
Pós-Sistemas de Informação - FAL 9
Estudo de caso
Sistema de informação, em geral, possui complexidade de projeto
Maior que a complexidade algorítmicaDe acordo com o tempo de curso...
...foco em aprender os conceitos
...saber como aplicá-losVamos desenvolver uma agenda simples
Nomes, endereços e telefones
Pós-Sistemas de Informação - FAL 10
Conteúdo do curso (Parte I)
OO - Conceitos básicosVisão abstrata
ClassificaçãoEspecializaçãoPolimorfismo
Visão concretaEncapsulamento, information hiding, passagem de mensagemHerançaLigação dinâmica, variáveis polimórficas
Entendendo o estudo de caso com OO!
6
Pós-Sistemas de Informação - FAL 11
Conteúdo do curso (Parte II)
Análise Orientada a ObjetosAnálise de requisitosUML – O que é? Pra que serve? Diagrama de casos de usoModelo conceitualAnalisando o estudo de caso!
Pós-Sistemas de Informação - FAL 12
Conteúdo do curso (Parte III)
Projeto Orientado a ObjetosExplodindo casos de uso: diagramas de interação
Diagrama de seqüênciaDiagrama de colaboração
Definindo classes, atributos e métodos: diagrama de classesProjetando o estudo de caso!
7
Pós-Sistemas de Informação - FAL 13
Conteúdo do curso (Parte IV)
Programação Orientada a ObjetosIntrodução à linguagem JavaMapeando conceitos para elementos da linguagem“Oi, eu sou um programa Java!”Programando o estudo de caso!
Pós-Sistemas de Informação - FAL 14
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 softwaresaber realizar uma análise orientada a objetosentender conceitos de projeto orientado a objetoster noções básicas de programação orientada a objetos
8
Pós-Sistemas de Informação - FAL 15
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 16
Bibliografia
LivrosObject-Oriented Analysis and Design with Applications, Grady Booch,1993 Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, Larman, Prentice-Hall, 1998UML – Guia do usuário, James Rambaugh, Campus, 2000Java How to Program, Harvey M. Deitel Paul J. Deitel, Prentice Hall, 2002
ArtigosObject Orientation Revealed!, Dr Ashley M. Aitken, School of InformationSystems, Curtin University of Technology, Perth, Australia
Outras fontesInternet!!!
9
Pós-Sistemas de Informação - FAL 17
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
Conceitos Básicos de Orientação a Objetos
Visão abstrataClassificação
EspecializaçãoPolimorfismo
Visão concretaEncapsulamento
Information hidingPassagem de mensagem
HerançaLigação dinâmica
Variáveis polimórficasEntendendo o estudo de caso com OO!
10
Pós-Sistemas de Informação - FAL 19
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 20
Visão abstrata
Os conceitos de OO são independentes de tecnologiaO 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!
11
Pós-Sistemas de Informação - FAL 21
Visão abstrata
Orientação a objetos é...“enxergar e modelar o mundo como
um conjunto de objetos inter-relacionados e em interação”
Pós-Sistemas de Informação - FAL 22
Visão abstrataUma vez que já vemos o mundo desta forma... torna-se bem conveniente
Enxergar o mundo...... ou qualquer outro “sistema”... inclusive um “sistema de software”.
12
Pós-Sistemas de Informação - FAL 23
Visão abstrata
Ok... mas o que são objetos?
ÁrvoreCarroChurrasqueiraBicicleta
Casa PessoaÁrvore
Pós-Sistemas de Informação - FAL 24
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.
13
Pós-Sistemas de Informação - FAL 25
Visão abstrata
Identidade define a unicidade do objeto!
MinhaOutraÁrvoreMeuCarroMinha
ChurrasqueiraMinha
Bicicleta
MinhaCasa MeuPaiMinhaÁrvore
Pós-Sistemas de Informação - FAL 26
Visão abstrata
Propriedades definem o estado do objeto!!!
cor: verdeespécie: pé de pau! ☺
cor: azulmarca: fordano: 1975quilometragem: 5000
grelhas: 4material: ferro
cor: pretamarchas:32
cor: marromvalor: 50000
nome: Joãoprofissão: jogadoridade: 45
cor: verdeespécie: pé de mato ☺
14
Pós-Sistemas de Informação - FAL 27
Visão abstrata
Operações definem os comportamentos que podem ser desempenhados pelo objeto!!!
• germinar• fazer sombra
• acelerar• frear• ligar• desligar
• assar • acelerar• frear
• andar• comer• beber
• germinar• fazer sombra
Pós-Sistemas de Informação - FAL 28
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!!!
15
Pós-Sistemas de Informação - FAL 29
Visão abstrata
De que ferramenta eu preciso pra enxergar o mundo de acordo com o contexto???
Conceito fundamental da OO
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
Abstração
Pós-Sistemas de Informação - FAL 30
Visão abstrataMundo
Contexto do problema
Apenas o que interessa no mundo...
... de acordo com ocontexto!
16
Pós-Sistemas de Informação - FAL 31
Visão abstrataObjeto
Vendedor
• Propriedades:• Modelo• Descrição• Custo• Preço de venda
Estudante
• Propriedades:• Tamanho• Velocidade• Número• Instruções
Pós-Sistemas de Informação - FAL 32
Visão abstrataObjeto
Vendedor
• Operações:• faturar• garantir• requisitar
Estudante
• Operações:• somar• subtrair• multiplicar• dividir
Abstração
Enxergar os objetosde acordo com o
contexto
17
Pós-Sistemas de Informação - FAL 33
Visão abstrata
Outros conceitos fundamentais da OO
Orientação a Objetos
Classificação
PolimorfismoEspecialização
Pós-Sistemas de Informação - FAL 34
Visão abstrata
ClassificaçãoAgrupamento 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: verdeespécie: pé de pau!
cor: verdeespécie: pé de mato
• germinar• fazer sombra• germinar• fazer sombra
18
Pós-Sistemas de Informação - FAL 35
Visão abstrata
ClassificaçãoTipo: árvore
Propriedades: cor e espécieOperaçõ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 36
Visão abstrata
EspecializaçãoIdentificaçã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 adicionaisOperações originais + operações adicionais
19
Pós-Sistemas de Informação - FAL 37
Visão abstrata
EspecializaçãoTipo: árvore
Subtipo: árvore frutífera • Propriedades:• cor, espécie e fruta
• Operações:• germinar, fazer sombra edar frutos
• Propriedades:• cor, espécie
• Operações:• germinar, fazer sombra
Adicional
Adicional
Pós-Sistemas de Informação - FAL 38
Visão abstrata
Especialização
Tipo: árvore
Subtipo: árvore frutífera
Pé de mato
Pé de pau
Cajueiro
Macieira
Espe
cial
izaç
ão Generalização
20
Pós-Sistemas de Informação - FAL 39
Visão abstrata
Especialização/Generalização
Pessoa Formada Oftalmologista
Carro de corridaCarroVeiculo
Espe
cial
izaç
ão Generalização
Pós-Sistemas de Informação - FAL 40
Visão abstrata
PolimorfismoÉ a habilidade de diferentes tipos de objetos realizarem as mesmas propriedades e operações de formas diferentes
• acelerar• frear
• acelerar• frear
Tipo: veículo
Subtipo: bicicletaSubtipo: carro
21
Pós-Sistemas de Informação - FAL 41
Visão abstrata
PolimorfismoVeículo pode acelerar e frear.Acelerar e frear possuem formas diferentes pra cada subtipo
Subtipo: bicicleta Subtipo: carro
acelerar = pisar no acelerador!!!
frear = pisar no freio!!!
frear = apertar o freio!!!
acelerar = pedalar!!!
Pós-Sistemas de Informação - FAL 42
Visão abstrata
Entenderam os conceitos abstratos???Observem que os conceitos são independentes de tecnologiaSe aplicam a qualquer tipo de sistemaNenhuma 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!!!
22
Pós-Sistemas de Informação - FAL 43
Visão abstrataMã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!!!
OO
Polimorfismo
Classificação
Especialização
Pós-Sistemas de Informação - FAL 44
Visão concretaComo construir objetos do mundo real usando objetos de software????
23
Pós-Sistemas de Informação - FAL 45
• carro• rua• vaga
Visão concretaEm primeiro lugar... teremos que criá-los! Certo???
Nem tudo é “observação”!!!
Sistema de controle de tráfego
Sistema de acadêmico• aluno• professor• matrícula• nota
• produto• item• estoque
Sistema de controle de estoque
Pós-Sistemas de Informação - FAL 46
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!!!
24
Pós-Sistemas de Informação - FAL 47
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
Modelo de péde pau
Pé-de-pau A
Pé-de-pau B
Pé-de-pau C
Meu pé-de-pau
ObjetosClassenew
new
Pós-Sistemas de Informação - FAL 48
Visão concreta
Apesar da semelhança, classe é diferente de tipoUma classe define, automaticamente, um tipo e uma implementação
Tipo:Carro
Classe:Carro
Define “o que”
acelerar = pisar no acelerador!!!
frear = pisar no freio!!!
Define “como”
Tipo:Carro Define “o que”Tipo:Carro Define “o que”
Classe:CarroDefine “como”
25
Pós-Sistemas de Informação - FAL 49
Visão concreta
Todo objeto, instância de uma classe, terá:as mesmas propriedades/atributos da classeas mesmas operações/métodos da classe
A classe então é uma ferramenta para padronizar a criação de objetos de um determinado tipoE 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 50
Visão concreta
Além da classe, para tornar os conceitos abstratos definidos anteriormente em tecnologia...
Linguagem de programaçãoModelagemModelos de banco de dadosModelos formaisEtc...
... as seguintes ferramentas devem ser providas:Encapsulamento, information hiding, passagem de mensagem, herança, variáveis polimórficas e ligação dinâmica
OO
PolimorfismoEspecialização
Classificação
26
Pós-Sistemas de Informação - FAL 51
Visão concreta
As ferramentas da visão concreta dão suporte às diferentes fundações da visão abstrata
OO
PolimorfismoEspecialização
Classificação
Encapsulamento
Information Hiding
Passagem de mensagem
HerançaVariáveis polimórficas
Ligação dinâmica
Pós-Sistemas de Informação - FAL 52
Visão concreta
Concretizando classificação: EncapsulamentoAgrupamento de atributos e métodos dentro de um objeto
Objeto
Atributos
Métodos
Acesso aos atributosapenas via métodos!
O que você comeu no almoço?
27
Pós-Sistemas de Informação - FAL 53
Visão concreta
Concretizando classificação: Information HidingMostre ao cliente apenas o que ele pode ver!!!
Objeto
Atributos
Métodos
Acesso apenas aosMétodos públicos!
Privados/Protegidos
Pós-Sistemas de Informação - FAL 54
“Objeto, imprima seu nome na tela!!!”
Cliente (outro objeto) Objeto
Visão concreta
“Objeto, me dá o teu nome pra eu mostrar na tela!!!”
Cliente (outro objeto) Objeto
Concretizando classificação: Passagem de mensagemDiga ao objeto o que ele tem de fazer!!!
getNome
imprimirNome
28
Pós-Sistemas de Informação - FAL 55
Visão concreta
Concretizando especialização: HerançaInclua os atributos e métodos de uma (super)classe em suas (sub)classes Classe A
Classe B
A herda de Bou
A estende BHerança
Com
partilhamento
Pós-Sistemas de Informação - FAL 56
p = new Pessoa
p = new Aluno
p = new Professor
Polim
orfis
mo
Visão concreta
Concretizando polimorfismo: Variáveis polimórficasVariáveis/Atributos podem manipular objetos de mais de um tipo específico
Pessoa p
Tipo Nome
Mesmo tipo
Subtipo
29
Pós-Sistemas de Informação - FAL 57
• acelerar
• acelerar
Visão concreta
Concretizando polimorfismo: Ligação dinâmicaQue método executar em tempo de execução???
p = new Veiculo
p = new Carro
p = new Bicicleta
Polim
orfis
mo
Veiculo p• acelerar
• acelerar
• acelerar
• acelerar
Pós-Sistemas de Informação - FAL 58
Visão concretaMão na massa!!!
Utilize objetos da figura para exemplificar cada um dos conceitos concretos definidos anteriormente
30
Pós-Sistemas de Informação - FAL 59
AvaliaçãoMã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çãoEspecializaçãoPolimorfismo
Análise Orientada a ObjetosAnálise de requisitos
Descrição dos requisitosMétodos de análise
UML – O que é? Pra que serve? Diagrama de casos de uso
Modelo conceitualAnalisando o estudo de caso!
31
Pós-Sistemas de Informação - FAL 61
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 62
Análise de requisitos
Durante a análise de requisitos, como descrever as informações obtidas (do cliente)
Linguagem conhecida por todos os desenvolvedoresCompartilhamento dos requisitos deve ser simplesNovos desenvolvedores podem entrar na equipeA equipe pode ser completamente alterada
32
Pós-Sistemas de Informação - FAL 63
Descrição dos requisitos
Análise estruturadaModelo Entidade-RelacionamentoDiagrama de Fluxo de Dados
Cliente
Analisadados
Devolveposição
Dados em memória
Se não recebeu dados
Se recebeu dados Consulta
Memoriza
Envia sinal Requisitacliente
Esperarecepção de dados
Processos
Armazenamento
Pós-Sistemas de Informação - FAL 64
Descrição dos requisitos
Análise estruturadaModelo de fluxo de controle
Sistemas dirigidos a eventosCSPEC – Especificação de controle
PSPEC: especificação de processoTexto narrativo, equações, tabelas...Ex.: processar senha...
Dicionário de dadosListagem organizada das definições de todos os elementos pertinentes ao sistema
33
Pós-Sistemas de Informação - FAL 65
Métodos de análise
Análise orientada a objetosÉ necessário haver uma forma de mapear os requisitos em entidades do mundo realSe estamos no mundo de objetos, o fluxo de controle/dados utilizado anteriormente não é suficientePrecisamos mapear os mundos dos requisitos para os modelos conceituais de objetosEnfim...como descobrir classes a partir de um conjunto de requisitos???
Pós-Sistemas de Informação - FAL 66
Métodos de análise
Principais métodosOMT - RumbaughBoochFusion (HP)Objectory - JacobsonCoad / YourdonMartin / OdellShlaer / Mellor
34
Pós-Sistemas de Informação - FAL 67
Métodos de análise
O objetivo do curso não é apresentar processos de desenvolvimento...
... portanto, o ciclo padrão de desenvolvimento de software, comAnálise, Projeto e Implementação será seguido.Simplificação do CDI
Documentação????UML!!!!
Redefinição de fases para processos atuaisRUP – 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 68
Unified Modeling Language
Linguagem de Modelagem UnificadaOMG – 1994Booch, 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)
35
Pós-Sistemas de Informação - FAL 69
Unified Modeling Language
UML serve para…Comunicação
Desenvolvedores compartilham idéias e informações
DocumentaçãoFacilidade de manutenção e atualização do software
ConstruçãoFacilita o processo de definição do projeto de software
EspecificaçãoFacilita a especificação dos requisitos do software
ConcepçãoFacilita a atividade de abstração e mapeamento do problema para o mundo de objetos
Pós-Sistemas de Informação - FAL 70
Unified Modeling Language
Elementos da UMLEstruturais
Qual o “desenho” do software?
ComportamentaisComo o software funciona?
AgupamentoComo as entidades lógicas (objetos) e físicas (entidades computacionais) são agrupadas
36
Pós-Sistemas de Informação - FAL 71
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?
ComponentesComo as classes estão organizadas em componentes binários???
ImplantaçãoComo é a arquitetura física do sistema???
Pós-Sistemas de Informação - FAL 72
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çãoComo ocorre a interação entre as entidades em relação à agrupamentos funcional, organização ou conjunto de classes?
EstadosQuais os “retratos” do estado do sistema e de cada instância de classe em tempo de execução?
AtividadesQuais as atividades relacionadas à execução do sistema, em termos dos seus estados?
37
Pós-Sistemas de Informação - FAL 73
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 UsoModelo conceitual
Pós-Sistemas de Informação - FAL 74
Diagramas de casos de uso
Técnica simples e intuitiva Identificação dos requisitos de um sistemaMais 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.
38
Pós-Sistemas de Informação - FAL 75
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 76
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.
39
Pós-Sistemas de Informação - FAL 77
Diagramas de casos de uso
Notação de casos de uso
Caso de uso 1
Caso de uso 2
Caso de uso 3
Sistema
Ator 1
Ator 2
Ator 3
Atores
Fronteira dosistema
Casos de uso
Pós-Sistemas de Informação - FAL 78
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.
40
Pós-Sistemas de Informação - FAL 79
Diagramas de casos de uso
Exemplo: Sistema de vendas (Loja)
Comprar produto
Notificar promoções
Adicionar/Removerproduto
Cliente
Gerente
...
...
Sistema
Pós-Sistemas de Informação - FAL 80
Diagramas de casos de uso
Exemplo: Sistema de agência de viagens
Comprar passagem
AdquirirTicket
Listar passageiros
Passageiro
Atendente
...
...
Sistema
41
Pós-Sistemas de Informação - FAL 81
Diagramas de casos de uso
Exemplo: Sistema acadêmico
Ver notas
GerenciarNotas
Gerenciar disciplina
Aluno
Administrador
...
...
Sistema
Professor
...
Pós-Sistemas de Informação - FAL 82
Diagramas de casos de uso
Detalhando casos de usoGerenciar Disciplina
GerenciarDisciplinas
AdicionarDisciplina
RemoverDisciplina
EditarDisciplina
42
Pós-Sistemas de Informação - FAL 83
Diagramas de casos de uso
Casos de uso: versão estendidaCaso de uso: Adicionar disciplinaAtores: AdministradorDescrição: O administrador solicita a adição de disciplina ao sistema, repassando o nome e o código da disciplina a ser adicionada. O sistemaretorna um ok caso a operação tenha sucesso.
Seqüência de eventos
Ação do ator Resposta do Sistema1. Administrador solicita adição dedisciplina repassando nome e código.
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 84
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 atoresIdentifique as funcionalidades do sistemaRelacione as funcionalidades aos atoresEscolha 3 casos de uso para descrevê-los de forma estendida!
43
Pós-Sistemas de Informação - FAL 85
Modelo conceitual
Já sabemos analisar os requisitos do software......vamos agora enxergar o problema de acordo com os conceitos da orientação a objetosObjetivo: 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 86
Modelo conceitual
Notação UML para classe
Atributos
Bicicletamarchascor
Nome
Bicicleta
Métodos
Bicicleta
marchascor
pedalarfrear
44
Pós-Sistemas de Informação - FAL 87
Modelo conceitual
Em análise, os métodos das classes podem ser omitidosA idéia do modelo conceitual é ter uma primeira visão de como os objetos do sistema se relacionamRelacionam????
Tipos de relacionamento:HerançaAssociaçãoAgregação/Composição
Pós-Sistemas de Informação - FAL 88
Modelo conceitual
Descrevendo herança (relacionamento “é um”)Veiculo
Bicicleta
Veiculo
Bicicleta Carro
CarroEsportivo CarroCorrida
45
Pós-Sistemas de Informação - FAL 89
Modelo conceitual
Associação (relacionamento comum)
Aluno
Disciplina
Professor
ensina
estuda
matricula-se
AssuntoBidirecional
Direção do relacionamentoRótulos
Pós-Sistemas de Informação - FAL 90
Modelo conceitual
Agregação/Composição (“é composto de”)
Carro
Roda Motor Painel
Velocimetro Relógio Porta luvas
46
Pós-Sistemas de Informação - FAL 91
Modelo conceitual
Cardinalidade
Carro
Roda Motor Painel
Velocimetro Relógio Porta luvas
Motorista
14 1
1 1 1
* 0..*
Pós-Sistemas de Informação - FAL 92
Modelo conceitualMão na Massa!!!
Crie um modelo conceitual para o sistema de informação de sua empresa
Identifique as entidades do modeloIdentifique as classes envolvidasDefina as associações entre as classes
47
Pós-Sistemas de Informação - FAL 93
AvaliaçãoMão na Massa!!!
Realize uma análise orientada a objetos do estudo de caso
Casos de usoModelo conceitual
Projeto Orientado a Objetos
Explodindo casos de uso: diagramas de interaçãoDefinindo classes, atributos e métodos: diagrama de classes
Agrupando funcionalidades: pacotes Diagrama de pacotes
Diagramas de ImplementaçãoProjetando o estudo de caso!
48
Pós-Sistemas de Informação - FAL 95
Explodindo casos de uso: diagramas de interação
Como mapear os requisitos descritos nos casos de uso em métodos das classes???
Caso de uso3
Caso de uso2
Caso de uso 1
Ator 1
Ator 3
...
...
Ator 2
...
Classe A
Classe C
Classe B
Classe D
Pós-Sistemas de Informação - FAL 96
Explodindo casos de uso: diagramas de interação
Diagramas de interaçãomodelagem dos aspectos dinâmicos do sistemamostra uma interação formada por um conjunto de objetos e seus relacionamentos, incluindo as mensagens que poderão ser trocadosentre elesInteração = Objetos + Vínculos + MensagensDois tipos
Diagramas de seqüênciaDiagramas de colaboração
49
Pós-Sistemas de Informação - FAL 97
Explodindo casos de uso: diagramas de interação
Diagramas de SeqüênciaDescrevem um comportamento internoMostram os eventos entre objetosDescrevem uma interação no tempoIdeal para especificações de tempo realNão mostram os tipos de associação entre objetos
Pós-Sistemas de Informação - FAL 98
Explodindo casos de uso: diagramas de interação
Diagramas de SeqüênciaPossui duas características que os diferencia de diagramas de colaboração:
Linha de vida do objetoRepresenta a existência de um objeto de acordo com o tempo
Foco de controleRepresenta o período em que o objeto está executando algum processamento
50
Pós-Sistemas de Informação - FAL 99
Explodindo casos de uso: diagramas de interação
Diagramas de SeqüênciaQue interação/cenário iremos modelar? Conexão telefônica!
O chamador inicia a chamada
1
Sinal de linha
2
tuuuuuuuuuuuuuu....
uuuuuuuuuu....
Discar
3
Toca no receptor
4
trimmm... tr
immm
Toca no chamador
5trimmm... trimmm
6
Conexão estabelecida!
Pós-Sistemas de Informação - FAL 100
Explodindo casos de uso: diagramas de interação
Diagramas de Seqüência
Chamador :Telefone :Recebedor
levanta telefone
ouve o sinal
discatoca campainha
toca campainhaatende
pare de tocar
pare de tocar
Linh
a de
tem
po
t = 0s
t = 15s
t = 5s
t = 20s
t = 30s
Objetos
Ator
Linha de vida
Fim da linha!
Período deatividade
51
Pós-Sistemas de Informação - FAL 101
Explodindo casos de uso: diagramas de interação
Diagramas de ColaboraçãoRepresentam interações entre classesO eixo dos tempos não está explicitoAs classes/objetos trocam mensagens, através de vínculos, ligações estabelecidas entre elasSão semelhantes aos diagramas de seqüência, contendo as mesmas informações
Pós-Sistemas de Informação - FAL 102
Explodindo casos de uso: diagramas de interação
Diagramas de ColaboraçãoPossui 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üênciaOrdem temporal de uma mensagem
52
Pós-Sistemas de Informação - FAL 103
Explodindo casos de uso: diagramas de interação
Diagramas de Colaboração
Usuário
:GerenteMaterial
:Livro
1:procura assunto
2:fornece opções
3:pede detalhes
3.1:pede detalhes
3.2:detalhes
Objetos
Ator
Seqüência
Pós-Sistemas de Informação - FAL 104
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
GerenciarNotas
Gerenciar disciplina
Aluno
Administrador
...
...
Professor
...
53
Pós-Sistemas de Informação - FAL 105
Explodindo casos de uso: diagramas de interação
Explodindo “Ver boletim”
Quais as entidades envolvidas?Atores
Entidades do modelo conceitual
Ver boletim
Aluno
Aluno
Boletim
Nota
Disciplina
Pós-Sistemas de Informação - FAL 106
Explodindo casos de uso: diagramas de interação
Descrição estendida do caso de uso
Caso de uso: Ver notasDescrição: o aluno solicita ao sistema a visualização do boletim, o sistemaretorna o boletim do aluno de acordo com as disciplinas que ele faz parte.Seqüência de eventos:
Ação do ator Resposta do sistema1. Aluno solicita a visualização do seuboletim repassando sua matrícula.
2. Sistema recupera boletim do aluno.
3. Sistema exibe o boletim ao aluno.
54
Pós-Sistemas de Informação - FAL 107
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”.
Aluno
Boletim
Nota
DisciplinaAluno
Atores Entidades do modelo conceitual
Pós-Sistemas de Informação - FAL 108
Explodindo casos de uso: diagramas de interação
Diagrama de seqüência
aluno1:Aluno :Nota:Boletim :DisciplinaAluno novo(“Hyggo”)
exibir()getValor()
retorna valor
retorna nome
getNome()
mostrarNaTela
55
Pós-Sistemas de Informação - FAL 109
Explodindo casos de uso: diagramas de interação
Diagrama de colaboração
aluno1:Aluno
:Nota
:Boletim
:Disciplina
Aluno
1:novo(“Hyggo”) 2:exibir()
2.2:retorna va
lor
2.5:mostrarNaTela
2.1:getValor() 2.4:retorna valor
2.3:getValor()
Pós-Sistemas de Informação - FAL 110
Definindo classes, atributos e métodos: diagrama de classes
Reduzindo o abismo
Ver boletim
aluno1:Aluno :Nota:Boletim :Disciplina
novo(“Hyggo”)exibir()
getValor()
retorna valor
retorna nome
getNome()
mostrarNaTela
Setas chegando!!! Métodos implementados pela classe alvo!!!
Algumas são retornos demétodos!!!
56
Pós-Sistemas de Informação - FAL 111
Definindo classes, atributos e métodos: diagrama de classes
Reduzindo o abismoTransformando um modelo conceitual em um diagrama de classes!!!
Aluno
novo(nome):nulo
Boletim
+ exibir():nulo- mostrarNaTela()
Disciplina
+ getNome():nome
Nota
+ getValor():valor
cursa
Métodos
???
Retornos
Parâmetro
Pós-Sistemas de Informação - FAL 112
Definindo classes, atributos e métodos: diagrama de classes
Mas o que é “valor” e “nome”??? Melhor trabalhar com os tipos!!!
Aluno
novo(nome):nulo
Disciplina
+ getNome():nome
Nota
+ getValor():valor
???
???
???
Tipo: StringRep: cadeia de caracteresExemplo: “joão”, “carro”,...
Tipo: intRep: número inteiroExemplo: 10, 9, 8923,...
Tipo primitivo (POO)
57
Pós-Sistemas de Informação - FAL 113
Definindo classes, atributos e métodos: diagrama de classes
Diagrama de classesDefinindo tipos de parâmetros e retornos
Aluno
novo(String nome):void
Boletim
+ exibir():void- mostrarNaTela():void
Disciplina
+ getNome():String
Nota
+ getValor():int
cursa
Tipo do retorno
Tipo do parâmetro
Pós-Sistemas de Informação - FAL 114
Agrupando funcionalidades: pacotes
Na medida em que cresce o número de classes vai ficando mais difícil entender o projeto
Classes acopladasMuitos relacionamentosClasses não separadas por contexto
Interface
Relatório
Armazenamento
Negócio
Contextos das classes
CAOS!!!
58
Pós-Sistemas de Informação - FAL 115
Agrupando funcionalidades: pacotes
Facilidade de entendimento e manutenção do programa
Alta coesão das funcionalidadesAgrupar funcionalidades relacionadas em “pacotes”BD
Interface
Relatório
Negócio
Pós-Sistemas de Informação - FAL 116
Diagrama de pacotes
Relacionamentos entre os diversos pacotes podem ser descritos em um diagrama de pacotes
Banco de dados
Interface
Relatório
Negócio
Dependências
59
Pós-Sistemas de Informação - FAL 117
Diagramas de implementação
Descrição do projeto físico necessário à execução do software
Diagrama de componentesDescrição de relacionamentos entre módulos binários
Diagrama de implantaçãoDescrição de componentes físicos com algum tipo de processamento
Pós-Sistemas de Informação - FAL 118
Diagramas de implementação
Diagrama de componentesClasses e pacotes, quando compilados, tornam-se módulos binários... de execução de softwareNo caso de Java, os módulos binários são encapsulados em arquivos .JAR (Java ARchive)No diagrama de componentes tem-se uma visão do relacionamento entre módulos binários do software sendo desenvolvido
60
Pós-Sistemas de Informação - FAL 119
Diagramas de implementação
Diagrama de componentes
agenda.jar
usuario.ini
relatorio.jar
dados.xml
Unidadesbinárias
(componentes)
Dependências
Pós-Sistemas de Informação - FAL 120
Diagramas de implementação
Diagrama de implantaçãoArquitetura física do sistemaUtilizado para descrever o sistema do ponto de vista de hardware
NomeNó = qualquer dispositivo com
capacidade de processamento
61
Pós-Sistemas de Informação - FAL 121
Diagramas de implementação
Diagrama de implantação
ServidorBD
ServidorImpressão
Impressora
ClienteAgenda
1
1
**
Cardinalidade
Pós-Sistemas de Informação - FAL 122
Diagramas de implementação
A junção dos diagramas descreve a estrutura completa do software de forma hierárquica
Impl
anta
ção
Cliente (Agenda)
Paco
tes
agenda.jar
Cla
sses
Negócio
62
Pós-Sistemas de Informação - FAL 123
Projetando o estudo de caso!Realize o projeto orientado a objetos do estudo de caso
A partir dos diagramas de caso de uso crie diagramas de interaçãoSeqüência e colaboração
A partir dos diagramas de interação crie o diagrama de classe completo
ClassesAtributosMétodosVisibilidadeCardinalidadeRelacionamentosPacote “agenda”
Programação Orientada a ObjetosDa modelagem ao software
Introdução à linguagem Java“Oi, eu sou um programa Java!”
Mapeando conceitos para elementos da linguagemProgramando o estudo de caso!
63
Pós-Sistemas de Informação - FAL 125
Da modelagem ao softwareComo mapear os modelos orientados a objetos em programas???
Mas antes disso...... o que é um programa???
???
Pós-Sistemas de Informação - FAL 126
Da modelagem ao software
O que são programas?Descrições de como os computadores devem operar para realizar os serviços que desejamos que façamÉ apenas a descrição de uma atividade em potencialPara obter o serviço é necessário instruir o computador a executar o programaUm programa em execução é um processo
64
Pós-Sistemas de Informação - FAL 127
Da modelagem ao software
Em que consiste um programa?Uma seqüência de instruções que um programa deve seguirEntão... construir um programa é determinar estas seqüência de instruçõesExemplo: programa pra calcular média aritmética
1: calcule a média aritmética de dois números
Está correto! Mas o computador não vai entender!
Pós-Sistemas de Informação - FAL 128
Da modelagem ao software
Programar é detalhar!!!
1: leia os números cuja média será calculada2: some os números3: divida a soma dos números pela quantidade de números4: imprima o resultado
Está mais detalhado! Mas o computador entende esta linguagem???
65
Pós-Sistemas de Informação - FAL 129
Da modelagem ao software
Linguagens de programaçãoOs programas escritos anteriormente estão em portuguêsMas o computador não entende portuguêsLinguagens de programação são projetadas para serem entendidas pelo computadorSendo assim, ao escrever um programa utilizando uma LP, este poderá ser “interpretado” e executado pelo computador
Pós-Sistemas de Informação - FAL 130
Da modelagem ao software
Linguagens de programaçãoEm geral provê:
Um conjunto básico de instruçõesMecanismos para compor instruções
Repetição, seqüência, alternativa
Mecanismos de abstraçãoProcedimentos e dados
66
Pós-Sistemas de Informação - FAL 131
Introdução à Java
O que é Java?Uma das mais modernas linguagens de programação OO que existem atualmenteImplementa de forma clara os conceitos de OOÉ uma “extensão” da linguagem C/C++
Mais fácil de utilizarMais robusta!!!
Pós-Sistemas de Informação - FAL 132
Introdução à Java
Programação não é o foco do cursoApenas conceitos básicos serão apresentados
Necessários à execução do programa
Apenas a parte OO será abordada, respondendo à pergunta:
“Como ocorre o mapeamento dos modelos UML para Java”
Para realmente criar programasEstudar algoritmosEstudar a sintaxe da linguagemPraticar muito!!!
67
Pós-Sistemas de Informação - FAL 133
Introdução à Java
Criando uma classe-exemploBicicleta
public class Bicicleta{private int marchas = 2;private String cor = “amarelo”;
public int getMarchas(){return marchas;
}public String getCor(){
return cor;}
}
Bicicleta- marchas:int- cor: string+ getMarchas():int+ getCor(): string
Pós-Sistemas de Informação - FAL 134
Introdução à Java
Tipos de dados em Java (primitivos)Inteiros: byte / short / int / longReais: float / doubleOutros: char / boolean / void
Não são classes, apenas tipos
byte numeroPequeno = 245;
int numeroMaior = 245000;
char primeiraLetra = ‘H’;
double minhaNota = 9.5;
boolean souBonito = true;
68
Pós-Sistemas de Informação - FAL 135
Introdução à Java
Mas como o computador entende Java???Compilador/Interpretador
0000111101001010010011010110
10100110public class Bicicleta{...
}
Compilador/Interpretador
Java Binário
Pós-Sistemas de Informação - FAL 136
“Oi, eu sou um programa Java”
Onde é que a brincadeira começa???Nas classes são definidas apenas as entidades, seus atributos e operaçõesMas quem invoca/solicita as operações???Precisamos de um método principal onde a execução do programa começa!!!Em Java, o método principal = main
69
Pós-Sistemas de Informação - FAL 137
“Oi, eu sou um programa Java”
public class TestePrincipal{
public static void main(String args[]){
System.out.println(“Oi, eu sou um programa Java”);
}
}
TestePrincipal (Exibindo a mensagem acima)Qualquer classe pode ter um método principal Esta é a sintaxe exata do
método!!!
Comando para exibirmensagens na tela!!!
Pós-Sistemas de Informação - FAL 138
“Oi, eu sou um programa Java”
public class TestePrincipal{
public static void main(String args[]){double nota1 = 5;double nota2 = 6;double media = (nota1+nota2)/2;System.out.println(“Média:” + media);
}
}
Definindo variáveisExemplo: Cálculo da média de duas notas: 5 e 6
Variáveis
70
Pós-Sistemas de Informação - FAL 139
“Oi, eu sou um programa Java”
Atribuição: =int a = 2; char letra = ‘c’; boolean acesa = true;
Aritméticos: + - * / %2 + 2, a - a, 3*a, letra + letra
Unários: ++ --a++; a = a+1; a--; a=a-1;
Lógicos: = = != < > <= >2 == 2; a == a; 5 > 3; a != 3; true != false;
Pós-Sistemas de Informação - FAL 140
“Oi, eu sou um programa Java”
public class TestePrincipal{
public static void main(String args[]){int a = 1;System.out.println(a);a++;System.out.println(a);System.out.println(a > 2);System.out.println(a != 1);
}
}
Utilizando operadores
71
Pós-Sistemas de Informação - FAL 141
“Oi, eu sou um programa Java”
Até agora, só classes... e como criar objetos a partir de uma classe???
Operador newpublic class TestePrincipal{
public static void main(String args[]){
Bicicleta minhaBike = new Bicicleta();
System.out.println(“Cor:” + minhaBike.getCor());System.out.println(“Marchas:” + minhaBike.getMarchas());
}
}
Pós-Sistemas de Informação - FAL 142
“Oi, eu sou um programa Java”
Parametrizando o método construtor de Bicicleta
public class Bicicleta{private int marchas;private String cor;
public Bicicleta(int marchas, String cor){this.marchas = marchas;this.cor = cor;
}
Método construtor com mesmo nome da classe e sem retorno
Não inicializados!
Parâmetros necessáriosà construçãoAtribuição: this resolve
problema de nomes duplicado
72
Pós-Sistemas de Informação - FAL 143
“Oi, eu sou um programa Java”
Construindo o objeto via construtor parametrizadopublic class TestePrincipal{
public static void main(String args[]){
Bicicleta minhaBike1 = new Bicicleta(2, “verde”);System.out.println(“Cor 1:” + minhaBike1.getCor());System.out.println(“Marchas 1:” + minhaBike1.getMarchas());
Bicicleta minhaBike2 = new Bicicleta(7, “azul”);System.out.println(“Cor 2:” + minhaBike2.getCor());System.out.println(“Marchas 2:” + minhaBike2.getMarchas());
}}
Pós-Sistemas de Informação - FAL 144
“Oi, eu sou um programa Java”Mão na massa!!!
Crie as classes Pessoa e CarroCrie dois atributos e seus métodos de acesso (get)Utilize a classe TestePrincipal para criar dois objetos do tipo Pessoa e dois objetos do tipo Carro com atributos diferentes
73
Pós-Sistemas de Informação - FAL 145
Mapeando conceitos para elementos da linguagem
Como fazer herança???
Carro de F1
Carro
Carro
CarroF1
- cor:String;- chassi:int;
- tipoBico:String;
+ getCor():String;+ getChassi():int;
+ getTipoBico():String;
Pós-Sistemas de Informação - FAL 146
Mapeando conceitos para elementos da linguagem
Carro
CarroF1
- cor:String;- chassi:int;
- tipoBico:String;
+ getCor():String;+ getChassi():int;
+ getTipoBico():String;
public class Carro{private String cor;private int chassi;public Carro(String cor, int chassi){
this.cor = cor;this.chassi = chassi;
}...gets...
}public class CarroF1 extends Carro{
private String tipoBico;public CarroF1(String cor, int chassi, String tipoBico){
super(cor, chassi);this.tipoBico = tipoBico;
}...getTipoBico...
}
74
Pós-Sistemas de Informação - FAL 147
Mapeando conceitos para elementos da linguagem
Associação e Agregação/Composição
Carro
Marcha Roda Volante1 4 1
Atributo - coleção
Aluno
ProfessorAtributos simples
Pós-Sistemas de Informação - FAL 148
Mapeando conceitos para elementos da linguagem
Agregação/Composição e AssociaçãoAtributos simples (relacionamentos 1 para 1)Um atributo para cada instância??? Ou seja, n atributos???
Carro
Marcha Volante1 1
public class Carro{private Marcha marcha;private Volante volante;public Carro(Marcha marcha, Volante volante){
this.marcha = marcha; this.volante = volante;
}}
75
Pós-Sistemas de Informação - FAL 149
Mapeando conceitos para elementos da linguagem
Agregação/ComposiçãoAtributos de coleção (relacionamentos 1 para n)Um atributo para cada instância??? Ou seja, n atributos???
Carro
Roda
public class Carro{private Marcha marcha;private Volante volante;private Roda roda1;private Roda roda2;private Roda roda3;private Roda roda4;...
}
4
Pós-Sistemas de Informação - FAL 150
Mapeando conceitos para elementos da linguagem
Agregação/ComposiçãoProblema??? E se for um time de futebol???Relacionamento entre Time e Jogador é 1 para 12.
Time
Jogador12 public class Time{
private Jogador jogador1;private Jogador jogador2;...private Jogador jogador12;...
}
76
Pós-Sistemas de Informação - FAL 151
Mapeando conceitos para elementos da linguagem
Agregação/ComposiçãoPrecisamos de um “saco” para guardar vários objetos de um mesmo tipoPrecisamos de um array
Array de rodas!!!
Roda[ ] rodas = new Roda[4];
Atributo = coleção de “Roda”
Pós-Sistemas de Informação - FAL 152
Mapeando conceitos para elementos da linguagem
Agregação/ComposiçãoUsando array!!!
Carro
Roda4 public class Carro{
private Roda[ ] rodas;}
77
Pós-Sistemas de Informação - FAL 153
Mapeando conceitos para elementos da linguagem
Agregação/ComposiçãoUsando array!!!public class TestePrincipal{
public static void main(String args[]){Marcha minhaMarcha = new Marcha();Volante meuVolante = new Volante();Roda[ ] rodas = new Roda[4];rodas[0] = new Roda(“Dianteira direita”);rodas[1] = new Roda(“Dianteira esquerda”);rodas[2] = new Roda(“Traseira direita”);rodas[3] = new Roda(“Traseira esquerda”);Carro meuCarro = new Carro(minhaMarcha, meuVolante, rodas);
}}
Pós-Sistemas de Informação - FAL 154
Mapeando conceitos para elementos da linguagem
Mão na massa!!!Implementem o exemplo completo!!!
Carro
Marcha Roda Volante1 4 1
- posicao:String
+ getPosicao():String
+ getRodas()
78
Pós-Sistemas de Informação - FAL 155
Programando o estudo de caso
Implemente o estudo de caso modelado anteriormente (Agenda)
1. Crie o pacote agenda!!!Comando package!!! Use o Eclipse!!!
2. Crie as classes e os seus relacionamentos3. Crie uma ClassePrincipal que realiza uma operação de
busca de contatos por nomes
Pós-Sistemas de Informação - FAL 156
Programando o estudo de caso
Pra facilitar o entendimento... todos iniciarão programando de acordo com o mesmo projeto simples
public class ClassePrincipal{public static void main(String args[]){
Agenda minhaAgenda = new Agenda();Contato contato = minhaAgenda.buscarContato(“Hyggo”);System.out.println(“Nome:” + contato.getNome());System.out.println(“Endereço:” + contato.getEnd());System.out.println(“Telefone:” + contato.getTelefone());System.out.println(“E-mail:” + contato.getEmail());
}}
AgendaContato
+ buscarContato():Contato- nome:String- end:String- telefone:String- email:String
5
+ gets...
79
Pós-Sistemas de Informação - FAL 157
Programando o estudo de caso
Vocês vão precisar de três novos comandos: if, for e equals
Estrutura condicional – IFIf (condição){
...}else{...}Exemplo:
if (a == b){ System.out.println(“A e B são iguais!!!”)
}else{System.out.println(“A e B são diferentes!!!”)
}
Pós-Sistemas de Informação - FAL 158
Programando o estudo de caso
Vocês vão precisar de três novos comandos: if, for e equals
Estrutura de repetição – FORfor (declaração de variáveis locais ; condição de parada; incrementos){
\\código executado repetidas vezes}
for (int i=0; i<10; i++){System.out.println(“Contador:” + i);
}
80
Pós-Sistemas de Informação - FAL 159
Programando o estudo de caso
Vocês vão precisar de três novos comandos: if, for e equals
Método de comparação entre objetos – equals“objeto.equals(outroObjeto)” = true/falseEx.: “hyggo”.equals(“hyggo”) = true; Ex.: “hyggo”.equals(“HYGGO”) = false;
String nome1 = “João”;String nome2 = “José”;if (nome1 == nome2){
System.out.println(“Nomes são iguais!!!”)}else{
System.out.println(“Nomes são diferentes!!!”)}
Pós-Sistemas de Informação - FAL 160
Programando o estudo de caso
Utilizando for, if e equals no método buscarContato
public class Agenda{private Contato[] contatos = new Contato[20];
public Contato buscarContato(String nome){for (int i=0; i<this.contatos.length;i++){
if (contato[i].getNome().equals(nome)){return contato[i];
}}System.out.println("Contato não encontrado!");return new Contato(“”,””,””,””);
}}
top related