27
PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014 Prof. Geovani Sajorato [email protected]

PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2

Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado

10/02/2014

Prof. Geovani Sajorato [email protected]

Page 2: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Prof. Geovani Sajorato [email protected]

10/02/2014

Definição de Sistema

Sistema:

Na ciência da computação, conjunto de pessoas, máquinas e métodos organizados de modo a cumprir um certo número de funções específicas.

Os softwares que costumeiramente utilizamos, é um exemplo de sistema menor que esta introduzido dentro de um sistema maior que compreende outros softwares, hardware, dados, seres humanos e vários procedimentos. O sistema define o ambiente e o software existe dentro deste sistema.

Page 3: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Análise e Projeto de Sistema

Qualquer atividade que envolva componentes numerosos, sejam eles homens, máquinas ou métodos requer coordenação cuidadosa; embora possa não ter ficado claro, pela definição, os componentes devem trabalhar juntos para que a função específica venha a ser exercida.

A coordenação pressupõe planejamento.

Quem planeja o sistema?

De que maneira?

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 4: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Análise e Projeto de Sistema

O sistema começa com o usuário – possui a necessidade de apoio técnico e é apto conhecer dos processos que realiza e domina as regras de negócio da atividade.

Em outro ponto da organização fica o programador – possui preparo técnico e aptidão para resolver problemas através do desenvolvimento de sistemas, se compreende as regras de negocio e domina se o processo seria capaz de resolver sozinho o problema.

Usuário Programador Intervalo de comunicação

Um intervalo de comunicação separa o usuário do programador:

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 5: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Desenvolver software

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 6: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Gap semântico na prática

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 7: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Gap semântico Distância entre o problema no mundo real e

o modelo abstrato construído;

Quanto menor, mais rápida será a

construção da solução;

Portanto, diminuir o gap semântico tornou-

se um dos objetivos da Engenharia de

Software;

O paradigma orientado a objetos busca

meios de diminuir este gap.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 8: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Análise e Projeto de Sistema

Usuário Programador

O analista de sistemas traduz as necessidades do usuário em especificações técnicas necessárias ao programador.

Analista de Sistemas

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 9: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Análise e Projeto de Sistema

conceito do domínio Livro

titulo

visualização de conceito de domínio

Representação em uma Linguagem de programação Orientada a objetos

publica class Livro

{

private String titulo;

publica Capitulo obterCapitulo(int) {...}

}

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 10: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Ciclo de vida do sistema

Na análise e projeto de sistema está vinculado um ciclo de desenvolvimento. Este ciclo são o que podemos definir como o ciclo de vida do sistema.

Definição do problema

Estudo de viabilidade

Análise

Projeto de sistema

Projeto detalhado

Implementação

Manutenção

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 11: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

• Um sistema para um terminal de ponto de venda (POST)

• Usado para registrar vendas e processar pagamentos de clientes em lojas de varejo

• Inclui componentes de hardware (computador, leitora de código de barras) e o software para rodar o sistema

• Tarefa: criar o software para um POST

Estudo de Caso: Ponto de Venda

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 12: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Ênfase do Estudo de Caso: Camada de Lógica da Aplicação

Apresentação

Lógica da Aplicação

Armazenamento SGBD

Object Store

Enter Item End Sale

UPC

Make Payment

Total

Quantity

Tendered Balance

Venda Pagamento

BD Segurança

Foco principal

Foco secundário

-objetos de domínio

-objetos de serviço

Foco menor

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 13: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Estratégia de resolução • APOO aplicada ao sistema POST em dois

ciclos de desenvolvimento: • Ciclo 1 Funcionalidades básicas

• Introdução das habilidades de análise e projeto pertinentes para o primeiro ciclo

• Ciclo 2 Funcionalidades expandidas • Introdução de habilidades adicionais de análise e projeto

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 14: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Definição de Requisitos

2. Criar Rel. Prel. de Investigação

3. Definir Requisitos

9. Refinar Plano 7. Definir Mod. Conc. Inicial

c

4. Reg. Termos no Glossário a

6. Definir Casos de Uso

1. Definir Plano Inicial

5. Implementar Protótipo

b, d

a. contínua

b. opcional

c. adiável

d. ordem variada

8. Definir Arquit. Inicial

a, c, d

Notas

Construção Plan. & Elaboração

