Desenvolvimento de software • • • • PDS Revisão Projeto DBC [email protected] DC - UFSCar PDS dimensão/tempo dimensão/componente Concepção Elaboração Construção Transição Análise de Requisitos Nível de arquitetura Design Nível de classe Implementação Teste Abstração Visões Tempo • Caso de Uso • Lógica • Componente • Deployment Locadora LocaSB Uma 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. UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Re la c io na m e n to U se C ase A to r M sg 01 Particionamento por Use Cases Nr Descrição do Use Case 01 02 03 04 05 06 Cliente aluga carro Cliente devolve carro Cliente solicita cadastro Funcionário cadastra carro Cliente liquida dívida Gerente solicita Relatório dos carros alugados Evento DadosAluguel DadosDevolução DadosCliente DadosCarro DadosPagamento SolicitaRelatorio Use Case Resposta AlugarCarro DevolverCarro CadastrarCliente CadastrarCarro LiquidarDivida GerarRelatorioCarros Msg01 Msg02, Recibo Msg03 Msg04 Msg05, Recibo RelatorioCarro Mensagens M sg 0 1 = A lu g u el c riad o | A lu g u el c an celad o | C lien te n ã o c ad ast rad o ou tem d iv id a M sg 0 2 = C a rro d e v olvid o | A lu g u el n ão e xiste | D e volu çã o ca n cela d a M sg 0 3 = C lien te foi ca d a st ra d o | C lien te foi exc lu íd o | C lien te f oi atu alizad o M sg 0 4 = C a rro foi ca d a st ra d o | C a rro f oi exc lu íd o | C a rro f oi atu alizad o M sg 0 5 = P ag am e n to reg ist rad o | P ag am en t o c an celad o UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Use Case agrupado por Ator ou Assunto UML - Use Case Inclusão <<use>> <<include>> Extensão <<extend>> dadosPedido dadosPedido Cliente RealizarPedido RealizarPedido Cliente msg02 <<use>> <<extend>> msg02 ValidarCliente CadastrarCliente UML - Use Case Colaboração Generalização <<realização>> dadosCliente dadosPedido msg02 Cliente RealizarPedido msg02 ClientePF Validar Cliente <<realização>> Validar Usuario Gerencia Pedido Cliente UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent N ú m e r o: 01 U se C ase : D e sc r iç ão: A tor : A lu ga rC arro E ste use c ase tr ata do alugue l de um c ar r o. A tor C lie nte DadosAluguel AlugarCarro AtorCliente Msg01, Carro Alugado 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. UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Visão Lógica Diagrama de Classes Visão Lógica Diagrama de Classes (Link de atributo) UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Diagrama de Sequência AlugarCarro - Curso Normal: Visão Lógica Diagrama de Classes Projeto Definir plataforma de HW e SW Por exemplo: • BD Relacional • SO Windows • LP Java • Servidor WEB • Outros requisitos não funcionais Classes Persistentes Atributos Tabela BD Métodos Interface ou Stored Procedure BD Visão Lógica Projeto Relacionamentos de Dependência e Implementação ServidorBD <<Interface>> Conecta() Dependência interfacePedido Exibir() Implementação Pedido Projeto Interface com métodos UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Diagrama de Sequência AlugarCarro - Curso Normal: Projeto Objeto x BD relacional Cliente Modelo de Objetos Modelo de Dados Engenharia Avante Engenharia Reversa BD UML - Visão Lógica Relacionamentos Navegabilidade C lie n te Pe d id o Navegabilidade Implementação Funcionario 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)) Matricula Dependente Nome Modelo de Objetos : Atributos serão campos das tabelas Modelo Dados gerado a partir do Modelo de Objetos FK faz parte da PK PK Default Tipos e chaves primárias default !!! Modelo de Dados Modificado SQL gerada pela Engenharia 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 partir do 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 partir do script SQL No “ISQL” leia o arquivo .sql gerado no Rose ou copie o arquivo na área “Command” Em “Command” use o botão “Execute” para executar o script sql. Script sql carregado Criando o DSN do BD para acesso via ODBC No “ODBC DS Administrator” crie o User DSN do BD “LocaSB” “Click” no botão “Add” para adicionar o DSN Selecione o Driver do Sybase e “click Finish” Criando o DSN do BD para acesso via ODBC Defina o DSN “LocaSB” User ID: dba Password: sql Faça um “browser” e localize o BD LocaSB.db e “click em OK” UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Diagrama de Componentes UML- Unified Modeling Language Principal Regras de Negócio Interface Componente BD Locadora Banco de Dados Diagrama de Componentes Arquitetura Reutilizar Componentes Desenvolver Componentes <<Interface>> ClienteHome Cliente.jar Web.war Cliente.class Html JSP Servlet ClienteRemote.class Cliente ClienteBean.class Notações para interfaces Servidor WEB Servidor Aplicação UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Visão Lógica Engenharia de Componentes Visão Lógica Classe 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 UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Visão Componente Diagrama de Componentes Visão Lógica Diagrama de Componentes da Aplicação <<REALIZAÇÃO>> UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Diagrama de Sequência CadastrarCarro - Curso Normal: Diagrama de Sequência AlugarCarro - Curso Normal: UML- Unified Modeling Language U se C a se Vie w D iagram a d e U se C ase D escrição d o U se C a se D iagram a d e S eq ü ên cia D iagram a d e C olab oração L ogical View D iagram a d e C lasse s D iagram a d e E stad os C om po ne nt Vie w D iagram a d e C om p on en tes D eploym ent V iew D iagram a D eploym ent Diagrama de Deployment Processador PC P en tiu m Periférico F ibr a Ó tic a Im p HP 6 00 C abo S ca nne r