Desenvolvimento de Aplicações
Web
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
2
Algumas propostas do OOHDM


OOHDM – Object Oriented Hypermedia
Desig Method
Método de autoria para sistemas hipermídia
Em desenvolvimento desde 1989 – antes da Web!
Várias evoluções
Independente de plataforma
Voltado tanto para o cliente quanto para o
implementador
3
Fases do Desenvolvimento de
Aplicações
Levantamento
de Requisitos
Implementação
Projeto
Conceitual
Projeto
Abstrato da
Interface
Projeto da
Navegação
4
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
5
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ção
Análise dos documentos disponíveis
Interações com clientes e usuários
» Técnicas:
– Entrevista
– Brainstorming
» Aspectos a considerar:
– Tempo disponível para o projeto
– Disponibilidade do pessoal participante
6
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, Editor
Loja
» Cliente, Administrador
Universidade
» Aluno, Professor, Coordenador
7
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
8
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
9
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
10
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.
11
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.
12
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
13
Use Case - Exemplo



Use Case 1: Ler matérias de uma seção
Número de identificação do cenário
Cenários: 1.1 / 2.3
Número de identificação do usuário
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 envia-la a um amigo
5. O usuário solicita informações sobre o autor
6. A aplicação retorna o nome, a foto e biografia do autor
7. Se o usuário tiver interesse em ler outra matéria da mesma
seção, pode retornar ao passo 3.
14
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
15
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
16
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.
17
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.
18
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 resultante
 Seção: nome
 Matéria: data de publicação, título, resumo, conteúdo, nome do
autor e matérias relacionadas
 Autor: nome completo, foto e biografia
19
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
20
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
case
 O 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
21
Diretrizes para o Use Case - Exemplo
Use Case: Ler matérias de uma seção
Cenários: 1.1 / 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.
22
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
23
Especificação dos UIDs - Notação

Estado de Interação (entre o usuário e o sistema)
Estado da
Interação

Estado Inicial Estados Alternativos Sub-estados de um
Estado da Interação
da Interação
da Interação
Item de dado
 Representa uma informação única (simples) que aparece
durante a interação
 Pode ser acompanhada por seu domínio
 Exemplo:
titulo,
exemplares: Número
24
Especificação dos UIDs - Notação

Estrutura
 Representa uma coleção de informações que estão
relacionadas de alguma maneira
 Exemplo:
Matéria (titulo,resumo,
data de publicação)

Conjunto
 Representa um conjunto de itens de dados ou estruturas
 Exemplo:
...Matéria (titulo,resumo,
data de publicação)
25
Especificação dos UIDs - Notação

Dado Opcional
 Representa um item de dado, estrutura ou texto opcional
 É representado pelo símbolo “ ? ”
 Exemplo:
...Matéria (titulo,resumo?,
data de publicação)

Saída do Sistema
 Representa um item de dado ou estrutura retornado pelo
sistema
 Exemplo:
...Seção (nome)
26
Especificação dos UIDs - Notação

Entrada do Usuário
 Representa um item de dado ou estrutura fornecido pelo
usuário
 Exemplos
» Obrigatória:
título
» Opcional:
título?
título
» Enumerada:
pagamento [cartão, boleto]
27
Especificação dos UIDs - Notação

Transição do Estado da Interação
 Transiçã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
<N>
<N>
<N>
 Transição com seleção da opção X
(<X>)
 Transição com condição Y
(<Y>)
(<X>)
(não muda o foco
da interação)
28
Especificação dos UIDs - Notação

Pré-condições e Pós-Condições
 A 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:
Pré-condições: matéria foi aprovada pelo editor

Notas textuais anexadas ao UID
 servem para especificar alguma informação importante que não
pode ser representada graficamente no UID
29
Especificação dos UIDs - Exemplo 1
Sub-estados do Estado de
Interação Inicial
”Usuário Novo”
e-mail
senha
(login)
(criar conta)
nome
e-mail
“Usuário Antigo”
Transição com
seleção de opção
...Matéria(título)
senha
30
Especificação dos UIDs - Exemplo 2
identificação
Transição com
condição
senha
[senha inválida]
[senha válida]
nome
e-mail
matrícula[nova, renovação]
senha
31
Diretrizes para obter o UID

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
32
Diretrizes para obter o UID
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.
33
Diretrizes para obter o UID

Diretriz 2: Separar os itens de dados dentro de estados
de interação.
<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>
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.
<4>
A aplicação retorna o
nome, a foto e a biografia
do autor
34
Diretrizes para obter o UID

Diretriz 3: Distinguir os itens de dados fornecidos pelo
usuário e os itens de dados retornados pela aplicação.
<1>
...Seção (nome)
<2>
... Matéria (data de publicação,
título, resumo)
<3>
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
<4>
Autor ( nome, foto,
biografia)
35
Diretrizes para obter o UID

Diretriz 4: Conectar os estados de interação com
transições
...Seção (nome)
1
... Matéria (data de publicação,
título, resumo)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
Autor (nome, foto,
biografia)
36
Diretrizes para obter o UID