Implantação

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 15: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Definição de Requisitos

• Requisitos mal-entendidos ou incorretamente especificados representam um grande risco para o desenvolvimento de software

• Especificações bem-feitas requerem uma gama de habilidades e técnicas, cujo estudo detalhado está fora do escopo do curso

• Foco: introdução à especificação de requisitos, usando o sistema POST como exemplo

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 16: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

O que são Requisitos? • Descrições das necessidades ou desejos para um produto

• Usados para identificar e documentar o que é realmente necessário, de uma forma que fique claro para clientes e desenvolvedores

• Desafio: • Evitar ambiguidades

• Identificar riscos

• Coletar e “digerir” dados de fontes variadas de informação (documentos, entrevistas, reuniões, etc.)

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 17: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

O termo requisito não é utilizado pela indústria de software de modo consistente.

Em alguns casos, um requisito é visto como uma declaração abstrata, de alto nível, de uma função que o sistema deve fornecer ou de uma restrição de sistema.

No outro extremo é uma definição detalhada, matematicamente formal, de uma função do sistema.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 18: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

1. Definição de Requisitos

1. O software deve oferecer um meio de representar e acessar arquivos

externos criados por outras ferramentas.

Definição dos requisitos do usuário

Especificação dos requisitos de sistema

1.1 O usuário deve dispor de recursos para definir o tipo dos arquivos

externos.

1.2 Cada tipo de arquivo externo pode ter uma ferramenta associada

que pode ser aplicada a ele.

1.3 Cada tipo de arquivo externo pode ser representado como um ícone

específico na tela do usuário.

1.4 Devem ser forncecidos recursos para o ícone que representa um

arquivo externo, a ser definido pelo usuário.

1.5 Quando um usuário seleciona um ícone que representa um arquivo

externo,o efeito dessa seleção é aplicar a ferramenta associada com o

tipo de arquivo externo ao arquivo representado pelo ícone selecionado.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 19: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

O requisitos de sistema de software são , freqüentemente, classificados como:

2. Tipos de Requisitos

1. Requisitos funcionais

2. Requisitos não funcionais

3. Requisitos de domínio

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 20: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

PARADIGMA ORIENTADO A OBJETOS X PARADIGMA ESTRUTURADO

Page 21: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Paradigma de desenvolvimento O que é um paradigma?

Um exemplo, um modelo, um padrão;

Um conjunto de idéias, uma base filosófica.

Um paradigma de desenvolvimento agrupa

métodos e técnicas que seguem um mesmo

conjunto de princípios;

Os dois mais conhecidos são:

Desenvolvimento Estruturado;

Orientação a Objetos (OO).

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 22: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Paradigma de desenvolvimento Estruturado:

Modelo entrada – processamento – saída;

Dados separados das funções.

Orientado a Objetos (OO):

O mundo é composto por objetos;

Objetos combinam dados e funções;

Conceitos do problema são modelados como

objetos que são associados e interagem entre si.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 23: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Paradigma OO vs. Estruturado

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 24: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Desvantagens do paradigma estruturado O gap semântico é maior;

Freqüentemente gera sistemas difíceis de

serem mantidos:

As funções tem que conhecer a estrutura dos

dados;

Mudanças na estrutura dos dados acarreta

alteração em todas as funções relacionadas.

Por estes motivos, o paradigma orientado a objetos

vem tomando o espaço que antes era dominado pelo paradigma estruturado.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 25: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Benefícios esperados da OO Capacidade de enfrentar novos domínios;

Melhoria da interação analistas x especialistas;

Aumento da consistência interna da análise;

Uso de uma representação básica consistente para análise e projeto;

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 26: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Benefícios esperados da OO

Alterabilidade, legibilidade e extensibilidade;

Orientação a objetos não é mágica e nem a “tábua

de salvação” do desenvolvimento. É preciso

aplica-lá com disciplina e em conjunto com outras

técnicas da Engenharia de Software.

Possibilidade de ciclos de vida variados;

Apoio à reutilização.

Prof. Geovani Sajorato [email protected]

10/02/2014

Page 27: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 2 Projeto de Software Orientado a Objetos Paradigma Orientado a Objetos x Paradigma Estruturado 10/02/2014

Para conhecer

+ 200 motivos

para virar FAM, acesse

Prof. Geovani Sajorato

[email protected]