Análise e Projeto de
Sistemas
Prof. Maria Salete M. G. Vaz
Fases do Desenvolvimento
1
2
Análise
3
Implementação
Engenharia
de
Sistema
Projeto
4
Testes
Engenharia de Software
• A engenharia de software aplica um
conjunto de técnicas para a análise
(especificação de requisitos, projeto,
implementação e teste de sistemas)
Técnicas Diferentes
• Análise, Projeto e Programação Estruturada
– Técnica:Diagrama de Fluxo de Dados (DFD)
– Linguagens: Cobol, Fortran, C, Pascal.
• Análise, Projeto e Programação Orientada a
Objetos
– Técnica: Linguagem de Modelagem
Unificada (UML)
– Linguagens: Java e C++.
Orientação a Objetos
• É uma maneira de pensar os problemas
utilizando modelos organizados a partir de
conceitos do mundo real.
• E, por isso, facilita o trabalho dos
desenvolvedores.
• Objeto é um conceito que existe no
mundo real.
• Exemplo: conta, cliente, banco, agência.
c la s s e P e s s o a
Classe
• Representa um
conjunto de objetos
com características
similares (modelo)
• Dizemos que um
objeto é a
instância de uma
classe
o b je to M a ria
o b je to P e d ro
Características da Classe
• Combina dados e funções numa única
estrutura.
• Os dados são os atributos da classe.
• As funções são as operações da classe.
Classe
Atributos
Operações
Conta = class;
saldo : Currency;
titular : Cliente;
numero : Integer;
procedure Deposito(Valor:Currency);
procedure Saque(Valor:Currency);
procedure
AlteraSaldo(Valor:Currency);
end;
procedure Conta.Deposito(Valor:Currency);
begin
saldo := saldo + Valor;
end;
procedure Conta.Saque(Valor:Currency);
begin
saldo := saldo – Valor;
end;
Procedure Conta.AlteraSaldo(Valor:Currency);
begin
saldo := Valor;
end;
Conceitos da
Orientação a Objetos
•
•
•
•
•
•
•
Abstração
Encapsulamento
Mensagens
Herança
Polimorfismo
Escala
Associação
Abstração
• É a habilidade de ignorar os aspectos de
um assunto não relevantes para o
propósito em questão, tornando possível
uma concentração maior nos assuntos
principais
• Por exemplo: mapa de uma cidade
Exemplo
• Análise de um Sistema Bancário
• Objetos: Agência, Conta, Cliente, Banco.
• Quais são os atributos de Agência?
– Código?
Atributos
– Endereço?
Desnecessários
– A qual banco pertence?
– Número de contas?
– Data da última reforma, Área, Pé Direito?
Encapsulamento
• É a proteção da
estrutura interna do
objeto. O único
modo de se obter
informação sobre
um objeto é através
das operações
procedure Conta.AlteraSaldo
(Valor : Currency)
begin
saldo := Valor;
end;
Cuidado !!!
procedure Cliente.Executa()
begin
Conta.Saldo = 100;
end;
Quebra de Encapsulamento
O correto é ...
procedure Cliente.Executa()
begin
Conta.AlteraSaldo(100);
end;
Encapsulamento mantido
Mensagens
• Os diversos
objetos de um
sistema
comunicam-se
através de
mensagens
(dependência)
Abram seus
livros na
página 36
Qual a
próxima
lição?
procedure Cliente.Executa()
begin
Conta.AlteraSaldo(100);
end;
Herança
• Uma classe B é definida
a partir da classe A,
com todos seus
atributos e operações,
além de outros atributos
e operações que
diferenciam a classe B
da classe A
Exemplo
Aluno é um
tipo de
Pessoa
Polimorfismo
• É uma das características mais potentes
da orientação a objetos.
• É a propriedade que indica que uma
operação pode, apesar de ter o mesmo
nome, executar ações diferentes.
• Existem dois tipos de polimorfismo: o
estático e o dinâmico.
Polimorfismo Estático
Polimorfismo Dinâmico
Escala
• É o princípio que
permite ao
desenvolvedor
considerar algo
muito grande
através do enfoque
Todo-Parte
(Composição)
TODO
PARTES
Exemplo (Composição)
A parte não vive sem o todo
Associação
Cliente
• É um
relacionamento
que um objeto
precisa ter com
outro(s) objeto(s),
para cumprir suas
responsabilidades
Faz
Pedido
Exemplo (Associação)
A parte vive sem o todo
Exercício
• As características apresentadas por uma
classe são divididas em duas partes:
Atributos (onde são armazenados os
dados) e Operações (são as funções
associadas). Na modelagem de um
sistema para uma video-locadora, existem
as classes DVD e Filme. Defina atributos
e operações para estas duas classes.
Resposta
procedure
begin
situação
end;
procedure
begin
situação
end;
dvd.locar()
= “locado”;
dvd.devolver()
= “livre”;
procedure filme.colocar_lançamento()
begin
lançamento := true;
end;
procedure filme.tirar_lançamento()
begin
lançamento := false;
end;
procedure
filme.definir_genero(tipo:String)
begin
genero := tipo
End;
Download

Análise e Desenvolvimento de Sistemas_Parte 3_Modelagem