análise e projeto de sistemas prof. maria salete m. g. vaz
TRANSCRIPT
![Page 1: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/1.jpg)
Análise e Projeto de Sistemas
Prof. Maria Salete M. G. Vaz
![Page 2: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/2.jpg)
Fases do Desenvolvimento
EngenhariaEngenhariadede
SistemaSistema
EngenhariaEngenhariadede
SistemaSistema
AnáliseAnálise
11
ProjetoProjeto
22
ImplementaçãoImplementação
33
TestesTestes
44
![Page 3: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/3.jpg)
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)
![Page 4: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/4.jpg)
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++.
![Page 5: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/5.jpg)
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.
![Page 6: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/6.jpg)
Classe
• Representa um conjunto de objetos com características similares (modelo)
• Dizemos que um objeto é a instância de uma classe
classe Pessoa
objeto Maria objeto Pedro
![Page 7: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/7.jpg)
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.
ClasseAtributos
Operações
![Page 8: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/8.jpg)
![Page 9: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/9.jpg)
Conta = class;
saldo : Currency;
titular : Cliente;
numero : Integer;
procedure Deposito(Valor:Currency);
procedure Saque(Valor:Currency);
procedure AlteraSaldo(Valor:Currency);
end;
![Page 10: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/10.jpg)
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;
![Page 11: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/11.jpg)
Conceitos da Orientação a Objetos
• Abstração
• Encapsulamento
• Mensagens
• Herança
• Polimorfismo
• Escala
• Associação
![Page 12: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/12.jpg)
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
![Page 13: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/13.jpg)
Exemplo• Análise de um Sistema Bancário• Objetos: Agência, Conta, Cliente, Banco.• Quais são os atributos de Agência?
– Código?– Endereço?– A qual banco pertence?– Número de contas?– Data da última reforma, Área, Pé Direito?
AtributosDesnecessários
AtributosDesnecessários
![Page 14: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/14.jpg)
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
![Page 15: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/15.jpg)
procedure Conta.AlteraSaldo(Valor : Currency)
beginsaldo := Valor;
end;
![Page 16: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/16.jpg)
Cuidado !!!
procedure Cliente.Executa()beginConta.Saldo = 100;
end;
Quebra de EncapsulamentoQuebra de Encapsulamento
![Page 17: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/17.jpg)
O correto é ...
procedure Cliente.Executa()beginConta.AlteraSaldo(100);
end;
Encapsulamento mantidoEncapsulamento mantido
![Page 18: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/18.jpg)
Mensagens
• Os diversos objetos de um sistema comunicam-se através de mensagens (dependência)
Abram seuslivros na página 36
Qual apróximalição?
![Page 19: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/19.jpg)
procedure Cliente.Executa()beginConta.AlteraSaldo(100);
end;
![Page 20: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/20.jpg)
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
![Page 21: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/21.jpg)
Exemplo
Aluno é um Aluno é um tipo de tipo de PessoaPessoa
Aluno é um Aluno é um tipo de tipo de PessoaPessoa
![Page 22: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/22.jpg)
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.
![Page 23: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/23.jpg)
Polimorfismo Estático
![Page 24: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/24.jpg)
Polimorfismo Dinâmico
![Page 25: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/25.jpg)
Escala
• É o princípio que permite ao desenvolvedor considerar algo muito grande através do enfoque Todo-Parte (Composição)
TODO
PARTES
![Page 26: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/26.jpg)
Exemplo (Composição)
A parte não vive sem o todoA parte não vive sem o todo
![Page 27: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/27.jpg)
Associação
• É um relacionamento que um objeto precisa ter com outro(s) objeto(s), para cumprir suas responsabilidades
Faz
Cliente
Pedido
![Page 28: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/28.jpg)
Exemplo (Associação)
A parte vive sem o todoA parte vive sem o todo
![Page 29: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/29.jpg)
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.
![Page 30: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/30.jpg)
Resposta
![Page 31: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/31.jpg)
procedure dvd.locar()
begin
situação = “locado”;
end;
procedure dvd.devolver()
begin
situação = “livre”;
end;
![Page 32: Análise e Projeto de Sistemas Prof. Maria Salete M. G. Vaz](https://reader035.vdocuments.site/reader035/viewer/2022081516/552fc104497959413d8bfc31/html5/thumbnails/32.jpg)
procedure filme.colocar_lançamento()beginlançamento := true;
end;procedure filme.tirar_lançamento()beginlançamento := false;
end;procedure filme.definir_genero(tipo:String)
begingenero := tipo
End;