Desenvolvimento de software PDS Revisão Projeto DBC prado@dc.ufscar.br DC - UFSCar.

Post on 17-Apr-2015

106 views 0 download

Transcript of Desenvolvimento de software PDS Revisão Projeto DBC prado@dc.ufscar.br DC - UFSCar.

Desenvolvimento de software

• PDS• Revisão• Projeto• DBC

prado@dc.ufscar.brDC - UFSCar

PDS

ElaboraçãoConcepção Construção Transição

Análise de Requisitos

Nível de arquitetura

Nível de classe

Implementação

Teste

Design

dimensão/tempo

dimensão/componente

Abstração

Tempo

Visões

• Caso de Uso • Lógica• Componente• Deployment

Locadora LocaSBUma locadora aluga carros aos clientes

previamente cadastrados. Caso o cliente não esteja cadastrado, esta atividade custodial é realizada, separadamente em outra atividade do sistema. Caso um carro, disponível, seja escolhido pelo cliente este é alugado, sendo registrada a data inicial junto ao aluguel. Para que o cliente possa alugar um carro, este não pode estar com dívida pendente.

Os carros são descritos pela placa, ano, modelo, descrição, km atual, preço por km do aluguel, situação (disponível, alugado ou outros estados), taxa diária do aluguel, foto, e observações(informações gerais). Os clientes são cadastrados pelo seu CPF, nome, endereço, telefone e dívida(reservado para registrar pagamentos pendentes).

Quando o cliente devolve o carro, a situação do carro é mudada para “disponível”, o Km Atual é atualizado e um recibo é emitido, baseado nos kms rodados e nos dias que o cliente ficou com o carro. Ainda na atividade de devolução é removido o registro do aluguel e, caso o cliente não possa pagar, a dívida do aluguel é registrada junto ao cliente.

O cliente pode, em qualquer momento, pagar sua dívida, e o gerente pode solicitar relatórios sobre a Locadora.

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Particionamento

por

Use Cases

Ator UseCase

Relacionamento

Msg01

Nr Descrição do Use Case 01 Cliente aluga carro 02 Cliente devolve carro 03 Cliente solicita cadastro 04 Funcionário cadastra carro 05 Cliente liquida dívida 06 Gerente solicita Relatório dos

carros alugados Evento DadosAluguel DadosDevolução DadosCliente DadosCarro DadosPagamento

SolicitaRelatorio

Use Case Resposta AlugarCarro Msg01 DevolverCarro Msg02, Recibo CadastrarCliente Msg03 CadastrarCarro Msg04 LiquidarDivida Msg05, Recibo GerarRelatorioCarros RelatorioCarro

Msg01 = Aluguel criado | Aluguel cancelado | Cliente não cadastrado ou tem divida

Msg02 = Carro devolvido | Aluguel não existe | Devolução cancelada

Msg03 = Cliente foi cadastrado | Cliente foi excluído | Cliente foi atualizado

Msg04 = Carro foi cadastrado | Carro foi excluído | Carro foi atualizado

Msg05 = Pagamento registrado | Pagamento cancelado

Mensagens

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Use Case agrupado por Ator ou Assunto

Inclusão<<use>>

<<include>>

ValidarCliente

Cliente RealizarPedido

<<use>>

Extensão <<extend>>

CadastrarCliente

ClienteRealizarPedido

<<extend>>

UML - Use CaseUML - Use Case

dadosPedido

msg02

dadosPedido

msg02

Colaboração <<realização>>

Gerencia Pedido

Cliente RealizarPedido

<<realização>>

Generalização

Validar Usuario

ClientePFValidar Cliente

UML - Use CaseUML - Use Case

dadosPedido

msg02

dadosCliente

msg02

Cliente

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

AtorCliente AlugarCarro

DadosAluguel

Msg01, Carro Alugado

Número: 01Use Case: AlugarCarroDescrição: Este use case trata do aluguel de um carro.Ator: AtorCliente

Curso Normal: 1. Cliente solicita o aluguel de um carro. 2. Sistema mostra os carros disponíveis para aluguel. 3. Cliente escolhe um carro. 4. Cliente informa seu CPF. 5. Sistema encontra o Cliente associado ao CPF. 6. Sistema exibe o Cliente. 7. Cliente informa a data inicial do aluguel. 8. Cliente confirma o aluguel. 9. Sistema cria uma instância de aluguel associando o