Diretriz 5: Representar as opções realizadas pelo
usuário
...Seção (nome)
1
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
Autor (nome, foto,
biografia)
37
Levantamento de Requisitos
Requisitos
(cenários, use
cases e UIDs)
...
...
Projeto
Conceitual
Projeto de
Navegação
38
Estudo de Caso:
Publicação OnLine
Levantamento de Requisitos
Identificação de Atores e Tarefas

Atores
 Leitor e Autor

Tarefas
 Ator: 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
40
Especificação dos Cenários
Ator Leitor: Usuário 1


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.
41
Especificação dos Cenários
Ator Leitor: Usuário 1


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.
42
Especificação dos Cenários
Ator Leitor: Usuário 2


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.
43
Especificação dos Cenários
Ator Leitor: Usuário 2


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.
44
Especificação dos Cenários
Ator Leitor: Usuário 2


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.
45
Especificação dos Cenários
Ator Leitor: Usuário 2


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.
46
Especificação dos Cenários
Ator Autor: Usuário 3


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.
47
Especificação dos Use Cases

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.
48
Especificação dos Use Cases

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.
49
Especificação dos Use Cases

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
50
Especificação dos Use Cases

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
51
Especificação dos Use Cases

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.
52
Especificação dos Use Cases

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
53
Especificação dos UIDs

UID 1: Ler matérias de uma seção
...Seção (nome)
1
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
Autor (nome, foto,
biografia)
54
Especificação dos UIDs

UID 2: Ler matérias em destaque
... Matéria (data de
publicação, título, resumo)
1
Matéria (título, seção, data de
publicação, conteúdo, Autor (nome))
(Incluir em favoritos)
... comentário
Nota: Para incluir uma matéria em favoritos, o
usuário deve informar e-mail e senha
55
Especificação dos UIDs

UID 3: Ler matérias a partir de uma palavra chave
palavra-chave
1..3 opção [ título, conteúdo,
resumo)
...Matéria (título, data de
publicação, resumo)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome))
56
Especificação dos UIDs

UID 4: Consultar matérias favoritas
e-mail
senha
[senha válida]
...Matéria (título, data de
publicação, resumo)
[senha inválida]
“Login Inválido”
1
Matéria (título, data de
publicação, conteúdo,
Autor (nome), comentário)
57
Especificação dos UIDs

UID 5: Consultar informações de um autor
nome do autor
...Autor(nome)
1
Autor(nome, foto, biografia,
...Seção(nome), ...Matéria
(título, data de publicação,
conteúdo))
58
Especificação dos UIDs

UID 6: Criar novas matérias
título
seção
resumo
conteúdo
(criar matéria)
nome do autor
... título da matéria relacionada
Pré-condição: o usuário deve estar conectado como Autor e
escolher a opção Incluir Matéria
59
Projeto Conceitual

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
60
Esquema Conceitual - Exemplo
Pessoa
pertence_a
Seção
nome: string
nome: string
e-mail: string
senha: string
1
0..*
Matéria
titulo: string
data_pub: date
conteúdo: [text+, foto: image]
destaque: boolean
resumo: text
Editor
Autor
publicarMateria()
foto: image
biografia: text
1
imprimirMateria
enviarMateria
Ensaio
0..*
Entrevista
cria
Tradução
61
Esquema Conceitual a partir dos UIDs

Definir um esquema conceitual preliminar a partir dos
UIDs com o auxílio de algumas diretrizes pré-definidas

As diretrizes são utilizadas para
 definir classes de objeto
 definir atributos das classes
 definir associações entre classes
 definir operações

Realizar ajustes no esquema preliminar
62
Diretriz 1 - Definição de Classes

Para cada UID, definir uma classe para cada estrutura
...Seção (nome)
1
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Esquema de
Classes
Seção
Matéria
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
Matéria
Relacionada
(mostrar dados do autor)
Autor (nome, foto,
biografia)
Autor
63
Diretriz 2 - Definição dos Atributos

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
64
Diretriz 2 - Definição dos Atributos
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
65
Diretriz 2 - Exemplo 1

UID - Ler matéria de uma seção
Esquema de
Classes
Seção
...Seção (nome)
nome
1
Matéria
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
Autor (nome, foto,
biografia)
titulo
data_pub
conteúdo
resumo
Matéria
Relacionada
titulo
Autor
nome
foto
biografia
66
Diretriz 2 - Exemplo 2

UID - Consultar matérias favoritas
[senha inválida]
e-mail
senha
[senha válida]
“Login Inválido”
Esquema de
Classes
...Matéria (título, data de
publicação, resumo)
1
Matéria (título, data de
publicação, conteúdo,
Autor (nome), comentário)
Leitor
Matéria
comentário
67
Diretriz 2 - Exemplo 3

UID - Criar uma nova seção (ator Editor)
e-mail
senha
Esquema de
Classes
Seção
“Entre com os dados da seção”
nome
descrição
Editor
e-mail
senha
“Seção criada com sucesso”
68
Ajustes

Se existem classes com nomes diferentes
representando a mesma classe (sinônimos)
 todas as classes, exceto uma, devem ser eliminadas
 os 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 base
 essas 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ção
 um deles deve ser eliminado
