Desenvolvimento de Aplicações Web. 2 Dificuldades no Desenvolvimento de Aplicações Web Falta de...
Transcript of Desenvolvimento de Aplicações Web. 2 Dificuldades no Desenvolvimento de Aplicações Web Falta de...
Desenvolvimento de Aplicações Web
2
Dificuldades no Desenvolvimento de Aplicações Web
Falta de aptidões na equipe Material fonte disponível de má qualidade Incertezas sobre aspectos legais (p.ex.,
copyright) Poucos mecanismos para atualização
contínua da informação Desenvolvimento “ad-hoc” Falta de definição sobre os processos de
produção de conteúdos
3
Algumas propostas do OOHDM
OOHDM – Object Oriented Hypermedia Desig Method
Método de autoria para sistemas hipermídiaEm desenvolvimento desde 1989 – antes da Web!Várias evoluçõesIndependente de plataformaVoltado tanto para o cliente quanto para o
implementador
4
Fases do Desenvolvimento de Aplicações
Levantamento de Requisitos
Projeto Conceitual
Projeto da Navegação
Implementação
Projeto Abstrato da
Interface
5
Levantamento de Requisitos
Identificação dos atores e tarefas Especificação dos cenários Especificação das Use Cases Especificação dos Diagramas de
Interação do Usuário (UIDs) Validação dos Use Cases e dos UIDs
6
Identificação de Atores e Tarefas
O projetista interage com o domínio para identificar os atores e as tarefas que serão apoiadas pela aplicaçãoAnálise dos documentos disponíveisInterações com clientes e usuários
» Técnicas: – Entrevista– Brainstorming
» Aspectos a considerar: – Tempo disponível para o projeto– Disponibilidade do pessoal participante
7
Atores
São entidades que trocam informações com a aplicação
Um ator representa um papel específico de um usuário da aplicação
Exemplos: Publicação
» Leitor, Autor, EditorLoja
» Cliente, Administrador Universidade
» Aluno, Professor, Coordenador
8
Tarefas
Tarefa significa o objetivo que o usuário deseja alcançar usando a aplicação.
Representa potenciais cenários Exemplos:
Publicação: ator leitor» Ler matérias de uma seção» Consultar indicadores financeiros
Loja: ator cliente» Comprar produtos em promoção
Universidade: ator aluno» Consultar disciplinas ofertadas
9
Cenários
São descrições narrativas que explicam detalhadamente como a aplicação pode ser utilizada para realizar tarefas
Descrevem as tarefas sob o ponto de vista do usuário que a realiza
Podem ser especificados pelo usuário ou projetista, com propósitos diferentes
10
Especificação dos Cenários Devem ser especificados os cenários das
tarefas que serão executadas através da aplicação.
Cada usuário especifica os cenários que descrevem as tarefas que deseja realizar
Devem ser especificadas as informações que serão trocadas entre o usuário e a aplicação
Não é necessário abordar aspectos de interface nem de navegação
11
Cenários - Exemplo 1 Cenário 1 (usuário 1): Ler matéria sobre esportes Contexto: Sou um admirador de atividades ligadas ao
esporte. Quero estar bem informado sobre tênis, meu esporte favorito.
Objetivo: Ler notícias relacionadas ao tênis Descrição:
Quero encontrar matérias sobre tênis. Para isso, eu seleciono a seção esportes e espero obter uma lista com as matérias existentes sobre este assunto. Caso exista uma matéria relacionada ao tênis, eu a seleciono e a aplicação retorna o texto da matéria e o nome do autor. Seria interessante ter as opções de imprimir a matéria e de enviá-la a um amigo.
12
Cenários - Exemplo 2
Cenário 3 (usuário 2): Ler matéria de uma seção Contexto: Gosto de estar atualizado lendo matérias
de um jornal. Objetivo: Ler matérias Descrição:
Escolho uma seção e a aplicação me retorna todas as matérias deste seção. A lista de matérias deve conter a data de publicação, o título e um resumo de cada matéria. Se tiver interesse em ler a matéria completa, eu a seleciono e vejo o seu conteúdo e o nome de seu autor. Quero ver também, caso exista, uma lista de matérias relacionadas à matéria que eu selecionei, e ter a possibilidade de acessar informações sobre o autor, como seu nome completo, foto e biografia. Se desejar ler uma outra matéria da mesma seção, retorno à lista e seleciono outra.
13
Especificação dos Use Cases
Um use case descreve um uso da aplicação, sem considerar aspectos internos da aplicação
Use cases são especificados a partir dos cenários dos usuários
Os cenários que descrevem uma mesma tarefa são agrupados em um único use case
No use case são incluídas todas as informações encontradas nos seus cenários
Um cenário pode ser visto como uma instância específica de um use case
Use cases podem ser incrementados com informações de outros use cases
14
Use Case 1: Ler matérias de uma seção Cenários: 1.1 / 2.3 Descrição:
Use Case - Exemplo
Número de identificação do usuário
Número de identificação do cenário
1. O usuário seleciona uma das seções apresentadas pela aplicação2. A aplicação retorna uma lista das matérias da seção selecionada, contendo a data de publicação, o título e o resumo de cada matéria3. O usuário seleciona a matéria de interesse4. A aplicação retorna o título, a data de publicação, o conteúdo da matéria, o nome do autor, e uma lista das matérias relacionadas, caso exista. Se desejar, o usuário pode imprimir a matéria ou envia-la a um amigo5. O usuário solicita informações sobre o autor6. A aplicação retorna o nome, a foto e biografia do autor7. Se o usuário tiver interesse em ler outra matéria da mesma seção, pode retornar ao passo 3.
15
Diretrizes para obter o Use Case
Identificar os cenários relacionados à tarefa que está sendo analisada
Para cada cenário, identificar os itens de dados trocados entre o usuário e a aplicação durante a interação
Para cada cenário, identificar todos os itens de dados que estão associados entre si
Para cada cenário, identificar os itens de dados que estão organizados como um conjunto
Identificar as seqüências de ações que aparecem nos cenários. Elas serão incluídas no use case
Identificar as operações realizadas com os itens de dados que aparecem nos cenários. Elas serão incluídas no use case
16
Diretrizes para o Use Case - Exemplo
Tarefa: Ler matérias de uma seção
Diretriz 1: Identificar cenários relacionados à tarefa
Cenário 1 do usuário 1
Cenário 3 do usuário 2
Diretriz 2: Para cada cenário, identificar os itens de dados trocados entre o usuário e a aplicação durante a interação
Itens de dados fornecidos pelo usuário
Itens de dados retornados pela aplicação
17
Diretrizes para o Use Case - Exemplo
Aplicando a diretriz 2:
Cenário 1 do usuário 1:Quero encontrar matérias sobre tênis. Para isso, eu
seleciono a seção esportes e espero obter uma lista com as matérias existentes sobre este assunto. Caso exista uma matéria relacionada ao tênis, eu a seleciono e a aplicação retorna o texto da matéria e o nome do autor. Seria interessante ter as opções de imprimir a matéria e de enviá-la a um amigo.
18
Diretrizes para o Use Case - Exemplo
Aplicando a diretriz 2:
Cenário 3 do usuário 2:Escolho uma seção e a aplicação me retorna todas as
matérias deste seção. A lista de matérias deve conter a data de publicação, o título e um resumo de cada matéria. Se tiver interesse em ler a matéria completa, eu a seleciono e vejo o seu conteúdo e o nome de seu autor. Quero ver também, caso exista, uma lista de matérias relacionadas à matéria que eu selecionei, e ter a possibilidade de acessar informações sobre o autor, como seu nome completo, foto e biografia. Se desejar ler uma outra matéria da mesma seção, retorno à lista e seleciono outra.
19
Diretrizes para o Use Case - Exemplo
Diretriz 3: Para cada cenário, identificar todos os itens de dados que estão associados entre si
Cenário 1 do usuário 1» seção» texto da matéria, nome do autor
Cenário 3 do usuário 2» seção» data de publicação, título, resumo, conteúdo, nome do autor e
matérias relacionadas» nome completo, foto e biografia
Itens de dados para o use case resultanteSeção: nomeMatéria: data de publicação, título, resumo, conteúdo, nome do
autor e matérias relacionadasAutor: nome completo, foto e biografia
20
Diretrizes para o Use Case - Exemplo
Diretriz 4: Para cada cenário, identificar os itens de dados que estão organizados como um conjunto
Cenário 1 do usuário 1» lista com matérias
Cenário 3 do usuário 2» todas as matérias, lista de matérias relacionadas
Itens de dados organizados como um conjunto:Matéria Matérias relacionadas
21
Diretrizes para o Use Case - Exemplo
Diretriz 5: Identificar as seqüências de ações que aparecem nos cenários. Elas serão incluídas no use caseO usuário seleciona a seção. A aplicação retorna uma lista de
matérias. O usuário seleciona uma matéria. A aplicação apresenta o conteúdo, o nome do autor e uma lista de matérias relacionadas, caso exista. O usuário pode ver as informações sobre o autor. Se desejar, o usuário pode retornar a lista de matérias para selecionar outra matéria.
Diretriz 6: Identificar as operações realizadas com os itens de dados que aparecem nos cenários. Elas serão incluídas no use case Imprimir matéria Enviar matéria para um amigo
22
Diretrizes para o Use Case - Exemplo
Use Case: Ler matérias de uma seçãoCenários: 1.1 / 2.3 / ...Descrição:1. O usuário seleciona uma das seções apresentadas pela
aplicação2. A aplicação retorna uma lista das matérias da seção
selecionada, contendo a data de publicação, o título e o resumo de cada matéria
3. O usuário seleciona a matéria de interesse4. A aplicação retorna o título, a data de publicação, o
conteúdo da matéria, o nome do autor e uma lista das matérias relacionadas, caso exista. Se desejar, o usuário pode imprimir a matéria ou enviá-la para um amigo
5. O usuário solicita informações sobre o autor6. A aplicação retorna o nome, a foto e a biografia do autor7. Se o usuário tiver interesse em ler outra matéria da mesma
seção, pode retornar ao passo 3.
23
Especificação dos UIDs
Os diagramas de interação do usuário (UIDs) representam graficamente as interações entre o usuário e a aplicação
Define-se um UID para cada Use case Um UID não considera aspectos específicos de interface
com usuário, nem aspectos da navegação
Um UID é composto por um conjunto de estados de
interação conectados através de transições
24
Especificação dos UIDs - Notação
Estado de Interação (entre o usuário e o sistema)
Item de dadoRepresenta uma informação única (simples) que aparece
durante a interação
Pode ser acompanhada por seu domínio
Exemplo:
Estado da Interação
Estado Inicialda Interação
Estados Alternativosda Interação
Sub-estados de um Estado da Interação
titulo, exemplares: Número
25
Especificação dos UIDs - Notação
EstruturaRepresenta uma coleção de informações que estão
relacionadas de alguma maneiraExemplo:
Conjunto
Representa um conjunto de itens de dados ou estruturas
Exemplo:...Matéria (titulo,resumo,
data de publicação)
Matéria (titulo,resumo,data de publicação)
26
Especificação dos UIDs - Notação
Dado OpcionalRepresenta um item de dado, estrutura ou texto opcionalÉ representado pelo símbolo “ ? ”Exemplo:
Saída do Sistema
Representa um item de dado ou estrutura retornado pelo
sistema
Exemplo: ...Seção (nome)
...Matéria (titulo,resumo?,data de publicação)
27
Entrada do UsuárioRepresenta um item de dado ou estrutura fornecido pelo
usuárioExemplos
» Obrigatória:
» Opcional:
» Enumerada:
Especificação dos UIDs - Notação
pagamento [cartão, boleto]
título
título? título
28
Transição do Estado da InteraçãoTransição simples - o usuário pode retornar ao estado de
interação origem
Transição cortada - o usuário não pode retornar ao estado de interação origem
Transição com seleção de N elementos
Transição com seleção da opção X
Transição com condição Y
Especificação dos UIDs - Notação
<N>
<N>
<N>
(<X>) (<X>)
(não muda o foco da interação)
(<Y>)
29
Pré-condições e Pós-CondiçõesA associação de pré-condições a um UID significa que
ele só pode ser executado se essas pré-condições forem satisfeitas
A definição de pós-condições descreve as condições que precisam ser satisfeitas após a execução da interação descrita nos UIDs
Exemplo:
Notas textuais anexadas ao UID servem para especificar alguma informação importante que não
pode ser representada graficamente no UID
Especificação dos UIDs - Notação
Pré-condições: matéria foi aprovada pelo editor
30
Especificação dos UIDs - Exemplo 1
”Usuário Novo”“Usuário Antigo”
e-mail senha
...Matéria(título)
(login) Transição com seleção de opção
(criar conta)
Sub-estados do Estado de Interação Inicial
senha
nome
31
Especificação dos UIDs - Exemplo 2
identificação
senha
[senha válida][senha inválida]
nome
senha
matrícula[nova, renovação]
Transição com condição
32
Identificar informações (itens de dados) trocadas entre o usuário e a aplicação
Separar os itens de dados dentro de estados de interação Itens de dados são incluídos no mesmo estado de
interação, a menos que eles dependam de itens de dados anteriores. Neste caso, os itens de dados dependentes são incluídos em outro estado de interação
Distinguir os itens de dados fornecidos pelo usuário e os itens de dados retornados pela aplicação
Conectar os estados de interação com transições Representar as opções realizadas pelo usuário
Diretrizes para obter o UID
33
Tarefa: Ler matérias de uma seção Diretriz 1: Identificar as informações (itens de dados)
trocadas entre o usuário e a aplicação Use Case 1: 1. O usuário seleciona a seção 2. A aplicação retorna uma lista das matérias da seção
selecionada, contendo a data de publicação, o título e o resumo de cada matéria
3. O usuário seleciona a matéria de interesse 4. A aplicação retorna o título, a data de publicação, o conteúdo da
matéria, o nome do autor e uma lista das matérias relacionadas, caso exista. Se desejar, o usuário pode imprimir a matéria ou enviá-la para um amigo
5. O usuário solicita informações sobre o autor 6. A aplicação retorna o nome, a foto e a biografia do autor 7. Se o usuário tiver interesse em ler outra matéria da mesma
seção, pode retornar ao passo 3.
Diretrizes para obter o UID
34
Diretriz 2: Separar os itens de dados dentro de estados de interação.
Diretrizes para obter o UID
O usuário seleciona a seção
<1>A aplicação retorna uma lista das matérias da seção selecionada, contendo a data de publicação, o título e o resumo de cada matéria
A aplicação retorna o título, a data de publicação, o conteúdo da matéria, o nome do autor e uma lista das matérias relacionadas.
A aplicação retorna o nome, a foto e a biografia do autor
<2>
<3><4>
35
Diretriz 3: Distinguir os itens de dados fornecidos pelo usuário e os itens de dados retornados pela aplicação.
Diretrizes para obter o UID
...Seção (nome)
<1>... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor ( nome, foto, biografia)
<2>
<3><4>
36
Diretriz 4: Conectar os estados de interação com transições
Diretrizes para obter o UID
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1
37
Diretriz 5: Representar as opções realizadas pelo usuário
Diretrizes para obter o UID
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
38
Levantamento de Requisitos
Requisitos
(cenários, use cases e UIDs)
...
ProjetoConceitual
Projeto deNavegação
...
Estudo de Caso: Publicação OnLine
Levantamento de Requisitos
40
AtoresLeitor e Autor
TarefasAtor: Leitor
» Ler matérias de uma seção
» Ler matérias em destaque
» Ler matérias sobre um determinado assunto (palavra-chave)
» Consultar informações de um autor
Ator: Autor
» Criar novas matérias
Identificação de Atores e Tarefas
41
Cenário 1 : Consultar informações de um autor Descrição:
Gostaria de obter informações sobre os autores das
matérias. Para isto, eu informo o nome do autor e a
aplicação me retorna o nome completo, a foto, a biografia
do autor, as seções onde ele publica e uma lista das
matérias publicadas por ele. Esta lista de matérias
deve apresentar o título, a data de publicação e o
conteúdo da matéria.
Especificação dos Cenários
Ator Leitor: Usuário 1
42
Cenário 2 : Ler matérias sobre esportes Descrição:
Quero encontrar matérias sobre tênis. Para isso, eu
seleciono a seção esportes e espero obter uma lista com
as matérias existentes sobre este assunto. Caso exista
uma matéria relacionada ao tênis, eu a seleciono e a
aplicação retorna o texto da matéria e o nome do autor.
Seria interessante ter as opções de imprimir a matéria e
de enviá-la a um amigo.
Especificação dos Cenários
Ator Leitor: Usuário 1
43
Cenário 1 : Ler matérias em destaque Descrição:
Gostaria de obter informações sobre os autores das
matérias. Para isto, eu informo o nome do autor e a
aplicação me retorna o nome completo, a foto, a biografia
do autor, as seções onde ele publica e uma lista das
matérias publicadas por ele. Esta lista de matérias
deve apresentar o título, a data de publicação e o
conteúdo da matéria.
Especificação dos Cenários
Ator Leitor: Usuário 2
44
Cenário 2 : Ler matérias a partir de uma palavra-chave
Descrição:Quero encontrar matérias sobre um assunto específico.
Para isto, desejo entrar com uma palavra-chave e ter a
opção de buscar essa palavra-chave no conteúdo ou no
resumo das matérias. A partir da seleção de uma dessas
opções, a aplicação me apresenta uma lista com as
matérias que possuem esta palavra-chave. Eu seleciono
uma matéria e vejo seu conteúdo e o nome do seu ator.
Especificação dos Cenários
Ator Leitor: Usuário 2
45
Cenário 3 : Ler matérias de uma seção Descrição:
Escolho uma seção e a aplicação me retorna todas as matérias deste seção. A lista de matérias deve conter a data de publicação, o título e um resumo de cada matéria. Se tiver interesse em ler a matéria completa, eu a seleciono e vejo o seu conteúdo e o nome de seu autor. Quero ver também, caso exista, uma lista de matérias relacionadas à matéria que eu selecionei, e ter a possibilidade de acessar informações sobre o autor, como seu nome completo, foto e biografia. Se desejar ler uma outra matéria da mesma seção, retorno à lista e seleciono outra.
Especificação dos Cenários
Ator Leitor: Usuário 2
46
Cenário 4 : Consultar minhas matérias favoritas Descrição:
Informo meu e-mail e senha e a aplicação apresenta uma
relação das matérias que eu selecionei anteriormente.
Nesta relação aparece o título, resumo e a data em que a
matéria foi publicada. Seleciono uma das matérias
apresentadas e vejo o seu conteúdo, nome do seu autor e
os comentários que acrescentei sobre ela.
Especificação dos Cenários
Ator Leitor: Usuário 2
47
Cenário 1 : Criar novas matérias Descrição:
Escolho a opção incluir matérias. Informo todos os dados sobre uma matéria: título, resumo, conteúdo, seção, nome do autor, e as matérias relacionadas. Após entrar com todos os dados, seleciono a opção criar matéria e a aplicação disponibiliza a matéria para avaliação do editor.
Especificação dos Cenários
Ator Autor: Usuário 3
48
Use Case 1: Ler matérias de uma seção Cenários: 1.2, 2.3 Descrição: 1. O usuário seleciona uma das seções apresentadas pela
aplicação 2. A aplicação retorna uma lista das matérias da seção
selecionada, contendo a data de publicação, o título e o resumo de cada matéria
3. O usuário seleciona a matéria de interesse 4. A aplicação retorna o título, a data de publicação, o conteúdo da
matéria, o nome do autor e uma lista das matérias relacionadas, caso exista. Se desejar, o usuário pode imprimir a matéria ou enviá-la para um amigo
5. O usuário solicita informações sobre o autor 6. A aplicação retorna o nome, a foto e a biografia do autor 7. Se o usuário tiver interesse em ler outra matéria da mesma
seção, pode retornar ao passo 3.
Especificação dos Use Cases
49
Use Case 2: Ler matérias em destaque Cenários: 2.1 Descrição:
1. A aplicação apresenta uma lista das matérias em destaque, contendo a data de publicação, o título e o resumo de cada matéria
2. O usuário seleciona a matéria de interesse
3. A aplicação retorna o título, a seção, a data de publicação, o conteúdo da matéria e o nome do autor da matéria selecionada
4. Se desejar, o usuário pode incluir a matéria selecionada em sua lista de matérias favoritas e acrescentar comentários a ela, informando seu e-mail e senha.
Especificação dos Use Cases
50
Use Case 3: : Ler matérias a partir de uma palavra chave Cenários: 2.2 Descrição:
1. O usuário entra com uma palavra chave e seleciona uma
das opções: título, conteúdo ou resumo
2. A aplicação retorna uma lista das matérias que possuem a
palavra chave em um das opções selecionadas, contendo o
título, a data de publicação e o resumo de cada matéria
3. O usuário seleciona a matéria de interesse
4. A aplicação retorna o título, a seção, a data de publicação,
o conteúdo da matéria e o nome do autor da matéria
selecionada
Especificação dos Use Cases
51
Use Case 4: : Consultar matérias favoritas Cenários: 2.4 Descrição:
1. O usuário informa e-mail e senha
2. Se a senha for válida, a aplicação retorna uma lista das
matérias que possuem a palavra chave em um das opções
selecionadas, contendo o título, a data de publicação e o
resumo de cada matéria. Senão, retorna mensagem de login
inválido
3. O usuário seleciona a matéria de interesse
4. A aplicação retorna o título, a data de publicação, o conteúdo da
matéria, o nome do autor e os comentários existentes sobre a
matéria selecionada
Especificação dos Use Cases
52
Use Case 5: : Consultar informações de um autor Cenários: 1.1 Descrição:
1. O usuário informa o nome ou parte do nome do autor
2. A aplicação retorna uma lista das matérias que
possuem o nome informado
3. O usuário seleciona um autor
4. A aplicação retorna o nome, a foto, a biografia, uma lista
das seções onde o autor publica, e uma lista das
matérias publicadas pelo autor, contendo: título, data de
publicação, conteúdo.
Especificação dos Use Cases
53
Use Case 6: : Criar novas matérias Cenários: 3.1 Descrição:
1. O usuário informa escolhe a opção incluir matéria e
informa o título, o resumo, op conteúdo, a seção, o nome
do autor, e as matérias relacionadas à matéria que está
sendo criada
2. O usuário escolhe a opção criar matéria
3. A aplicação disponibiliza a matéria criada para avaliação
do editor
Especificação dos Use Cases
54
UID 1: Ler matérias de uma seção
Especificação dos UIDs
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
55
UID 2: Ler matérias em destaque
Especificação dos UIDs
(Incluir em favoritos)
Matéria (título, seção, data de publicação, conteúdo, Autor (nome))
... Matéria (data de publicação, título, resumo)
1
... comentário
Nota: Para incluir uma matéria em favoritos, o usuário deve informar e-mail e senha
56
UID 3: Ler matérias a partir de uma palavra chave
Especificação dos UIDs
1
...Matéria (título, data de publicação, resumo)
1..3 opção [ título, conteúdo, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome))
palavra-chave
57
UID 4: Consultar matérias favoritas
Especificação dos UIDs
...Matéria (título, data de publicação, resumo)
senhae-mail
Matéria (título, data de publicação, conteúdo, Autor (nome), comentário)
1
“Login Inválido”
[senha inválida][senha válida]
58
UID 5: Consultar informações de um autor
Especificação dos UIDs
Autor(nome, foto, biografia, ...Seção(nome), ...Matéria(título, data de publicação, conteúdo))
nome do autor
...Autor(nome)
1
59
UID 6: Criar novas matérias
Especificação dos UIDs
Pré-condição: o usuário deve estar conectado como Autor e escolher a opção Incluir Matéria
título resumo conteúdo
seção nome do autor
... título da matéria relacionada
(criar matéria)
60
Atividade responsável pela análise do domínio da aplicação
Preocupação com a estrutura conceitual da informação, não com a aparência ou formas de uso
Poderá ser potencialmente usada por diversas aplicações no mesmo domínio
Definição de forma independente da plataforma de hardware e software
Resultado: Esquema Conceitual
Projeto Conceitual
61
Esquema Conceitual - Exemplo
Matéria
titulo: stringdata_pub: dateconteúdo: [text+, foto: image]destaque: booleanresumo: text
imprimirMateriaenviarMateria
Seçãonome: string
1
0..*
pertence_a
Ensaio TraduçãoEntrevista
Autor
foto: imagebiografia: text
1
Pessoanome: stringe-mail: stringsenha: string
Editor
publicarMateria()
cria0..*
62
Definir um esquema conceitual preliminar a partir dos UIDs com o auxílio de algumas diretrizes pré-definidas
As diretrizes são utilizadas paradefinir classes de objeto
definir atributos das classes
definir associações entre classes
definir operações
Realizar ajustes no esquema preliminar
Esquema Conceitual a partir dos UIDs
63
Para cada UID, definir uma classe para cada estrutura
Diretriz 1 - Definição de Classes
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
Esquema de Classes
Seção
Matéria
Matéria Relacionada
Autor
64
Para cada item de dado (retornado pela aplicação ou fornecido pelo usuário) que aparece em cada UID, definir um atributo de acordo com:Se, dada uma instância da classe X, é possível obter o valor
do atributo A
»o item de dado será um atributo da referida classe, se é possível obter seu valor para apenas uma classe
Se, dadas as classes X e Y, é possível obter o valor do atributo A
»o item de dado será um atributo de uma associação entre essas classes
Diretriz 2 - Definição dos Atributos
65
Se o atributo correspondente ao item de dado não depender de nenhuma classe existente, ou da combinação das mesmas
»O item de dado será um atributo de uma nova classe que deverá ser criada
Diretriz 2 - Definição dos Atributos
66
UID - Ler matéria de uma seção
Diretriz 2 - Exemplo 1
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
Esquema de Classes
Matériatitulodata_pubconteúdoresumo
Seçãonome
Autornomefotobiografia
Matéria Relacionada
titulo
67
UID - Consultar matérias favoritas
Diretriz 2 - Exemplo 2
...Matéria (título, data de publicação, resumo)
senhae-mail
Matéria (título, data de publicação, conteúdo, Autor (nome), comentário)
1
“Login Inválido”
[senha inválida]
[senha válida] Esquema de Classes
Leitor Matéria
comentário
68
UID - Criar uma nova seção (ator Editor)
Diretriz 2 - Exemplo 3
“Entre com os dados da seção”
senhae-mail
“Seção criada com sucesso”
Esquema de Classes
Seção
Editore-mailsenha
descriçãonome
69
Se existem classes com nomes diferentes representando a mesma classe (sinônimos) todas as classes, exceto uma, devem ser eliminadasos atributos das classes eliminadas são adicionadas à classe
mantida, se esta não representar esses atributos Se existem classes diferentes representando estados
diferentes de uma mesma classe baseessas classes podem tornar-se subclasses da classe base ou
podem ser eliminadas, dando origem a um novo atributo que representará o estado da classe base
Se dois atributos com nomes diferentes, pertencentes a mesma classe, representam a mesma informaçãoum deles deve ser eliminado
Ajustes
70
Ajustes - Exemplos
Matériatitulodata_pubconteúdoresumo
Matéria Relacionada
titulo
Matériatitulodata_pubconteúdoresumo
Matéria Editada
Matéria Aprovada
Matéria Publicada
Matéria Reprovada
Matériaestado: [Ed, Pb, Ap, Rp]
71
Para cada atributo a, cujo item de dado correspondente aparece em uma estrutura que não corresponde à sua classeSe existir um outro atributo b, cujo item de dado aparece na
mesma estrutura mas pertence a uma classe diferente da classe do atributo a e
É possível obter as informações de uma única instância da classe do atributo a a partir de uma instância da classe do atributo b
»Criar uma associação entre a classe que contém a e a classe que contém b
Analisar se esta associação está semanticamente correta
Determinar as cardinalidades da associação
Diretriz 3 - Definição de Associações
72
Cardinalidades Se a classe do atributo b for a classe correspondente à
estruturaSe o item de dado que representa o atributo a é um item de
dado simples
»a cardinalidade máxima da classe que contém a na associação é 1
Se o item de dado que representa o atributo a é um conjunto
»a cardinalidade máxima da classe que contém a na associação é N
Se o item de dado que representa o atributo a é opcional
»a cardinalidade mínima da classe que contém a na associação é 0
Diretriz 3 - Definição de Associações
73
Diretriz 3 - Exemplo
(Incluir em favoritos)
Matéria (título, seção, data de publicação, conteúdo, Autor (nome))
... Matéria (data de publicação, título, resumo)
1
... comentário
UID - Ler matérias em destaque
Esquema de Classes
Seção Matéria1
74
Para cada UID, para cada estrutura s1 que contém outra estrutura s2, criar uma associação entre as classes que correspondem às estruturas s1 e s2
Analisar se a associação resultante é semanticamente correta
Determinar as cardinalidades da associação Se a estrutura s2 é uma estrutura singular, então a cardinalidade
máxima da classe que corresponde a s2 na associação é 1
Se a estrutura s2 é um conjunto, então a cardinalidade máxima da classe que corresponde a s2 na associação é N
Se a estrutura s2 é um opcional, então a cardinalidade mínima da classe que corresponde a s2 na associação é 0
Diretriz 4 - Definição de Associações
75
Diretriz 4 - Exemplo UID - Ler matéria de uma seção
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
Esquema de Classes
Matériatitulodata_pubconteúdoresumo
Seçãonome
Autornomefotobiografia
1
0..N
1
76
Para cada transição do estado de interação (representada por uma seta) em cada UID, se existem diferentes classes representando o estado de interação fonte e o estado de interação destino, definir uma associação entre as classes correspondentes
Analisar se a associação resultante é semanticamente correta
Determinar as cardinalidades da associação
Diretriz 5 - Definição de Associações
77
Cardinalidades Se N itens de dados podem ser selecionados no
estado de interação de origem, a cardinalidade máxima da classe correspondente ao
estado de interação origem é N Se a estrutura ou item de dado retornado no estado de
interação destino é opcionala cardinalidade mínima da classe correspondente ao
estado de interação destino é 0 Se a estrutura ou item de dado retornado no estado de
interação destino é um conjuntoa cardinalidade máxima da classe correspondente ao
estado de interação destino é N
Diretriz 5 - Definição de Associações
78
Diretriz 5 - Exemplo UID - Ler matéria de uma seção
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
Esquema de Classes
Matériatitulodata_pubconteúdoresumo
Seçãonome
Autornomefotobiografia
1
0..n
1
n
79
Para cada opção que aparece anexada a uma
transição de estado em cada UID, verificar se existe
uma operação que deve ser criada para alguma das
classes correspondentes aos estados de interação
Validar as operações criadas na fase de ajustes
Diretriz 6 - Definição de Operações
80
Diretriz 6 - Exemplo UID - Ler matéria de uma seção
...Seção (nome)
... Matéria (data de publicação, título, resumo)
Matéria (título, data de publicação, conteúdo, Autor (nome), 0..N Matéria Relacionadas (título))
Autor (nome, foto, biografia)
1
1(imprimirmatéria)
(enviarmatéria) (mostrar dados do autor)
Esquema de Classes
Matériatitulodata_pubconteúdoresumoimprimirMatéria ( )enviarMatéria ( )
Autornomefotobiografia
mostrarDadosAuotr ( )
81
Identificar generalizações e agregações
Definir cardinalidades ainda não definidas para as
associações
Validar as operações definidas
Verificar se faltou atributos para a classe, neste caso,
incluir os atributos necessários
Validação e Ajustes Finais
82
Estudo de caso: Publicação Online
Projeto Conceitual
83
Diretriz 1: Definição das classesUID 1: Seção, Matéria, Matéria Relacionada, Autor
UID 2: Matéria, Autor
UID 3: Matéria, Autor
UID 4: Matéria, Autor
UID 5: Matéria, Autor, Seção
UID 6: --
Classes Resultantes:Seção
Matéria
Autor
Esquema Conceitual a partir dos UIDs
84
Diretriz 2: Definição dos atributosUID 1: Seção: nome
Matéria: título, data de publicação, resumo, conteúdoAutor: nome, foto, biografia
UID 2: Matéria: título, data de publicação, resumo, conteúdo, comentárioAutor: nome
UID 3: Matéria: título, data de publicação, resumo, conteúdoAutor: nome
UID 4: Matéria: título, data de publicação, resumo, conteúdoLeitor: e-mail, senhaLeitor - Matéria: comentário
UID 5: Seção: nomeMatéria: título, data de publicação, conteúdoAutor: nome, foto, biografia
Esquema Conceitual a partir dos UIDs
85
Esquema Conceitual a partir dos UIDs
Atributos resultantes
comentário
Seção
nome
Autornomefotobiografia
Matéria
titulodata_pubconteúdoresumo
Leitoremailseha
86
Esquema Conceitual a partir dos UIDs Diretrizes 3, 4 e 5: Definição das Associações Associações Resultantes:
comentário
Seção
nome
Autornomefotobiografia
Matéria
titulodata_pubconteúdoresumo
Leitoremailseha
1
*
1 *
* *
* *
87
Esquema Conceitual a partir dos UIDs Diretriz 6: Definição das Operações Operações Resultantes:
comentário
Seção
nome
Autornomefotobiografia
mostrarDadosAutor()
Matéria
titulodata_pubconteúdoresumo
imprimirMateria()enviarMateria()criarMateria()
Leitoremailseha
incluirFavorita()
1
*
1 *
* *
* *
88
Ajustes: Inclusão do atributo destaque na classe Matéria
Inclusão da operação excluirFavorita na classe Leitor
O atributo comentário da classe de associação entre Leitor e
Matéria foi renomeado para texto
A classe de associação recebeu o nome de Comentário
Inclusão das operações incluirComentário e
removerComentário na classe de associação Comentário
Esquema Conceitual a partir dos UIDs
89
Esquema Conceitual a partir dos UIDs Diretriz 6: Definição das Operações Operações Resultantes:
comentário
Seção
nome
Autornomefotobiografia
mostrarDadosAutor()
Matéria
titulodata_pubconteúdoresumo
imprimirMateria()enviarMateria()criarMateria()
Leitoremailseha
incluirFavorita()
1
*
1 *
* *
* *
pertence a
publica
seleciona
está relacionada
90
Define uma visão navegacional sobre um domínio
conceitual, considerandoOs perfis dos usuários e
as tarefas que devem ser apoiadas
Especifica as informações que serão processadas e a
possível navegação entre elas.
Resultado: Esquema de Contextos
Esquema Navegacional
Esquema de Classes em Contexto
Cartões de Especificação
Projeto da Navegação