Escolar Documentos
Profissional Documentos
Cultura Documentos
Rildo F Santos
rildo.santos@etecnologia.com.br rildo.santos@companyweb.com.br
Verso 27 Verso 27 |
Twitter: @rildosan Blog: http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos 2006 e 2007
Contedo
Parte 1 - Principais Conceitos da Orientao a Objetos e introduo UML Parte 2 Especificao de Requisitos de Software Parte 3 Analise Conceitual Parte 4 Desenho (design) do Modelo de Especificao de Software Parte 5 Arquitetura de Software
Verso 27
Objetivo: Apresentar os principais conceitos da orientao a objetos. Ser demonstrado os seguintes conceitos: Classes, Objetos, Atributos, Mtodos, Abstrao de Dados, Herana,
Ferramentas e Artefatos
Tecnologia OO
Atividades
Suporte as atividades
WorkFlows
Metodologia/Fases
Verso 27 Jacobson pyramid rational enterprise philosophy Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Objeto pode ser qualquer coisa na natureza que possua caractersticas e comportamentos Veja alguns exemplos de objetos:
Pessoa
Co
Partida de Futebol
Barco
Os objetos podem ser fsico (aqueles que podemos pegar, exemplos: uma pessoa, um animal, um barco, um livro, um carro, uma casa e etc) e os conceituais (aqueles que no podemos pegar, tais como: cobrana de IOF, uma ligao telefnica, uma conta corrente e etc...)
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Objeto: Pessoa
Propriedades
Nome Data de Nascimento Massa (peso) Altura
Operaes
Andar Correr Trabalhar Chorar Danar
Objeto: Pssaro
Propriedades
Espcie Cor das penas Tamanho Peso
Operaes
Andar Correr Voar Pousar
Verso 27
Atributos
cor Nmero chassi Ano-fabricao
Identificador
Carro
Operaes
acelerar O que so operaes ? - Coisas que objeto deve saber fazer
Verso 27
parar
Atributos
cor branco
Nmero chassi
VW1003G345
Ano-fabricao 1966
Identificador
Carro
Operaes
acelerar parar estado
Verso 27
Atributos
Substantivo cor branco
Nmero chassi
VW1003G345
Ano-fabricao 1966
Identificador
Carro
Operaes
acelerar verbos
Verso 27
parar
Todos os direitos reservados e protegidos 2006 e 2007
10
Identificador
Carro
Representao na Orientao a objetos
Nome (identificador)
Carro
Atributos
cor Nmero chassi branco VW1003G345
Ano-fabricao 1966
acelerar parar
Propriedades (atributos)
Operaes
acelerar
parar
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Operaes
Todos os direitos reservados e protegidos 2006 e 2007
11
Para representar os objetos do mundo real criamos classes, E a partir destas classes podemos criar os objetos. Podemos dizer que um objeto uma instance (espcie) da classe. As classes so blueprint (projeto) para os objetos. So frmas de objetos.
Verso 27
12
Classe
Definio de Classe: Uma classe descreve um conjunto de objetos que compartilham os mesmos atributos, operaes, mtodos, relacionamentos e semntica
As classes so as partes mais importantes de qualquer sistema orientada a objetos. Usamos as classes para capturar o vocabulrio do sistema que est em desenvolvimento. Essas classes podem incluir abstraes que so parte do domnio do problema, assim como as classes que fazem uma implementao. Podemos usar ainda as classes para representar itens de software, de hardware e at itens que sejam somente conceituais. Exemplo: A classe Pessoa dever ter atributos e mtodos comuns
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Nota: Dicionrio Aurlio Em programao ou modelagem orientada a objetos (v. orientao a objetos), categoria descritiva geral, que abrange o conjunto de objetos que compartilham uma ou mais caractersticas quanto a seus itens de dados e procedimentos associados. 22. Lg. Agrupamento de objetos que tm uma ou mais caractersticas em comum.
Mtodos
Verso 27
13
Classe
Exemplo de Classe:
3 Livro 1
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
ISBN 0747551006 Titulo: Harry Potter and the Order of the Phoenix Autor: J. K. Rowling
Verso 27
14
Classe e Objeto
Classe e Objeto. Exemplo:
ISBN 0747551006 Titulo: O Poder da inteligncia Emocional Autor: Daniel Goleman
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Uma coleo de livros pode ser representada por uma classe chamada Livro.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
ISBN 0747551006 Titulo: Harry Potter and the Order of the Phoenix Autor: J. K. Rowling
ISBN 8571643512 Titulo: AS JANELAS DO PARATII Autor: Amir Klink
15
Classe e Objeto
Classe e Objeto. Exemplo:
Identificador
Carro
Classe (Modelo)
Objeto (instance)
Carro
fusca:Carro
cor=branco nmero chassi=VW1003G345 ano-fabricao=1966
Atributos
cor Nmero chassi
branco VW1003G345
Ano-fabricao 1966
Operaes
acelerar
parar
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
16
Classe e Objeto
Classe e Objeto. Exemplo:
Classe
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Objetos
Verso 27
17
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Ao criar uma classe voc estar criando uma declarao de que todos os objetos dessa classe tm o mesmo tipo de estado e o mesmo tipo de comportamento. Em nvel mais abstrato, esses atributos e operaes so apenas as caractersticas com quais as responsabilidades das classes executadas. Uma classe chamada de Transao de Pagamento tem a responsabilidade pelo conhecimento das informaes inerente a operao, tais como nmero da transao, situao, valor, data, tipo de pagamento e etc. TransacaoPagamento numero valor data situao TipoPagamento Responsabilidade: -- Saber o nmero da transao, data, valor -- Conhecer o tipo de pagamento...
Todos os direitos reservados e protegidos 2006 e 2007
Responsabilidades
Verso 27
18
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Colaborao
BoletoBancario
Verso 27
19
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Carto
Aluno
-- Deve conhecer os dados dos aluno: Nome Nmero da Matricula Curso Matricula Pessoa Curso
Verso 27
20
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Um objeto possui: um estado (definido pelo conjunto de valores dos seus atributos em determinado instante) um comportamento (definido pelo conjunto de mtodos definido na sua interface) uma identidade nica Uma classe possui: Atributos Mtodos Responsabilidades (o que ela sabe fazer) Colaborao (interao com outras classes)
Verso 27
21
Atributo
Definindo Atributo:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
uma caractersticas (propriedade) presente no objeto. Valor de todos os atributos igual Estado do Objeto.
Somente atributos que so de interesse do sistema devem ser descritos na classe.
Cliente nome cpf idade
atributos
Verso 27
22
Mtodo
Escrevendo os mtodos.
Para cada atributo recomendado escrever um par de mtodos, os nomes destes mtodos devem comear com setXXXX( ) e getXXX( )
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Cliente
codigo nome getCodigo() setCodigo() getNome() setNome()
Mtodos
setCodigo(): Para trocar o valor do atributo getCodigo(): Para recuperar o valor do atributo Exemplo: Valor do atributo: nome = null setNome(Duke). Agora valor do atributo nome = Duke getNome(), retornar Duke
Verso 27
23
Mtodo
Definio de Mtodo: Definio: Mtodo a implementao de uma operao. Definio de Operao: a implementao de servio que pode ser solicitado por qualquer objeto da classe com a finalidade de afetar um comportamento.
Chamando os mtodos Para chamar um mtodo de um objeto necessrio enviar uma mensagem para ele. As mensagens identificam os mtodos a serem executados no objeto receptor. Por definio todas as mensagens tem um tipo de retorno.
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Mtodos
Verso 27
24
Mensagem
Definio de Mensagem:
Definio:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Mensagem uma chamada de uma operao sobre um objeto, compreendendo um nome de operao e uma lista de valores de argumentos. (Rumbaugh)
Um mensagem representa a requisio de um objeto remetente a um objeto receptor para este ltimo execute alguma operao definida para sua classe. Essa mensagem deve conter informaes suficiente para que a operaes do objeto receptor possa ser executada
Verso 27
25
Resumo: Mtodos
Resumindo:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Os mtodos so a implementao das operaes de objetos. Os mtodos so responsveis pelo comportamento do objeto. A mudana de estado de um objeto deve ocorrer atravs dos mtodos. Desta forma podemos dizer que os mtodos encapsulam os atributos.
Verso 27
26
27
Verso 27
28
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Definio de abstrao: Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vrios graus de detalhe, dependendo do contexto corrente do problema. (Jim Rumbaugh).
Qual a funo da abstrao ? A funo da abstrao capturar as propriedades e os comportamentos essenciais, como se fosse uma fatorao, desta forma determina-se o que importante e o que no . Exemplo
Veculo
Abstrao
Navio
especializao
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Avio
29
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Exemplo Generalizao
MeiodeComunicao
Carta
Telefone
Jornal
Especializao As classes Contribuinte e MeiodeComunuicao neste caso so abstratas e ambas podem representam um domnio.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
30
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Verso 27
31
public abstract int calcIdade(Date public abstract int getIdade() d1, Date d2);
public void setIdade(int idade) public void setIdade(int idade) { { this.idade = idade; this.idade = idade; } } }
32
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Uma classe abstrata deve ter pelo menos um mtodo abstrato. Mas, poder ter outros mtodos que no so abstrato, so os mtodos concreto. Uma classe abstrata no possui instance
Verso 27
33
Verso 27
34
Herana
Definio de Herana:
Definio:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Mecanismo baseado em objetos que permite que as classes compartilhem atributos e operaes baseados em um relacionamento, geralmente generalizao. (Rumbaugh)
Uma classe derivada herda a estrutura de atributos e mtodos de sua classe base, mas pode seletivamente: adicionar novos mtodos estender a estrutura de dados redefinir a implementao de mtodos j existentes Uma classe pai ou super classe proporciona a funcionalidade que comum a todas as suas classes derivadas, filhas ou sub classe, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento. Exemplo:
Animal
Animal Domstico Animal Selvagem
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
35
Herana
Exemplo de Herana:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Hierarquia de Classes
Super classes
Curso Universitrio
Podemos dizer que PsGraduao tipo de Curso Universitrio, assim como Curso de Especializao ou de Extenso.
Verso 27
36
Polimorfismo
Definio de Polimorfismo:
Definio: Polimorfismo uma operao que pode assumir mltiplas formas, a propriedade segundo o qual uma operao pode comportar-se diferentemente em classes diferentes (Rumbaugh) O polimorfismo o responsvel pela extensibilidade em programao orientada a objetos. Promove o reso. Exemplo:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Billhetagem calcularConta(telefone)
Telefone Mvel
Telefone Fixo
Verso 27
37
Polimorfismo
Overloading de Mtodo
Possibilidade de reso do nome do mtodo para diferentes implementaes, em tempo de execuo, a aplicao, escolher o mtodo adequado para cada chamada, veja o exemplo.
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
TesteSoma
Soma somar(int a, int b) somar(float a, float b) somar(char a, char b) somar(long a, long b))
Para cada tipo de dados existe um mtodo, o reso do nome do mtodo permitido, entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o mtodo somar definido vrias vezes, entretanto com a lista de argumentos diferente, desta forma evitaremos problemas como ambigidade.
Verso 27
38
Polimorfismo
Overridde de Mtodo Uma subclasse pode mudar o comportamento herdado da Superclasse, ou seja, um mtodo herdado poder ser modificado. Veja o exemplo abaixo:
Conta Bancria getSaldo()
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Investimentos getSaldo()
O mtodo getSaldo herdado da Superclasse (Conta Bancria), entretanto para cada tipo de Conta ele tem uma implementao diferente. Por exemplo: - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depsitos + saldo anterior) saques Para a conta poupana seria saldo atual = (soma dos depsitos + saldo anterior + juros) saques Para a conta de investimentos seria saldo atual = (soma dos aplicaes + saldo anterior + juros) - resgates - ir
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
39
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Public Operaes/mtodos/interface
Private Dados/Atributos/propriedades
Exemplo: Quanto temos um arquivo protegido por senha de acesso, podemos dizer que ele est protegido, pois, apenas podemos l-lo sem fazermos alterao
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
40
Encapsulamento
Benefcios do Encapsulamento:
Benefcios - Segurana: Protege os atributos dos objetos de terem seus valores corrompidos por outros objetos. - Independncia: Escondendo seus atributos, um objeto protege outros objetos de complicaes de dependncia de sua estrutura interna
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Pessoa
nome idade setNome() getNome() setIdade() getIdade()
setNome() setIdade()
nome idade
encapsulamento
getNome() getIdade()
Verso 27
41
Interface
Definio de Interface: O que interface ?
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
Interface um contrato entre o cliente (classe) e uma interface. Este contrato garantia que o mtodos assinados na interface sero implementados na classe cliente. As interfaces so consideradas a forma mais pura de abstrao de dados, pois, somente podemos assinar (declarar) os mtodos. Podemos usa-las tambm para prover: - Organizao e padronizao de assinatura de mtodos; - Simular herana mltipla e - Fazer relacionamentos de classes com responsabilidade distintas.
Verso 27
42
Interface
Exemplo de Interface: Representao:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
realizao
Contrato
Produto getcodigo() setcodigo() cpf Fornecedor getcodigo() setcodigo() cnpj
Verso 27
43
Interface
Principais Caractersticas
Caractersticas de uma interface:
Classes Objetos Atributos Mtodos Abstrao de Dados Herana Polimorfismo Encapsulamento Interface
No possui implementao prpria. Ela define operaes, mas no os mtodos. Uma interface especifica, usualmente, uma parte limitada do comportamento de uma classe ou componente. Uma classe pode realizar vrias interfaces. Porque utilizar interfaces: Reduz o acoplamento (dependncia) entre classes, aumentando a sua reusabilidade. Permite que componentes possam ter diferentes interfaces de acordo com as necessidades dos seus usurios. Ajuda a esconder a complexidade da arquitetura de componentes. Oferece uma forma simplificada de implementar herana mltipla.
Verso 27
44
45
46
Verso 27
47
48
49
Processo de Desenvolvimento
Modelo Objetos de Negcio
Modelo de Classes
Desenho Classes
50
Verso 27
51
Verso 27
52
Viso de Projeto
Funcionalidade Vocabulrio
Viso da Implementao
Codificao Montagem
Conceitual
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Fsico
Todos os direitos reservados e protegidos 2006 e 2007
53
atividades.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
54
Viso de Implementao A viso de implementao de um sistema abrange os componentes e os arquivos utilizados para a montagem e fornecimento do sistema fsico. Essa viso envolve principalmente o gerenciamento da configurao das verses do sistema, compostas por componentes e
arquivos de alguma maneira independentes, que podem ser reunidos de diferentes formas para
a produo de um sistema executvel.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
55
Verso 27
56
Formulrios Diagrama de Seqncia e/ou Diagrama de Colaborao Diagrama de Estado Diagrama de Atividades Diagrama de Pacotes Diagrama de Estado Diagrama de Atividades Diagrama de Pacotes
Logical view
Diagrama de Classes
Component view
Diagrama de Componentes
Deployment view
Diagrama de Deployment
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
57
Anlise Conceitual
Modelo Conceitual
Engenharia de Requisitos
4
Casos de Uso
Requisitos No Funcionais
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Arquitetura Inicial
Todos os direitos reservados e protegidos 2006 e 2007
58
UML. Linguagem de Modelagem Unificada Introduo. Artefatos: Produtos dos Workflows de Requisitos e de Anlise:
Documento de Viso Documento de Requisitos
Requisitos
Especificao de Requisitos (Casos de Uso)
Anlise
Verso 27
59
Receber Pedido
Preencher Pedido
Enviar Fatura
Entrega Regular
: visitante
: FormBusca
: Categoria
: Produto
: Catalogo
getDescricao( )
getQuantidade( )
exibirProduto( )
Encerrar Pedido
selecionarProduto( )
Verso 27
60
Projeto
Principais Produtos (Artefatos): Diagrama de Sequncia / Colaborao
Diagrama de Atividades
Diagrama de Estados Diagrama de Classes
Verso 27
61
Arquitetura
Projeto (Viso de Componentes e Viso de Deployment)
Receber Pedido
: visitante
: FormBusca
: Categoria
: Produto
: Catalogo
Preencher Pedido
Enviar Fatura
getDescricao( )
exibirProduto( )
selecionarProduto( )
Entrega Regular
Encerrar Pedido
Verso 27
62
Arquitetura
Principais Produtos (Artefatos): Diagrama de Componentes Diagrama de Distribuio(Deployment) Modelo de Arquitetura
Verso 27
63
64
Introduo
65
Anlise Conceitual
Modelo Conceitual
Engenharia de Requisitos
4
Casos de Uso
Restries
Requisitos No Funcionais
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Arquitetura Inicial
Todos os direitos reservados e protegidos 2006 e 2007
66
Workflow Requisitos
Requisitos
Workflow Artefatos
Documento de Viso
Papis
Arquitetura
Documento de Requisitos
Verso 27
67
68
Requisitos
Capacitao Engenharia de Software
Verso 27
69
Requisitos
Capacitao Engenharia de Software
Regras de negcio
Documento de Requisitos
Documentos
70
Requisitos
Elicitao Ruim Diagnstico ineficiente Solues medocres Insatisfao dos usurios Problemas operacionais e financeiros
Todos os direitos reservados e protegidos 2006 e 2007
71
Requisitos
reunies
documentos
Verso 27
72
Requisitos
Planejamento
Elicitao de Requisitos
Documentao
Documento de Viso
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
73
Requisitos
74
Anlise de Requisitos
Requisitos
Requisitos Funcionais
Os requisitos funcionais descrevem o que o sistema deve fazer, isto , as funes (funcionalidades) necessrias para atender os objetivos. O que sistema deve saber fazer. Exemplos: Buscar cliente, Registrar pedido Calcular conta de consumo, Calcular tributos e etc.
Requisitos No-Funcionais
Os requisitos no funcionais dizem respeito as caractersticas que descrevem qualidade do servio (QoS). A omisso ou esquecimento desses requisitos constitui uma das principais razes de uma eventual insatisfao dos usurios com relao a um software. Os Requisitos No Funcionais (RNF) tambm so chamamos de Requisito Suplementares. Exemplos: performance, disponibiliade, confiabilidade, segurana, usabilidade e etc.
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
75
Requisitos
Este documento possibilita a identificao, extrao e classificao dos requisitos - Requisitos funcionais e - Requisitos no funcionais.
Verso 27
76
Requisitos
Verso 27
77
Requisitos
Capacitao Engenharia de Software
Regras de negcio
Documento de Requisitos
Documentos
78
Requisitos
79
Requisitos
Anlise de Requisitos
Atividades da Anlise de Requisitos A anlise de requisitos possibilita que o Analista de Sistemas especifique as funcionalidades, classificando e detalhando os requisitos encontrados na coleta. Os requisitos funcionais sero descritos em detalhes. E os requisitos no funcionais sero classificados.
80
Requisitos
Os requisitos funcionais devem ser detalhados. Devemos usar um formato padro para esta atividade. Veja o exemplo:
Lista de Requisitos funcionais
Autor: Reviso: Data Atualizao:
Nome
Cdigo
Descrio
Fazer Reserva RF01E Esta funcionalidade dever permitir o usurio (funcionrio) a fazer reserva de apartamentos, as aes que estaro disponveis so: criar, remover, alterar e consultar reservas. Cada reserva dever ter um cliente e um apartamento e respectiva perodo)
Verso 27
81
Requisitos
id
Nome da Regra
Descrio da Regra de Negcio A confirmao do registro de reserva de apartamento deve ocorrer aps o pagamento de 25% do valor da estadia. Os clientes AA (pessoas que hospedaram no hotel mais de 10 dias por ano) tem preferncia de data e tipo de apartamento. No perodo de baixa a estao (de mar a jun e ago a nov) o valor da diria tem um desconto de 40%. Para que agilizar o atendimento manter a satisfao do cliente as consultas de reserva devem ser feitas em no mximo 30 segundos.
Data Nome / Equipe RFS Verso 2.1 Status Vigente
RN01
01/01/08
Requisitos Funcional
RN: RN01 ID RFC01 Nome: Reserva Nome Registrar Reserva de Apartamento Descrio: Servio de Atendimento e Reserva de Apartamento Descrio Esta funcionalidade dever permitir o usurio (funcionrio) a fazer reserva de apartamentos, as aes que estaro disponveis so: criar, cancelar, alterar e consultar reservas.
Verso 27
82
Requisitos
Agora vamos descrever os Requisitos No Funcionais. Entretanto, precisamos categorizar estes requisitos, as mais frequente so:
- Performance: Tempo de resposta - Segurana: Uso de senhas, certificados digitais e etc.. - Usabilidade: Identidade Visual e Interfaces amigveis - Disponibilidade: O software deve estar disponvel para usurio 24x7. Exemplo: Tolerncia a falha - Flexibilidade: Capacidade de adaptao quando um requisito muda - Portabilidade: Capacidade de se adaptar a outros ambientes (sistemas operacionais) - Escalabilidade: Capacidade de responder aumento de carga (novos usurios) Outras categorias como Integrao, Processamento, Manutenvel e etc.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
83
Requisitos
Bem vamos descrever os requisitos no funcionais. Como na descrio dos Requisitos funcionais, precisamos ter um padro
Lista de Requisitos No funcionais
Categoria: Performance Autor: Req. Funcional Cdigo RNFP1 Descrio Reviso: Data Atualizao:
Fazer Consulta
As consultas que sero realizadas pelo cliente no podero exceder ao tempo de resposta de 15 segundos
Por que preciso de um cdigo ? Este cdigo tem como objetivo facilitar a rastreabilidade. Ele pode ser usado no Formulrio de Caso de Uso, por exemplo, desta forma conseguiremos identificar qual o caso de uso que realiza este RNF, no caso de mudanas.
Verso 27
84
Requisitos
Continuao:
Lista de Requisitos No funcionais
Categoria: Usabilidade Autor: RF / Aplicao Cdigo RNFU1 Descrio Reviso: Data Atualizao:
Aplicao Aplicao
As cores, as fontes e logotipos devem seguir o Manual de Identidade Visual da empresa. As interfaces com usurio devem seguir padro de interfaces estabelecido pelo Manual de Sistema
RNFU2
Verso 27
85
Requisitos
Precisamos descrever todos as pessoas e/ou organizao que influenciam a tomada de deciso ou participam direta ou indiretamente do processo de construo do software. Mais uma vez criaremos um formato padro. Veja o exemplo:
Lista de Stakeholders
Autor: Nome Descrio Reviso: Data Atualizao:
Cliente Colaborador
So todas as pessoas fsicas ou jurdicas que fazem reservas qualquer pessoa que presta algum tipo servio para empresa
Verso 27
86
Requisitos
Continuao:
Lista de Entidades Externas
Autor: Nome Descrio Reviso: Data Atualizao:
Precisamos elaborar um Plano de Reduo de Risco, para os risco que j foram identificados. Este plano deve detalhar como mitigar os riscos identificados.
Verso 27
87
Requisitos
Verso 27
88
Requisitos
Capacitao Engenharia de Software
Regras de negcio
Documento de Requisitos
Documentos
89
Requisitos
Especificao de Requisitos:
O produto que devemos ter aps Anlise de Requisitos a A especificao de Requisitos feita atravs de Casos de Uso, conforme definido pela UML. Um conjunto de casos de uso importante para se compreender o que o usurio quer. Um caso de uso descreve uma funcionalidade (requisito) a ser oferecida pelo sistema, ou seja, um servio. Documento de Viso
Requisitos No Funcionais
Documento de Requisitos Especificao de Requisitos Comportamento externo Comportamento interno Estrutura Implementao
Verso 27
Requisitos Funcionais
Distribuio
Todos os direitos reservados e protegidos 2006 e 2007
90
Requisitos
Especificao de Requisitos
Anlise de Casos de Uso:
Casos de uso expressam o dilogo entre os usurios e o sistema Casos de uso expressam o qu o sistema dever fazer. E no como fazer. Casos de uso formam a base para testes e documentao do sistema O modelo de casos de uso expressam todos os casos de uso do sistema e os seus relacionamentos. As tcnicas para criar e expressar casos de uso em uma aplicao Web so as mesmas para construir outros sistemas de software.
Objetivos: Identificar os atores; Identificar os casos de uso; Desenhar os casos de uso e Escrever cenrios.
Verso 27
91
Requisitos
Especificao de Requisitos
Transformar os Requisitos Funcionais em Casos de Uso:
Calcular Total
Cliente
Emitir NF
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
92
Requisitos
Especificao de Requisitos
Atividades e Passos: Fazer Diagrama de Casos de Uso Identificar Atores / Casos de Uso Escrever cenrios Escrever Formulrio Fazer Diagrama de Caso de Uso
Rational Rose
Verso 27
93
Requisitos
Casos de Uso
Introduo: Caso de Uso uma representao grfica e semntica da interao do usurio e o sistema.
Os diagramas de caso de uso so usados para capturar os requisitos funcionais do sistema. Ajuda o entendimento do contexto dos requerimentos do sistema.
Os casos de uso podem ser agrupados em pacotes, desta forma temos uma organizao funcional. O que so Caso de Uso? So diagramas de que permitem visualizar, especificar e documentar o comportamento de um elemento. Esses diagramas fazem com que sistema, subsistemas e classes fiquem acessveis e compreensveis, por apresentarem uma viso externa sobre como esses elementos interagem com sistema. Definio: Caso de Uso uma descrio de um conjunto de seqncias de aes, inclusive variantes, que um sistema pode produzir um resultado de valor observvel por um ator. A representao grfica uma elipse.
Caso de Uso
Gerenciar Reserva
Ator
Verso 27
Usurio Nome
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
94
Requisitos
Casos de Uso
Casos de Uso e Cenrios: Os casos de uso exibem a funcionalidade na perspectiva do usurio. Entretanto, podemos ter vrios caminhos para completar esta funo. Um cenrios como uma instance do Caso de uso, isto , um caminho lgico com incio e fim. Principais caractersticas: - Cenrios no contm declaraes condicionais; - Pode ter mesmo comeo, mas, com final diferente; - Um cenrio narrativa de uma situao e - Os cenrios devem descrever os bons caminhos e maus tambm. Exemplo: Autorizao de acesso. O usurio executa a aplicao, o sistema exibe a janela de identificao que pede a identificao do usurio, ou seja, seu nome e sua senha, O usurio informa seu nome e sua senha, o sistema valida as informaes e d a autorizao de acesso ao Sistema. Se senha for invalida ou nome neste caso teremos um novo cenrio.
Verso 27
95
Requisitos
Casos de Uso
Casos de Uso e Fluxo de Eventos:
Uso caso de uso descreve o qu um sistema (ou subsistema, classe, ou interface) faz, ele no especifica como isso feito. Ao fazer uma modelagem, importante manter clara a separao de questes entre a viso interna e externa. Podemos especificar o comportamento de um caso de uso pela descrio do fluxo de eventos no texto de maneira suficientemente clara para que qualquer pessoa possa entende-lo facilmente. Ao escrevermos o fluxo de eventos devemos incluir como e quando o caso de uso inicia e termina, como e quando o caso de uso interage com os atores e o fluxo bsico e fluxo alternativo do comportamento. Tipos de fluxos: Fluxo de eventos principal e Fluxo alternativo de eventos. Tipicamente descrevemos um fluxo de eventos para um caso de uso. Os fluxos de eventos ajudam a compreenso dos requisitos do sistema, entretanto, voc desejar utilizar os diagramas de interao para especificar esses fluxos graficamente. Alm disso, voc tambm utilizar um diagrama de seqncia para especificar o fluxo principal de um caso de uso e variao deste diagrama para especificar os fluxos excepcionais.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
96
Requisitos
Casos de Uso
Casos de Uso e Formulrio: Os formulrios devem ter as seguinte informaes: - Ponto de ativao (momento que caso de uso comea) - Nome do caso de uso - Objetivo - Atores que participam do caso de uso - Pr-condio - Fluxo Normal - Fluxo Alternativo - Ps-condio. Opcionalmente podemos acrescentar outros itens ao Formulrio de Caso Uso. Exemplos: - Nome ou cdigo dos Requisitos (RN e RNF) que esto associados a este caso de uso
Verso 27
97
Requisitos
Casos de Uso
Exemplos de Casos de Uso:
Pedir lista dos matriculados Sistema de cobrana Matrcula nos Cursos Professor
98
Requisitos
Casos de Uso
Casos de Uso e Formulrio Exemplo:
Nome: Fazer Busca Produto Ponto de ativao: Este caso de uso comea quando entra na pgina de Busca e seleciona um item da caixa de seleo Ator: Visitante e Cliente Objetivo: Fazer busca de produto por categoria Pr-condio: Aplicao Disponvel Fluxo Normal: 1 - O visitante seleciona a pgina de busca 2 - O visitante seleciona a categoria para busca 3 - O visitante informar o produto 4 - O visitante pressiona o boto buscar 5 - O sistema processa a busca 6 - Retorna as informaes sobre o produto Fluxo Alternativo: 1 - O Visitante seleciona a pgina de busca 2 - O visitante seleciona a categoria para busca 3 - O visitante informar o produto 4 - O visitante pressiona o boto buscar 5 - O sistema processa a busca 6 - Retorna as uma mensagem produto no encontrado Ps-condio: Busca realizada Requisito Funcional: RF002 -Fazer Busca do Produto Requisito No Funcional: --Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
99
Requisitos
Casos de Uso
Elementos dos Caso de Uso: Ator: Um ator representa um conjunto coerente de papis que os usurios de casos de uso desempenham quanto interagem com esses casos de uso. Geralmente um ator representa um papel, que pode ser de pessoa, de um sistema ou de um dispositivo e etc... Cenrios: narrativa de determinado fato ou de uma situao. O caso de uso deve ser descrito atravs de cenrios. Devem ser construdos tantos cenrios quantos forem necessrios para se entender completamente todo o sistema. Podem ser considerados como teste informais para validao dos requisitos do sistema. Formulrio: a representao estruturada de um ou mais cenrios
Verso 27
100
Requisitos
101
Requisitos
Funcionrio
Recepcionista
Gerente de Reservas
102
Verso 27
Requisitos
Locadora de Automveis
Devolver Veculo
Sala de Conferncia
Fazer Ligao
Usurio
<<include>> <<include>> <<extend>> <<extend>>
Consulta Cliente
Calcular Multa
Verso 27
103
Requisitos
<<include>>
Verso 27
104
Requisitos
Casos de Uso
Casos de Uso - Identificao de Atores
Os atores no fazem parte do sistema - eles representam qualquer um e qualquer coisa que faa interao com sistema. Podendo ser uma pessoa, software, hardware e etc. Uma ator pode: - Apenas fornecer informaes ao sistema - Apenas receber informaes do sistema - Fornecer e receber informaes ao sistema Tipicamente os atores so identificados nas Declaraes de Problemas (Documento de Viso) ou atravs de entrevistas com os usurios e outros envolvidos no processo, como, Gerente, Especialista em Negcio, Analista de Sistema e Analista de Negcio, por exemplo. As seguintes questes podem ser usadas para identificar o atores: - Onde o sistema ser usado ? - Quais reas sero usurias do sistema ? - O sistema usar recurso externo ? - Quem ser o responsvel pelo sistema ? - Quem sero os usurios do sistema ?
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
105
Requisitos
Casos de Uso.Dicas
Um engano comum na identificao de casos de uso representar como Caso de uso passos individuais, operaes ou transaes. Exemplo: No domnio de ponto de venda, algum pode definir um caso de uso chamado Imprimindo o Recibo, quando de fato, a operao de impresso meramente um passo no processo muito mais abrangente do caso de uso Comprar Itens Lembre-se: Um caso de uso uma descrio completa de processo, que inclui outros passos ou transaes.
Verso 27
106
Requisitos
Refinado pelo
Documento de Viso
Documento de Requisitos
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
107
Requisitos
Cenrios
108
Requisitos
Cenrios
Cenrio 2: Gerenciamento de Reserva: O Setor de Reserva do Hotel recebe um telefonema de cliente que solicita uma reserva de apartamentos para data. O cliente informa o perodo, ou seja, data de chegado e partida, e qual tipo de apartamento ele precisa. O funcionrio do Setor de Reserva, verifica a disponibilidade do apartamento e informa que no tem disponibilidade de apartamento para o perodo informado pelo cliente e oferece um outro tipo de apartamento. O cliente aceita o apartamento e ento o funcionrio confirma a reserva. Cenrio 2: Gerenciamento de Reserva: O Setor de Reserva do Hotel recebe um telefonema de cliente que solicita uma reserva de apartamentos para data. O cliente informa o perodo, ou seja, data de chegado e partida, e qual tipo de apartamento ele precisa. O funcionrio do Setor de Reserva, verifica a disponibilidade do apartamento e informa que no tem disponibilidade de apartamento para o perodo informado pelo cliente e oferece um outro tipo de apartamento. O cliente no aceita a proposta do funcionrio e a reserva no confirmada.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
109
Requisitos
Cenrios
Formulrio
Pr- condio
110
Requisitos
Nome: Gerenciar Reserva Ponto de ativao: Este caso de uso comea quando o funcionrio do setor de reserva recebe uma solicitao de reserva Ator: Funcionrio Objetivo: Fazer reservar de apartamentos Pr-condio: Solicitao de reserva Fluxo Normal:
Fluxo Alternativo:
111
Requisitos
112
Requisitos
Cenrios
113
Requisitos
Mitos e Lendas
Requisitos no so Casos de Uso;
Um Caso de Uso pode relacionar mais de um requisito, veja o exemplo: Caso de Uso Fazer Busca, est associado a dois requisitos: (RF) Fazer Buscar (RNF) O tempo de resposta para transao deve ser 10 segundos (Desempenho)
Verso 27
114
Requisitos
1 - Identifique quais os REQUISITOS e relacione com os CASOS DE USO; 2 - Identifique tambm os ATORES e seus respectivos PAPIS; 3 - D um nome para o CASO DE USO, lembre-se que este nome deve ser nico no modelo; 4 - Escreva os CENRIOS para o CASO DE USO; 5 - Compile os CENRIOS em nico FORMULRIO e 6 - Faa o Diagrama de Caso de Uso.
Verso 27
115
Requisitos
Rastreabilidade
116
Requisitos
Capacitao Engenharia de Software
Regras de negcio
Documento de Requisitos
Documentos
117
Requisitos
Validao de Requisitos
Deve preocupa-se em mostrar que os requisitos definem o sistema que o cliente/usurio deseja. Validao importante uma vez que o custo para remover um erro de requisitos grande.
Pequeno Check List de Requisitos: Validade. O sistema fornece as funes que melhor atende as necessidades do usurio? Consistncia. Existem conflitos de requisitos? Completeza. Todas as funes necessrias para o cliente esto includas? Realismo. Os requisitos podem ser implementados com a tecnologia e oramento disponveis?
118
Requisitos
Validao de Requisitos
Tcnicas de validao de requisitos Reviso de requisitos: - Anlise manual sistemtica dos requisitos Prototipao: - Uso de um modelo executvel do sistema para checar os requisitos. Gerao de casos de teste: - Desenvolver testes para os requisitos a fim de verificar a testabilidade. Anlise automatizada da consistncia: - Uso de ferramenta para verificar a consistncia do modelo.
Verso 27
119
Requisitos
Validao de Requisitos
Tcnicas de validao de requisitos Reviso de requisitos: - Revises regulares devem ocorrer durante a formulao da definio dos requisitos - Tanto o cliente quanto a equipe contratada devem estar envolvidos nas revises - As revises podem ser formais (com documentos completos) ou informais. Uma boa comunicao entre os desenvolvedores, clientes e usurios pode resolver problemas em estgios iniciais Verificao de revises: - Verificabilidade. O requisito realisticamente testvel? - Compreensibilidade. O requisito propriamente entendido? - Rastreabilidade. A origem do requisito claramente estabelecida? - Adaptabilidade. O requisito pode ser modificado sem grande impacto sobre outros requisitos?
Verso 27
120
Requisitos
Formato do documento de especificao de requisitos sugerido pela IEEE/ANSI 830-1993: Estrutura do Documento: 1.0 Introduo 1.1 propsito do documento de requisitos 1.2 escopo do produto 1.3 definies, acrnimos e abreviaes 1.4 referncias 1.5 viso geral do restante do documento 2.0 Descrio geral 2.1 perspectiva do produto 2.2 funes do produto 2.3 caractersticas do usurio 2.4 restries gerais 2.5 suposies e dependncias 3. Requisitos (Especficos) os requisitos podem documentar interfaces externas, descrever funcionalidade e desempenho do sistema, especificar requisitos lgicos de banco de dados,restries de projeto, caractersticas de qualidade. 4. Apndices 5. ndice
Verso 27
121
Anlise Conceitual
Objetivo desta parte: apresentar e discutir a Anlise Conceitual suas tcnicas, conceitos e modelos.
Verso 27
122
Requisitos e Anlise
Coleta de Requisitos
Documento de Viso
Anlise Conceitual
Modelo Conceitual
Engenharia de Requisitos
4
Casos de Uso
Requisitos No Funcionais
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Arquitetura Inicial
Todos os direitos reservados e protegidos 2006 e 2007
123
Workflow Analise
Analise
Workflow Artefatos Modelo Conceitual ou Modelo de Domnio Papis
Arquitetura
Vocabulrio do Sistema
Verso 27
124
Funcionalidade Vocabulrio
Codificao Montagem
Funcionrio
Gerenciar Reserva
O aspecto estrutural esttico permite entender como uma software est estruturado internamente para atender os requisitos (viso externa). Esse aspecto chamado de esttico porque no apresenta informaes sobre como os objetos se comportam no ciclo de vida de software e tambm porque representa a estrutura das classes de objetos e os relacionamentos entre elas.
Verso 27
125
Workflow de Anlise
Objetivo:
Apresentar e discutir como elaborar o Modelo Conceitual (tambm chamado de modelo de domnio) e o Vocabulrio de Conceitos. Para isto apresentaremos um algumas tcnicas para identificao dos candidatos a classes. Os objetivos desta etapa so: 1 - Apresentar tcnicas para identificao dos candidatos a classes, atributos e associaes; 2 - Elaborar o Modelo Conceitual ou modelo de domnio e 3 - Elaborar o Vocabulrio de Conceitos.
Verso 27
126
Fazer Vocabulrio
Documento de Viso Vocabulrio
Verso 27
127
Verso 27
128
Verso 27
129
Workflow de Anlise
Documento de Viso
Verso 27
130
Verso 27
131
Workflow de Anlise
Workflow de Projeto
Pessoa
Pessoa
nome idade <<refines>>
Modelo de Especificao
Todos os direitos reservados e protegidos 2006 e 2007
132
133
Verso 27
134
Workflow de Anlise
UML. Introduo
A UML deve ser utilizada para criarmos o Modelo Conceitual. Os modelos visuais ajudam a compreender melhor o sistema que estamos construindo. As seguir ser apresentado os ns, elementos e adornos usados para construir o modelo.
Verso 27
135
Workflow de Anlise
Verso 27
136
Verso 27
137
Mecanismos de Extensibilidade:
Verso 27
138
Verso 27
139
Usuario
Senha
Verso 27
140
Cliente
faz
Pedido
Observao: Apesar da possibilidade de a associao ter um nome, no necessrio inclu-lo. Recomendamos o uso do nome quando o modelo possui muitas associaes e voc tem a necessidade de fazer referncia s associaes ou de destaca-las.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
141
Associao Navegao
Cliente
Pedido
Verso 27
142
Verso 27
143
Eqivale a muitos
Multiplicidade Faixa Vlida: 0....1 | 0..* | * | 1 | 1..*
O que uma multiplicidade ? Uma associao representa um relacionamento entre dois objetos. Em algumas situaes de modelagem, importante especificar a quantidade de objetos que podem ser conectados pela instance de uma associao. Essa quantidade chamada de multiplicidade do papel de uma associao e escrita como uma expresso equivalente a um intervalo de valores ou de uma valor explcito.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
144
Multiplicidade
Para cada objeto (instance) da classe Pessoa a classe Empresa poder ter uma ou muitos objetos.
Verso 27
145
Workflow de Anlise
Abbot
Kent Beck
UML
Inspeo Gramatical
CRC
Scott Ambler
Graig Larman Peter Coad
Outras Tcnicas
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
146
Verso 27
147
Conhecimento do Negcio
Declarao de Viso 1 Lista
148
Vocabulrio de Conceitos
Verso 27
149
Nome da associao
Classe
1..*
Reserva
feita por
Cliente
id
hospede nome
documento
Multiplicidade
Apartamento
1..*
Associao
Verso 27
150
Verso 27
151
Verso 27
152
Cliente
Registro de transao
Todos os direitos reservados e protegidos 2006 e 2007
153
Eliminado s classes apontadas, ficamos com as seguintes conceitos vlidos: Conta, ATM, Banco, Computador do Banco, Carto Magntico, Caixa Terminal do Caixa, Computador Central, Consrcio, Cliente e Transao
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
154
Verso 27
155
Verso 27
156
157
Os atributos so propriedades de objetos individuais, como nome, peso, altura, velocidade, cor e etc. Os atributos no devem ser objetos; utilize uma associao para demonstrar qualquer relacionamento entre dois objetos. Os atributos geralmente correspondem a substantivos seguidos por frases possessivas, por exemplo: a cor do carro ou o nmero da conta. Os adjetivos muitas vezes representam valores de atributos especficos e enumerados, como vermelho sobre ou expirado. Diretamente das classes e associaes, os atributos tm menos probabilidade de serem integralmente descritos no enunciado do problema. Devemos valer-se de nosso conhecimento do domnio da aplicao e do mundo real para encontr-los. Lembre-se que os atributos raramente afetam a estrutura bsica do problema.
Verso 27
158
Verso 27
159
Verso 27
160
Workflow de Anlise
Transacao Datahora
Classes
161
Verso 27
162
163
Objeto
Colaboraes: (outras classes que so associadas, para a interao entre os objetos)
Verso 27
164
Colaboraes:
Lista de colaboraes
Melhores Prticas: Os candidatos a classe cujo a responsabilidade no foi encontrada, este candidato deve ser descartado. Pois, no podemos ter classe sem nenhuma responsabilidade.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
165
Colaboraes:
Apartamento Cliente
Colaboraes:
Reserva
Verso 27
166
Inspeo Gramatical
Lista de Candidatos
CRC
Classe: Cliente
UML
Colaboraes:
Responsabilidades:
Saber o nome do cliente Reserva Classe: Cliente Saber a Reserva do Cliente Responsabilidades: Colaboraes: Saber o nome do cliente Reserva Saber a Reserva do Cliente Classe: Cliente
Responsabilidades:
Colaboraes:
Modelo Conceitual
Todos os direitos reservados e protegidos 2006 e 2007
167
Formulrio
Cenrios
Usurio Ator
Verso 27
Listas de Candidatos
Todos os direitos reservados e protegidos 2006 e 2007
168
Lista de Candidatos
Engenharia de Requisitos
Anlise de Requisitos Lista de Requisitos Funcionais
Cenrios
Casos de Uso Lista de Requisitos No Funcionais Ator
Verso 27
Usurio
169
Usurio
Gerenciar Reserva
<<include>>
Atualizar Reserva
Buscar Apartamento
Funcionrio
Criar Reserva
<<include>>
Cadastrar Cliente
Remover Reserva
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
170
Cenrios
Verso 27
171
Formulrios
172
CRC
Classe: Cliente
UML
Responsabilidades: Colaboraes:
Saber o nome do cliente Classe: Cliente Reserva Saber a Reserva do Cliente Responsabilidades: Colaboraes: Saber o nome do cliente Reserva Classe: Cliente Saber a Reserva do Cliente
Responsabilidades: Colaboraes:
Saber o nome do cliente Reserva Saber a Reserva do Cliente
Modelo Conceitual
Todos os direitos reservados e protegidos 2006 e 2007
173
Verso 27
174
Exemplo de Caso de Uso expandido: Seqncia tpica de eventos: 1 - Este caso de uso comea quando um Cliente chega a um ponto de venda e deseja comprar alguns itens. 2 - O Caixa registra o cdigo do produto de cada item ... Entretanto esta tcnica exige uma ou mais reviso nos conceitos encontrados, pois, diferentes substantivos podem representar o mesmo conceito.
Verso 27
175
Exemplos
Terminal de ponto-de-venda Avio Especificao de produto Descrio de vo Loja Aeroporto Venda, Pagamento Reserva Itens de venda Parcelas de pagamento Operador Piloto
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
176
Ao do Ator
1. Este caso de uso comea quando um Cliente chega no caixa com itens para comprar. 2. O Operador registra o identi-ficador de cada item. Se h mais de um do mesmo item, o Operador tambm pode informar a quantidade.
Resposta do Sistema
3. Determina o preo do item e adiciona informao sobre o item transao de venda em anda-mento. Mostra a descrio e o preo do item corrente.
Verso 27
177
1 - Localizao de classes-&-objetos: entende-se por objetos como a abstrao de alguma coisa, em um domnio de problema, cujas informaes devam ser manipuladas pelo sistema. Uma classe corresponde ao conjunto de objetos semelhantes. 2 - Identificao de estruturas: que podem ser classificadas em: Generalizao-especializao: quando uma classe \ um tipo de uma outra classe. Exemplo: a classe carro uma especializao da classe veculos; Todo-parte: quando uma classe formada por outras classes. Exemplo: as classes motor e chassis fazem parte da classe carro.
3 - Definio de assuntos: onde cada qual se relaciona a diferentes partes do modelo, permitindo minimizar a complexidade de projetos extensos.
Verso 27
178
4 - Definio de atributos: um atributo definido como uma propriedade, uma qualidade ou uma caracterstica de um determinado objeto. Um atributo consiste em alguns dados (informaes de estado) atravs dos quais cada objeto em uma classe tem seu prprio valor. Atributos comuns a todas as subclasses (especializaes) de uma classe so apenas listados na classe e, automaticamente, estendidos para as suas subclasses. Uma conexo de ocorrncia representa relacionamentos entre objetos. 5 - Definio de Servios: um servio um comportamento especfico que um objeto deve exibir. Um servio altera o estado de um objeto. Servios pertencentes a todas subclasses so definidos apenas na classe. Os servios implcitos, tais como incluir, remover, alterar e selecionar instncias, no so apresentados no diagrama. Uma conexo de mensagem representa a comunicao entre objetos, onde um emissor' envia uma mensagem para um `receptor'', para a realizao de algum processamento.
Verso 27
179
Workflow de Anlise
Vocabulrio.Road Map:
Fazer Vocabulrio
Documento de Viso Vocabulrio
Verso 27
180
Transacao Datahora
Transao Uma nica solicitao integral para operaes nas contas de um nico cliente. Especificamente somente que as ATM podem entregar dinheiro, mas no podemos eliminar a possibilidade da impresso de cheques ou de receber dinheiro ou cheques. Tambm queremos prover a flexibilidade de operar as contas de diferente clientes, embora isso no seja exigido. As diferentes operaes devem fechar apropriadamente.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
181
Verso 27
182
Verso 27
183
Verso 27
184
Verso 27
185
Verso 27
186
Diagrama de Classe
Nome da associao Aluno -Nome: String -Data: Date Instance Matricula -Matricula: int -Curso: String Atributo
Diagrama de Objetos
:Aluno Nome: Fulano de Tal Data: 23-02-2001 objeto 201-23-02-01:Matricula Matricula: 201-23-02-01 Curso: Adm Empresas Valor do atributo
Nome do objeto
vinculo
Verso 27
187
vnculo
Um vnculo uma conexo semntica existente entre os objetos. Em geral, um vnculo uma instance de uma associao. Desta forma um objeto pode enviar uma mensagem para outro.
Verso 27
188
Verso 27
189
Fazer Vocabulrio
Documento de Viso Vocabulrio
190
Podemos criar um Modelo de Arquitetura Inicial para aplicao. O objetivo deste modelo apresentar um viso macro da arquitetura. Os modelos de Caso de Uso e Modelo Conceitual so utilizados para desenhar este o modelo. Uma viso inicial da arquitetura pode ter muita formas, podemos utilizar a UML para representar este modelo ou qualquer outra notao. Este modelo ser refinado no workflow de projeto na Atividade Fazer o Modelo de Arquitetura.
Camada apresentao
4
Banco de Dados
Diagrama de Deployment
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
191
Nome do Pacote
Nome do Pacote
Nome do Pacote
Nome do Pacote
Dependncia (import)
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
192
Contas a Pagar
Fluxo de Caixa
Nome do Pacote
Dependncia (import)
Todos os direitos reservados e protegidos 2006 e 2007
193
194
Verso 27
195
Viso de Projeto
Funcionalidade Vocabulrio
Viso da Implementao
Codificao Montagem
Conceitual
Verso 27
Fsico
Todos os direitos reservados e protegidos 2006 e 2007
196
concorrncia e de sincronizao do sistema. Essa viso tem com objetivo principal tratar questes
de desempenho, crescimento escalar e ao throughput do sistema. Com a UML, os aspectos estticos e dinmicos dessa viso so capturados nos mesmos tipos de diagrama da viso do projeto, mas o foco voltado para as classes ativas que representam esses threads e processos.
Threads = Linhas de execuo em paralelos, tambm conhecido como processo, estas linhas podem ser programas ou parte.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
197
Esse aspecto chamado de esttico porque no apresenta informaes sobre como os objetos se comportam no ciclo de vida de software e tambm porque representa a estrutura das classes de objetos e os relacionamentos entre elas.
No Workflow de Projeto, faremos a modelagem dos aspectos dinmicos do sistema, estes aspectos so capturados em digramas (diagrama de interao, diagrama de estados e diagrama de atividades). E assim podemos representar os comportamentos internos e desta forma teremos novas vises do software e a conseguiremos compreender melhor o software.
Verso 27
198
DINMICOS . Diagrama de Casos de Uso . Diagramas de Interao - Diagrama de Seqncia - Diagrama de Colaborao . Diagrama de Atividade . Diagrama de Estados
Workflow de Projeto
Workflow de Anlise
Verso 27
199
Workflow de Anlise
Anlise
dependncia
Workflow de Projeto
Projeto
Verso 27
200
Diagrama de Classes
Cliente
codigo nome
<<refine>>
Cliente
-codigo: int -nome: String
Atributos: Visibilidade
Verso 27
201
Receber Pedido
Preencher Pedido
Enviar Fatura
Entrega Regular
: visitante
: FormBusca
: Categoria
: Produto
: Catalogo
getDescricao( )
getQuantidade( )
exibirProduto( )
Encerrar Pedido
selecionarProduto( )
Verso 27
202
Workflow de Projeto
Arquitetura
Workflow Artefatos Diagrama de Seqncia / Colaborao
Analista de Sistema Projetista de Software
Papis
Arquitetura
Diagrama de Atividades
Arquiteto de Software
Diagrama de Estados
Diagrama de Classes
Verso 27
203
Verso 27
204
Verso 27
205
Workflow de Projeto
O qu
Diagrama de Sequncia
O como
: Produto : Catalogo
: visitante
: FormBusca
: Categoria
getDescricao( )
getQuantidade( )
exibirProduto( )
Formulrio
selecionarProduto( )
Verso 27
206
Workflow de Projeto
Verso 27
207
:Objeto 2
1: mensagem 1
2: mensagem 2
3: mensagem 3
Verso 27
208
Verso 27
209
formulrios de registro
entrar com senha de acesso validar acesso
formulrio de matrcula
cursos disponveis
Aluno:
entrar com o semestre
Verso 27
210
: Atendente
: Cliente
: Veiculo
: Locacao
getDadosCliente( )
getDisponibilidade( )
Autodelegao
As interaes entre os objetos Restrio ou condio
Todos os direitos reservados e protegidos 2006 e 2007
Linha do tempo
Verso 27
211
: visitante
: FormBusca
: Categoria
: Produto
: Catalogo
4: getDescricao( ) 5: getQuantidade( )
6: exibirProduto( )
7: selecionarProduto( )
212
Verso 27
213
formulrio de matrcula
Verso 27
214
Verso 27
215
Verso 27
216
Verso 27
217
Verificando
Estado
Transio
Incio do fluxo
Final do fluxo
Verso 27
218
incio
Verso 27
219
Finaliza Objeto
stop
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
220
incio
Verificando
Expedindo
Aguardando cancelado
Cancelamento
Entregue
final
Verso 27
221
Cliente
Autenticar Senha
Diagrama de Estado
Consultar Pedido
Verificando Status
[Pedido no entregue]
Mudando Status
Gerenciar Pedido
<<extends>>
Cancelando Pedido
Funcionrio
Confirmar Pedido
UpdateStatus Pedido
Logistica
Verso 27
222
um diagrama que exibe o fluxo seqencial das atividades, geralmente utilizado para demonstrar as atividades executadas por uma operao especfica do sistema, como por exemplo seleo de um item do menu principal. Consistem em estados de ao, que contm a especificao de uma atividade a ser desempenhada por uma operao do sistema. Decises e condies, como execuo paralela, tambm podem ser representados no diagrama de atividade. O diagrama tambm pode conter especificaes de mensagens enviadas e recebidas como partes de aes executadas. Diagramas de atividade capturam aes e seus resultados. Eles focam o trabalho executado na implementao de uma operao (mtodo), e suas atividades numa instance de um objeto. O diagrama de atividade uma variao do diagrama de estado e possui um propsito um pouco diferente do diagrama de estado, que o de capturar aes (trabalho e atividades que sero executados) e seus resultados em termos das mudanas de estados dos objetos.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
223
atividade
transio
Processar Pedido
separao
deciso Receber Pedido Pagar Fatura Barras de sincronizao Fechar Pedido Cobrar Cliente
Elementos raias
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
juno
Todos os direitos reservados e protegidos 2006 e 2007
224
Para mostrar como uma instance pode ser executada em termos de aes e objetos.
Para mostrar como um negcio funciona em termos de trabalhadores (atores), fluxos de trabalho, organizao, e objetos (fatores fsicos e intelectuais usados no negcio). Diagrama de Atividades no orientado a objetos, na verdade ele muito semelhante a um fluxograma.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
225
Enviar Fatura
Receber Pagamento
Entrega durante a noite Entrega Regular
Encerrar Pedido
Verso 27
226
Verso 27
227
228
Workflow de Projeto
Verso 27
229
Verso 27
230
Verso 27
231
Verso 27
232
Cliente
codigo nome
<<refine>>
Cliente
-codigo: int -nome: String +getCodigo() +setCodigo() +getNome() +setNome() +getCliente()
mtodos
Verso 27
233
Workflow de Projeto Diagrama de Classes. Refinamento 1 - Refinamento: Atributos: Acrescentar tipos de dados e visibilidade e mtodos. exemplo: codigo -codigo: int (private int codigo) Mtodo: Definir os Mtodos
Fase de Anlise modelo conceitual Fase de Projeto Diagrama de Classes
Cliente
Cliente
codigo nome
<<refine>>
Verso 27
234
Workflow de Projeto Diagrama de Classes. Refinamento 2 - Refinamento: Acrescentar: outros tipos de relacionamento entre as classes exemplo: agregao, composio, herana Acrescentar: Navegao, Role Name (papis) e Multiplicidade
Fase de Anlise modelo conceitual
Fase de Projeto Diagrama de Classes
Pessoa
nome
<<refine>>
Pessoa
cpf nome
cliente
Relacionamento Herana
PessoaFisica
codigo cpf
Verso 27
PessoaFisica
codigo
Role name
235
extends
Graduao
Podemos dizer que PsGraduao tipo de Curso Universitrio, assim como Curso de Especializao ou de Extenso.
Ps-Graduao
extends
Especializao Extenso
Uma classe pai proporciona a funcionalidade que comum a todas as suas classes derivadas, filhas, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento.
Verso 27
236
EspecialidadeMdica
generalizao
Tipo de Ortopedia
Tipo de Pediatria
especializao
ContaBancaria
Tipo de ContaCorrente
Tipo de ContaPoupana
237
Verso 27
Figura
Cartao
TipoPagamento
Tipo de CartaoDebito
Tipo de Ponto
Verso 27
238
Verso 27
239
Nome da associao
qualificador
papel
0..1
papel
Classe
atributos
Todos os direitos reservados e protegidos 2006 e 2007
240
0..1
Linha de item
ItemPedido
quantidade: int
O exemplo, demonstra uma associao qualificada, entre as classe Produto, ItemPedido. O qualificador diz que em associao com Pedido poder haver um item de pedido cada ocorrncia de produto. Conceitualmente, esse exemplo indica que no possvel existir dois itens de pedido com pedido para o mesmo produto. Para fazer acesso a um item de pedido em especifico, necessrio identificar o produto como argumento.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
241
Workflow de Projeto Diagrama de Classes. Refinamento 3 - Refinamento: Acrescentar: Associao Qualificada (qualificador), Associaes Reflexivas e Constraint (restries)
Associao Reflexiva Uma associao reflexiva (tambm conhecida como auto-associao) liga objetos da mesma classe. Cada objeto tem um papel distinto nesta associao.
papel 1 * papis Nome da associao
Classe
Em uma associao o uso dos papis importante para evitar ambigidade na interpretao da associao. Uma associao reflexiva no indica que um objeto se associa a si prprio (um empregado no gerente dele mesmo; uma condio no pr-requisito dela mesma). Associao reflexiva indica que um objeto se associa com outros objetos da mesma classe.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
242
Empregado
Supervisionado
Neste exemplo existe uma associao reflexiva objetos de Empregado. Nesta associao, h objetos que assumem o papel de supervisor e outros objetos que assumem o papel de supervisionado. O nome da associao pode ser omitido, uma vez que os papis foram definidos.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
243
Workflow de Projeto Diagrama de Classes. Refinamento 3 - Refinamento: Acrescentar: Associao Qualificada (qualificador), Associaes Reflexivas e Constraint (restries)
Constraint (restries): Uma restrio um relacionamento semntica entre elementos de modelo que especifica condies que devem ser satisfeitas.
Classe
atributos
papel
{ restrio }
0..1
papel
Classe
atributos
Duas opes para representar restries em UML: Informal, a UML permite usar qualquer notao para representar as restries, entretanto , as estas devem ser especificadas dentro de chaves { }, podemos usar a linguagem formal, por exemplo. Formal, UML fornece linguagem formal de restries de objetos. (OCL - Object Constraint Language). Veja mais: http://www.omg.org/technology/documents/formal/ocl.htm
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
244
Contrato
atributos
{ ou }
0..1
0..1
Pessoafisica
atributos
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
PessoaJuridica
atributos
Todos os direitos reservados e protegidos 2006 e 2007
245
Workflow de Projeto Diagrama de Classes. Refinamento 4 - Refinamento: Acrescentar: Classes Associativas, Interfaces e Dependncia
Classe Associativa Em associao entre duas classes, a prpria associao poder ter propriedades. Essas propriedades so originadas a partir da associao de classes com a multiplicidade de: muitos:muitos, para expor a representao destas propriedades implementado uma nova classe que resultante da associao, assim como seus atributos e mtodos.
Classe
atributos
Classe
atributos
Nome da Associao
atributos
Verso 27
Classe de Associao
246
Workflow de Projeto Diagrama de Classes. Refinamento 4 - Refinamento: Acrescentar: Classes Associativas, Interfaces e Dependncia
Classe Associativa Exemplo
Associao de muitos:muitos
Produto
atributos
Fornecedor
atributos
ProdutoFornecido
atributos
Classe de associao
Verso 27
247
Workflow de Projeto Diagrama de Classes. Refinamento 4 - Refinamento: Acrescentar: Classes Associativas, Interfaces e Dependncia
Interface: O que interface ? (Representa a forma mais pura de abstrao de dados - Linguagem Java) Interface um contrato entre o cliente, onde o cliente pode ser classe concreta ou abstrata. Este contrato garantia que o mtodos assinados na interface sero implementados na classe cliente. O relacionamento entre uma interface e uma classe chamada de realizao.
<<interface>>
Estereotipo e nome da interface
Nome Interface
Mtodos (assinatura)
Assinatura do mtodos
248
Workflow de Projeto Diagrama de Classes. Refinamento 4 - Refinamento: Acrescentar: Classes Associativas, Interfaces e Dependncia
Interface: Exemplo Interface, realizao e classes
<<interface>>
PessoaJuridica
getCNPJ() setCNPJ() setContrato() getContrato()
Realizao
Fornecedor atributos
PrestadorServico atributos
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
249
Workflow de Projeto Diagrama de Classes. Refinamento 4 - Refinamento: Acrescentar: Classes Associativas, Interfaces e Dependncia
Dependncia: Uma dependncia um relacionamento de utilizao, determinando as modificaes na especificao de um item, mas no necessariamente o inverso. Utilizamos o relacionamento de dependncia no contexto das classes para mostrar que uma classe usa outra como argumento na assinatura de uma operao.
FilmClip
play(c: Channel) start() stop() pause()
dependncia
Channel
Verso 27
250
Verso 27
251
Cliente
-codigo: int -descricao: String +getCodigo() +setCodigo() +getDescricao() +setDescricao() +getCliente() Granularidade Fina
Granularidade Grossa
Verso 27
252
Cliente
- codigo: int - nome: String - tipo: Tipo <<construtores>> +Cliente(codigo: int, nome: String) +Cliente(codigo: int, nome: String, tipo: Tipo)
<<mtodos>> + getCodigo(): int + getNome(): String + setCodigo(int codigo) + setNome(String nome) + getTipo(): Tipo + setTipo(tipo Tipo) + getCliente(): String
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Tipo
-descricao: String +getDescricao(): String +setDescricao(d: String)
dependncia
253
construtor
Verso 27
254
public class Mamifero { private int idade; public Mamifero(int idade) { this.idade = idade; } public Mamifero() { } //Mtodos }
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
construtores
255
TaxaJuro
- valor: double {frozen} <<mtodos>> + getValor(): double + setValor(double valor)
Verso 27
Propriedade
256
TaxaJuro
- valor: double {frozen} <<mtodos>> + getValor(): double + setValor(double valor)
Verso 27
Propriedade
257
Verso 27
258
Verso 27
259
Verso 27
260
Temos a primeira sugesto do modelo, como classe Cliente fazendo uma associao a Senha.
Cliente
codigo nome
possui
Senha
senha
Verso 27
261
Cliente
codigo nome senha Quais so as implicaes que o atributo senha pode causar ao modelo ?
Verso 27
262
Conceito diferente
Cliente
codigo nome senha
Funcionario
codigo-funcional nome senha
O mesmo conceito
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
263
Pedido
Cliente
codigo nome
Funcionario
codigo-funcional nome
HistoricoCliente
possui
Senha
senha
possui
Verso 27
264
Cliente
codigo nome senha qde_dias_expiracao_senha
Verso 27
265
Cliente
codigo nome senha
Podemos concluir, que no exemplo apresentado duas regras da orientao a objetos foram violadas: - Semntica e - Baixo reso
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
266
Workflow de Projeto
Mitos e Lendas
O que dito: - Modelo de entidade e relacionamento (MER), deve ser feito antes do diagrama de classes.
Entretanto, a realidade outra... Quando estamos a metodologia de orientao a objetos os dados so encapsulados. Assim o MER deve ser derivado do modelo de classes.
Verso 27
267
Arquitetura de Software
Objetivo desta parte: apresentar e discutir Arquitetura de Software, conceitos modelos e tcnicas
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
268
Verso 27
269
Arquitetura
Projeto (Viso de Componentes e Viso de Deployment)
Receber Pedido
: visitante
: FormBusca
: Categoria
: Produto
: Catalogo
Preencher Pedido
Enviar Fatura
getDescricao( )
exibirProduto( )
selecionarProduto( )
Entrega Regular
Encerrar Pedido
Verso 27
270
Workflow Arquitetura
Arquitetura
Workflow Artefatos
Digrama de Componentes
Analista de Sistema Projetista de Software
Papis
Arquitetura
Diagrama de Deployment
Arquiteto de Software
Modelo de Arquitetura
Verso 27
271
Viso de Projeto
Funcionalidade Vocabulrio
Viso da Implementao
Codificao Montagem
Conceitual
Verso 27
Fsico
Todos os direitos reservados e protegidos 2006 e 2007
272
Viso de Implantao A viso de implantao de um sistema abrange os ns que formam a topologia de hardware em que o sistema executado. Essa viso direciona principalmente a distribuio, o fornecimento e a instalao das partes que constituem o sistema fsico. Com a UML, os aspectos estticos dessa viso so representados em diagramas de implantao; os aspectos dinmicos so capturados em diagramas de interaes, de grfico de estados e diagramas de atividades.
Verso 27
273
representa a realizao fsica de classes, interfaces, colaboraes e classes ativas provenientes das
vises de projeto e de processo.
Verso 27
274
Passos:
1 - Selecionar o Modelo de Arquitetura 2 Refinar o Modelo de Arquitetura Inicial.
Verso 27
275
276
Nome do Pacote
Nome do Pacote
Nome do Pacote
Nome do Pacote
Dependncia (import)
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
277
Contas a Pagar
Fluxo de Caixa
Nome do Pacote
Dependncia (import)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
278
Nveis: Os nveis podem ser mapeados para as camadas baseada em responsabilidades, neste caso um nvel torna-se sinnimo de cumprir um papel especfico no sistema, como a apresentao, a lgica de negcio, apresentao e etc.
Uma arquitetura baseada em nveis facilitam a manuteno, disponibilidade e separao de funcionalidades e de papis de uma aplicao
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
279
<<tier>> Cliente
Verso 27
<<tier>> Apresentao
<<tier>> Negcios
<<tier>> Dados
Todos os direitos reservados e protegidos 2006 e 2007
280
281
View
View
View Model
Todos os direitos reservados e protegidos 2006 e 2007
Web Server
Verso 27
282
View
View
View
Web Server
Todos os direitos reservados e protegidos 2006 e 2007
283
View: Viso representa a apresentao (interface com usurio) de uma aplicao. O componentes da View obtm os valores do estado do Model.
Separao do View e do Model habilita a construo independente interfaces com diferentes Look and Feel (aparncias - skins). Diferentes Views podem interagir com mesmo model. JSP escolha natural para implementao do View Controller: O Controller fornece a ligao da arquitetura MVC. Ela responsvel por receber as requisies e determinar qual o Model apropriado para atende-la. Ele tambm poder tratar a resposta.
Verso 27
284
Model: O modelo representa as regras de negcios de uma aplicao. Encapsulando as regras dentro de um componente facilita os testes, melhora a qualidade e promove o reso de componentes. Estado do componentes (model): O estado define um conjunto de valores do Model e inclui mtodos para mudar estes valores. Estes mtodos so regras de negcios e outros mtodos.
O estado de componente so geralmente um protocolo independente. Na tecnologia Java os JavaBeans e os EJBs so uma boa escolha para implementar estes componentes. Na tecnologia .Net (Microsoft) podemos usar os componentes COM+
Verso 27
285
286
Verso 27
287
Fazer Diagramas
Digrama de Deployment
Digrama de Componentes
View
Controller
Model
Resources
JSP/HTML
Servlet
EJB
Banco de Dados
Caso de Uso
Verso 27
288
Digrama de Componentes
289
um diagrama que exibe a arquitetura fsica do hardware e do software no sistema. Pode apresentar os computadores e perifricos, juntamente com as conexes que eles estabelecem entre si. Podemos mostrar tambm os tipos de conexes entre esses computadores. Especifica-se os componentes executveis e objetos que so alocados para exibir quais unidades de software so executados e quais computadores. O diagrama de deployment demonstra a arquitetura runtime de processadores, dispositivos fsicos e de software que executam no ambiente onde o sistema desenvolvido ser utilizado. o ltimo diagrama da topologia do sistema, descrevendo a estrutura de hardware e software que executam em cada unidade.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
290
processador
Device (Dispositivo): qualquer mquina com finalidade ou finalidade limita. Os dispositivos so os itens como impressoras, roteadores, raids, storages, scanners, leitoras de cdigo de barra e etc.
Impressora
Dispositivo
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
291
Cliente
<<TCP/IP>>
Servidor
conexo
Processador (N)
Dispositivo (N)
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
292
Ns
<<Application Server>> JBoss <<Banco de Dados>> Oracle
<<RMI>>
<<Client-Server>> Cliente
Verso 27
293
WebServer Apache
Banco de Dados
Oracle
Application Server JBoss
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
294
Verso 27
295
Dependncia
Verso 27
296
Dependncia
Interface
Room
Verso 27
297
Um componente a parte fsica e substituvel de um sistema ao qual se adapta e fornece a realizao de um conjunto de interfaces.
Interfaces: Uma interface coleo de operaes utilizadas para especificar um servio de uma classe ou de um componente. O relacionamento entre componente e interface muito importe. As tecnologias mais populares usam interfaces na implementao de componentes, tais como: - Enterprise Java Beans; - Corba (CCM) e - Microsoft COM+.
Verso 27
298
CatalogHome
CatalogRemote
CatalogRemote
Catalog Bean
CatalogRemote
Verso 27
299
Disk.dll Floppy.dll
Verso 27
300
Conta.java
- Componentes de Execuo: Esses componentes so criados como uma conseqncia de um sistema em execuo, como um componente COM+, que sofre instance a partir de uma DLL.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
301
Verso 27
302
Componente genrico
- Especificao e corpo do subprograma: Estes cones representam a especificao visvel de um subprograma e o seu corpo de implementao. Um subprograma costuma ser uma coleo de sub-rotinas. Os subprogramas no contm definies de classe.
NewSubprogSpec NewSubprogBody
Verso 27
303
- Especificao e corpo do pacote: Um pacote a implementao de uma classe. Uma especificao de pacote constitui-se em um arquivo de cabealho, o qual contm as informaes referentes ao prottipo de funo para a classe.
Package Specification Package Body
Na linguagem C++, as especificaes de pacote so os arquivos .h (header). Em Java usamos o cone de especificao de pacote para representar os arquivos .java
Verso 27
Um corpo de pacote pode apresentar o cdigo para as operaes da classe. Em C++, os corpos de pacotes so os arquivos .cpp
Todos os direitos reservados e protegidos 2006 e 2007
304
Alm de modelar o componente propriamente dito, podemos modelar o relacionamento entre o componente e sua interface. Veja o exemplo abaixo:
Componente genrico
Interface
Verso 27
305
Boundary
Services
Entities
306
Entities
Cesta Item
Produto
As classes Entidades
Verso 27
307
Services
ProdutoService
Verso 27
308
CestaInterface
Boundary
As classes de Interfaces
Verso 27
309
CestaService ProdutoService
Cesta
Cesta Item
Produto
Verso 27
310
View
Menu Principal
ReservaUI
Controller
ClienteService
ReservaService ApartamentoService
Model
Cliente
Reserva
Apartamento
Verso 27
311
Componentes so identificados usando coeso e acoplamento. Grupos de classes que exigem alta coeso e baixo acoplamento formam um componente. Como identificar os componentes ? Na fase de Projeto os componentes so desenhados da seguinte forma: O Diagrama de Classe so revisados e grupos de classes so identificados usando coeso e acoplamento. Este grupos representaram os componentes.
Componentes
Verso 27
312
Conceito que est diretamente relacionado a modularidade, abstrao e encapsulamento de informao. Principais caractersticas: funo de propsito nico. Interfaces simples quando visto de outras partes da estrutura do programa. medida usando-se dois critrios qualitativos: coeso e acoplamento.
Verso 27
313
- Soluo: Atribuir uma responsabilidade de forma que a coeso permanea alta. Como manter a complexidade sob controle ? Em termos de projeto orientado a objetos, a coeso (ou mais especificamente, coeso funcional) uma medida de quo fortemente relacionadas e focalizadas so as responsabilidades de uma classe. Uma classe com responsabilidade altamente relacionadas e que no executa um formidvel volume de trabalho tem coeso alta.
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
314
Verso 27
315
NotaFiscal
- nmero - data emisso - tipo +calcularImposto() +getNumero +setNumero ....
Cliente
- codigo - nome +getCodigo() +setCodigo() +getNome()
NotaFiscalItem
- item[ ] - quantidade +getQuantidade() +setQuantidade() ...
Produto
- codigo - descrio +setCodigo() +getCodigo()
Verso 27
316
NotaFiscal
- nmero - data emisso - tipo +getNumero +setNumero ....
CalculoImposto
+calcularImposto()
NotaFiscalItem
- quantidade +getQuantidade() +setQuantidade() ...
Cliente
- codigo - nome +getCodigo() +setCodigo() +getNome() +get/cliente()
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
317
Coeso Baixa:
Coeso Alta:
Coeso Moderada:
Verso 27
318
Verso 27
319
uma medida da interdependncia relativa entre as classes. Depende da complexidade de interface entre as classes. Baixo acoplamento o desejvel
- Soluo: Atribuir uma responsabilidade de forma que o acoplamento permanea fraco Como suportar uma dependncia baixa e aumentar o reso? O acoplamento uma medida de quo fortemente uma classe est ligada a uma ou mais classes, tem conhecimento das mesmas ou depende delas. Uma classe com acoplamento baixo (fraco) no dependente de muitas classes.
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
320
No afeta por mudanas em outros componentes simples de entender conveniente para o reso.
Verso 27
321
Cliente
Service
{abstract}
Cliente
Service
Service
Service
Cliente
Service
Service
Verso 27
322
Princpio da Dependncia Inversa: Abstrao no deve depender classe concreta. Uma classe concreta deve depender de uma abstrao
Exemplo:
Moeda
- valor +getValor +setValor
MaskMoeda
+maskFormat()
dependncia
Este modelo tem alguns problemas: 1 - Herana. Todos que herdarem a classe Moeda so obrigados a herdar tambm a classe MaskMoeda e as vezes somente precisamos da classe Moeda.
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
323
MaskMoeda
dependncia
2 - O relacionamento de dependncia inibe a extensibilidade da classe Moeda. Vamos analisar o seguinte cenrio: Em uma aplicao financeira que lida com mercado internacional, precisamos ter uma classe Moeda com as seguintes responsabilidades de saber o valor, formatao de acordo padro monetrio e exibir o respectivo smbolo da moeda (cifro).
Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
Verso 27
324
Princpio da Dependncia Inversa (continuao): Aplicando a DIP, podemos resolver a situao, veja os modelos abaixo:
DIP com Classe Abstrata: Cliente Service
{abstract}
Cliente
Service
Service
Service
Service
Service
Real
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Dolar
Todos os direitos reservados e protegidos 2006 e 2007
325
Cliente
Verso 27
326
Cliente
Verso 27
327
Verso 27
328
Verso 27
329
Verso 27
330
Pedido
Cesta de Compra
Produto FormaPagto
Verso 27
331
Produto
Pedido
Cesta de Compra
Cesta
Produto FormaPagto
Pedido FormaPagto
Verso 27
332
Cliente
Oracle
HTML
Windows
Linux Suse
Linux Suse
Verso 27
333
DeskTop
ReservaUI
Servidor de Aplicao
Reserva
<<JRMP>>
Funcionrio
<< Stub>>
<<Skeleton>>
RMI
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
334
Cliente
HTTP
WebServer
ServletsController
Servlet
Tabelas de Reserva
<< Reserva>>
Banco de Dados
Verso 27
335
Apresentao
ServletsController
Negcio
<< Reserva>>
Integrao
JDBC 2.0
Recursos
HTTP
<< ConnDB>>
Cliente
Banco de Dados
HTML
Servlet/JSP
JavaBeans
SQL
Verso 27
336
Browser FormPagamento
Cliente Fazer Pedido <<include>> Cliente
WebServer
ServletsController
CartaoCredito
Pagamento
Requisito No Funcional: Segurana: Todas as transaes de pagamento deve ser realizado em ambiente seguro
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
337
http://etecnologia.ning.com/
Verso 27 Rildo F Santos (rildo.santos@Companyweb.com.br)
Todos os direitos reservados e protegidos 2006 e 2007
338
Sobre o Anlise eRildo F. Orientado a Objetos com UML autor: Desenho Santos
Coach e Consultor de Gesto de Negcios, Inovao e Tecnologia para a Gesto 2.0, a Gesto gil. A Gesto gil ajuda as empresas a responder mais rpido as demandas de negcio e mudanas. A Gesto 2.0, abrange Planejamento Estratgico, Gesto por Processos geis, Gesto de Projetos geis, Tecnologia da Informao (Mtodos geis), Inovao e Liderana. Minha Experincia: Tenho mais de 10.000 horas de experincia em Gesto de Negcios, Gesto de Inovao, Governana e Engenharia de Software. Formado em Administrao de Empresas, Ps-Graduado em Didtica do Ensino Superior e Mestre em Engenharia de Software pela Universidade Mackenzie. Fui instrutor de Tecnologia de Orientao a Objetos, UML e Linguagem Java na Sun Microsystems e na IBM. Conheo Mtodos geis (SCRUM, Lead, FDD e XP), Arquitetura de Software, SOA (Arquitetura Orientado a Servio), RUP/UP Processo Unificado, Business Intelligence, Gesto de Risco de TI entre outras tecnologias. Sou professor de curso de MBA da Fiap e fui professor de ps-graduao da Fasp e IBTA. Possuo fortes conhecimentos de Gesto de Negcio (Inteligncia de Negcio, Gesto por Processo, Inovao, Gesto de Projetos e GRC Governance, Risk and Compliance), SOX, Basel II e PCI; E experincia na implementao de Governana de TI e Gerenciamento de Servios de TI. Conhecimento dos principais frameworks e padres: ITIL, Cobit, ISO 27001 e ISO 15999; Desempenhei diversos papis como: Estrategista de Negcio, Gerente de Negcio, Gerente de Projeto, Arquiteto de Software, Projetista de Software e Analista de Sistema em diversos segmentos: Financeiro, Telecomunicaes, Seguro, Sade, Comunicao, Segurana Pblica, Fazenda, Tecnologia, Varejo, Distribuio, Energia e Petrleo e Gs. Possuo as certificaes: CSM - Certified SCRUM Master, CSPO - Certified SCRUM Product Owner , SUN Java Certified Instrutor, ITIL Foundation e sou Instrutor Oficial de Cobit Foundation e Cobit Games; Sou membro do IIBA-International Institute of Business Analysis (Canada) Onde estou: Twitter: http://twitter.com/rildosan Blog: http://rildosan.blogspot.com/
Verso 27
339
Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial so de responsabilidade de seus proprietrios. O autor informa no estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde j o autor informa que o uso apenas ilustrativo e/ou educativo, no visando ao lucro, favorecimento ou desmerecimento do produto/fabricante.
Melhoria e Reviso:
Este material esta em processo constante de reviso e melhoria, se voc encontrou algum problema ou erro envie um e-mail ns. Criticas e Sugestes: Ns estamos abertos para receber criticas e sugestes que possam melhorar o material, por favor envie um email para ns.
340
Verso 27
341
Rildo F Santos
rildo.santos@etecnologia.com.br rildo.santos@companyweb.com.br
Verso 27 Verso 27 |
Twitter: @rildosan Blog: http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos 2006 e 2007