MODELAGEM INCREMENTAL DE APLICAÇÕES WEB COM ABORDAGEM UWE: UM SISTEMA PARA REGISTRO DE PUBLICAÇÕES ACADÊMICAS CLAUDINEI COSTANTIN - [email protected] UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - UFRGS CLARISSA ALMEIDA RODRIGUES - [email protected] UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - UFRGS ALINE VIEIRA MALANOVICZ - [email protected] UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - UFRGS Resumo: AS TECNOLOGIAS PARA WEB TÊM UMA COMPLEXIDADE ESTRUTURAL QUE EXIGE MÉTODOS SISTEMATIZADOS DE DESENVOLVIMENTO E MANUTENÇÃO: A ENGENHARIA WEB. O OBJETIVO DESTE ARTIGO É DESCREVER O PROCESSO DE MODELAGEM DE UM SISTEMA WEB UTILIZANDO ABORDAGEM UUWE (ENGENHARIA WEB BASEADA EM UML). O SISTEMA DESENVOLVIDO FOI PROPOSTO NA DISCIPLINA ENGENHARIA DE SOFTWARE PARA APLICAÇÕES WEB DO CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE: É UM SISTEMA PARA REGISTRO DE PUBLICAÇÕES ACADÊMICAS. O MÉTODO SEGUIU OS PASSOS INCREMENTAIS DE UWE, INICIANDO COM DEFINIÇÕES DO CLIENTE (PROFESSOR DA DISCIPLINA), E PROSSEGUINDO NA ELABORAÇÃO DE MODELOS UWE: LISTA DE REQUISITOS, DIAGRAMA DE CASOS DE USO, DESCRIÇÃO DOS CASOS DE USO PRINCIPAIS, DIAGRAMA CONCEITUAL, MODELO DE INTERFACE, E DIAGRAMA DE NAVEGAÇÃO. A ANÁLISE CRÍTICA DO PROCESSO REVELOU QUE A OPÇÃO PELA ABORDAGEM UWE PROPORCIONOU UMA MELHOR VISÃO DOS ASPECTOS CONCEITUAL, NAVEGACIONAL E ESTÉTICO, FACILITANDO A VALIDAÇÃO DA MODELAGEM JUNTO AO CLIENTE. A ESCOLHA DA TECNOLOGIA JSF COM PRIMEFACES E TODO O SUPORTE DO NETBEANS8 MOSTROU-SE EXCELENTE E RÁPIDA, POR AUTOMATIZAR TAREFAS CRUD, PERMITINDO AO DESENVOLVEDOR FOCAR-SE NAS REGRAS DE NEGÓCIO DAS APLICAÇÕES WEB. ESTE TRABALHO TEM SUA RELEVÂNCIA COMO UM CAMINHO INICIAL PARA CONHECER MÉTODOS DE ENGENHARIA WEB, PELA DIVULGAÇÃO DE EXEMPLOS DE BOAS PRÁTICAS. Palavras-chaves: ENGENHARIA WEB; APLICAÇÃO WEB; ENGENHARIA DE SOFTWARE. Área: 5 - GESTÃO DO PRODUTO Sub-Área: 5.4 - ENGENHARIA DE PRODUTO XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 INCREMENTAL MODELLING OF WEB APPLICATIONS USING UWE APPROACH: A SYSTEM FOR RECORDING ACADEMIC PUBLICATIONS Abstract: WEB TECHNOLOGIES HAVE STRUCTURAL COMPLEXITIES THAT REQUIRES SYSTEMATIZED METHODS FOR DEVELOPMENT AND MAINTENANCE, SUCH AS METHODOLOGIES BASED ON SOFTWARE ENGINEERING ADAPTED FOR WEB APPLICATIONS, CALLED WEB ENGINEERING. THIS PAPER DESCRIBESS THE MODELLING PROCESS OF A WEB SYSTEM USING UWE (WEB ENGINEERING BASED ON UML) APPROACH. THE SYSTEM DEVELOPED WAS PROPOSED AT A COURSE OF SOFTWARE ENGINEERING FOR WEB APPLICATIONS IN A COURSE OF SPECIALIZATION ON SOFTWARE ENGINEERING: A WEB SYSTEM FOR RECORDING ACADEMIC PUBLICATIONS. THE METHOD FOLLOW UWE INCREMENTAL STEPS, BEGINNING WITH DEFINITIONS FROM THE CONSUMER (PROFESSOR) AND THEN WITH ELABORATION OF UWE MODELS: REQUISITES LIST, USE CASES DIAGRAM, DESCRIPTION OF MAIN USE CASES, CONCEPTUAL DIAGRAM, INTERFACE MODEL, AND NAVIGATION DIAGRAM. A CRITICAL ANALYSIS OF THE PROCESS SHOWS THAT THE CHOICE OF UWE APPROACH OFFERED A BETTER VISION OF CONCEPTUAL, NAVIGATIONAL AND AESTHETICAL ASPECTS OF THE SYSTEM, FACILITATING THE MODELLING VALIDATION WITH USER. THE CHOICE OF JSF TECHNOLOGY WITH PRIMEFACES AND NETBEANS8 SUPPORT WAS EXCELLENT AND OFFERING PRODUCTIVITY IN DEVELOPMENT, BY AUTOMATIZING CRUD TASKS AND ALLOW DEVELOPER TO FOCUS ON BUSINESS RULES OF WEB APPS. THE RELEVANCE OF THIS RESEARCH IS TO BE AN INITIAL WAY TO KNOW WEB ENGINEERING, BY DISSEMINATION OF EXAMPLES OF THE BEST PRACTICES. Keyword: WEB ENGINEERING; WEB APPLICATION; SOFTWARE ENGINEERING. 2 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 1. Introdução No campo de estudos da Engenharia de Software, estão ganhando espaço as temáticas de pesquisa que tratam do desenvolvimento de sistemas de informação web e de seus métodos de desenvolvimento, o que se percebe nas áreas temáticas e na diversidade de estudos publicados em revistas e em eventos como SIMPEP, ENEGEP, ENEComp, EnEngSW, EnANPAD. A área de tecnologias para web está passando por uma fase em que a complexidade estrutural e a manutenção das páginas web exigem métodos sistematizados. No início da era da internet, aplicações web se limitavam a páginas informativas, orientadas a documento. Hoje, aplicações web são complexos sistemas de software que provêm serviços interativos, customizáveis e com grandes quantidades de dados, acessíveis por diversos dispositivos diferentes (KAPPEL, 2003; CGI.BR; NIC.BR, 2010). Atendendo a essa carência, pesquisadores e desenvolvedores propuseram metodologias baseadas na engenharia de software e adaptadas para aplicações web, chamadas de Engenharia Web (ALGARVE, 2008; SELMI, 2005). Na prática profissional, assim como no ensino da área, a intenção primordial dos professores e profissionais consiste em agregar qualidade ao desenvolvimento de produtos, serviços, softwares e novas tecnologias (SOUZA, 2008). Para isso, percebe-se a necessidade de serem divulgadas as boas práticas do processo de análise, modelagem e projeto de sistemas web, nas quais se inclui a utilização de técnicas e metodologias próprias para a engenharia web, como é o caso da UWE (KOCH; KRAUS, 2002). Considerando esses fatores, este artigo tem como objetivo descrever o processo de modelagem de um sistema web utilizando UWE. O sistema desenvolvido é o proposto em uma disciplina de Engenharia de Software para Aplicações Web de um curso de Especialização em Engenharia de Software: um sistema web para registro de publicações acadêmicas. A seção 2 deste artigo apresenta inicialmente alguns conceitos básicos essenciais sobre o tema. A seção 3 descreve o método utilizado nesta pesquisa. A seção 4 relata os resultados, incluindo os diagramas e descrições textuais desenvolvidos ao longo do projeto de análise do sistema. Esses resultados são analisados e comentados na seção 5, de Conclusões. 2. Revisão Conceitual Aplicações web (web apps) são sistemas baseados na arquitetura cliente-servidor que utilizam a internet como plataforma de trabalho (ALGARVE, 2008). Entre as características e peculiaridades de aplicações web, podem ser citadas interação em tempo real, complexidade, flexibilidade e o desejo de oferecer informação personalizada, além de oferecer conteúdos e 3 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 serviços através de um navegador (KAPPEL, 2003; MURUGESAN, 2005). Outras características de web apps são: forte ênfase na estética (layout, gráficos, elementos de áudio e vídeo) e nas funcionalidades; uso intensivo da rede e concorrência (diferentes clientes simultaneamente, em lugares distintos); imediatismo (time-to-market curtíssimo); evolução contínua (minuto-a-minuto, conteúdo dinâmico); segurança (pouca limitação na população que a acessa); curto tempo de resposta (usuários impacientes); alta disponibilidade (24/7/365); carga difícil de prever (pode variar muito) (WIVES, 2014). A Engenharia Web pode ser definida como a aplicação de abordagens sistemáticas e quantificáveis para eficiente análise de requisitos, projeto, implementação, teste, operação e manutenção de aplicações web de alta qualidade (PRESSMAN; LOWE, 2008; BRAMBILLA et al., 2006). Há diversos métodos de engenharia web usados e em constante aprimoramento. Um processo de desenvolvimento utilizado atualmente com boa aceitação por desenvolvedores web que buscam uma maneira formal e organizada de criar sistemas de internet é a UWE. Engenharia Web baseada na UML (UWE) é uma abordagem para desenvolvimento sistemático de aplicações web, baseada no processo unificado RUP (KOCH; KRAUS, 2002). Sua principal característica é a abordagem de dividir o problema nas etapas iniciais e a implementação do processo de desenvolvimento orientado a modelos, o que facilita a visão geral dos componentes da aplicação. Possui quatro fases, com seus respectivos artefatos: a) Análise de Requisitos: Listas de Requisitos, incluindo requisitos obrigatórios (indispensáveis na primeira versão do sistema) e requisitos opcionais (aqueles que o cliente pode esperar para uma próxima versão ou em que ele ainda não tem uma idéia clara do que necessita). Diagrama de Casos de Uso, considerando diferentes tipos de usuário identificados como relevantes de acordo com as prioridades levantadas em conjunto com o usuário/cliente. Descrição dos Casos de Uso Principais, incluindo uma descrição textual detalhada do funcionamento dos casos não muito intuitivos, para explicar sua lógica de funcionamento. b) Projeto Conceitual: Diagrama Conceitual, identificando os principais conceitos/dados envolvidos na aplicação. c) Projeto de Apresentação: Modelo de Interface, identificando a estrutura-padrão das páginas da aplicação, como um esquema ou imagem que indique diferentes áreas da página e seu conteúdo. d) Projeto de Navegação: Diagrama de Navegação, identificando diferentes itens e principais opções de acesso. 4 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 A metodologia utiliza uma extensão da linguagem de modelagem UML (BOOCH; RUMBAUGH; JACOBSON, 2005) como adaptação para gerar diagramas e especificações próprias de web apps. A notação visual permite a construção de modelos expressivos e intuitivos, empregando semântica formal e facilitando o aprendizado pelos desenvolvedores. Exemplificando as boas práticas da engenharia web para criação de um sistema de informação, esta pesquisa apresenta o projeto de uma web app com uso da abordagem UWE. 3. Método O objeto desta pesquisa é o processo de modelagem de um sistema proposto em uma disciplina de Engenharia de Software para Aplicações Web, e este é um problema prático em que a atuação dos atores e o contexto de ação são importantes para o seu desenvolvimento. Por isso, o método escolhido (Estudo de Caso) caracteriza a pesquisa como qualitativa aplicada e de natureza exploratória (YIN, 2005; VERGARA, 2005). Esta seção detalha os procedimentos metodológicos adotados, para que se mostrem repetíveis para outros pesquisadores que intentem empreender uma pesquisa semelhante. O método de desenvolvimento da modelagem da aplicação web proposta seguiu os passos incrementais da Engenharia Web baseada em UML (UWE), assumindo como ponto de partida as definições iniciais de requisitos da aplicação dadas pelo cliente (o professor da disciplina), prosseguindo com a elaboração dos modelos da UWE, sempre em passos incrementais. Para tanto, foram analisados documentos disponibilizados pelo cliente e foram realizadas entrevistas com ele, visando identificar as expectativas do cliente. Foram gerados, então, segundo o método, os seguintes “entregáveis” (deliverables), descritos neste artigo: Listas de Requisitos, Diagrama de Casos de Uso, Descrição dos Casos de Uso Principais, Diagrama Conceitual, Modelo de Interface, Diagrama de Navegação. Adicionalmente, são apresentadas como resultados da pesquisa as escolhas tecnológicas consideradas mais práticas, pelo critério da conveniência, para a implementação da aplicação modelada, utilizadas na descrição dos principais passos da parte inicial do seu desenvolvimento. O trabalho foi realizado em grupo, e o tempo total deste projeto envolveu cerca de quatro semanas (toda a duração do curso) entre os meses de maio e junho de 2014. 4. Resultados Nesta seção de Resultados, é descrito o processo de desenvolvimento incremental da aplicação web, e são mostrados os modelos UWE iniciais, intermediários e finais desenvolvidos. 5 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 A primeira iteração do projeto incremental iniciou a fase de Análise de Requisitos e foi realizada durante uma reunião com o cliente (na primeira aula do curso) e serviu para identificar as necessidades do cliente, definir cenários de uso e conceitos envolvidos. A aplicação Web desejada pelo cliente é um Sistema de Registro de Publicações Acadêmicas. Foi relatado pelo cliente que um problema relevante é as informações de publicação de um pesquisador muitas vezes estarem espalhadas em diferentes locais (biblioteca da sua instituição, seu site, site da instituição, currículo Lattes no CNPq, etc.). A atualização e a consistência entre todas essas bases são feitas manualmente, pelo pesquisador. Entre os tipos de publicação, existem: Publicação em periódico (revista ou jornal); Publicação em conferência científica (anais de eventos ou proceedings); Livro completo; Capítulo ou trecho de livro. Uma publicação pode ser nacional ou internacional; completa ou resumida; resumos simples ou expandidos; já publicada ou já aceita (mas ainda não publicada). O sistema a ser desenvolvido deve gerar relatórios nesses diferentes formatos existentes de referências de publicações (ABNT, por exemplo), facilitando a elaboração de trabalhos e relatórios acadêmico-científicos, e deve exigir que sejam cadastrados os dados mínimos para cada tipo de publicação e para cada formato. Opcionalmente, deve completar ou inferir automaticamente alguns dados faltantes (buscando na web, por exemplo). O sistema é catalográfico, ou seja, pode gerar páginas dinamicamente contendo a lista de publicações de uma pessoa, não necessariamente contendo a pesquisa científica em si (não é uma biblioteca digital). O sistema deve poder gerar páginas dinamicamente contendo a lista de publicações de uma pessoa, organizadas ao menos por ano e por tipo. Essas páginas devem poder ser embutidas dinamicamente em outras páginas web, exportadas e importadas, por exemplo, nas páginas pessoais dos pesquisadores e da instituição. Outra funcionalidade desejada pelo cliente é a importação/exportação de referências para formatos como Bibtex, Endnote, Reference, Manager, RefWorks, PubMed, e o cliente elencou alguns exemplos de sites que exportam referências nesses formatos: a Biblioteca Digital da ACM (http://www.acm.org/dl), a Editora Springer (www.springerlink.com), o IEEE (http://ieeexplore.ieee.org) e o Currículo Lattes (http://lattes.cnpq.br/). Para ilustrar suas expectativas, o cliente esboçou como seriam as telas do sistema (FIGURA 1) e elencou alguns exemplos de aplicações semelhantes à desejada: EndNote (http://www.endnote.com/); PubMan (http://pubman.mpdl.mpg.de/); e DBLP (http://www.informatik.uni-trier.de/~ley/db/). 6 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 FIGURA 1 – Esboço das telas do sistema conforme imaginadas pelo cliente. O Levantamento de Requisitos foi desenvolvido com base nesta comunicação inicial com o cliente, que permitiu gerar duas listas de requisitos, já priorizados (FIGURA 2): Requisitos Obrigatórios: Cadastrar-se no sistema; Pesquisar publicações; Visualizar publicações; Adicionar/Editar/Excluir Publicações (artigos, livros, capítulos, resumos...); Exportar/Importar dados de outros repositórios. Requisitos Opcionais: Listagem de publicações com ordenação por diferentes campos; Geração de relatórios por autor, ano, tipo, de maneira dinâmica; Quadros dinâmicos com as atualizações feitas (sugestão da equipe); Ranking de professores/Instituições com maiores publicações (sugestão da equipe); Diferentes perfis de usuários (p.ex.: anônimo, registrado, coordenador); Funcionalidades Web 2.0 (p.ex.: plotar local de publicação no Google Maps); Componente/web service/plug-in para usuário inserir em sua página pessoal. FIGURA 2 – Levantamento de Requisitos: Requisitos Obrigatórios e Requisitos Opcionais. Depois deste levantamento, foi realizado um Planejamento inicial do trabalho, no qual foram estabelecidas as tarefas adequadas para o primeiro incremento: definição da abordagem de análise e projeto (UWE), ferramentas e tecnologias a serem utilizadas (softwares Violet, MockFlow e ArgoUWE, supondo o uso futuro de JSF Java Server Faces), e definição de um cronograma inicial para o projeto (as duas semanas iniciais da disciplina). A segunda iteração do projeto incremental incluiu a definição das funcionalidades prioritárias, e a modelagem propriamente dita, com a elaboração dos modelos da abordagem UWE: Diagrama de Casos de Uso, Descrição dos Casos de Uso Principais, Modelo de Conteúdo, Modelo de Interface, e Estrutura de Navegação (Diagrama de Hipertexto), descritos a seguir. 7 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 O Diagrama de Casos de Uso (FIGURA 3) foi desenvolvido para identificar quais os cenários de interação e os papéis que os diferentes usuários têm no sistema. Neste artefato, detalharam-se as possibilidades de uso do sistema, e ele foi útil para validá-las com o cliente. FIGURA 3 – Diagrama de Casos de Uso. A Descrição dos Casos de Uso Principais (FIGURA 4) contemplou cinco casos de uso (Gerar relatórios, Pesquisar publicações, Visualizar publicações, Adicionar publicação e Exportar/Importar dados de outros repositórios), considerados não muito intuitivos, para os quais se faz necessária uma descrição textual para melhor entendimento. A elaboração destes diagramas concluiu a fase de Análise de Requisitos da modelagem UWE. 8 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 FIGURA 4 – Descrição dos Casos de Uso Principais. A fase de Projeto Conceitual ocorreu durante a elaboração do Diagrama Conceitual (FIGURA 5), que foi desenvolvido, buscando identificar os principais dados envolvidos na aplicação, ou seja, suas classes, as associações entre elas e seus atributos, representando a lógica de negócio da aplicação. Os principais conceitos identificados inicialmente foram Usuário, Autor, e o conceito central do sistema, Publicação (que pode ser ParteDeMonografia, Dissertação, ArtigoDePeriódico, MeioEletrônico ou RFC). Usuário teria os atributos login e senha; Autor teria o nome; e Publicação teria os atributos genéricos próprios de todos os tipos: título, tipo, data, local, editora, edição, quantidadeDePaginas e intervaloDePaginas (e os tipos de Publicações teriam os atributos específicos do seu tipo). FIGURA 5 – Diagrama Conceitual: Usuário, Autor e Publicação (com seus respectivos tipos). 9 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 A fase de Projeto de Apresentação desta modelagem ocorreu durante a elaboração do Modelo de Interface (FIGURA 6), que foi desenvolvido para representar um protótipo de interface gráfica, incluindo uma Página do Pesquisador, uma Página de Login, e uma Página de Edição, utilizado para ilustração e melhor entendimento das expectativas do cliente. Comparado ao esboço inicial de telas apresentado pelo cliente na primeira iteração do projeto (ver FIGURA 1), percebe-se que este Modelo constitui um refinamento da ideia de interface. FIGURA 6 – Modelo de Interface: Página do Pesquisador, Página de Login, Página de Edição. A fase de Projeto Navegacional desta modelagem ocorreu durante a elaboração do Modelo de Estrutura Navegacional foi desenvolvido como um diagrama de classes que mostra os objetos com os quais o usuário poderá interagir durante a navegação. Este modelo é composto por Nós (classes navegacionais), Elos (relacionamentos navegacionais) e Estruturas de Acesso (índices). Todos os modelos elaborados foram apresentados para validação com o cliente rigorosamente dentro do prazo estabelecido no cronograma. O feedback de avaliação dado pelo cliente indicou que a modelagem ficou 95% correta, faltando apenas explicitar qual era a funcionalidade diferenciada (que era a importação/exportação, como o próprio cliente deduziu). Destaca-se que o Modelo de Interface foi considerado “ótimo!” na avaliação do cliente. A terceira iteração do projeto incremental foi desenvolvida nas duas últimas semanas do curso, constituindo uma fase posterior à modelagem propriamente dita. Consistiu na investigação, avaliação e escolha das tecnologias que poderiam ser utilizadas para desenvolver a aplicação web e a elaboração de um breve tutorial sobre como utilizá-las no projeto. A tecnologia escolhida foi o framework MVC (Model-View-Controller) baseado em Java JSF (Java Server Faces) (devido ao conhecimento prévio de JSF), com a Biblioteca de Componentes PrimeFaces 4.0, que despertou interesse por ser suportada (nativa) pelo recémlançado Ambiente de Desenvolvimento NetBeans 8 IDE, gratuito e de código aberto. As demais escolhas tecnológicas foram motivadas pela praticidade de seu suporte nativo na IDE, sem a necessidade de instalação, somente do ambiente. O Banco de Dados utilizado foi o Apache Derby 10.8.3.0, que vem com o Ambiente. O Servidor de Aplicação Web foi o GlassFish 4.0, 10 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 que já vem com uma instância pronta no NetBeans 8. A API de Persistência JPA 2.5.1 também é suportada e foi escolhida por praticidade, tudo sobre Plataforma Java EE 7.0. O início da pesquisa sobre as tecnologias escolhidas demonstrou a simplicidade da criação de CRUD (Create, Read, Update, Delete) a partir de uma tabela do banco de dados (NETBEANS, 2013). O processo envolve apenas três passos: (1) criação das tabelas no banco de dados baseados no Diagrama Conceitual da FIGURA 5; (2) geração automática pelo NetBeans 8 das classes de entidades a partir das tabelas do banco de dados criadas; (3) geração automática pelo NetBeans 8 das páginas do CRUD a partir das classes de entidades. Os passos seguintes envolveram, após a criação das tabelas no banco de dados, a criação dos respectivos campos (atributos), em que foi adotada a opção de Publicação ser uma única tabela com todos os dados da hierarquia no modelo físico. Além disso, Autor e Usuário puderam ser criados como uma tabela única, pois sua relação é 1-para-1. Entre Autor e Publicação, há uma relação N-para-N, sendo criada uma tabela auxiliar (FIGURA 7). FIGURA 7 – Tabelas no Banco de Dados: Autor, Autor-Publicações, e Publicações. A criação do projeto da aplicação utilizou o servidor GlassFish 4, e a geração das classes de entidades exigiu apenas a seleção das tabelas criadas no passo anterior. Todas as classes de entidades foram automaticamente criadas já com todas as annotations do JPA prontas, associando as entidades às tabelas e os atributos às colunas. E para o relacionamento entre Publicações e Autores, já foi criada uma List dentro de Publicações (FIGURA 8a). Pode-se dizer que, neste ponto, já está criado o básico da camada de Model do MVC. Como foi mencionado, a geração das páginas a partir das entidades foi feita de modo muito simples com PrimeFaces. No mesmo passo, foram criadas automaticamente outras classes Java (Facades, Converters e Controllers) que implementam CRUD respeitando a arquitetura MVC. Pode-se dizer que o básico da camada Controller do MVC foi criado nesse passo 11 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 (FIGURA 8b). Validações e regras de negócio da aplicação podem ser definidas nessas classes. Além disso, páginas de listagem, criação, edição também foram criadas automaticamente. Pode-se dizer que o básico da camada de View do MVC foi criado nesse passo (FIGURA 8c). (a) (b) (c) FIGURA 8 – Camadas do MVC: (a) Model, (b) Controller e (c) View: criação automática de classes e páginas. A seguir, serão comentadas algumas telas e a interface que ilustra a web app. Ao rodar a aplicação, o servidor GlassFish faz o deploy, e o browser mostra a tela inicial da aplicação (FIGURA 9a). O link “Show All Publicacoes Items” acessa uma tabela pronta estilizada com Primefaces (FIGURA 9b). O botão “Create” acessa uma janela para inserir dados, já com validação e facilidade de preenchimento (FIGURA 9c). Ao clicar “Save”, os dados são persistidos, e a tabela é atualizada automaticamente. Ao selecionar uma publicação na tabela e clicar “View”, são mostrados os detalhes da publicação (FIGURA 9d). (a) (b) (c) (d) FIGURA 9 – Exemplos de telas da aplicação web: (a) Initial (b) All Publicacao (c) Create (d) View. Este início de desenvolvimento da aplicação web serviu para ilustrar algumas tecnologias que podem ser utilizadas para implementar a aplicação modelada usando UWE. Para atender a todos os requisitos solicitados pelo cliente, ainda seria necessário completar o desenvolvimento, incluindo regras de negócio, funcionalidade de exportação e importação de registros, exibição da associação entre autor e publicação, tela de login, filtros, navegação entre a tela de login e a lista de publicações, contemplando a segregação de perfis de usuários. Entretanto, percebeu-se que os componentes do Primefaces facilitariam muito essa expansão. 12 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 5. Conclusões Este artigo atingiu seu objetivo de descrever o processo de modelagem de um sistema web utilizando UWE. O sistema modelado foi o sugerido em uma disciplina de Engenharia de Software para Aplicações Web de um curso de Especialização em Engenharia de Software. Pode-se concluir que este trabalho forneceu o material técnico necessário para projetar um Sistema Web para Registro de Publicações Acadêmicas. O método de modelagem seguiu os passos incrementais da Engenharia Web baseada em UML (UWE), assumindo como ponto de partida as definições iniciais de requisitos da aplicação dadas pelo cliente (o professor da disciplina), e prosseguindo com a elaboração dos modelos da UWE: Lista de Requisitos, Diagrama de Casos de Uso, Descrição dos Casos de Uso Principais, Diagrama Conceitual, Modelo de Interface, e Diagrama de Navegação. O estudo de tecnologias para o efetivo desenvolvimento da aplicação web modelada levou à escolha do framework MVC, baseado em JSF, plataforma JavaEE, e do ambiente de desenvolvimento NetBeans 8, com suporte nativo à biblioteca de componentes PrimeFaces, ao banco de dados Apache Derby, ao servidor de aplicação GlassFish e à API de persistência JPA. A análise crítica do processo de realização da modelagem revela que a opção pela construção incremental baseada na abordagem UWE proporcionou uma melhor visão dos diferentes aspectos do sistema. A separação entre a parte conceitual, a navegacional e a estética facilitou a validação da modelagem junto ao cliente, e proporcionou produtividade na sua elaboração, pois o processo incremental pôde ser iniciado em paralelo pelo grupo. A escolha da tecnologia JSF com Primefaces, mais todo o suporte oferecido pelo ambiente NetBeans 8 permitiu concluir que parece ser uma excelente e rápida opção para quem deseja começar a desenvolver aplicações web e para quem já tem experiência e quer poupar o tempo aplicado aos passos repetitivos para criação de CRUD, pois este trabalho já é realizado automaticamente (o que parece ser pioneiro para um framework MVC amplamente utilizado), o que permite ao desenvolvedor focar-se no que realmente interessa para o cliente, que são as regras de negócio e detalhes de como a aplicação web deve funcionar. Desse modo, este trabalho tem sua relevância ao se mostrar como um caminho inicial para conhecer métodos de Engenharia Web, para pesquisadores da área de engenharia de software e de sistemas aplicados à Internet. Com estes conhecimentos, há o potencial de aprimorar seus sistemas, tornando-os mais fáceis de desenvolver e de manter, mais produtivos ao lidar com atualizações e mudanças mais complexas, muito frequentes em aplicações web. Espera-se que este estudo de caso contribua com o desenvolvimento deste campo do conhecimento, pela disseminação de exemplos a serem seguidos das boas práticas da Engenharia Web. 13 XXI SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO As Demandas de Infraestrutura Logística para o Crescimento Econômico Brasileiro Bauru, SP, Brasil, 10 a 12 de novembro de 2014 Referências ALGARVE, G.L. Técnicas de Engenharia de Software para Projetos de Aplicações Web. (Trabalho de Graduação. Ciência da Computação). Santa Maria: UFSM, 2008. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. The unified modeling language user guide. 2.ed. Rio: Elsevier, 2005. BRAMBILLA, M.; CERI, S.; FRATERNALI, P.; MANOLESCU, I. Process modeling in Web applications. ACM Transactions in Software Engineering Methodology. v.15, n.4, 2006, p.360-409. http://doi.acm.org/10.1145/1178625.1178627. CGI.BR; NIC.BR. Dimensões e características da Web Brasileira: um estudo do gov.br. 2010. http://www.cgi.br/publicacoes/pesquisas/govbr/cgibr-nicbr-censoweb-govbr-2010.pdf KAPPEL, G. Web Engineering: the discipline of systematic development of web applications. Heidelberg; 2003. KOCH, N., KRAUS, A. The expressive power of UWE. Proceedings of IWWOST’02, CYTED, pp.105-119, 2002. MURUGESAN, S. Web Engineering: introduction and perspectives. Sydney; 2005. NETBEANS. Video of PrimeFaces Development with NetBeans IDE. 2013. Disponível em: https://netbeans. org/kb/docs/javaee/maven-primefaces-screencast.html. Acesso em: 29 jun. 2014. PRESSMAN, R.S.; LOWE, D. Web Engineering: a practitioner's approach. McGraw Hill Higher Education, 2008. SOUZA, W.M. O papel do usuário no extreme programming. E-Revista Facitec, v.2, n.1, art.2, jul.2008. Disponível em: www.facitec.br/erevista. Acesso em: 8 abr.2010. VERGARA, S.C. Métodos de pesquisa em Administração. São Paulo: Atlas, 2005. WIVES, L.K. Engenharia de Software para Aplicações Web. Porto Alegre: PPGComputação/UFRGS, 2014. YIN, R.K. Estudo de Caso: Planejamento e Métodos. 3.ed. São Paulo: Bookman, 2005. 14