IN1020 - Engenharia de Requisitos IF716 - Especificação de Requisitos e Validação de Sistemas Projeto - Modelagem de Comportamento de Sistemas 1) Motivação A documentação dos aspectos comportamentais de um sistema permite adicionar mais detalhes semânticos para um sistema, em particular detalhando suas características relacionadas a tempo, eventos, e ordem de execução. Além disso, a especificação do comportamento aumenta a confiança, já no começo do processo de desenvolvimento, que o sistema funcionará de acordo com o que se espera dele. Uma das linguagens mais utilizada para especificação de comportamento de sistemas é a Statechart. Essa linguagem permite a modelagem de sistemas reativos de forma clara e organizada, através de mecanismos como composição de estados, independência entre estados, ações, e transições condicionais. 2) Objetivo Esse projeto tem como objetivo exercitar a modelagem de comportamento de sistemas utilizando a linguagem Statechart. O sistema a ser modelado é um sistema web para apresentação e gerenciamento de notícias e anúncios patrocinados, cujos requisitos são apresentados na seção 3. A modelagem desse sistema deverá utilizar a ferramenta YAKINDU, que fornece um ambiente integrado de modelagem para a especificação e o desenvolvimento de sistemas reativos baseados em statecharts. O projeto deverá ser feito de forma individual e entregue em versão impressa e digital. A versão impressa consiste em um relatório contendo uma descrição textual do statechart criado, assim como o statechart propriamente dito (figura). A versão digital deverá ser composta por uma versão digital do relatório (doc ou pdf), além do statechart no formato da ferramenta YAKINDU (extensão sct). 3) Descrição dos requisitos do sistema O sistema é um serviço de notícias que fornece conteúdo a seus clientes através de um website. As notícias podem ser formadas por hipertexto e imagens, ou apenas hipertexto. Para que os administradores do site realizem o planejamento da sua capacidade, eles desejam saber o número de acessos ao site. Portanto, cada acesso deve ser contabilizado e seu valor armazenado. Além desse conteúdo, cada página de notícia também apresenta um anúncio patrocinado. Visando diminuir o tempo necessário para que o cliente possa ler as notícias, os anúncios não devem ser carregados antes que o conteúdo da notícia em si tenha sido devidamente carregado. Por outro lado, visando aumentar o lucro, a cada vez que um usuário visualize 4 notícias, ocorrerá o seguinte: ao tentar abrir uma outra notícia, será exibido um anúncio com duração de 10 segundos, antes que a notícia propriamente dita seja apresentada. O site possui a funcionalidade de assinatura de atualizações, para isso, usuários devem informar seu email. Dessa forma, ao mesmo tempo em que fornece as notícias, o site deve enviar e-mails diários com as atualizações daquele dia para usuários previamente cadastrados. Além da visualização de notícias e envio de atualizações, que é aberto para todos os usuários, o sistema possui uma área de gerenciamento. Nessa área é possível gerenciar as notícias do sistema, de forma que os usuários autorizados terão permissão para realizar as seguintes ações: inserir, modificar, excluir, consultar, pré-visualizar e publicar notícias. Adicionalmente, administradores do site poderão efetuar o cadastro de novos usuários. Caso o usuário esqueça sua senha, haverá um link onde o usuário poderá recuperar sua senha – nesse caso, o usuário receberá um e-mail com um link para o recadastramento de sua senha. 4) Apresentação do relatório O aluno deverá elaborar um relatório contendo um modelo statechart que descreva o comportamento do sistema, assim como uma descrição detalhada do modelo em formato textual. o Coloque página de capa com: nome, curso, data, nome do professor. o Páginas deverão ser no formato A4 (210mm x 270mm). o Tamanho da fonte da letra deverá ser de no máximo 12pt. O modelo não deverá conter estados que representem o comportamento de elementos da interface gráfica do sistema (ex., estados on/off para botões, ou estados vazio/preenchido para campos de texto). O modelo deverá representar o comportamento do sistema como um todo, em vez de apresentar apenas o comportamento de uma entidade do sistema. O modelo deve ser impresso de forma legível. Para isso, é recomendável imprimir o modelo separado em diversas páginas. Escreva o relatório de forma clara e concisa. O relatório deverá ser entregue em duas versões: o impressa o virtual – relatório (doc ou pdf) + arquivo modelado na ferramenta Yakindu (extensão sct). O projeto deverá ser executado individualmente. 5) Avaliação O quadro abaixo relaciona os critérios a serem avaliados. Cada critério possui um determinado peso na avaliação total. Categoria Escrita (10%) Adequação ao problema proposto (20%) Sub-categoria Linguagem (5%) Nível de detalhamento (5%) Relação entre requisitos e statechart (20%) Critério Redução de 0.5% (até 5%) para cada erro ortográfico, erro gramatical, ou ponto de confusão. A descrição do modelo está em um nível apropriado de detalhamento? Pontuação 5 A descrição explica o relacionamento entre o statechart e a descrição dos requisitos funcionais do sistema? 20 5 Modelo (40%) Corretude sintática (5%) Elementos utilizados (20%) Coerência (15%) Apresentação individual (30%) Total (100%) Arguição oral (15%) Modificações (15%) O modelo apresenta algum erro sintático? 5 Super-estado Eventos Condições Estados ortogonais Variáveis Ações Estados default A descrição do modelo é coerente com sua representação visual? O aluno deverá responder a perguntas sobre seu modelo, em apresentação individual. O aluno deverá ser capaz de realizar modificações no seu modelo, durante apresentação individual. 3 3 3 3 3 3 2 15 15 15 100