69
Ajustes - Exemplos
Matéria
titulo
data_pub
conteúdo
resumo
Matéria
Relacionada
Matéria
titulo
data_pub
conteúdo
resumo
titulo
Matéria Editada
Matéria Publicada
Matéria
estado: [Ed, Pb, Ap, Rp]
Matéria Aprovada
Matéria Reprovada
70
Diretriz 3 - Definição de Associações

Para cada atributo a, cujo item de dado
correspondente aparece em uma estrutura que não
corresponde à sua classe
 Se 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
71
Diretriz 3 - Definição de Associações
Cardinalidades
 Se a classe do atributo b for a classe correspondente à
estrutura
 Se 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
72
Diretriz 3 - Exemplo

UID - Ler matérias em destaque
... Matéria (data de
publicação, título, resumo)
Esquema de
Classes
1
Matéria (título, seção, data de
publicação, conteúdo, Autor (nome))
Seção
1
Matéria
(Incluir em favoritos)
... comentário
73
Diretriz 4 - Definição de Associações



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
74
Diretriz 4 - Exemplo

UID - Ler matéria de uma seção
Esquema de
Classes
...Seção (nome)
Seção
1
nome
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
Autor (nome, foto,
biografia)
1
Matéria
titulo
data_pub
conteúdo
resumo
0..N
1
Autor
nome
foto
biografia
75
Diretriz 5 - Definição de Associações

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
76
Diretriz 5 - Definição de Associações
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 é opcional
a 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 conjunto
a cardinalidade máxima da classe correspondente ao
estado de interação destino é N
77
Diretriz 5 - Exemplo

UID - Ler matéria de uma seção
Esquema de
Classes
...Seção (nome)
Seção
1
nome
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo,
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
Autor (nome, foto,
biografia)
1
n
Matéria
titulo
data_pub
conteúdo
resumo
0..n
1
Autor
nome
foto
biografia
78
Diretriz 6 - Definição de Operações

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
79
Diretriz 6 - Exemplo

UID - Ler matéria de uma seção
Esquema de
Classes
...Seção (nome)
1
Matéria
... Matéria (data de publicação,
título, resumo)
(imprimir
matéria)
(enviar
matéria)
1
Matéria (título, data de
publicação, conteúdo, Autor (nome),
0..N Matéria Relacionadas (título))
(mostrar dados do autor)
titulo
data_pub
conteúdo
resumo
imprimirMatéria ( )
enviarMatéria ( )
Autor
nome
foto
biografia
mostrarDadosAuotr ( )
Autor (nome, foto,
biografia)
80
Validação e Ajustes Finais

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
81
Estudo de caso: Publicação Online
Projeto Conceitual
82
Esquema Conceitual a partir dos UIDs

Diretriz 1: Definição das classes
 UID 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
83
Esquema Conceitual a partir dos UIDs

Diretriz 2: Definição dos atributos
 UID 1: Seção: nome
Matéria: título, data de publicação, resumo, conteúdo
Autor: nome, foto, biografia
 UID 2: Matéria: título, data de publicação, resumo, conteúdo,
comentário
Autor: nome
 UID 3: Matéria: título, data de publicação, resumo, conteúdo
Autor: nome
 UID 4: Matéria: título, data de publicação, resumo, conteúdo
Leitor: e-mail, senha
Leitor - Matéria: comentário
 UID 5: Seção: nome
Matéria: título, data de publicação, conteúdo
Autor: nome, foto, biografia
84
Esquema Conceitual a partir dos UIDs

Atributos resultantes
Matéria
titulo
data_pub
conteúdo
resumo
Seção
nome
Leitor
email
seha
Autor
nome
foto
biografia
comentário
85
Esquema Conceitual a partir dos UIDs


Diretrizes 3, 4 e 5: Definição das Associações
Associações Resultantes:
Matéria
Seção
1
nome
*
*
nome
foto
biografia
1
*
titulo
data_pub
conteúdo
resumo
*
Autor
Leitor
*
email
seha
*
comentário
86
Esquema Conceitual a partir dos UIDs


Diretriz 6: Definição das Operações
Operações Resultantes:
Matéria
Seção
nome
1
*
*
Leitor
*
titulo
data_pub
conteúdo
resumo
*
email
seha
incluirFavorita()
imprimirMateria()
enviarMateria()
criarMateria()
Autor
nome
foto
biografia
1
*
*
comentário
mostrarDadosAutor()
87
Esquema Conceitual a partir dos UIDs

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
88
Esquema Conceitual a partir dos UIDs


Diretriz 6: Definição das Operações
Operações Resultantes:
Matéria
Seção
nome
1
*
pertence a
*
seleciona
*
titulo
data_pub
conteúdo
resumo
Leitor
*
email
seha
incluirFavorita()
imprimirMateria()
enviarMateria()
criarMateria()
Autor
nome
foto
biografia
1
publica
*
*
está
relacionada
comentário
mostrarDadosAutor()
89
Projeto da Navegação

Define uma visão navegacional sobre um domínio
conceitual, considerando
 Os 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
90
Download

Desenvolvimento de aplicacoes WEB