• Nenhum resultado encontrado

Projeto de Software Orientado a Objeto

N/A
N/A
Protected

Academic year: 2021

Share "Projeto de Software Orientado a Objeto"

Copied!
29
0
0

Texto

(1)

Prof. Gilberto B. Oliveira Prof. Gilberto B. Oliveira

Projeto de Software

Projeto de Software

Orientado a Objeto

Orientado a Objeto

Ciclo de Vida de Produto de Software

Ciclo de Vida de Produto de Software

(PLC)

(PLC)

Analisando um problema e modelando

Analisando um problema e modelando

uma solução

uma solução

(2)

Estágios do Ciclo de Vida

Estágios do Ciclo de Vida

de Produto de Software

de Produto de Software

RUPRUP

XPXP

TDD (Design Orientado a Teste)TDD (Design Orientado a Teste)

PLCPLC AnáliseAnálise DesignDesign DesenvolvimentoDesenvolvimento TesteTesteImplementaçãoImplementação ManutençãoManutenção

(3)

Análise

Análise

Investigação de um problema que se deseja

Investigação de um problema que se deseja

resolver com um produto de software:

resolver com um produto de software:

Definir de maneira clara o problema a ser Definir de maneira clara o problema a ser resolvido

resolvido

O nicho de mercado a ser atendidoO nicho de mercado a ser atendido O Sistema a ser criadoO Sistema a ser criado

O limite de um problema também é conhecido como o O limite de um problema também é conhecido como o escopo de um projeto

escopo de um projeto

Identificação dos sub-componentes chaves para Identificação dos sub-componentes chaves para compor o produto de software como um todo

(4)

Design, Desenvolvimento e

Design, Desenvolvimento e

Teste

Teste

DesignDesign

Criar o modelo a partir dos requisitos encontrados na etapa Criar o modelo a partir dos requisitos encontrados na etapa de analise

de analise

DesenvolvimentoDesenvolvimento

Criar os componentes a partir dos modelos gerados na Criar os componentes a partir dos modelos gerados na etapa de design

etapa de design

TesteTeste

Verifica se os componentes atendem aos requisitos Verifica se os componentes atendem aos requisitos

funcionais e não funcionais modelados na etapa de design funcionais e não funcionais modelados na etapa de design

Teste de UnidadeTeste de Unidade

(5)

Implementação, manutenção

Implementação, manutenção

e EOL

e EOL

ImplementaçãoImplementação

Tornar o programa disponível ao usuário através de um Tornar o programa disponível ao usuário através de um release (distribuição);

release (distribuição);

FCS (Primeira Aquisição do Cliente)FCS (Primeira Aquisição do Cliente)

ManutençãoManutenção

Corrigir problemas do produto;Corrigir problemas do produto;

Distribuir o produto como uma nova versão.Distribuir o produto como uma nova versão.

End-of-Life (EOL) Fim de linhaEnd-of-Life (EOL) Fim de linha

Indica aos usuário do produto que não existirá mais Indica aos usuário do produto que não existirá mais atualização;

atualização;

Indica aos usuários que outro produto, melhorado, já está Indica aos usuários que outro produto, melhorado, já está sendo distribuído.

(6)

Por que seguir uma

Por que seguir uma

metodologia?

metodologia?

Garante que o produto será criado e entregue

Garante que o produto será criado e entregue

Reduzindo o tempo de desenvolvimentoReduzindo o tempo de desenvolvimento

Aumentando a qualidade do produto de softwareAumentando a qualidade do produto de software Aumentando o retorno sobre o investimento (ROI)Aumentando o retorno sobre o investimento (ROI)

Não seguir uma metodologia pode acarretar:

Não seguir uma metodologia pode acarretar:

Auto custo de manutençãoAuto custo de manutenção

(7)

Prof. Gilberto B. Oliveira Prof. Gilberto B. Oliveira

Análise orientada a

Análise orientada a

objeto

objeto

