Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Engenharia de Software
Antonio Francisco do Prado
2
Sumário Visão Geral Princípios OO Estudo de Caso Futuro
3
Visão Geral – Fatores Críticos
4
Tempo
5
TESTES : Mostram a presença de erros e não sua ausência
Início 14 10 caminhos < 21 vezes Fim TESTES : Mostram a presença de erros e não sua ausência
6
Comunicação Analista Bomba ! Usuário
7
Comunicação O que foi solicitado pelo Usuário O que foi Especificado
pelo desenvolvedor O que foi Implementado pelo programador O que era necessário !
8
Documentação e outros fatores
Onde está o erro ? Sistema OUTROS FATORES CRÍTICOS Software é um artefato invisível Falta de consenso
9
CONSEQUÊNCIAS necessidades do usuário; Desentendimentos entre usuários
Software não atende as necessidades do usuário; Desentendimentos entre usuários e desenvolvedor; Perda de tempo e dinheiro; e Problemas judiciários.
10
Solução Desenvolver com Engenharia de Software que:
PREOCUPA-SE: com a qualidade do produto e do processo de desenvolvimento do produto BUSCA: A criação de soluções econômicas para problemas práticos COMPREENDE: Uma Metodologia Integrada para todo o ciclo de vida do software: Análise e Especificação Projeto, Implementação e Teste Manutenção
11
Visão Geral - PDS P D S
12
Fases do desenvolvimento de Software
Coleta de fatos ou Identificação dos requisitos Modelagem ou Especificação Análise Projeto Implementação Teste
13
Coleta de Fatos Documentos Entrevistas Reuniões Questionários
Observação
14
Modelagem: Enfoques DECOMPOSIÇÃO FUNCIONAL FLUXO DE DADOS ENTIDADES E RELACIONAMENTOS ORIENTADO A OBJETOS ORIENTADO A COMPONENTES
15
Decomposição Funcional
Pagar Funcionários Horistas Obter Horas Trabalhadas Calcular Pagamento Emitir Contra Cheque Calcular Pagto Líquido Calcular Pagto Bruto Calcular Descontos
16
Fluxo de Dados Serviço Imposto Obter HT Calcular Pagto Funcionário
Emitir Contra Cheque Funcionário
17
Entidades e Relacionamentos
Serviço 1 Emprega HT N Funcionário M Recolhe N Imposto
18
Orientado a Objetos Mundo Real DSOO Sistema Problemas
19
Orientado a Componentes
20
Visual Java
21
Acesso a BD com componentes
22
Acesso a BD com componentes
JOIN entre as Tabelas
23
Componentes em Delphi Internet
24
Acesso a BD em Delphi BD DataSet: TData Source TTable DatabaseName:
DBDEMOS TTable TableName: Animal.db Alias Name: DBDEMOS Name: TDataBase Acesso a BD em Delphi BD
25
Edição de Cena no Jazmine
26
Cenas no Jazmine
27
Java Beans em Aplicações
28
Java Beans na WEB
29
P D S Atual Análise Identi- ficação de Requisitos Projeto 1 3 2
Implementação Versão Teste Modelo Espiral
30
Sumário Visão Geral Princípios OO Estudo de Caso Futuro
31
Princípios da OO Abstração Encapsulamento Classe e Objeto Herança
Escala(Todo-Parte) Associação Conexão de Mensagem Polimorfismo Genericidade
32
Abstração Propriedades Propriedades Modelo Tamanho Descrição
Custo Preço Venda Operações Faturar Garantir Requisitar Propriedades Tamanho Velocidade Número Instruções Operações + * / - = Abstração
33
Encapsulamento Torna disponível apenas a assinatura ou protótipo dos métodos. Por exemplo: = 630 Requisitar ( Modelo : string ) Requisitar ( HP 97 ) Não interessa ! Acessar diretamente as Propriedades Saber “como” são realizadas as Operações
34
Classe e Objeto
35
Objetos A T R I B U O S M É T O D S
36
Construtor Orquídea Lilas MG Flor Flor do Limão Espécie Branca Cor SP
Região Flor Rosa Vermelha PR
37
Construtor XP 3244 97 Carro 98 Placa Ano MJ 1256 Modelo 96 Carro 97
BC 4580 97 98
38
Exercício 01 Exercício Classe
39
Sistema Hospitalar Baseado nos princípios da Abstração e Encapsulamento, especificar: Duas classes de um sistema Hospitalar, com seus principais atributos e métodos, incluindo os construtores.
40
Herança
41
Herança – Exemplo Veículo Proprietário Placa Ano Modelo Marca
Peso Bruto Peso líquido Altura Motor
42
Herança - Notação
43
Herança Múltipla C M R X Pessoa Nome Telefone Endereço Idade
Funcionário Vendedor Matrícula 8 Código TempoServiço Comissão Cargo $ Salário RegiãoTrabalho Funcionário/Vendedor
44
Exercício 02 Exercício Herança
45
Sistema Acadêmico Considerando que o domínio tenha: Pessoa Professor
Dedicação exclusiva Tempo Parcial Aluno Residente(interno) Externo Funcionário Monitor é um aluno que tem atribuições de professor. Especifique o Modelo de classes usando herança.
46
Agregação TODO PARTES
47
Agregação
48
Agregação por valor Pedido Número: 125 Data: 03 Fev 2000
Situação: Pendente Item Descrição Qtd Preço Total Cadeira , ,00 Mesa , ,00 Relógio , ,00 Computador , ,00 Total Geral ,00 Agregação por valor
49
Agregação por referência
Curso Código Período Área Agregação por referência 1..N Aluno Numero Matricula Nome Endereço
50
Associação
51
Associação Biblioteca BIBLIOTECA USUÁRIO Nome Identidade Nome Endereço
EmprestarLivro ReceberLivro 0..1 Validar Usuário Registrar Empréstimo 0..1 0..N LIVRO EMPRÉSTIMO Título ISBN Situação 0..N Validar Livro Mudar Situação
52
realiza Teste Estudante Link de Atributo Sala Nota
53
Exercício 03 Exercício Modelo de Classes
54
Sistema Acadêmico Especifique o Modelo de Classes, para um domínio Acadêmico, no qual: Escola tem Departamentos Departamentos têm Professores e Cursos. Alunos freqüentam cursos Cursos são ministrados aos alunos pelos professores Cada Departamento é dirigido por um Professor( membro do departamento)
55
Quando será que você vai aprender minha linguagem ?
Conexão de Mensagem
56
Mensagens entre objetos
57
Conexão de Mensagem - Exemplo
empresta ou devolve Solicita Livro Inter-face Emprestrar Livro Livro USUÁRIO BIBLIOTECA ValidarUsuário RegistrarEmpréstimo Identidade Nome Endereço Nome Endereço ValidarLivro Mudar Situação ReceberLivro EmprestarLivro ValidarUsuário 0..1 0..N 0..1 Registrar Empréstimo LIVRO EMPRÉSTIMO Título ISBN Conexão de Mensagem - Exemplo Situação 0..N ValidarLivro Mudar Situação
58
Conexão de Mensagem – Especificação com Modelo de Seqüência
Interface : Livro :Usuário :Biblioteca : Empresta Livro AtorUsuário Solicita um livro Solicita Info Usuário Dados Usuário ValidarUsuário() Solicita Info Livro Dados Livro EmprestarLivro(DadosLivro) ValidarLivro() MudarSituação() RegistrarEmpréstimo() Livro Solicitado
59
Orientação a Eventos Sinalização com estímulo: Externo:
Handle( inteiro sem sinal ) Fluxo de Dados ( Dados Pedido ) Interno (Condição): Tempo ( Fim de Semana ) Temperatura ( 10 < t < 30 ) Outros
60
Eventos - Exemplo TFORM1.Botão1Click Evento: Edit1.Text := ‘325,00’ ;
program Project1; uses Forms, . . . begin APPLICATION.Initialize; APPLICATION.CreateForm(TForm1, Form1); APPLICATION.Run; end. TAPPLICATION : APPLICATION TFORM1.Botão1Click begin Edit1.Text := ‘325,00’ ; end Evento: OnClick TFORM1 : FORM1 TBUTTON : BOTÃO1 Eventos - Exemplo
61
Eventos - Tratamento Sistema Operacional Objeto1 ObjetoN ObjetoN . . .
Método1 . . . MétodoM Método1
62
95 + 5 = 100 + Polimorfismo Janela ( ) Janela ( 1 x 2 , 2 )
Janela ( 1 x 2 , 2, Azul ) = 100 1 4 6 5 66 33 7 + 11 5 9 4 7 2 1 55
63
Polimorfismo - Exemplo
MoverFigura (NovoCentro:Ponto) { . . . Redesenhar (NovoCentro); . . . } Polimorfismo - Exemplo Redesenhar (NovoCentro:Ponto);
64
Exercício 04 Exercício Polimorfismo
65
Classe Pessoa Classe Cliente Atributos Nome, Endereço, e Telefone
Métodos Construtor com Nome Construtor com Nome, Endereço, e Telefone Construtor de cópia Classe Cliente Atributos Cpf e Dívida Métodos Construtor com Cpf Construtor de cópia
66
Genericidade ou Tipos Genéricos
Parametrizada (Template)
67
Detalhes Classes DC
68
Visão Lógica Modificadores de Visibilidade: Private Protected
Implemented Public
69
Diagrama de Classes
70
Modelo de classes
71
Modelo de Objetos
72
SQL MVCASE generated SQL data. CREATE TABLE Table_Cliente (
cpf VARCHAR(255), nome VARCHAR(255), endereco VARCHAR(255), PRIMARY KEY (cpf ) ); CREATE TABLE Table_Pedido ( codigoPedido VARCHAR(255), data VARCHAR(255), cpf VARCHAR(255) REFERENCES Table_Cliente(cpf), PRIMARY KEY (codigoPedido ) CREATE TABLE Table_ItemPedido ( quantidade INTEGER, Table_ItemPedido_ID INTEGER, codigoPedido VARCHAR(255) REFERENCES Table_Pedido(codigoPedido), codigoProduto VARCHAR(255) REFERENCES Table_Produto(codigoProduto), PRIMARY KEY (Table_ItemPedido_ID ) CREATE TABLE Table_Produto ( codigoProduto VARCHAR(255), descricao VARCHAR(255), PRIMARY KEY (codigoProduto )
73
UML - Visão Lógica Navegabilidade Funcionario Matricula Dependente
Nome
74
Direção da Navegabilidade
Funcionario CREATE TABLE Funcionario( Matricula VARCHAR(40) NOT NULL UNIQUE, PRIMARY KEY(Matricula)) CREATE TABLE Dependente( Nome VARCHAR(30), FOREIGN KEY (Matricula) REFERENCES Funcionario, DependenteId NUMBER(5), PRIMARY KEY(DependenteId)) Matricula Dependente Nome
75
Relacionamentos de Dependência e Implementação
ServidorBD <<Interface>> interfacePedido Conecta() Dependência Exibir() Implementação Pedido
76
Sumário Visão Geral Princípios OO Estudo de Caso Futuro
77
DISTRIBUIDORA DE PRODUTOS
Estudo de caso DISTRIBUIDORA DE PRODUTOS Uma distribuidora recebe pedidos de produtos. O pedido é aceito se o cliente e o produto estiverem previamente cadastrados. Caso contrário, o pedido é devolvido ao cliente. Ao final da semana, a distribuidora emite requisições de produtos para os fornecedores, previamente cadastrados, com base nos pedidos recebidos. Quando o fornecedor envia catálogo de seus produtos o cadastro de produto é atualizado. Periodicamente a distribuidora envia catálogo dos produtos para seus clientes. Quando os produtos são fornecidos, a distribuidora confere as notas de entregas dos fornecedores com a requisições, devolve as notas de entregas que estiverem com erros e atende aos pedidos dos clientes, emitindo as respectivas faturas.
78
Exercício 05 Exercício Modelo de Classes
79
Use Case USE CASE
80
UML - Use Case Diagrama de Use Case
81
Use Case por Ator
82
Relacionamentos em Use Cases
Relacionamento <<uses>> Relacionamento <<extends>> dadosPedido dadosPedido Cliente RealizarPedido RealizarPedido msg02 Cliente msg02 <<uses>> <<extends>> ValidarCliente CadastrarCliente
83
Especificação de Modelo de caso de uso
Dados Empréstimo EmprestarLivro Ator Usuário Msg01, Livro Solicitado Curso Normal: 1. Usuário solicita um livro. 2. Sistema solicita informações do usuário. 3. Usuário informa seus dados(Identidade, Nome e ). 4. Sistema verifica que existe o usuário associado à Identidade. 5. Sistema solicita informações do livro. 6. Cliente informa o nome do livro. 7. Sistema verifica que o livro existe e está disponível. 8. Sistema muda a situação do livro para “emprestado”. 9. Sistema registra o empréstimo do livro para o usuário. 10. Sistema entrega o livro para o usuário.
84
Modelo de Caso de Uso – Fluxos alternativos
Cursos Alternativos: Alternativa 4. Usuário não está cadastrado 4.1 Sistema emite emite Msg01 informando que o usuário não está cadastrado e encerra o caso de uso. Alternativa 7. Livro não existe ou já está emprestado 7.1 Sistema emite Msg01 informando que o livro não existe ou já está emprestado encerra o caso de uso.
85
Exercício 06 Exercício Use Case
86
Diagrama de Use Case Cliente AtenderPedido Questão:
Completar o Use Case. Diagrama de Use Case
87
Exercício 07 Exercício Diagrama Seqüência
88
Diagrama de Sequência atenderPedido - Curso Normal:
Cliente Interface Pedido : Item Pedido :Cliente :Produto :Pedido Questão: Completar o Diagrama.
89
Sumário Visão Geral Princípios OO Estudo de Caso Futuro
90
DBC
91
Componentes ? Blocos previamente testados Interfaces bem definidas
Plug-In Mostra apenas o que interessa Suporta: reuso direto através de instâncias Criação de componentes mais específicos
92
Componentes e Interfaces
Web.war ClienteHome Cliente.jar Html JSP <<interfaces>> Servlet Cliente Servidor Aplicação Servidor WEB
93
Arquitetura em camadas
Regras de Negocio e Banco de Dados para um domínio de Aplicações, fornecendo as seguinte principais vantagens: Reuso de código previamente testado Evita duplicação do código nas aplicações Facilita a manutenção FramePrincipal.java Cliente FrameAluguel.java FrameCliente.java FrameCarro.java Regras de Negócio "LocadoraClient.jar" Locadora.db Banco de Dados
94
Diagrama de Componentes
95
Diagrama de Componentes
96
Outras Tecnologias Orientação a Aspectos Padrões Frameworks
Agentes de Software Web Services XML e outras LPs WEB
97
Conclusão Orientação a Objetos Banco de Dados OO(componentes)
D B C com Padrões, Frameworks, Aspectos e outras técnicas Engenharia de Domínio Componentes Distribuídos Aplicações com reutilização de Componentes Evita redundância Facilita a manutenção Sistemas mais confiáveis Programação “Plug in” Ambientes que suportam todo o PDS DBC e Banco de Objetos: Futuro do PDS
98
Estudo de caso proposto
SISTEMA HOTELEIRO Deseja-se modelar um sistema para um pequeno hotel que atenda aos seguintes requisitos: · Quando o Cliente telefona ou vem até o hotel e pede para reservar um quarto o funcionário verifica se existe quarto disponível no período solicitado. Caso positivo, é feita a reserva do quarto. Caso negativo, é informado ao cliente a não disponibilidade do quarto. · Quando o cliente não mais desejar o quarto reservado o funcionário providencia o cancelamento da reserva, disponibilizando novamente o quarto. · Quando o cliente não comparecer ao hotel para hospedar-se até as 12:00 horas do dia da Reserva, deve ser cancelada a sua Reserva. · Quando o cliente ocupar um quarto, reservado previamente, o funcionário faz o registro do cliente. Caso o quarto não esteja reservado uma mensagem de rejeição será emitida. Caso contrário, um pacote com informações úteis e a confirmação serão fornecidos ao Cliente. · Quando o cliente deixar o hotel e solicitar que providencie sua saída, será fornecida a respectiva conta, e o quarto será tornado indisponível para a limpeza. · O cliente pode pagar a conta à vista ou usando cartão de crédito. Caso use cartão de crédito, é verificado sua situação para aceitar ou rejeitar o cartão. Esta verificação é feita por telefone. · Quando o quarto estiver limpo, após uma ocupação, o gerente torna-o disponível.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.