98
Ir p/ primeira página Antonio Francisco do Pra [email protected] Engenhari a de Software

Ir p/ primeira página Antonio Francisco do Prado [email protected] Engenharia de Software

Embed Size (px)

Citation preview

Page 1: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Antonio Francisco do [email protected]

Engenharia de Software

Page 2: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Sumário

Page 3: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Visão Geral – Fatores Críticos

Page 4: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Tempo

Page 5: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

TESTES : Mostram a presença de erros e não sua ausência

10 caminhos14

< 21 vezes

Início

Fim

Testes

Page 6: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Bomba !

Analista

Usuário

Comunicação

Page 7: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

O que era

necessário !

O que foisolicitado pelo

Usuário

O que foi Especificado

pelo desenvolvedor

O que foi Implementado

peloprogramador

Comunicação

Page 8: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Onde está o erro ?

Sistema

OUTROS FATORES CRÍTICOS

•Software é um artefato invisível•Falta de consenso

Documentação e outros fatores

Page 9: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

CONSEQUÊNCIAS

• Software não atende as necessidades do usuário;• Desentendimentos entre usuários e desenvolvedor;• Perda de tempo e dinheiro; e• Problemas judiciários.

Page 10: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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çãoProjeto, Implementação e TesteManutenção

Page 11: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Visão Geral - PDS

Page 12: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Fases do desenvolvimento de

Software Coleta de fatos ou Identificação dos requisitos Modelagem ou Especificação

Análise Projeto

Implementação Teste

Page 13: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Coleta de Fatos

Documentos Entrevistas Reuniões Questionários Observação

Page 14: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Modelagem: Enfoques

DECOMPOSIÇÃO FUNCIONAL

FLUXO DE DADOS ENTIDADES E

RELACIONAMENTOS ORIENTADO A OBJETOS ORIENTADO A

COMPONENTES

Page 15: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Pagar Funcionários

Horistas

Obter Horas

Trabalhadas

Calcular

Pagamento

Emitir Contra

Cheque

CalcularPagtoBruto

Calcular Descontos

Calcular

Pagto

Líquido

Decomposição Funcional

Page 16: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

ObterHT

Funcionário

Serviço

Imposto

CalcularPagto

EmitirContraCheque

Funcionário

Fluxo de Dados

Page 17: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Funcionário

Serviço

Recolhe

Emprega

Imposto

N

1

N

M

HT

Entidades e Relacionamentos

Page 18: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

DSOO

Sistema

Problemas

Orientado a Objetos

Mundo Real

Page 19: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Orientado a Componentes

Page 20: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Visual Java

Page 21: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Acesso a BD com componentes

Page 22: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

JOIN

entre

as

Tabel

as

Acesso a BD com componentes

Page 23: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Componentes em Delphi

Internet

Page 24: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

BD

TDataBase

TTable

TDataSource

DatabaseName: DBDEMOS TableName: Animal.db

Alias Name: DBDEMOSName: DBDEMOS

DataSet:

TTable

Acesso a BD em Delphi

Page 25: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Edição de Cena no Jazmine

Page 26: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Cenas no Jazmine

Page 27: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Java Beans em Aplicações

Page 28: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Java Beans na WEB

Page 29: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Análise

Identi- ficação deRequisitos

Projeto

Implementação

Teste

Versão

123

Modelo Espiral

P D S Atual

Page 30: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Sumário

Page 31: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Princípios da OO

Abstração Encapsulamento Classe e Objeto Herança Escala(Todo-Parte) Associação Conexão de Mensagem Polimorfismo Genericidade

Page 32: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Propriedades

Modelo

Descrição

Custo

Preço Venda

Operações

Faturar

Garantir

Requisitar

Propriedades

Tamanho

Velocidade

Número Instruções

Operações

+ * / - = ÷

Abstração

Page 33: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

297 + 333 = 630

Requisitar ( Modelo : string )

Requisitar ( HP 97 )

Não interessa !

• Acessar diretamente as Propriedades

• Saber “como” são realizadas as Operações

Encapsulamento

Torna disponível apenas a assinatura ou protótipo dos métodos.

Por exemplo:

Page 34: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

classe Pessoa

objeto Maria objeto Pedro

Classe e Objeto

Page 35: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Pessoa

NomeEndereçoTelefoneIdadeAltura

Registrar()Matricular()Pagar()Estudar()Cadastrar()

ATRIBUTOS

MÉTODOS

Pedro

Maria

Objetos

Page 36: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Rosa

Vermelha

PR

Orquídea

Lilas

MG

Flor

Espécie

Cor

Região

Flor

Flor do Limão

Branca

SP

Construtor

Page 37: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

BC 4580

97

98

XP 3244

Carro

Placa

Ano

Modelo

Carro

MJ 1256

96

97

97

98

Construtor

Page 38: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 01

Page 39: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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.