Estudo de Caso Estudo de Caso

Identificando o domínio problema e os objetos Identificando o domínio problema e os objetos

envolvidos envolvidos

Identificando atributos e operações de objetos Identificando atributos e operações de objetos

Modelando e executando classes Java Modelando e executando classes Java

(8)

Estudo de caso

Estudo de caso

Aplicação para controlar a venda de camisas de uma loja de Aplicação para controlar a venda de camisas de uma loja de roupas

roupas

Cada camisa tem um código de identificação, uma ou mais Cada camisa tem um código de identificação, uma ou mais cores (identificadas por código) um ou mais tamanhos, uma cores (identificadas por código) um ou mais tamanhos, uma

descrição do produto e um preço. descrição do produto e um preço.

A loja aceita cheques e os principais cartões de créditoA loja aceita cheques e os principais cartões de crédito Os consumidores podem fazer seus pedidos por telefone Os consumidores podem fazer seus pedidos por telefone

através do Serviço de Atendimento ao Cliente ou através de através do Serviço de Atendimento ao Cliente ou através de

um formulário enviado por e-mail ou por fax um formulário enviado por e-mail ou por fax

A loja gostaria de automatizar os pedidos a partir de um A loja gostaria de automatizar os pedidos a partir de um catálogo criado para a Internet

(9)

Estudo de caso

Estudo de caso

Assim que os pedidos fossem feitos no sistema Assim que os pedidos fossem feitos no sistema

seriam feitas as verificações das quantidades dos itens seriam feitas as verificações das quantidades dos itens

pedidos. Se um ou mais itens não estiverem pedidos. Se um ou mais itens não estiverem disponíveis então o pedido é suspenso até o disponíveis então o pedido é suspenso até o

reabastecimento do estoque. Após todos os itens reabastecimento do estoque. Após todos os itens

serem disponibilizados o pagamento é verificado e o serem disponibilizados o pagamento é verificado e o

pedido é submetido ao estoque para ser empacotado e pedido é submetido ao estoque para ser empacotado e

enviado ao endereço do cliente. enviado ao endereço do cliente.

Se o pedido for feito por telefone é emitido um Se o pedido for feito por telefone é emitido um número de pedido ao cliente para que ele possa número de pedido ao cliente para que ele possa

acompanhar o processo. acompanhar o processo.

(10)

Análise do sistema

Análise do sistema

Identificando o domínio do problema

Identificando o domínio do problema

Identificando os objetos

Identificando os objetos

“Coisas” relevantes para o domínio do problemaCoisas” relevantes para o domínio do problema

Está contido no domínio do problema?Está contido no domínio do problema? É necessário para que o sistema funcione?É necessário para que o sistema funcione?

É útil para a iteração entre o usuário e o sistema?É útil para a iteração entre o usuário e o sistema?

Existência independente de outros objetosExistência independente de outros objetos

ATENÇÃO aos atributos que possuem outros atributosATENÇÃO aos atributos que possuem outros atributos ATENÇÃO aos objetos que não possuem atributosATENÇÃO aos objetos que não possuem atributos

(11)

Análise do sistema

Análise do sistema

Identificando atributos e operações dos

Identificando atributos e operações dos

objetos

objetos

AtributosAtributos

Descrevem o estado do objetoDescrevem o estado do objeto

Podem ser dados (Descrição, Cor, etc)Podem ser dados (Descrição, Cor, etc)

Podem ser outros objetos (Pedido, Produto, etc)Podem ser outros objetos (Pedido, Produto, etc)

OperaçõesOperações

Comportamentos que modificam o estado dos objetosComportamentos que modificam o estado dos objetos

Atributos que referenciam outros objetosAtributos que referenciam outros objetos

Obs: Crie nomes que definem de maneira

Obs: Crie nomes que definem de maneira

clara os atributos e objetos representados

clara os atributos e objetos representados

(12)

Classe

Classe

Grupo cujos membros têm certos atributos em

