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