Page 40: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Pessoa

Estudante Professor Funcionário Diretor

Herança

Page 41: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Peso BrutoPeso líquidoAlturaMotor

Veículo

ProprietárioPlacaAnoModeloMarca

Herança – Exemplo

Page 42: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Pessoa

NomeEndereçoTelefone

Estudante

MatrículaCursoAnoGraduação

Professor

TítuloSalario

Herança - Notação

Page 43: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

NomeEndereço Idade Telefone

Matrícula

TempoServiço

Cargo

Salário

Funcionário Vendedor

Código

Comissão

RegiãoTrabalho

Funcionário/Vendedor

8

$

Pessoa

Herança Múltipla

Page 44: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 02

Page 45: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Sistema Acadêmico

Considerando que o domínio tenha: Pessoa

ProfessorDedicação exclusivaTempo Parcial

AlunoResidente(interno)Externo

Funcionário Monitor é um aluno que tem

atribuições de professor.Especifique o Modelo de classes usando

herança.

Page 46: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

TODO

PARTES

Agregação

Page 47: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Item 1: Relógio Item 2: Computador

PEDIDO

TODO

PARTES

Agregação

Page 48: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Pedido Número: 125 Data: 03 Fev 2000 Situação: PendenteItem Descrição Qtd Preço Total01 Cadeira 3 15,00 45,0002 Mesa 2 40,00 80,0003 Relógio 1 50,00 50,0004 Computador 1 900,00 900,00 Total Geral 1.075,00

Pedido

ItemPedido

Agregação por valor

Page 49: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Código

Período

Área

Numero MatriculaNomeEndereço

Curso

Aluno

1..N

Agregação por referência

Page 50: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Faz

Cliente

Pedido

Associação

Page 51: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Biblioteca

BIBLIOTECA

LIVRO

USUÁRIO

NomeEndereço

IdentidadeNomeEndereço

TítuloISBNSituação

EmprestarLivroReceberLivro

Validar UsuárioRegistrar Empréstimo

Validar LivroMudar Situação

EMPRÉSTIMO

0..N

0..N

0..10..1

Associação

Page 52: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Estudante Teste

SalaNota

realiza

Link de Atributo

Page 53: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 03

Page 54: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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)

Page 55: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Quando será que você vai aprender minha linguagem ?

Conexão de Mensagem

Page 56: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Abram seuslivros na página 36

Qual apróximalição?

Mensagens entre objetos

Page 57: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

BIBLIOTECA

NomeEndereço

EmprestarLivro

ReceberLivro

USUÁRIO

Identidade

Nome

Endereço

ValidarUsuário

Registrar Empréstimo

LIVRO

Título

ISBNSituação

ValidarLivroMudar Situação

0..N

0..10..1

EMPRÉSTIM

O

0..N

Livro

ValidarUsuário

RegistrarEmpréstimo

ValidarLivro

Mudar Situação

Solicita Livro

Conexão de Mensagem -

Exemplo

empresta ou devolve

Empre

strar

Livr

o

E-mail

Inter-face

Page 58: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Conexão de Mensagem – Especificação com Modelo de Seqüência

:Biblioteca : AtorUsuário

Interface Empresta Livro

:Usuário : Livro

Solicita um livro

Solicita Info Usuário

Dados Usuário

EmprestarLivro(DadosLivro)

ValidarUsuário()

Solicita Info Livro

Dados Livro

ValidarLivro()

MudarSituação()

Livro SolicitadoRegistrarEmpréstimo()

Page 59: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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

Page 60: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

TBUTTON :BOTÃO1

TFORM1 :FORM1

program Project1; uses Forms, . . . begin APPLICATION.Initialize; APPLICATION.CreateForm(TForm1, Form1); APPLICATION.Run; end.

TAPPLICATION :APPLICATION

Evento:

OnClick

TFORM1.Botão1Click begin

Edit1.Text := ‘325,00’ ; end

Eventos - Exemplo

Page 61: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

SistemaOperacional

Objeto1Objeto1

Método1Método1 MétodoMMétodoM. . .

. . . ObjetoN

Método1 . . .

Eventos - Tratamento

ObjetoN

Page 62: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

95 + 5 = 100

+

Janela ( )

Janela ( 1 x 2 , 2 )

Janela ( 1 x 2 , 2, Azul )

Polimorfismo

1 4 6

5 66 33

4 7 0

11 5 9

5 4 7

2 1 55

Page 63: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Redesenhar (NovoCentro:Ponto);

MoverFigura (NovoCentro:Ponto) { . . .

Redesenhar (NovoCentro);

. . . }

Polimorfismo - Exemplo

Page 64: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 04

Page 65: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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

Atributos Cpf e Dívida

Métodos Construtor com Cpf Construtor de cópia

Page 66: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

T,k: Integer

Array

k..k T

Parametrizada (Template)

Genericidade ou Tipos Genéricos