Grupo cujos membros têm certos atributos em

comum.

comum.

Cada objeto é uma instância de uma classe

Cada objeto é uma instância de uma classe

Tem os mesmos Tem os mesmos atributosatributos e executa as mesmas e executa as mesmas

operações

operações que outros objetos da mesma classe que outros objetos da mesma classe

Pode ter Pode ter atributosatributos com valores diferentes em com valores diferentes em

relação a outros objetos relação a outros objetos

(13)

Modelagem de Classes

Modelagem de Classes

(14)

Modelagem de Classes

Modelagem de Classes

(15)

Desenvolvimento

Desenvolvimento

Classes

Classes

Primeira letra maiúscula e as demais minúsculasPrimeira letra maiúscula e as demais minúsculas Palavras compostas: As primeiras letras de cada Palavras compostas: As primeiras letras de cada

palavra maiúsculas palavra maiúsculas

Sem cedilha, sem espaço, sem acento!Sem cedilha, sem espaço, sem acento!

Normalmente é um substantivo. Exemplo:Normalmente é um substantivo. Exemplo:

Veiculo, FormaPagamento, etc.Veiculo, FormaPagamento, etc.

Evite usar Anacrônico (siglas) exceto em caso de Evite usar Anacrônico (siglas) exceto em caso de

siglas usuais DVD, CPF, URL, etc. siglas usuais DVD, CPF, URL, etc.

(16)

Desenvolvimento

Desenvolvimento

Atributos

Atributos

SubstantivosSubstantivos

Definem as características de um objetoDefinem as características de um objeto

Primeiras letras minúsculasPrimeiras letras minúsculas

Sem espaço, sem cedilha e sem acentoSem espaço, sem cedilha e sem acento

Palavras compostas com as primeiras letras Palavras compostas com as primeiras letras

minúsculas e a primeira letra da segunda palavra minúsculas e a primeira letra da segunda palavra

maiúscula. Exemplo: maiúscula. Exemplo:

(17)

Desenvolvimento

Desenvolvimento

Métodos

Métodos

VerbosVerbos

Ações que os objetos das classes podem executar.Ações que os objetos das classes podem executar.

Nomes dos métodos seguidos de parêntesesNomes dos métodos seguidos de parênteses

Primeiras letras minúsculasPrimeiras letras minúsculas

Sem espaço, sem cedilha e sem acentoSem espaço, sem cedilha e sem acento

Palavras compostas com as primeiras letras Palavras compostas com as primeiras letras

minúsculas e a primeira letra da segunda palavra minúsculas e a primeira letra da segunda palavra

maiúscula. Exemplo: maiúscula. Exemplo:

(18)

Estrutura de Classes

Estrutura de Classes

Declaração da classe

Declaração da classe

Declaração e inicialização de atributos

Declaração e inicialização de atributos

variáveis (opcional)

variáveis (opcional)

Métodos (opcional)

Métodos (opcional)

Comentários (opcional)

Comentários (opcional)

Obs: Uma classe não precisa

Obs: Uma classe não precisa

obrigatoriamente

(19)

Estrutura de Classes:

public class Camisa {

public int codCamisa = 0; public char cor = 'B';

public String descricao = “Informe Descrição”; public double preco = 0.00;

public char tamanho = 'M'; public void mostraCamisa() {

System.out.println(“Código:” + codCamisa); . . System.out.println(“Tamanho:” + tamanho); } }

(20)

Desenvolvimento de

Desenvolvimento de

Classes

Classes

Restrições:

Restrições:

Uso de arquivos de texto para a criação de classes:Uso de arquivos de texto para a criação de classes:

Cada arquivo de texto deve ter uma única classe.Cada arquivo de texto deve ter uma única classe. A classe deve ter o mesmo nome do arquivoA classe deve ter o mesmo nome do arquivo

O nome do arquivo deverá ter a extensão O nome do arquivo deverá ter a extensão .java.java definida definida

