Upload
internet
View
105
Download
1
Embed Size (px)
Citation preview
Ir p/ primeira página
Sumário
Ir p/ primeira página
Visão Geral – Fatores Críticos
Ir p/ primeira página
Tempo
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
Ir p/ primeira página
Bomba !
Analista
Usuário
Comunicação
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
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
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.
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
Ir p/ primeira página
Visão Geral - PDS
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
Ir p/ primeira página
Coleta de Fatos
Documentos Entrevistas Reuniões Questionários Observação
Ir p/ primeira página
Modelagem: Enfoques
DECOMPOSIÇÃO FUNCIONAL
FLUXO DE DADOS ENTIDADES E
RELACIONAMENTOS ORIENTADO A OBJETOS ORIENTADO A
COMPONENTES
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
Ir p/ primeira página
ObterHT
Funcionário
Serviço
Imposto
CalcularPagto
EmitirContraCheque
Funcionário
Fluxo de Dados
Ir p/ primeira página
Funcionário
Serviço
Recolhe
Emprega
Imposto
N
1
N
M
HT
Entidades e Relacionamentos
Ir p/ primeira página
DSOO
Sistema
Problemas
Orientado a Objetos
Mundo Real
Ir p/ primeira página
Orientado a Componentes
Ir p/ primeira página
Visual Java
Ir p/ primeira página
Acesso a BD com componentes
Ir p/ primeira página
JOIN
entre
as
Tabel
as
Acesso a BD com componentes
Ir p/ primeira página
Componentes em Delphi
Internet
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
Ir p/ primeira página
Edição de Cena no Jazmine
Ir p/ primeira página
Cenas no Jazmine
Ir p/ primeira página
Java Beans em Aplicações
Ir p/ primeira página
Java Beans na WEB
Ir p/ primeira página
Análise
Identi- ficação deRequisitos
Projeto
Implementação
Teste
Versão
123
Modelo Espiral
P D S Atual
Ir p/ primeira página
Sumário
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
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
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:
Ir p/ primeira página
classe Pessoa
objeto Maria objeto Pedro
Classe e Objeto
Ir p/ primeira página
Pessoa
NomeEndereçoTelefoneIdadeAltura
Registrar()Matricular()Pagar()Estudar()Cadastrar()
ATRIBUTOS
MÉTODOS
Pedro
Maria
Objetos
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
Ir p/ primeira página
BC 4580
97
98
XP 3244
Carro
Placa
Ano
Modelo
Carro
MJ 1256
96
97
97
98
Construtor
Ir p/ primeira página
Exercício 01
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.
Ir p/ primeira página
Pessoa
Estudante Professor Funcionário Diretor
Herança
Ir p/ primeira página
Peso BrutoPeso líquidoAlturaMotor
Veículo
ProprietárioPlacaAnoModeloMarca
Herança – Exemplo
Ir p/ primeira página
Pessoa
NomeEndereçoTelefone
Estudante
MatrículaCursoAnoGraduação
Professor
TítuloSalario
Herança - Notação
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
Ir p/ primeira página
Exercício 02
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.
Ir p/ primeira página
TODO
PARTES
Agregação
Ir p/ primeira página
Item 1: Relógio Item 2: Computador
PEDIDO
TODO
PARTES
Agregação
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
Ir p/ primeira página
Código
Período
Área
Numero MatriculaNomeEndereço
Curso
Aluno
1..N
Agregação por referência
Ir p/ primeira página
Faz
Cliente
Pedido
Associação
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
Ir p/ primeira página
Estudante Teste
SalaNota
realiza
Link de Atributo
Ir p/ primeira página
Exercício 03
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)
Ir p/ primeira página
Quando será que você vai aprender minha linguagem ?
Conexão de Mensagem
Ir p/ primeira página
Abram seuslivros na página 36
Qual apróximalição?
Mensagens entre objetos
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
Inter-face
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()
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
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
Ir p/ primeira página
SistemaOperacional
Objeto1Objeto1
Método1Método1 MétodoMMétodoM. . .
. . . ObjetoN
Método1 . . .
Eventos - Tratamento
ObjetoN
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
Ir p/ primeira página
Redesenhar (NovoCentro:Ponto);
MoverFigura (NovoCentro:Ponto) { . . .
Redesenhar (NovoCentro);
. . . }
Polimorfismo - Exemplo
Ir p/ primeira página
Exercício 04
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
Ir p/ primeira página
T,k: Integer
Array
k..k T
Parametrizada (Template)
Genericidade ou Tipos Genéricos
Ir p/ primeira página
DC
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
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
Ir p/ primeira página
Modelo de classes
Ir p/ primeira página
Modelo de Objetos
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 ) );
Ir p/ primeira página
UML - Visão LógicaUML - Visão Lógica
Navegabilidade
Funcionario
Matricula
Dependente
Nome
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
Ir p/ primeira página
Relacionamentos de Dependênciae Implementação
ServidorBD
Pedido
Dependência
Implementação
interfacePedido
<<Interface>>
Conecta()
Exibir()
Ir p/ primeira página
Sumário
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.
Ir p/ primeira página
Exercício 05
Ir p/ primeira página
Use Case
Ir p/ primeira página
DadosCliente
AtorCliente CadastrarCliente
MensagemCadastro
UML - Use CaseUML - Use CaseDiagrama de Use Case
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
Ir p/ primeira página
Relacionamento <<uses>>
ValidarCliente
Cliente RealizarPedido
<<uses>>
Relacionamento <<extends>>
CadastrarCliente
ClienteRealizarPedido
<<extends>>
dadosPedido
msg02
dadosPedido
msg02
Relacionamentos em Use Cases
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
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
Ir p/ primeira página
Exercício 06
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
Ir p/ primeira página
Exercício 07
Ir p/ primeira página
Diagrama de Sequência atenderPedido - Curso Normal:
: Item Pedido
Cliente InterfacePedido
:Cliente :Produto :Pedido
Questão:• Completar o Diagrama.
Ir p/ primeira página
Sumário
Ir p/ primeira página
DBC
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
Ir p/ primeira página
Componentes e Interfaces
Cliente.jarClienteHome
Cliente
<<interfaces>>
Servidor WEB Servidor Aplicação
Web.war
HtmlJSPServlet
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
Ir p/ primeira página
Diagrama de Componentes
Ir p/ primeira página
Diagrama de Componentes
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
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
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.