desenvolvimento de software pds revisão projeto dbc [email protected] dc - ufscar
TRANSCRIPT
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