Exemplo:Exemplo:

A classe A classe CamisaCamisa deverá estar contida em um arquivo deverá estar contida em um arquivo chamado Camisa

chamado Camisa.java.java

(21)

Desenvolvimento de

Desenvolvimento de

Classes

Classes

Método:

Método:

Exemplo de implementação: Classe CamisaExemplo de implementação: Classe Camisa

[modificador] tipo_retorno nomeMetodo([argumentos]){

[modificador] tipo_retorno nomeMetodo([argumentos]){

//comentário de linha//comentário de linha /* comentário de/* comentário de bloco */bloco */ comando1;comando1; .. .. .. comandoN;comandoN; } }

(22)

Métodos

Métodos

Modificador:Modificador:

Modo como o método será acessado (Modo como o método será acessado (publicpublic, , privateprivate, ,

protected

protected ou ou packagepackage))

Tipo_retorno:Tipo_retorno:

Tipos de dado que o método retorna (Tipos de dado que o método retorna (intint, , doubledouble, ou , ou voidvoid para nulo, etc)

para nulo, etc)

Nome do método:Nome do método:

Qualquer nome que não seja uma palavra reservada Java.Qualquer nome que não seja uma palavra reservada Java.

Argumentos:Argumentos:

Variáveis cujos valores são passados para o métodoVariáveis cujos valores são passados para o método

Comando: Sequência de comandos que o método Comando: Sequência de comandos que o método

executa. executa.

(23)

Classe de Teste

Classe de Teste

Objetivo:Objetivo:

Criar e instanciar objetos da classe a ser testada.Criar e instanciar objetos da classe a ser testada.

Criar e usar um método mainCriar e usar um método main

Método main:Método main:

Toda classe a serToda classe a ser diretamente diretamente executadaexecutada precisa ter um método main precisa ter um método main

Tem os Tem os modificadoresmodificadores public staticpublic static

O tipo de retorno do método main é O tipo de retorno do método main é voidvoid

O nome do método main O nome do método main nãonão pode ser diferente de pode ser diferente de mainmain

O método main deve ter um ou mais objetos do tipo String em um O método main deve ter um ou mais objetos do tipo String em um

vetor de comprimento indeterminado (String args[ ])

vetor de comprimento indeterminado (String args[ ])

argsargs nome do vetor indeterminado do tipo String pode ser mudado. nome do vetor indeterminado do tipo String pode ser mudado.

Outros métodos Outros métodos mainmain podem ser criados na mesma classe (sobrecarga podem ser criados na mesma classe (sobrecarga de método)

de método)

(24)

Estrutura da Classe de

Teste:

public class TesteCamisa {

/* Variável ou atributo variável global public int i = 0;

*/

public static void main(String[] args) {

//Criação, instância e manipulação de objetos Camisa c1

c1 = new Camisa();

Camisa c2 = new Camisa(); c1.tamanho = 'G';

c1.mostrarCamisa();

}

(25)

Compilando e executando

Compilando e executando

classes Java

classes Java

Crie arquivos

Crie arquivos

.java

.java

com o mesmo nome da

com o mesmo nome da

classe

classe

Salve-os

Salve-os

Compile o arquivo

Compile o arquivo

(26)

Testando classes Java

Testando classes Java

Acesse a ferramentaAcesse a ferramenta

Crie o projeto e o pacote que acondicionarão as Crie o projeto e o pacote que acondicionarão as classes

classes

Crie os arquivos que representam as classesCrie os arquivos que representam as classes

Compile e execute o arquivo de teste (o outro Compile e execute o arquivo de teste (o outro

arquivo será automaticamente compilado). arquivo será automaticamente compilado).

Se houver algum erro:Se houver algum erro:

Abra o(s) arquivo(s) de texto (.java) com as Abra o(s) arquivo(s) de texto (.java) com as

classes e corrija o(s) erro(s) apontado(s) pelo classes e corrija o(s) erro(s) apontado(s) pelo

compilador. compilador.

SenãoSenão

(27)

Desenvolvendo classes

Desenvolvendo classes

Java

Java

Atenção ao escrever o código:Atenção ao escrever o código:

O Java é “case sensitive” – difere entre maiúsculas e O Java é “case sensitive” – difere entre maiúsculas e minúsculas

minúsculas

ClassesClasses devem ter a devem ter a primeira letra maiúsculaprimeira letra maiúsculaAtributosAtributos e e métodosmétodos::

Primeira letra minúsculaPrimeira letra minúscula e a e a primeira letra do primeira letra do segundo nome maiúscula

segundo nome maiúscula

Métodos Métodos têm têm parênteses junto ao nome.parênteses junto ao nome.

Tanto Tanto na sua implementaçãona sua implementação quanto quanto ao serem ao serem invocados

(28)

Testando classes Java

Testando classes Java

Se certifique de que o Se certifique de que o nome da classenome da classe é o mesmo é o mesmo

nome do arquivo

nome do arquivo salvo: salvo:

Inclusive em relação às letras: maiúsculas e minúsculas.Inclusive em relação às letras: maiúsculas e minúsculas. Verifique se o arquivo foi salvo com a extensão Verifique se o arquivo foi salvo com a extensão .java.java

Atenção ao escolher o diretório onde o arquivo será Atenção ao escolher o diretório onde o arquivo será salvo.

salvo.

Ao compilar o arquivo de teste outras classes com Ao compilar o arquivo de teste outras classes com

objetos criados e instanciados nessa classe serão objetos criados e instanciados nessa classe serão

compiladas também compiladas também

Leia as mensagens de erro que o compilador gerar.Leia as mensagens de erro que o compilador gerar.São gerados arquivos São gerados arquivos .class.class (bytecodes) ao compilar (bytecodes) ao compilar

arquivos

(29)

Dicas para resolver erros

Dicas para resolver erros

em código Java

em código Java

Observe o número da linha informado na mensagem Observe o número da linha informado na mensagem de erro gerada pelo compilador:

de erro gerada pelo compilador:

O erro pode estar:O erro pode estar:

uma linha antes,uma linha antes,

na linha indicada ouna linha indicada ou

uma linha depois.uma linha depois.

Verifique se todas as linhas de comando têm ponto e Verifique se todas as linhas de comando têm ponto e virgula no final.

virgula no final.

Revise a abertura e fechamento de chavesRevise a abertura e fechamento de chaves

Comente o código sempre que necessárioComente o código sempre que necessário

Referências

Documentos relacionados

Status: em tramitação Educação Permanente em saúde mental para profissionais que atuam no enfrentamento da Covid-19.

Quanto à nacionalidade, constatou-se serem estes turistas sexuais oriundos de vários lugares do mundo, podendo-se afirmar que isto acontece porque o carnaval é uma festa

III – em caráter excepcional, poderá ser autorizada pelo Fisco Municipal, mediante formulário próprio fornecido pela Secretaria de Município das Finanças, as

Dispõe ainda de restaurante, um bar, sala de reuniões, serviço de baby sitting (a pedido), aluguer de automóveis, piscina exterior, ser- viço de quartos, lavandaria,

Utilizando- -se da Extensible Markup Language- XML como sintaxe para o intercâmbio e o processamento de metadados, o RDF co- labora positivamente para a interoperabilidade entre os

FRACO CRESCIMENTO PORTUGAL EUROPA EUA JAPÃO FORTE CRESCIMENTO: CHINA INDIA BRASIL ANGOLA.. Texteis, Vest., Calçado Recursos

É importante ressaltar que os resultados obtidos por medida de birrefringência induzida no reômetro multipasse, além de permitir diferenciar adequadamente as duas amostras de

- a administração de Alfuzosina Mylan ao mesmo tempo de medicamentos utilizados para tratar a hipertensão arterial, nitratos utilizados para tratar doenças cardíacas como dor