A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

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.


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google