Page 67: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

DC

Page 68: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Modificadores de Visibilidade:Modificadores de Visibilidade:

•PrivatePrivate

•ProtectedProtected

•ImplementedImplemented

•PublicPublic

Carro

Placa : StringDescricao : StringSituacao : Integer

Carro(Placa : String)SelecionarCarrosDisponíveis()EncontrarCarro(Placa : String)

Visão Lógica

Page 69: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

AluguelAluDataInicio : Date = current date

CarroCarPlaca : StringCarDescricao : StringCarSituacao : Integer = 0CarAno : IntegerCarKm : IntegerCarPrecoKm : CurrencyCarTaxaDiaria : CurrencyCarObservacao : String

ClienteCliCpf : StringCliNome : StringCliEndereco : StringCliTelefone : StringCliDivida : Currency = 0

0..n

0..n

0..n

0..n

Diagrama de Classes

Page 70: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Modelo de classes

Page 71: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Modelo de Objetos

Page 72: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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 ) );

Page 73: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

UML - Visão LógicaUML - Visão Lógica

Navegabilidade

Funcionario

Matricula

Dependente

Nome

Page 74: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Direção da Navegabilidade

CREATE TABLE Funcionario( Matricula VARCHAR(40) NOT NULL UNIQUE, PRIMARY KEY(Matricula)) CREATE TABLE Dependente( Nome VARCHAR(30), Matricula VARCHAR(40) NOT NULL UNIQUE, FOREIGN KEY (Matricula) REFERENCES Funcionario, DependenteId NUMBER(5), PRIMARY KEY(DependenteId))

Funcionario

Matricula

Dependente

Nome

Page 75: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Relacionamentos de Dependênciae Implementação

ServidorBD

Pedido

Dependência

Implementação

interfacePedido

<<Interface>>

Conecta()

Exibir()

Page 76: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Sumário

Page 77: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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.

Page 78: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 05

Page 79: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Use Case

Page 80: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

DadosCliente

AtorCliente CadastrarCliente

MensagemCadastro

UML - Use CaseUML - Use CaseDiagrama de Use Case

Page 81: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

AlugarCarro

LiquidarDivida

CadastrarCliente

DevolverCarro

AtorCliente

Msg01, Carro Alugado

Msg05, Recibo

Msg03

DadosAluguel

DadosPagamento DadosCliente

Msg02, Recibo

DadosDevolução

Use Case por Ator

Page 82: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Relacionamento <<uses>>

ValidarCliente

Cliente RealizarPedido

<<uses>>

Relacionamento <<extends>>

CadastrarCliente

ClienteRealizarPedido

<<extends>>

dadosPedido

msg02

dadosPedido

msg02

Relacionamentos em Use Cases

Page 83: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Ator Usuário Msg01, Livro Solicitado

Dados Empréstimo

EmprestarLivro

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 e-mail).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.

Especificação de Modelo de caso de uso

Page 84: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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.

Modelo de Caso de Uso – Fluxos alternativos

Page 85: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 06

Page 86: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Número: 01 Use Case: AtenderPedido Descrição: Este use case trata do pedido do Cliente. Ator: Cliente

AtenderPedido

Cliente

Questão:• Completar o Use Case.

Diagrama de Use Case

Page 87: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Exercício 07

Page 88: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Diagrama de Sequência atenderPedido - Curso Normal:

: Item Pedido

Cliente InterfacePedido

:Cliente :Produto :Pedido

Questão:• Completar o Diagrama.

Page 89: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Sumário

Page 90: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

DBC

Page 91: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Componentes ?

1. Blocos previamente testados2. Interfaces bem definidas3. Plug-In4. Mostra apenas o que interessa5. Suporta:

• reuso direto através de instâncias• Criação de componentes mais específicos

Page 92: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Componentes e Interfaces

Cliente.jarClienteHome

Cliente

<<interfaces>>

Servidor WEB Servidor Aplicação

Web.war

HtmlJSPServlet

Page 93: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

FramePrincipal.java

FrameCliente.java

FrameCarro.java

FrameAluguel.java

"LocadoraClient.jar"

Locadora.db

Cliente

Regras de Negócio

Banco de Dados

Regras de Negocio e Banco de Dadospara um domínio de Aplicações, fornecendoas seguinte principais vantagens:

•Reuso de código previamente testado•Evita duplicação do código nas aplicações•Facilita a manutenção

Arquitetura em camadas

Page 94: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Diagrama de Componentes

Page 95: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Diagrama de Componentes

Page 96: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

Outras Tecnologias

1.Orientação a Aspectos2.Padrões3.Frameworks4.Agentes de Software5.Web Services6.XML e outras LPs WEB

Page 97: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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

Page 98: Ir p/ primeira página Antonio Francisco do Prado prado@dc.ufscar.br Engenharia de Software

Ir p/ primeira página

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.