Cliente ao carro, com a data inicial do aluguel, muda a situação do carro para alugado e emite Msg01

informando que o aluguel foi registrado.

Cursos Alternativos: Alternativa 2 2. Sistema informa que não existe carro disponível para alugar

2.1. Sistema cancela o aluguel e emite Msg01 informando que o aluguel foi cancelado. 2.2. Sistema encerra o Use Case.

Alternativa 5 5. Cliente não existe ou tem dívida 5.1 Sistema cancela o aluguel e emite Msg01 informando que o cliente não está cadastrado ou tem dívida pendente. 5.2. Sistema encerra o Use Case. Alternativa 7 7. Cliente não informa a data de início do aluguel.

7.1. Sistema usa a data corrente Alternativa 8 8. Cliente desiste de alugar o carro.

8.1. O Sistema cancela o aluguel e emite Msg01 informando que o aluguel foi cancelado. 8.2. Sistema encerra o Use Case.

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Visão Lógica

Diagrama de Classes

Visão Lógica Diagrama de Classes(Link de atributo)

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Diagrama de Sequência AlugarCarro - Curso Normal:

Visão Lógica

Diagrama de Classes

ProjetoProjeto

Definir plataforma de HW e SWPor exemplo:

• BD Relacional • SO Windows• LP Java• Servidor WEB• Outros requisitos não funcionais

Classes PersistentesAtributos Tabela BDMétodos Interface ou Stored Procedure BD

Visão Lógica Projeto

Relacionamentos de Dependênciae Implementação

ServidorBD

Pedido

Dependência

Implementação

interfacePedido

<<Interface>>

Conecta()

Exibir()

ProjetoProjeto

Interface com métodos

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Diagrama de Sequência AlugarCarro - Curso Normal: Projeto

Objeto x BD relacional

Cliente

BD

Modelo deDados

Modelo deObjetos

EngenhariaAvante

EngenhariaReversa

Relacionamentos

Navegabilidade

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

Pedido

Cliente

Navegabilidade Implementação

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

Modelo de Objetos :Atributos serão campos

das tabelas

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

Modelo Dadosgerado a partir do Modelo de Objetos

Tipos e chaves primárias default !!!

CarroCarro_ID : INTEGERCarPlaca : VARCHAR(255)CarDescricao : VARCHAR(255)CarSituacao : INTEGERCarAno : INTEGERCarKm : INTEGERCarPrecoKm : DOUBLE PRECISIONCarTaxaDiaria : DOUBLE PRECISIONCarObservacao : VARCHAR(255)

<<PK>> PK_Carro48()

AluguelAluDataInicio : DATECarro_ID : INTEGERCliente_ID : INTEGER

<<PK>> PK_Aluguel49()<<FK>> FK_Aluguel30()<<FK>> FK_Aluguel31()

10..*

10..*

<<Identifying>>

ClienteCliente_ID : INTEGERCliCpf : VARCHAR(255)CliNome : VARCHAR(255)CliEndereco : VARCHAR(255)CliTelefone : VARCHAR(255)CliDivida : DOUBLE PRECISION

<<PK>> PK_Cliente47()

1

0..*

1

0..*<<Identifying>>

PK Default

FK faz parte da

PK

Modelo de DadosModificado

CarroCarPlaca : VARCHAR(25)CarDescricao : VARCHAR(255)CarSituacao : INTEGERCarAno : INTEGERCarKm : INTEGERCarPrecoKm : DECIMAL(10, 2)CarTaxaDiaria : DECIMAL(10, 2)CarObservacao : VARCHAR(255)

<<PK>> PK_Carro54()

AluguelAluDataInicio : DATECliCpf : VARCHAR(25)CarPlaca : VARCHAR(25)

<<FK>> FK_Aluguel33()<<FK>> FK_Aluguel34()

10..*

10..*

<<Non-Identifying>>

ClienteCliCpf : VARCHAR(25)CliNome : VARCHAR(255)CliEndereco : VARCHAR(255)CliTelefone : VARCHAR(55)CliDivida : DECIMAL(10, 2)

<<PK>> PK_Cliente52()

1

0..*

1

0..*<<Non-Identifying>>

SQL gerada pelaEngenharia Avante

CREATE TABLE Aluguel ( AluCodigo INTEGER DEFAULT autoincrement NOT NULL,

AluDataInicio DATE DEFAULT current date NOT NULL,

CliCpf VARCHAR ( 25 ) NOT NULL,CarPlaca VARCHAR ( 25 ) NOT NULL

CONSTRAINT PK_Aluguel PRIMARY KEY (AluCodigo) );

CREATE TABLE Carro (CarPlaca VARCHAR ( 25 ) NOT NULL,CarDescricao VARCHAR ( 255 ),CarSituacao INTEGER DEFAULT 0,CarAno INTEGER,CarKm INTEGER,CarPrecoKm DECIMAL ( 10, 2 ),CarTaxaDiaria DECIMAL ( 10, 2 ),CarObservacao VARCHAR ( 255 ),CONSTRAINT PK_Carro54 PRIMARY

KEY (CarPlaca) );

Engenharia Avante (cont.) Alterações de

chaves estrangeiras

CREATE TABLE Cliente (CliCpf VARCHAR ( 25 ) NOT NULL,CliNome VARCHAR ( 255 ),CliEndereco VARCHAR ( 255 ),CliTelefone VARCHAR ( 55 ),CliDivida DECIMAL ( 10, 2 ),CONSTRAINT PK_Cliente52

PRIMARY KEY (CliCpf));

ALTER TABLE Aluguel ADD CONSTRAINT FK_Aluguel33 FOREIGN KEY (CliCpf) REFERENCES Cliente (CliCpf) ;

ALTER TABLE Aluguel ADD CONSTRAINT FK_Aluguel34 FOREIGN KEY (CarPlaca) REFERENCES Carro (CarPlaca) ;

Gerando o BD a partirdo script SQL

“Start”o Sybase Central e use a opção create Database para criar o banco “LocaSB”

“Connect” com “LocaSB”

“Open ISQL”

Gerando o BD a partirdo script SQL

No “ISQL” leia o arquivo .sql gerado no Rose ou copie o arquivo na área “Command”

Script sql carregado

Em “Command” use o botão “Execute” para executar o script sql.

Criando o DSN do BD para acesso via ODBC

No “ODBC DS Administrator” crie o User DSN do BD “LocaSB”

Selecione oDriver do Sybase e “click Finish”

“Click” no botão “Add” para adicionar o DSN

Criando o DSN do BD para acesso via ODBC

Defina o DSN “LocaSB”

User ID: dbaPassword: sql

Faça um “browser” e localize o BD LocaSB.db e “click em OK”

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Diagrama deComponentes

Diagrama de

ComponentesBD

Locadora Principal

Regras de Negócio

Interface Banco de Dados

UML- Unified Modeling LanguageUML- Unified Modeling Language

Componente

Arquitetura

Cliente.jar

Cliente

ClienteHome

<<Interface>>

Cliente.class

ClienteRemote.class

ClienteBean.class

Web.war

HtmlJSPServlet

Servidor WEB Servidor Aplicação

Desenvolver Componentes

Notaçõespara

interfaces

ReutilizarComponentes

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Visão Lógica Engenharia de Componentes

Visão LógicaClasse persistente

Visão Lógica Classe transiente

Visão Lógica ClassesTransientes

Visão Lógica Classe transiente Interfaces e dependências

Visão Lógica Aplicação

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Visão Componente Diagrama de Componentes

Visão LógicaDiagrama de Componentesda Aplicação

<<REALIZAÇÃO>>

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

Diagrama de Sequência CadastrarCarro - Curso Normal:

Diagrama de Sequência AlugarCarro - Curso Normal:

Use Case View Diagrama de Use Case Descrição do Use Case Diagrama de Seqüência Diagrama de Colaboração

Logical View Diagrama de Classes Diagrama de Estados

Component View Diagrama de Componentes

Deployment View

Diagrama Deployment

UML- Unified Modeling UML- Unified Modeling LanguageLanguage

PCPentium

ImpHP 600 Scanner

FibraÓtica

Cabo

Diagrama de

Deployment

Periférico

Processador