Rodolfo Costa do Prado - nemo.inf.ufes.br · Java EE 7 (DEMICHIEL; SHANNON, 2013), em especial seus...

87
Rodolfo Costa do Prado Aplicação do método FrameWeb no desenvolvimento de um sistema de informação utilizando o framework VRaptor 4 Vitória, ES 2015

Transcript of Rodolfo Costa do Prado - nemo.inf.ufes.br · Java EE 7 (DEMICHIEL; SHANNON, 2013), em especial seus...

  • Rodolfo Costa do Prado

    Aplicao do mtodo FrameWeb no

    desenvolvimento de um sistema de informao

    utilizando o framework VRaptor 4

    Vitria, ES

    2015

  • Rodolfo Costa do Prado

    Aplicao do mtodo FrameWeb no desenvolvimento de

    um sistema de informao utilizando o framework

    VRaptor 4

    Monografia apresentada ao Curso de Cinciada Computao do Departamento de Infor-mtica da Universidade Federal do EspritoSanto, como requisito parcial para obtenodo Grau de Bacharel em Cincia da Compu-tao.

    Universidade Federal do Esprito Santo UFES

    Centro Tecnolgico

    Departamento de Informtica

    Orientador: Prof. Dr. Vtor E. Silva Souza

    Coorientador: Beatriz Franco Martins Souza

    Vitria, ES

    2015

  • Rodolfo Costa do PradoAplicao do mtodo FrameWeb no desenvolvimento de um sistema de infor-

    mao utilizando o framework VRaptor 4/ Rodolfo Costa do Prado. Vitria, ES,2015-

    54 p. : il. (algumas color.) ; 30 cm.

    Orientador: Prof. Dr. Vtor E. Silva Souza

    Monografia (TCC) Universidade Federal do Esprito Santo UFESCentro TecnolgicoDepartamento de Informtica, 2015.

    1. Palavra-chave1. 2. Palavra-chave2. I. Souza, Vtor Estvo Silva. II.Universidade Federal do Esprito Santo. IV. Aplicao do mtodo FrameWebno desenvolvimento de um sistema de informao utilizando o framework VRaptor 4

    CDU 02:141:005.7

  • Rodolfo Costa do Prado

    Aplicao do mtodo FrameWeb no desenvolvimento deum sistema de informao utilizando o framework

    VRaptor 4

    Monografia apresentada ao Curso de Cinciada Computao do Departamento de Infor-mtica da Universidade Federal do EspritoSanto, como requisito parcial para obtenodo Grau de Bacharel em Cincia da Compu-tao.

    Trabalho aprovado. Vitria, ES, 25 de setembro de 2014:

    Prof. Dr. Vtor E. Silva SouzaOrientador

    ProfessorConvidado 1

    ProfessorConvidado 2

    Vitria, ES2015

  • Agradecimentos

    Agradeo minha me, por ter me amado e educado com carinho a minha vida

    toda. Ao meu pai pelos 10 anos de sacrifcio em uma terra estrangeira garantindo que

    nunca me faltasse nada.

    Ao meu irmo pelo exemplo de como devo buscar ser sempre uma pessoa melhor.

    Aos meus amigos pela descontrao mesmo nos piores momentos, e a meus professores

    pelo conhecimento adquirido nessa jornada.

    E principalmente ao amor da minha vida Ellen, por ser minha luz at nas horas

    mais escuras.

  • You get what anybody gets - you get a lifetime.

    ( Neil Gaiman, The Sandman)

  • Resumo

    Devido ascenso da Internet como um dos principais meios de comunicao, houve uma

    demanda por software de qualidade funcionando nesta plataforma. Porm esses programas

    se tornaram complexos demais para serem desenvolvidos no modo adhoc usado previamente.

    Assim, foi necessrio o uso de conceitos de Engenharia de Software no desenvolvimento de

    sistemas e aplicaes que funcionem na Web.

    Foi proposto ento o mtodo FrameWeb (Framework-based Design Method for Web En-

    gineering), que sugere a utilizao de uma srie de frameworks, juntamente com varias

    recomendaes, que agilizam as principais fases de desenvolvimento. Em sua proposta

    original foram utilizados apenas um framework de cada categoria, de modo que no

    possvel saber se o mtodo aplicvel quando uma coleo diferente de frameworks so

    usados.

    Para testar a eficacia do mtodo com diferentes frameworks foi desenvolvido uma WebApp

    um Sistema de Controle de Afastamentos de Professores, ou SCAP com um conjunto

    diferente de frameworks, baseados na plataforma Java EE 7. O objetivo deste trabalho

    reimplementar o SCAP testando o mtodo FrameWeb com o framework controlador

    frontal VRaptor 4 ao invs dos frameworks utilizados em experimentos anteriores com o

    mtodo.

    Palavras-chave: Engenharia Web. WebApp. FrameWeb. VRaptor. Java EE 7.

  • Lista de ilustraes

    Figura 1 Processo de desenvolvimento de software proposto por Conallen (2002) 18

    Figura 2 Diagrama representando a arquitetura MVC. . . . . . . . . . . . . . . 20

    Figura 3 Representao de um Controlador Frontal na Web (SOUZA, 2007). . . 21

    Figura 4 Funcionamento de um framework de Injeo de Dependncias (SOUZA,

    2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    Figura 5 Um processo de desenvolvimento de software simples sugerido por

    FrameWeb (SOUZA, 2007). . . . . . . . . . . . . . . . . . . . . . . . . 23

    Figura 6 Arquitetura padro para WIS baseada no padro arquitetnico Service

    Layer (FOWLER, 2002). . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    Figura 7 Diagrama de Casos de Uso do subsistema Ncleo. . . . . . . . . . . . . 28

    Figura 8 Diagrama de Casos de Uso do subsistema Secretaria. . . . . . . . . . . 29

    Figura 9 Diagrama de Classes do SCAP. . . . . . . . . . . . . . . . . . . . . . . 32

    Figura 10 projeto SCAP visto no Package Explorer do Eclipse IDE. . . . . . . . . 36

    Figura 11 Modelo de Domnio do SCAP. . . . . . . . . . . . . . . . . . . . . . . . 37

    Figura 12 Tipos enumerados do SCAP. . . . . . . . . . . . . . . . . . . . . . . . . 38

    Figura 13 Tipos enumerados do SCAP. . . . . . . . . . . . . . . . . . . . . . . . . 39

    Figura 14 Modelo de Navegao para o caso de uso Cadastrar Afastamento. . . . 40

    Figura 15 Modelo de Navegao para o caso de uso Consultar Afastamento. . . . 41

    Figura 16 Modelo de aplicao do subsistema Ncleo. . . . . . . . . . . . . . . . . 42

    Figura 17 Modelo de aplicao do subsistema Secretaria. . . . . . . . . . . . . . . 43

    Figura 18 Modelo de Persistncia do subsistema Ncleo. . . . . . . . . . . . . . . 44

    Figura 19 Modelo de Persistncia do subsistema Secretaria. . . . . . . . . . . . . 44

    Figura 20 Tela de login do SCAP. . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    Figura 21 Tela de login incorreto do SCAP. . . . . . . . . . . . . . . . . . . . . . 46

    Figura 22 Tela contendo a Lista de Afastamentos do SCAP. . . . . . . . . . . . . 47

    Figura 23 Tela que apresenta os dados de um Pedido de Afastamento no SCAP. . 47

    Figura 24 Formulrio de cadastro de afastamento no SCAP. . . . . . . . . . . . . 48

    Figura 25 modelo de navegao proposto para o caso de uso Consular Solicitao,

    com adio de um novo esteretipo ao FrameWeb. . . . . . . . . . . . . 52

  • Lista de tabelas

    Tabela 1 Atores do SCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    Tabela 2 Esteritipos utilizados nos modelos de navegao do SCAP. . . . . . . 40

  • Lista de abreviaturas e siglas

    UML Unified Modeling Language

    SCAP Sistema de Controle de Afastamento e Professores

  • Sumrio

    1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    1.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    1.3 Organizao da Monografia . . . . . . . . . . . . . . . . . . . . . . . . 14

    2 FRAMEWEB, FRAMEWORKS E A ENGENHARIA WEB . . . . . 15

    2.1 Engenharia Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.2 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.2.1 Frameworks MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2.2.2 Frameworks de Mapeamento Objeto/Relacional . . . . . . . . . . . . . . . 20

    2.2.3 Frameworks de Injeo de Dependncia . . . . . . . . . . . . . . . . . . . 22

    2.3 O Mtodo FrameWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.3.1 Arquitetura de software do FrameWeb . . . . . . . . . . . . . . . . . . . . 23

    2.3.2 Linguagem de modelagem de FrameWeb . . . . . . . . . . . . . . . . . . . 24

    3 ESPECIFICAO DE REQUISITOS E ANLISE DO SCAP . . . . 26

    3.1 Descrio do Escopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3.2 Modelo de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.3 Anlise do SCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    3.3.1 Modelagem de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.3.2 Restries de Integridade . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    4 PROJETO E IMPLEMENTAO . . . . . . . . . . . . . . . . . . . 33

    4.1 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.1.1 Tecnologia Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.2 Frameworks Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.2.1 VRaptor 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.2.2 CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.2.3 Hibernate + JPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.2.4 Pacotes do SCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.3 Modelo de Domnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.4 Modelo de Navegao . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    4.5 Modelo de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    4.6 Modelo de Persistncia . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.7 Implementao do SCAP . . . . . . . . . . . . . . . . . . . . . . . . . 45

  • 5 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.1 VRaptor e o FrameWeb . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

  • 12

    1 Introduo

    Com a rpida ascenso da Internet como um dos principais meios de comunicao

    existente, atravs de servios como a World Wide Web (Web), criou-se uma nova dimenso

    na utilizao do computador, o que fez surgir a demanda por softwares de alta qualidade

    para suprir requisitos como segurana, velocidade, compatibilidade, usabilidade etc.

    A fim de atender tal necessidade, houve um aumento na complexidade dos softwares

    criados para Internet, eis que o modo adhoc de desenvolvimento antes utilizado, no seria

    mais suficiente. Passou-se, ento, a empregar conceitos de Engenharia de Software e

    ferramentas para auxiliar no desenvolvimento de sistemas e aplicaes que funcionem

    na Web (WebApps - Web Applications). Nesse contexto foi criada a Engenharia Web

    (PRESSMAN, 2011).

    Recentemente, foi proposto o mtodo FrameWeb (Framework-based Desing Method

    for Web Engineering) (SOUZA, 2007), em que sugerida a utilizao de uma srie de

    frameworks para agilizar o desenvolvimento de uma WebApp, juntamente com varias reco-

    mendaes para aumentar a agilidade nas principais fases de desenvolvimento (requisitos,

    anlise, projeto e outras).

    O mtodo apresenta, ento, um perfil UML (extenso da linguagem UML) com

    quatro tipos de modelos para a fase de projeto. Tais modelos representam conceitos

    utilizados por algumas categorias de frameworks, facilitando, dessa forma, a comunicao

    entre as equipes de projetistas e a de programadores durante o desenvolvimento da

    aplicao.

    O FrameWeb originalmente considera algumas categorias de frameworks, dentro das

    quais existem vrias opes a serem usadas na implementao de uma WebApp. Em sua

    proposta original, foram feitos experimentos com apenas um framework de cada categoria,

    de modo que no possvel saber se o mtodo adequado a um conjunto diferente de

    frameworks dentro das mesmas categorias. Em seu trabalho de concluso de curso,

    Duarte (2014) desenvolveu uma WebApp um Sistema de Controle de Afasta-

    mentos de Professores, ou SCAP com o mtodo FrameWeb, utilizando um conjunto

    diferente de frameworks, baseado na plataforma Java EE 7 (DEMICHIEL; SHANNON,

    2013). O trabalho serve de base para uma anlise do mtodo com vistas a uma futura

    adequao a uma gama maior de frameworks.

    O objetivo deste trabalho , a partir dos requisitos levantados em (DUARTE, 2014),

    realizar uma nova implementao do SCAP aplicando o FrameWeb, porm utilizando o

    framework VRaptor 4 (CAVALCANTI, 2014) ao invs das tecnologias padro do Java EE

  • Captulo 1. Introduo 13

    para controlador frontal (a saber, o JSF), propondo melhorias e modificaes nos modelos,

    caso seja necessrio, para se adequar aos novos frameworks utilizados.

    1.1 Objetivos

    O objetivo deste trabalho aplicar o mtodo FrameWeb (SOUZA, 2007) em uma

    nova implementao do SCAP (Sistema de Controle de Afastamentos de Professores), a

    partir dos requisitos levantados em (DUARTE, 2014), complementando o que foi feito e

    demostrando quais evolues podem ser feitas ao FrameWeb.

    Na primeira implementao do SCAP foram utilizados os frameworks da plataforma

    Java EE 7 (DEMICHIEL; SHANNON, 2013), em especial seus componentes, CDI , JSF e

    Facelets, ao invs dos frameworks propostos originalmente pelo FrameWeb, respectivamente:

    Spring, Struts2 e Sitemesh.

    Nesta segunda implementao foi utilizado o framework MVC VRaptor 4 (CAVAL-

    CANTI, 2014) para controlador frontal. Assim foi feita uma comparao de como o mesmo

    se encaixa ao FrameWeb em relao aos frameworks utilizados no desenvolvimento da

    primeira verso do SCAP, propondo melhorias e modificaes nos modelos do FrameWeb,

    quando necessrio.

    No desenvolvimento deste projeto, foram exercitados conhecimentos aprendidos ao

    longo do curso de Cincia da Computao, em especial das disciplinas de Engenharia de

    Software, Engenharia de Requisitos, Projeto de Sistemas de Software, Programao III e

    Banco de Dados.

    1.2 Metodologia

    O trabalho descrito neste documento foi dividido nas seguintes atividades:

    Pesquisa: o mtodo FrameWeb e os diversos frameworks nos quais ele foi inicialmente

    testado foram estudados, bem como a plataforma Java EE 7 e o desenvolvimento de

    WebApps na mesma;

    Anlise do Problema Proposto: foi revisada a anlise feita por Duarte (2014) do

    SCAP, mantendo os Professores e Secretrios do Departamento de Informtica

    da UFES como stakeholders, porm realizando pequenas mudanas nos requisitos

    levantados previamente;

    Projeto: a partir dos resultados obtidos no item acima, foi desenvolvido um novo

    projeto do sistema SCAP, utilizando a metodologia e os modelos de projeto propostos

    por FrameWeb;

  • Captulo 1. Introduo 14

    Codificao: seguindo a arquitetura de desenvolvimento proposta pelo mtodo, foi

    implementada a aplicao SCAP utilizando o framework VRaptor;

    Finalizao: a finalizao do projeto contou com os testes finais do sistema Web alm

    dos pequenos ajustes ou melhorias realizadas para adequao ao FrameWeb;

    Apresentao do Projeto: apresentao final, na qual o projeto e a ferramenta foram

    entregues e demonstrados.

    1.3 Organizao da Monografia

    Essa monografia dividida em 5 captulos incluindo a introduo.

    No capitulo 2 realiza-se um levantamento dos principais temas abordados ao longo

    deste trabalho que so: FrameWeb, frameworks e a Engenharia Web.

    No capitulo 3 feita a especificao e anlise dos requisitos do SCAP (Sistema de

    Controle de Afastamento de Professores) sistema Web que foi desenvolvido utilizando o

    FrameWeb.

    No capitulo 4 apresenta-se o resultado da aplicao do FrameWeb no projeto,

    podem ser vistos os modelos propostos e a implementao dos mesmos com as tecnologias

    utilizadas.

    No capitulo 5 tem-se as concluses retiradas deste trabalho juntamente com as

    melhorias propostas para o mtodo FrameWeb.

  • 15

    2 FrameWeb, Frameworks e a Engenharia

    Web

    Em seu inicio a Web era muito diferente do que vemos hoje, em um perodo de

    20 a 15 anos ela passou de um conjunto de pginas estticas desenvolvidas de maneira

    adhoc para ser a principal plataforma de comunicao que j desenvolvemos. Isso se deve

    a um ciclo curioso que pode ser observado, quanto mais usurios existem na Web, maior

    o numero de funcionalidades so criadas para a mesma, e como existe mais utilidade na

    Web, cresce o numero de usurios.

    O que vemos hoje que a Internet parte essencial em nossas vidas, ela usada como

    entretenimento, trabalho e plataforma para prestao de servios. Para que toda essa gama

    de atividades fossem transferidas para a Web, foi necessria a mudana de um conjunto

    pginas estticas para verdadeiros sistemas complexos desenvolvidos especialmente para

    esta plataforma.

    Tornou-se essencial a aplicao de conceitos existentes na Engenharia de Software,

    adaptados para essa nova plataforma, no desenvolvimento das aplicaes Web. Caractersti-

    cas do ambiente Web, como concorrncia, carga imprevisvel, disponibilidade, sensibilidade

    ao contedo, evoluo dinmica, imediatismo, segurana e esttica (PRESSMAN, 2011)

    deram origem a uma nova sub-rea da Engenharia de Software, a Engenharia Web.

    Existem pginas atualmente na Internet que so verdadeiros sistemas de informao

    dentro da Web como, por exemplo, servios do governo, sites de compras virtuais, ambientes

    corporativos, entre outros. Chamaremos aqui tais sistemas de WIS (Web-based Information

    Systems) e ao conjunto amplo de todas as aplicaes Web como WebApps (abreviao de

    Web Applications).

    Surgem ento frameworks que vieram para facilitar e agilizar no produo das

    WebApps, fornecendo uma estrutura mais slida para desenvolvimento. Com o passar

    do tempo a utilizao desses frameworks se tornou o padro na prtica, devido tanto

    agilidade que eles fornecem ao processo de criao quanto garantia de qualidade, dada

    sua larga escala de utilizao.

    Neste capitulo veremos a adaptao da Engenharia de Software para satisfazer

    os WIS, alguns tipo de frameworks e a descrio de um mtodo baseado nos mesmos, o

    FrameWeb.

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 16

    2.1 Engenharia Web

    A Engenharia Web (Web Engineering - WebE), a Engenharia de Software aplicada

    ao desenvolvimento Web (PRESSMAN, 2011). A WebE prope abordagens disciplinadas

    e sistemticas para o desenvolvimento, a implantao e a manuteno de sistemas e

    aplicaes baseados na Web (MURUGESAN et al., 2001).

    De acordo com Pandolfi e Melotti (2006), os WebApps, diferentemente dos tipos con-

    vencionais de software, so geralmente provedores de informaes a serem consumidas por

    um grande numero de pessoas, por isso existe uma nfase na apresentao, comportamento,

    aparncia, navegao e outras qualidades estticas.

    Como os WebApps foram ficando mais robustos e complexos, o desenvolvimento dos

    mesmos tambm cresceu em dificuldade. Problemas que eram vistos no desenvolvimento

    de aplicaes Desktop passaram a aparecer na criao dos WebApps. Dificuldades como:

    inexperincia e formao inadequada dos desenvolvedores, falta (de uso) de mtricas para

    estimativas, falta (de uso) de modelos de processo, mtodos inadequados e obsoletos,

    planejamento incorreto, prazos e custos excedidos, falta de documentao, dificuldades de

    implementao e manuteno, WebApps mal definidas e projetadas, layout inadequado

    (comunicao visual), mudana contnua dos requisitos, da tecnologia e da arquitetura,

    falta de rigor no processo de desenvolvimento, dentre outros (PERUCH, 2007).

    Existe ento um conjunto de atributos de qualidade a serem considerados neste

    caso (OLSINA et al., 2001):

    Usabilidade: trata-se de um requisito de qualidade como tambm um objetivo

    de aplicaes Web: permitir a acessibilidade do sistema. Logo, o site deve ter

    uma inteligibilidade global, permitir o feedback e ajuda online, planejamento da

    interface/aspectos estticos e aspectos especiais (acessibilidade por deficientes);

    Funcionalidade: o software Web deve ter capacidade de busca e recuperao de

    informaes/links/funes, aspectos navegacionais e relacionados ao domnio da

    aplicao;

    Eficincia: o tempo de resposta deve ser inferior a 10s (velocidade na gerao de

    pginas/grficos);

    Confiabilidade: relativa correo no processamento de links, recuperao de erros,

    validao e recuperao de entradas do usurio;

    Manutenibilidade: existe uma rpida evoluo tecnolgica aliada necessidade

    de atualizao constante do contedo e das informaes disponibilizadas na Web,

    logo o software Web deve ser fcil de corrigir, adaptar e estender.

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 17

    Como a WebE visa aplicar mtodos disciplinados existentes na Engenharia de

    Software, adaptados para criao de aplicaes Web, algum processo deve ser seguido a

    fim de garantir esses atributos.

    Devido a complexidade de se projetar e implementar um software com vrios

    requisitos e muitos stakeholders, como o caso dos WebApps, interessante pensar-se

    em metodologias que usam uma abordagem incremental e iterativa. Um processo de

    desenvolvimento segundo esse modelo divide a concepo de software em iteraes. Em

    cada iterao so realizadas as atividades de anlise, projeto, implementao e testes para

    uma parte do sistema.

    O modelo de processo da WebE inicia-se pela analise de requisitos, onde levantado

    tudo aquilo considerado necessrio para a entrega da aplicao. A anlise de requisitos

    contm atividades de formulao do problema a ser resolvido pela WebApp. A coleta

    de requisitos, onde so coletadas todas as informaes possveis sobre as funes que o

    sistema deve executar (requisitos funcionais) e as restries sob as quais ele deve operar

    (requisitos no funcionais). E por fim a modelagem de anlise.

    Na criao do Modelo de Anlise so focados quatro tipos de anlise: a de contedo,

    que identifica como deve ser apresentado o contedo do site ou da aplicao, a de interao,

    que verifica como ser a interao dos usuarios com a WebApp, a funcional que identifica

    como o contedo afetado ou criado pela WebApp e a de configurao, que descreve o

    ambiente e a infraestrutura nos quais a WebApp reside (PRESSMAN, 2011).

    Guiado pelos resultados da modelagem de anlise, o projeto da WebApp enfoca seis

    tpicos principais: projeto de interface, projeto de esttica, projeto de contedo, projeto

    de navegao, projeto arquitetural e projeto de componentes. Existem alguns mtodos que

    podem ser aplicados no desenvolvimento de aplicaes Web, como WAE (CONALLEN,

    2002), OOWS (PASTOR; FONS; PELECHANO, 2003) e OOHDM (SCHWABE; ROSSI,

    1998).

    Na fase de implementao feita a traduo dos modelos criados para um software

    de fato, deve ser escolhida uma linguagem que se adeque aos requisitos do projeto.

    Como exemplo dessa abordagem temos a metodologia proposta por Conallen (2002),

    que descreve um processo de desenvolvimento de software iterativo, incremental e centrado

    em casos de uso. As atividades do processo so mostradas na Figura 1.

    O sub-processo Reiterar inicia com a reviso e refinamento do plano da iterao.

    A seguir, as seguintes atividades so executadas em paralelo: levantamento de requisitos,

    anlise, projeto da arquitetura, projeto detalhado, implementao, testes, gerncia de

    alteraes, desenvolvimento do ambiente e desenvolvimento do projeto. Finalizada a

    iterao, o progresso alcanado at o momento apresentado s partes interessadas

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 18

    Figura 1 Processo de desenvolvimento de software proposto por Conallen (2002)

    (stakeholders) e a iterao atual avaliada, ajustando o plano da prxima iterao, se

    necessrio.

    2.2 Frameworks

    Os WIS, e a maioria dos WebApps, possuem uma infraestrutura muito similar.

    Por isso a partir do momento em que os primeiros projetos na rea foram implementados,

    desenvolveu-se vrios frameworks que generalizavam essa infraestrutura e poderiam ser

    utilizados para o desenvolvimento de novas aplicaes.

    Nesse contexto um framework pode ser visto como uma aplicao reutilizvel e

    semicompleta que pode ser especializada para produzir aplicaes personalizadas (HUSTED;

    DUMOULIN, 2004). Isso significa que o cdigo do framework pode ser usado em conjuno

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 19

    com o cdigo especifico do projeto a ser implementado. Assim esses frameworks permitem

    que sistemas Web de grande porte sejam construdos com arquiteturas de mltiplas

    camadas sem muito esforo de codificao.

    Pode-se tomar como exemplo um requisito que a maioria das WIS possui, que a

    autenticao dos usurios do sistema. Como em quase todos os casos a autenticao feita

    a partir de um login, que consiste em um nome de usurio e senha, no h necessidade de

    uma interao especifica entre o resto do sistema e o componente de autenticao.

    Souza (2007), organiza a maioria dos frameworks de WebApps em seis categorias

    diferentes:

    Frameworks MVC (Controladores Frontais);

    Frameworks Decoradores;

    Frameworks de Mapeamento Objeto/Relacional;

    Frameworks de Injeo de Dependncia (Inverso de Controle);

    Frameworks para Programao Orientada a Aspectos (AOP);

    Frameworks para Autenticao e Autorizao.

    Nas prximas subsees explicamos melhor os frameworks MVC, de Mapeamento

    Objeto/Relacional e de de Injeo de Dependncia. que so os principais frameworks

    usados no projeto do SCAP.

    2.2.1 Frameworks MVC

    MVC a abreviatura de Modelo-Viso-Controlador (Model-View-Controller), uma

    arquitetura de software desenvolvida pelo Centro de Pesquisas da Xerox de Palo Alto

    (Xerox PARC) para a linguagem Smalltalk em 1979 (REENSKAUG, 1979) (SOUZA,

    2007).

    Afim de manter a manutenibilidade, WebApps mais complexos precisaram realizar

    uma separao entre os dados (Model) e o layout (View). Assim, mudanas realizadas no

    layout das pginas no afetam a manipulao de dados, e estes podero ser reorganizados

    sem alterar o layout. O MVC resolve este problema atravs da separao das tarefas de

    acesso aos dados e lgica de negcio, lgica de apresentao e de interao com o utilizador,

    introduzindo um componente entre os dois: o controlador (Controller).

    A Figura 2 exemplifica a relao entre Model, View, Controller e Usuarios. Onde

    as linhas slidas indicam associao direta e as tracejadas associao indireta.

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 20

    Figura 2 Diagrama representando a arquitetura MVC.

    Os elementos da View (Viso) fazem uma representao das informaes do Model

    (Modelo) para os usuarios, a partir das quais os mesmos podem interagir com a aplicao.

    Essa interao tratada pelo Controller (Controle) que pode alterar o status dos elementos

    do Model. Este que pode notificar a View tais alteraes, fazendo com que esta ltima

    possa atualizar a informao apresentada ao usurio.

    Porm, na plataforma Web a arquitetura MVC precisa ser levemente adaptada,

    visto que o Model, situado no servidor Web, no pode notificar a View sobre alteraes, j

    que esta encontra-se no navegador do lado do cliente e a comunicao sempre iniciada

    pelo cliente. Portanto o nome correto para esse padro arquitetnico, quando aplicado

    Web, seria Controlador Frontal (Front Controller) (ALUR; CRUPI; MALKS, 2003,

    p. 166) (SOUZA, 2007).

    A Figura 3 representa o funcionamento de um Controlador Frontal na Web.

    Vemos que o navegador apresenta as pginas para o cliente que faz uma requisio

    ao servidor, este que a delega para o Controlador Frontal que, ao interagir com as classes

    da aplicao, executa a ao para, em seguida, delegar o resultado para a tecnologia

    de viso. Os frameworks MVC fornecem um controlador frontal a ser configurado pelo

    desenvolvedor para que se adapte ao seu projeto.

    2.2.2 Frameworks de Mapeamento Objeto/Relacional

    Quase todos os sistemas de informao necessitam de alguma forma de persistncia

    de dados. O padro da industria atual o uso do Sistemas de Bancos de Dados Relacionais

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 21

    Figura 3 Representao de um Controlador Frontal na Web (SOUZA, 2007).

    (SGBDR), porm a grande maioria das aplicaes so desenvolvidas no paradigma orientado

    a objetos (OO). Temos ento um incompatibilidade de paradigmas (paradigm mismatch)

    (SOUZA, 2007).

    Isso se d porque operaes de SQL [linguagem estruturada de consultas para

    SGBDRs] como projeo sempre unem resultados em uma representao em tabelas de

    dados resultantes. Isso bem diferente do grafo de objetos interconectados usados para

    executar uma lgica de negcio em um aplicativo Java! (BAUER; KING, 2005).

    Para solucionar esse problema surgiu na dcada de 80 o Mapeamento Objeto/Re-

    lacional (Object/Relational Mapping ORM), que consiste na persistncia automtica

    (e transparente) de objetos de um aplicativo OO para tabelas de um banco de dados

    relacional, utilizando meta-dados que descrevem o mapeamento entre o mundo dos objetos

    e o mundo relacional (BAUER; KING, 2005).

    Basicamente o desenvolvedor apenas informa ao framework de Mapeamento Obje-

    to/Relacional como transformar os seus objetos em tabelas que sero usadas no banco de

    dados relacional. Isso livra o desenvolvedor do trabalho de realizar o mapeamento manual-

    mente, o que toma muito tempo e, se realizando incorretamente, pode gerar inconsistncias

    no banco do dados da aplicao.

    Na implementao do SCAP foi usado o plugin do Hibernate juntamente com Java

    Persistence API (ou simplesmente JPA), que uma API padro da plataforma Java EE

    que descreve uma interface comum para frameworks de persistncia de dados.

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 22

    2.2.3 Frameworks de Injeo de Dependncia

    Na arquitetura em camadas busca-se garantir o reuso dos pacotes, e para que isso

    seja possvel necessrio que os pacotes possuam um nvel baixo de acoplamento, por

    exemplo: classes relacionadas ao domnio do problema no devem ser capazes de interagir

    somente com um tipo de persistncia dos dados, e vice versa.

    Assim as classes de camadas diferentes precisam interagir umas com as outras, sem

    precisar saber as dependncias especficas das outras camadas. Assim temos o conceito

    de Injeo de Dependncia (DI - Dependency Injection) (FOWLER, 2002), em que a

    responsabilidade de configurar dependncias entre classes assumida por um terceiro objeto.

    Desta forma as dependncias entre os mdulos no so definidas pelo programadores, elas

    so injetadas por um framework de injeo de dependncias, mantendo um acoplamento

    baixo entre os mdulos da aplicao. A Figura 4 representa o funcionamento de um

    framework de Injeo de Dependncia.

    Figura 4 Funcionamento de um framework de Injeo de Dependncias (SOUZA, 2007).

    2.3 O Mtodo FrameWeb

    FrameWeb (SOUZA, 2007) um mtodo, baseado em frameworks, para o desen-

    volvimento de sistemas de informao Web (Web Information Systems WISs). Mesmo

    com o uso em larga escala dos frameworks no desenvolvimento dos aplicativos, no havia

    nada que abordasse diretamente aspectos caractersticos dos frameworks na Engenharia

    Web. O mtodo FrameWeb foi criado para tratar exatamente dessa questo, assumindo

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 23

    que algumas categorias de frameworks sero utilizados no processo de implementao de

    uma aplicao.

    O FrameWeb concentra-se na fase de projeto. No entanto, espera-se que um processo

    de desenvolvimento completo seja conduzido de modo a produzir um produto final de

    qualidade. A Figura 5 ilustra o processo de desenvolvimento seguido durante a construo

    deste trabalho.

    Figura 5 Um processo de desenvolvimento de software simples sugerido por FrameWeb(SOUZA, 2007).

    A fase de Projeto concentra as propostas principais do mtodo: (i) definio de

    uma arquitetura padro que divide o sistema em camadas, de modo a se integrar bem com

    os frameworks utilizados; (ii) proposta de um conjunto de modelos de projeto que trazem

    conceitos utilizados pelos frameworks para esta fase do processo por meio da criao de

    um perfil UML que faz com que os diagramas fiquem mais prximos da implementao

    (SOUZA, 2007).

    A fase de implementao bastante agilizada devido ao uso dos frameworks e

    tambm pela fidelidade que existe entre os modelos da fase de projeto com oque ser

    implementado.

    2.3.1 Arquitetura de software do FrameWeb

    Na Figura 6 vemos a arquitetura lgica padro para WISs que utilizada no

    FrameWeb. O sistema dividido em trs camadas: lgica de apresentao, lgica de

    negcio e lgica de acesso a dados. Essas que sero subdividas nos pacotes: Viso, Controle,

    Aplicao, Domnio e Persistncia.

    A primeira camada, Lgica de Apresentao, lida com a interao entre o usurio

    e o sistema. Nela so apresentadas as informaes das classes de domnio, onde o cliente

    faz as suas requisies ao sistema. Esta camada contm os pacotes de Viso e Controle.

    No pacote de Viso esto as pginas Web, imagens, scripts que executam ao lado

    do cliente e qualquer arquivo que esteja relacionado exclusivamente com a apresentao de

    informao ao usurio. O segundo pacote da camada o de Controle, que contm as classes

    de controle juntamente com os arquivos do framework Controlador Frontal. Este possui

    uma relao de mtua dependncia com o pacote de Viso, pois o pacote de Viso recebe

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 24

    Figura 6 Arquitetura padro para WIS baseada no padro arquitetnico ServiceLayer (FOWLER, 2002).

    os estmulos que acionam as classes do pacote Controle, que ao receber tais estmulos

    apresenta as informaes das classes do domnio a serem apresentadas ao cliente.

    A Lgica de Negcio a camada que contm os pacotes de Domnio e de Aplicao.

    No primeiro encontram-se as classes que representam os conceitos relacionadas ao domnio

    do problema, essas classes so implementadas seguindo o diagrama de classes de domnio

    que foi criado na fase de anlise. J no pacote de Aplicao ficam implementadas as classes

    que realizam os casos de usos levantados previamente, para isso ele precisa manipular

    objetos do domnio, assim existe uma relao de dependncia entre o pacote de Aplicao

    e o pacote de Domnio.

    Como o pacote de Aplicao executa de fato os casos de uso, ele possui uma

    dependncia do pacote de Persistncia da camada de Lgica de Acesso a Dados.

    Na terceira camada, a Lgica de Acesso a Dados, fica o pacote de Persistncia,

    que consiste em classes que gravam os atributos das classes que precisam ser persistidas

    pelo sistema. O frameWeb espera a utilizao de algum framework para a realizao do

    mapeamento Objeto/Relacional, juntamente com o uso do padro de projeto Data Access

    Object (DAO) (ALUR; CRUPI; MALKS, 2003, p. 462). Padro tal que separa a tecnologia

    de persistncia de dados da Lgica de Negcio, criando uma camada de abstrao, tornando

    a aplicao independente do framework ORM.

    2.3.2 Linguagem de modelagem de FrameWeb

    Seguindo a mesma abordagem de linguagens de modelagem, como WAE (CO-

    NALLEN, 2002) e UWE (KOCH et al., 2000), FrameWeb define extenses leves para o

    meta-modelo da UML a fim de representar componentes tpicos da Web e os componentes

  • Captulo 2. FrameWeb, Frameworks e a Engenharia Web 25

    relacionados aos frameworks, criando uma linguagem de modelagem, baseada em UML,

    com a qual so criados diagramas de quatro tipos diferentes, cujo propsito guiar a

    implementao das camadas explicadas na seo anterior (SOUZA, 2007).

    Modelo de Domnio: desenvolvido a partir do diagrama de classes criado na

    fase de anlise, onde so especificados os tipos de dados usados e o mapeamento das

    classes de domnio que sero persistidas.

    Modelo de Persistncia: guia a implementao das classes DAO do sistema,

    mostrando todas as interfaces e suas implementaes juntamente com os mtodos

    especficos de cada uma.

    Modelo de Navegao: um diagrama de classes que representa as interaes

    das pginas Web, formulrios e classes de ao do Front Controller. Basicamente

    demostra o funcionamento da camada de Lgica de Apresentao.

    Modelo de Aplicao: representa as classes de Servio do sistema, usado para

    guiar a implementao das mesmas e demostrar suas dependncias de classes de

    outros pacotes.

    Todos esses modelos foram utilizados no projeto do SCAP. Assim, nos captulos

    seguintes, exemplos prticos de como aplic-los no desenvolvimento de um WIS facilitaro

    o entendimento do mtodo. Foram usado frameworks da plataforma Java EE 7 juntamente

    com o controlador frontal VRaptor 4, diferente dos que foram usados na proposta inicial

    do FrameWeb.

  • 26

    3 Especificao de Requisitos e anlise do

    SCAP

    A Especificao de Requisitos a primeira fase do processo de software, visto

    que nela so especificadas as necessidades que o software deve suprir. realizada pelos

    desenvolvedores juntamente com os clientes, onde os mesmos explicam ao desenvolvedores

    o processo que deve ser realizado pela aplicao.

    Os requisitos so divididos em 3 categorias: Requisitos Funcionais, Requisitos No

    Funcionais e Regras de Negcio. Requisitos Funcionais so funcionalidades que o software

    deve ser capaz de realizar afim de atender s necessidades do cliente, por exemplo: cadastrar

    uma pessoa, listar documentos salvos pelo sistema, etc.

    Requisitos no funcionais so relacionados ao uso da aplicao em termos de

    desempenho, usabilidade, confiabilidade, segurana, disponibilidade, manutenibilidade e

    tecnologias envolvidas. A maioria dos requisitos no funcionais no depende do cliente e

    devem existir em qualquer software desenvolvido.

    Regras de Negcio so particulares para cada cliente, pois definem restries e

    requerimentos do negcio que so realizados pelo prprio cliente. Assim elas podem variar

    entre diversos assuntos, como, por exemplo: obrigaes contratuais, decises estratgicas,

    leis e regulamentaes entre outros.

    neste capitulo feita uma descrio de escopo do SCAP (Sistema de Controle

    de Afastamentos de Professores), depois tem-se os modelos de casos de uso que foram

    observados a partir dos requisitos previamente levantados (DUARTE, 2014), juntamente

    com alguns requisitos que foram observados posteriormente. A documentao completa

    dos requisitos do SCAP encontra-se nos apndices deste trabalho.

    3.1 Descrio do Escopo

    No departamento de informtica (DI) da UFES os pedidos de afastamento so

    solicitados para eventos no Brasil ou no exterior. Tais solicitaes so avaliadas por

    professores do DI e, em alguns casos, tambm pela diretoria do Centro Tecnolgico (CT)

    juntamente com a Pr-reitoria de Pesquisa e Ps-Graduao (PRPPG). Caso aprovado

    em todas as instncias, o afastamento aceito.

    Para eventos no Brasil o pedido de afastamento precisa ser aprovado pela Cmara

    Departamental (formada pelos funcionrios do departamento e representantes discentes).

    Assim, o pedido feito por meio da lista de e-mails dos funcionrios do DI, endereado

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 27

    ao chefe do departamento, cargo este que exercido por algum professor do DI durante

    mandato temporrio. Caso nenhum membro da Cmara Departamental se manifeste contra

    o afastamento em dez dias, o pedido aprovado. Assim para eventos nacionais o processo

    ocorre inteiramente dentro do departamento.

    Para eventos fora do Brasil escolhido um professor (que no tenha parentesco

    com o solicitante) para ser o relator do pedido. Aps parecer do relator, o pedido passa

    por aprovao no departamento como no caso acima. No entanto, necessrio ainda que o

    CT e a PRPPG aprovem o pedido e que o afastamento seja publicado no Dirio Oficial da

    Unio. Porm o SCAP s lida com a tramitao dentro do DI, no existe uma integrao

    com os processos do CT e da PRPPG. Desta forma, o escopo do sistema s trata do pedido

    na parte que cabe ao DI.

    O SCAP existe para assistir os professores e secretrios do departamento na

    tramitao das solicitaes de afastamento, tornando mais simples todo o processo, tanto

    a criao do pedido quanto a anlise e armazenamento do mesmo. O sistema atinge

    esse objetivo atravs do envio de e-mails automticos aos envolvidos e da utilizao de

    formulrios na criao dos documentos necessrios.

    3.2 Modelo de Casos de Uso

    Aps a definio do escopo, o processo de Engenharia de Requisitos seguiu com a

    modelagem de casos de uso, conforme proposto por (FALBO, 2011). A Tabela 1 lista e

    descreve os atores identificados no levantamento de requisitos.

    Tabela 1 Atores do SCAP

    Ator Descrio

    Professor Professores efetivos do DI/UFES.

    Chefe do Departa-mento

    Professores do DI/UFES que esto realizando a funoadministrativa de chefe e sub-chefe do departamento.

    Secretrio Secretrio do DI/UFES.

    Os secretrios lidam com a parte administrativa do sistema, responsabilidade

    deles cadastrar os professores, bem como seus parentescos e mandatos dos chefes do

    departamento. Outras tarefas dos secretrios envolvem a realizao do processo em que

    os pedidos de afastamento so submetidos: eles cadastram os pareceres de fora do DI e

    tambm arquivam os pedidos j finalizados.

    Os professores cadastram seus pedidos de afastamento no sistema. Eles tambm

    podem se manifestar contra o afastamento de outro professor, caso ainda seja tempo hbil

    para tal. Se for adicionado como relator de um afastamento no exterior, responsabilidade

    do professor decidir se o DI aprova ou no tal afastamento.

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 28

    O chefe do departamento um professor que foi selecionado para exercer a fun-

    o administrativa de chefe do DI por um mandato. Assim de responsabilidade dele

    encaminhar solicitaes a relatores que deferiro pareceres sobre afastamentos no exterior.

    O SCAP foi dividido em 2 subsistemas: Ncleo e Secretaria. O primeiro contempla

    os casos de usos dos professores e do chefe de departamento, enquanto o segundo envolve

    os casos de uso dos secretrios.

    As Figuras 7 e 8 mostram os diagramas de casos de uso destes subsistemas. Nos

    pargrafos que se seguem, apresentamos uma descrio sucinta dos casos de uso levantados

    para o SCAP. Uma verso mais detalhada dessa descrio pode ser vista nos apndices

    deste trabalho.

    Figura 7 Diagrama de Casos de Uso do subsistema Ncleo.

    No caso de uso Solicitar Afastamento um professor cadastra um pedido de

    afastamento no sistema, informando todos os dados necessrios para a tramitao do

    mesmo. Em Cancelar Afastamento o professor cancela um pedido de afastamento e o

    seu status alterado para cancelado, caso ele seja o solicitante.

    O caso de uso Encaminhar Afastamento realizado pelo Chefe do Departamento

    quando o mesmo analisa um pedido de afastamento internacional recm cadastrado e

    aponta um professor como relator deste afastamento. J Deferir Parecer utilizado

    quando um professor, que foi cadastrado pelo Chefe do Departamento como relator de um

    afastamento internacional, cadastra seu parecer sobre o afastamento.

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 29

    Figura 8 Diagrama de Casos de Uso do subsistema Secretaria.

    Consultar Afastamento, como o nome j diz, consiste em uma busca que um

    professor realiza para ver os dados de um pedido de afastamento. Em Manifestar-se

    Contra Afastamento um professor que contrario a um afastamento cadastra o motivo

    de sua opinio contraria, assim uma reunio marcada e os professores decidem se o

    afastamento aprovado ou no.

    Em Cadastrar Usurio um secretrio cadastra um novo professor ou secretrio

    no sistema, informando os dados pessoais necessrios. Em Cadastrar Chefe do Depar-

    tamento um secretrio cadastra o mandato do Chefe de Departamento, informando as

    datas de incio e fim do mesmo.

    O casos de uso Registrar Parecer CT e Registrar Parecer PRPPG acontecem

    quando um secretrio cadastra o parecer do Centro Tecnolgico e da Pr-Reitoria de

    Pesquisa e Ps-Graduao, respectivamente, sobre um pedido de afastamento internacional.

    Arquivar Afastamento acontece no final da tramitao de um pedido de afasta-

    mento quando o secretrio muda o status do mesmo para Arquivado.

    3.3 Anlise do SCAP

    Durante a fase de anlise adaptamos as entidades do mundo real, para que sejam

    utilizadas no paradigma de Orientao a Objeto do projeto. Assim tais entidades devem ser

    descritas em classes, suas caractersticas sero seus atributos e suas interaes as relaes

    entre classes.

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 30

    Neste captulo apresentada a Anlise que foi feita para o SCAP (Sistema de

    Controle Afastamento de Professores), em seguida tem-se as classes que foram desenvolvidas

    a partir dessa anlise.

    3.3.1 Modelagem de Classes

    Durante a abstrao de conceitos do mundo real para classes de objetos, atributos

    e relaes, so criados diagramas de classes, que mostram as propriedades e as associaes

    entre as classes do sistema (PERUCH, 2007).

    Na elaborao do diagrama de classes importante o foco na multiplicidade das

    relaes, porque a mesma fundamental na consistncia das classes do projeto com a

    tecnologia de persistncia dos dados.

    Apesar do SCAP ter sido dividido em 2 subsistemas, as classes de domnio do

    problema, representadas no diagrama de classes da Figura 9, todas pertencem ao subsistema

    Ncleo. Isso se d porque a diviso em subsistemas ocorreu com intuito de facilitar a

    implementao, e no devido a natureza das classes criadas.

    O Atributo situao da solicitao da classe Afastamento representa em qual

    estgio da tramitao um pedido de afastamento est, os status possveis sero discutidos

    mais adiante. J o atributo tipo do afastamento indica se o afastamento necessrio

    para atender a um evento localizado no Brasil ou no exterior.

    As classes Professor e Secretrio representam os professores de secretrios do

    Departamento de Informtica da UFES respectivamente, ambas herdam os atributos da

    classe Pessoa. Professores podem possuir ou no uma relao de Parentesco com os

    demais professores. O chefe do departamento representado por um Professor que possui

    um Mandato vigente.

    Um Afastamento possui todas as informaes necessrias para tramitao de um

    pedido de afastamento de um professor. A classe Afastamento pode ou no possuir mais

    de um Documento e requer um Relator somente quando o afastamento devido a um

    evento internacional.

    Um Parecer emitido por um professor e refente a um nico afastamento, porm

    um professor pode criar vrios pareceres para afastamentos diferentes, assim como um

    professor pode ser relator de vrios afastamentos.

    3.3.2 Restries de Integridade

    Restries de Integridade complementam as informaes de um modelo deste tipo

    e capturam restries relativas a relacionamentos entre elementos de um modelo que

    normalmente no so passveis de serem capturadas pelas notaes grficas utilizadas na

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 31

    elaborao de modelos conceituais estruturais. Tais regras devem ser documentadas junto

    ao modelo conceitual estrutural do sistema (FALBO, 2012).

    Listaremos aqui as restries que foram observadas na primeira implementao do

    SCAP em (DUARTE, 2014), juntamente com novas restries referentes a funcionalidades

    que no foram contempladas no projeto passado do SCAP.

    Um professor no pode ser solicitado para dar um parecer sobre sua prpria solicitao

    de afastamento;

    A data de incio de um afastamento no pode ser posterior a data de fim do mesmo

    afastamento;

    A data de incio de um mandato de professor no pode ser posterior a data de fim

    do mesmo mandato;

    No pode haver mais de dois professores (chefe e subchefe de departamento) exercendo

    um mandato ao mesmo tempo;

    O secretrio do departamento no pode abrir uma solicitao de afastamento;

    Um professor no pode ser relator de um afastamento solicitado por um parente.

  • Captulo 3. Especificao de Requisitos e anlise do SCAP 32

    Figura 9 Diagrama de Classes do SCAP.

  • 33

    4 Projeto e Implementao

    Na fase de projeto deve-se produzir uma soluo para o problema que foi identificado

    e modelado nas fases de levantamento e anlise de requisitos, incorporando a tecnologia aos

    requisitos e projetando o que ser construdo na implementao. Sendo assim, necessrio

    conhecer a tecnologia disponvel e os ambientes de hardware e software onde o sistema

    ser desenvolvido e implantado. Durante o projeto, deve-se decidir como o problema ser

    resolvido, comeando em um alto nvel de abstrao, prximo da anlise, e progredindo

    sucessivamente para nveis mais detalhados at se chegar a um nvel de abstrao prximo

    da implementao (FALBO, 2011).

    Enquanto na fase de anlise a tecnologia imaginada como perfeita (capacidade

    ilimitada de armazenamento, custo zero e no passvel de falha), a fase de projeto envolve a

    modelagem de como o sistema ser implementado com a adio dos requisitos tecnolgicos

    e de carter no funcional (PRESSMAN, 2011).

    Nas prximas sees descrito como o projeto do SCAP foi realizado, na seo 4.1

    apresentada a arquitetura do sistema, com as tecnologias utilizadas e como esto dispostas

    as classes dentro dos pacotes do projeto. Na seo 4.2 v-se a descrio dos frameworks

    previamente citados que foram aplicados no SCAP. A partir da seo 4.3 so descritos

    os modelos do projeto SCAP propostos no FrameWeb (Domnio, Navegao, Aplicao e

    Persistncia). E na seo 4.7 demostrada o resultado da implementao do SCAP.

    4.1 Arquitetura do Sistema

    A definio da arquitetura do sistema inicia a fase de projeto de sistema, nela so

    mapeados os conceitos observados na fase de anlise para a plataforma tecnolgica de

    desenvolvimento. O nvel de abstrao da fase anterior e diminudo, pois busca-se alcanar

    maior proximidade com o nvel da linguagem de programao (PERUCH, 2007).

    4.1.1 Tecnologia Utilizadas

    O SCAP foi implementado utilizando a linguagem de programao Java, na plata-

    forma Java EE 7 (Java Enterprise Edition 7). Tal plataforma foi escolhida por j oferecer

    os frameworks CDI e de mapeamento objeto relacional. Para persistncia foi utilizado o

    banco de dados relacional por ser a tecnologia mais aplicada no mercado.

    A escolha do VRaptor como controlador frontal foi feita por ser um framework

    desenvolvido no Brasil e com uma larga documentao, juntamente com vrios plugins

  • Captulo 4. Projeto e Implementao 34

    interessantes para o projeto. Dois plugins do VRaptor que valem ser mencionados so:

    VRaptor Tasks, que facilita o agendamento de tarefas automaticas que o SCAP deve

    realizar, e o VRaptor Simple Mail que ajudou no envio de e-mails automticos.

    Uma Recomendao dos criadores do VRaptor o Apache Maven1, que uma

    ferramenta de gerncia de projeto capaz de simplificar o download e instalao de bibliotecas

    e frameworks de um projeto. O servidor de aplicao usado foi o Wildfly 82 e o ambiente

    de desenvolvimento foi o Eclipse IDE3. Uma tabela com todas tecnologias utilizadas e suas

    descries detalhadas pode ser lida nos apndices deste trabalho.

    4.2 Frameworks Utilizados

    Nesta seo feita uma descrio dos principais frameworks utilizados na imple-

    mentao do projeto SCAP.

    4.2.1 VRaptor 4

    VRaptor4 um framework MVC Web para desenvolvimento gil com Java. Ele foi

    utilizado como framework controlador no projeto do SCAP, a descrio de controlador

    frontal foi feita na subseo 2.2.1 deste trabalho. Criado em 2003 no IME-USP, teve sua

    verso 2.0 lanada em 2005 e a verso 3.0 em 2009. Atualmente est em sua verso 4 e

    mantido pela Caelum e diversos desenvolvedores de outras empresas.

    O VRaptor buscar simplificar o controle de acesso do usurio atravs de convenes

    na nomenclatura dos arquivos e das classes, juntamente com uma lgica especifica de

    diretrios que deve ser seguida na criao das pginas Web. Essa lgica ser melhor

    explicada na seo 4.7 quando apresentado o modelo de navegao do SCAP.

    4.2.2 CDI

    Contexts and Dependency Injection (CDI) para a plataforma Java EE o framework

    de Injeo de Dependncias (ou inverso de controle), utilizado na implementao do

    projeto do SCAP. a principal dependncia do VRaptor de acordo com o documentao5

    do mesmo. Mais sobre o CDI pode ser lido na JSR-2996.

    O CDI faz parte da especificao Java EE desde a verso 6 e substitui o Spring

    que o framework de injeo de dependncias proposto no FrameWeb.1 Maven, http://maven.apache.org/2 Wildfly 8, http://wildfly.org/3 Eclipse, https://eclipse.org/downloads/4 Vraptor, http://www.vraptor.org5 Depndencias do VRaptor 4, http://www.vraptor.org/pt/docs/dependencias-e-pre-requisitos/6 JSR-299, https://docs.jboss.org/cdi/spec/1.0/

  • Captulo 4. Projeto e Implementao 35

    4.2.3 Hibernate + JPA

    Hibernate um framework de Mapeamento Objeto/Relacional escrito na linguagem

    Java, que visa facilitar a transio dos objetos usados no sistema para as tabelas relacionais

    utilizadas no banco de dados.

    Diferentemente da primeira implementao do SCAP (DUARTE, 2014), que usou o

    hibernate com a linguagem SQL, nesse projeto foi utilizada o JPA (Java Persistence API)

    com a linguagem JPQL. Assim a Lgica de Acesso a Dados ficou mais simplificada, pois

    em JPQL as consultas ao banco so escritas de forma mais prxima do padro orientado

    ao objeto.

    Para gerenciar o banco de dados usou-se o phpMyAdmin, que um gerenciador de

    banco de dados gratuito implementado na linguagem PHP.

    4.2.4 Pacotes do SCAP

    A Figura 10 demostra como foram divididas as classes do SCAP: primeiramente foi

    feita a diviso em 2 subsistemas que foram observados na fase de anlise e especificao

    de requisitos. Depois a diviso segue o que foi proposto no FrameWeb, assim as classes

    foram subdividas em 4 pacotes: Controle, Aplicao, Domnio e Persistncia.

    A Figura retirada do Package Explorer da IDE Eclipse, que foi o ambiente de

    desenvolvimento utilizado no projeto. Nela v-se toda a estrutura das pastas do sistema,

    juntamente com as bibliotecas e arquivos de configurao.

    O pacote br.ufes.scap.nucleo.aplicacao contm as classes de aplicao do sub-

    sistema Ncleo, elas so responsveis pela execuo dos casos de uso referentes a este

    subsistema e implementam sua lgica de negcio.

    Em sequncia tem-se o pacote br.ufes.scap.nucleo.controle contendo as classes

    de Controle, responsveis pela comunicao entre o pacote de viso e o de aplicao,

    tratando os estmulos enviados e recebidos pelo usurio.

    O pacote br.ufes.scap.nucleo.dominio contm as classes de domnio de todo o

    sistema, que representam as entidades do mundo real e seus atributos.

    Finalmente, temos o pacote br.ufes.scap.nucleo.presistencia, no qual ficam

    as classes responsveis pela lgica de acesso a dados do subsistema Ncleo. Elas so

    responsveis em fazer a persistncia das classes de Domnio.

    Os pacotes seguintes possuem o mesmos objetivos dos supracitados, porm so refe-

    rentes ao subsistema Secretaria. Vale notar que os arquivos do pacote de viso encontram-se

    no diretrio src\main\webapp e so responsveis pela interao direta com o usurio.

  • Captulo 4. Projeto e Implementao 36

    Figura 10 projeto SCAP visto no Package Explorer do Eclipse IDE.

    4.3 Modelo de Domnio

    O modelo de domnio de FrameWeb um diagrama de classes da UML que

    representa os objetos de domnio do problema e seu mapeamento para a persistncia

    em banco de dados relacional. A partir dele so implementadas as classes da camada de

    domnio na atividade de implementao (SOUZA, 2007).

    Ele foi construdo a partir do diagrama de classes da Figura 9, que apresenta as

    classes de domnio que foram utilizadas na implementao. No modelo de domnio feita

    uma adequao plataforma de desenvolvimento escolhida, so indicados os tipos dos

    atributos, so definidas a navegabilidade das associaes etc. A Figura 11 mostra o modelo

    de domnio do SCAP.

    Pode-se observar que j so levadas em considerao a persistncia das classes,

    pois j so salientados quais atributos podem ou no ser iniciados com valor nulo. So

    apresentados tambm os tipos de dados enumerados usados no projeto, que so: TipoPa-

    rentesco, SituacaoSolic, TipoAfast, Onus, TipoParecer. A Figura 12 apresenta os

    valores desses tipos.

    No tipo Onus apenas 3 valores so possveis: TOTAL indica que a universidade

    arcar com os custos da viagem relacionada ao afastamento; PARCIAL significa que a

    universidade apenas manter a remunerao normal do professor, porm no custear a

    viagem; INEXISTENTE representa o caso em que mesmo a remunerao do professor

  • Captulo 4. Projeto e Implementao 37

    Figura 11 Modelo de Domnio do SCAP.

    suspensa durante o afastamento. TipoAfast apresenta valor NACIONAL para eventos

    realizados no brasil e INTERNACIONAL para eventos no exterior.

    Em TipoParecer os valores FAVORAVEL E DESFAVORAVEL indicam que o

    parecer a favor do afastamento ou contra respectivamente. J em TipoParentesco SAN-

    GUINEO significa que o parentesco entre dois professores sanguneo e MATRIMONIAL

    quer dizer parentesco matrimonial.

    O tipo SituacaoSolicitacao indica em qual estgio do processo o afastamento

    se encontra. No inicio o valor do campo INICIADO, caso seja um evento marcado

  • Captulo 4. Projeto e Implementao 38

    Figura 12 Tipos enumerados do SCAP.

    como NACIONAL ele permanecera com esse valor por 10 dias, caso nenhum professor

    se manifeste contra ele neste perodo ele aprovado automaticamente e seu valor fica

    APROVAD-DI onde terminado o processo. Caso seja um afastamento internacional o

    chefe de departamento cadastra um Relator para o afastamento mudando sua situao

    de INICIADO para LIBERADO. se o parecer do relator for FAVORAVEL o afastamento

    passa para APROVADO-DI, caso o parecer do CT seja tambm favorvel ele passa

    para APROVADO-CT onde aguarda o parecer da PRPPG, case este seja aprovado ele

    muda para APROVADO-PRPPG onde o processo terminado. Se esses algum pareceres

    supracitados sejam negativos a situao passa para REPROVADO e o processo acaba. Em

    qualquer momento o professor pode cancelar seu pedido, assim o status alterado para

    CANCELADO e o processo terminado.

    Os estados da classe Afastamento apenas descritos foram modelados em um dia-

    grama de estados, como mostra a Figura 13. Nas transies entre os estados so indicados

    os casos de uso que promovem a transio de um afastamento de um estado a outro.

    4.4 Modelo de Navegao

    O Modelo de Navegao do FrameWeb um diagrama de classe da UML que

    representa os diferentes componentes que formam a camada de Lgica de Apresentao,

    como pginas Web, formulrios HTML e classes de ao do framework Front Controller

    (SOUZA, 2007).

    Na Tabela 2 so descritos os esteretipos utilizados no projeto do SCAP pelos

    diferentes elementos que podem ser representados no Modelo de Navegao. O objetivo do

  • Captulo 4. Projeto e Implementao 39

    Figura 13 Tipos enumerados do SCAP.

    Modelo de Navegao guiar a concepo das classes e componentes dos pacotes Viso e

    Controle.

  • Captulo 4. Projeto e Implementao 40

    Tabela 2 Esteritipos utilizados nos modelos de navegao do SCAP.

    Estertipo O que Representa

    Nenhum Uma classe de ao, para a qual o framework FrontController delega a execuo da ao.

    page Uma pgina Web esttica ou dinmica.

    form Um formulrio HTML.

    Conforme proposto no FrameWeb, foram criados diagramas de navegao para

    todos os casos de uso levantados na fase de requisitos e podem ser vistos nos apndices

    desse trabalho. Para ilustrao, nessa seo so descritos somente os casos de uso Cadastrar

    Afastamento, na Figura 14, e Consultar Afastamento, na Figura 15.

    Figura 14 Modelo de Navegao para o caso de uso Cadastrar Afastamento.

    A criao do modelo de navegao leva em considerao funcionamento do fra-

    mework Controlador Frontal, logicamente o modelo da Figura 14 foi feito segundo os

    preceitos propostos pela documentao do VRaptor.

    importante salientar que o mtodo salvar no resulta no diretamente redireci-

    onamento para a pgina index, na verdade a controladora em questo aciona o mtodo

  • Captulo 4. Projeto e Implementao 41

    index da classe IndexController que por sua vez chama a pgina inicial. Isso foi omitido

    para que o modelo no ficasse muito complexo.

    A classe AfastamentoController a classe controladora que lida com a lgica de

    apresentao referente classe de domnio Afastamento. Quando o mtodo formulario

    da controladora chamado as convenes de nome e diretrio do VRaptor fazem com que

    a pagina contendo o formulrio de cadastro de afastamento seja chamada. Posteriormente,

    quando o formulrio submetido, ele chama o mtodo salvar da controladora que passa

    as informaes do afastamento para a classes de aplicao.

    Figura 15 Modelo de Navegao para o caso de uso Consultar Afastamento.

    Na Figura 15 temos o modelo de navegao do caso de uso Consultar Afastamento.

    Mantem-se o mesmo funcionamento do diagrama anterior: quando o mtodo buscar

    chamado o formulrio formBusca apresentado ao usurio. Quando o formulrio preen-

    chido, o mtodo mostrar chamado juntamente com a pgina mostrar, apresentando os

    dados recebidos da classe de aplicao aplAfastamento referentes ao id de afastamento

    recebido no formulrio.

  • Captulo 4. Projeto e Implementao 42

    4.5 Modelo de Aplicao

    O Modelo de Aplicao um diagrama de classes da UML que representa as classes

    de servio, que so responsveis pela codificao dos casos de uso, e suas dependncias

    (SOUZA, 2007). Ele utilizado para demostrar as dependncias entre classes do pacotes de

    Controle, Aplicao e Persistncia. Podemos ver quais classes de ao (pacote controle da

    camada Lgica de Apresentao) dependem de quais classes de servio (pacote aplicao

    da camada Lgica de Negcio) e quais classes DAO so necessrias (pacote de persistncia

    da camada Lgica de acesso a Dados). A administrao dessas dependncias simplificada

    pelo uso do framework CDI citado na subseo 4.2.2.

    Assim como para as classes de controle do Modelo de Navegao, o projetista deve

    escolher o nvel de granularidade das classes de servio. H tambm uma semelhana

    com o modelo de Persistncia, pois no Modelo de Aplicao tambm no h definio de

    extenses UML e tambm valem as regras de programao por interfaces: cada classe de

    servio deve ter uma interface e uma implementao (SOUZA, 2007).

    As Figuras 16 e 17 so os Modelos de Aplicao criados para o subsistemas Ncleo

    e Secretaria respectivamente. No SCAP optou-se por manter uma classe de servio para

    cada classe de controladora do pacote de controle, assim fica mais simples entender a

    relao entre os dois pacotes.

    Figura 16 Modelo de aplicao do subsistema Ncleo.

    Para exemplificar a lgica do diagrama podemos tomar com exemplo o caso de uso

    Encaminhar Afastamento, onde o Chefe do Departamento cadastra um professor como

    Relator de um afastamento internacional. Vemos que o RelatorController interage com a

    classe de servio AplRelatorImp atravs da interface AplRelator. Para realizar o cadastro

    a classe de servio precisa associar um professor, assim se faz necessrio o PessoaDAO,

  • Captulo 4. Projeto e Implementao 43

    um afastamento, logo precisaremos do AfastamentoDAO e um Relator, ento usa-se o

    RelatorDAO.

    Figura 17 Modelo de aplicao do subsistema Secretaria.

    4.6 Modelo de Persistncia

    O Modelo de Persistncia um diagrama de classes da UML que representa as

    classes DAO existentes, responsveis pela persistncia das instncias das classes de domnio.

    Esse diagrama guia a construo das classes DAO, que pertencem ao pacote Persistncia

    (SOUZA, 2007).

    Mantendo o mesmo padro que vimos no pacote de aplicao, cria-se uma interface

    para cada classe DAO do pacote. Essa interface define quais mtodos devem ser imple-

    mentados na classe DAO, assim o nosso sistema no fica dependente de uma tecnologia

    especifica de persistncia, pois a camada de Lgica de Negcio interage apenas com as

    interfaces do pacote de persistncia.

    De acordo com o sugerido no FrameWeb, no projeto SCAP foram criadas uma

    classe de persistncia para cada classe de domnio que precisava ser persistida. Porm,

    como alguns mtodos sero sempre os mesmos (Ex: save(), delete(), merge(), etc.), o

    FrameWeb prope o uso de um DAO base, da qual as outras classes DAO herdam os

  • Captulo 4. Projeto e Implementao 44

    mtodos mais comuns. Assim, nas classes de persistncia especificas so implementados

    somente os mtodos mais especficos de acesso a dados que a aplicao necessite.

    Nas Figuras 18 e 19 so apresentados os Modelos de Persistncias desenvolvidos para

    o projeto de SCAP, os mesmo foram usados na implementao do pacote de persistncia.

    Vale notar que o nome das classes j indica qual tecnologia de persistncia foi utilizada, esse

    sistema de nomenclatura mais uma sugesto do FrameWeb para simplificar o processo

    de software.

    Figura 18 Modelo de Persistncia do subsistema Ncleo.

    Figura 19 Modelo de Persistncia do subsistema Secretaria.

    Note que a relao de herana entre os DAOs especficos e o DAO base no

    representada explicitamente nos diagramas para evitar poluio visual dos mesmos. Esta

    tambm uma recomendao de FrameWeb, ficando, portanto, o desenvolvedor incumbido

    de derivar essa relao implicitamente ao analisar o modelo.

  • Captulo 4. Projeto e Implementao 45

    4.7 Implementao do SCAP

    Esta seo visa ilustrar o resultado final deste projeto, apresentando as principais

    funcionalidades do SCAP que foram implementadas.

    Como o objetivo principal deste trabalho era a aplicao do mtodo FrameWeb com

    diferentes frameworks, e no a entrega da ferramenta SCAP em si, alguns requisitos no

    foram contemplados por questo de tempo. A ferramenta no gera relatrios e tambm no

    capaz de gerar as atas das reunies que acontecem quando algum professor se manifesta

    contra um afastamento.

    Outra funcionalidade que no foi implementada a capacidade da ferramenta gerar

    os documentos atrelados aos afastamentos, ela pode apenas cadastrar um documento

    gerado em algum outro software e realizar a persistncia do mesmo no banco de dados.

    No foi utilizado nenhum framework de decorao, pois o projeto no exige muitos

    recursos visuais, apenas o template HTML Bootstrap7 na criao das pginas, juntamente

    com o pacote Bootstrap table8 para apresentao das tabelas.

    Na Figura 20 vemos a tela de login do SCAP. Sempre que o usurio acessa uma

    URL o interceptador AutenticacaoInterceptor verifica se o mesmo est autenticado no

    sistema, caso contrrio ele redirecionado para a tela de login. recomendvel a utilizao

    de um framework para implementao da autenticao, porm optou-se pela criao do

    zero a favor de um maior aprendizado sobre interceptadores. A biblioteca usada j est

    inclusa no pacote do framework VRaptor 4.

    Caso o usurio entre com um login invalido, inexistente ou incorreto, a classe con-

    troladora UsuarioController recarrega a pgina passando uma String com a mensagem

    de erro, como vemos na Figura 21.

    Quando o login realizado o usurio direcionado para a pgina contendo a lista

    de todos os pedidos de afastamento ativos no sistema, vista na Figura 22.

    Vale notar que o menu superior apresenta apenas aes referentes ao ator Secretrio.

    Caso o usurio logado seja um professor, o menu omite os links para essas funcionalidades

    e apresenta apenas aquilo que o professor pode fazer.

    Na Figura 23 vemos a pgina onde so apresentadas as informaes de um afasta-

    mento, uma lista de documentos referentes ao mesmo e as opes que o usurio tem perante

    tal pedido de afastamento. Assim como no menu superior, as opes s so apresentadas

    para usurios que tenham permisso para realiz-las. Como exemplo, a opo Cadastrar

    Relator s aparece caso o professor autenticado seja o atual Chefe do Departamento.7 Bootstrap, http://getbootstrap.com/8 Bootstrap Table, http://wenzhixin.net.cn/p/bootstrap-table/docs/index.html

  • Captulo 4. Projeto e Implementao 46

    Figura 20 Tela de login do SCAP.

    Figura 21 Tela de login incorreto do SCAP.

    Foram criadas 3 anotaes na implementao do projeto: @ProfessorRestricted,

    @SecretarioRestricted e @ChefeRestricted. Essas anotaes so referentes as permis-

    ses que Secretrios, Professores e Chefes de Departamento, respectivamente, possuem no

    sistema. Quando um mtodo que possui uma dessas anotaes disparado pelo usurio, o

    interceptador AutorizacaoInterceptor verifica s o mesmo possui autorizao do sistema

    para realizar tal tarefa, caso contrrio ele redirecionado para uma tela de erro.

  • Captulo 4. Projeto e Implementao 47

    Figura 22 Tela contendo a Lista de Afastamentos do SCAP.

    Figura 23 Tela que apresenta os dados de um Pedido de Afastamento no SCAP.

    Na Listagem 4.1 vemos como implementada uma anotao em java, e na Lista-

    gem 4.2 v-se como anotao usada para especificar um mtodo. O AutorizacaoIn-

    terceptor intercepta todos os mtodos do sistema, quando ele percebe que o mtodo

    possui uma anotao ele verifica se o usurio autorizado a realizar um mtodo com essa

    anotao.

  • Captulo 4. Projeto e Implementao 48

    Listagem 4.1 cdigo da classe responsvel pela anotao @ProfessorRestricted

    1

    2 @Retention ( Retent ionPo l i cy .RUNTIME)3 @Target ({ ElementType .METHOD}) // anota o para m todos4 public @inte r f a c e P r o f e s s o r R e s t r i c t e d {5

    6 }

    Listagem 4.2 exemplo de como um mtodo anotado

    1

    2 @Contro l ler3 public class AfastamentoContro l l e r {4

    5

    6 @Pro f e s so rRes t r i c t ed7 public void f o rmu la r i o ( ) {8 }9 }

    Todos os formulrios do SCAP seguem o mesmo padro da pgina apresentada na

    Figura 24. Para agilizar o processo de codificao dos formulrios, foi usada a ferramenta

    Web Form Builder for Bootstrap do site bootsnipp 9.

    Figura 24 Formulrio de cadastro de afastamento no SCAP.

    Para incluso das datas foi usado o tipo date do HTML 5, pois j possui uma

    representao grfica do calendrio, que depois de lido e convertido para o tipo Calendar

    do Java.9 bootsnipp, http://bootsnipp.com/forms

  • Captulo 4. Projeto e Implementao 49

    importante salientar que o caso de uso Manifestar-se contra Afastamento foi

    implementado junto com o caso de uso Registar Parecer. Assim quando um professor

    quiser se manifestar contra um afastamento basta ele cadastrar um parecer desfavorvel a

    um afastamento. Essa juno se deve a uma questo de praticidade e pela similaridade

    entre os dois casos de uso.

    Essa implementao do SCAP est disponvel para download em: .

    https://github.com/vitorsouza/tcc-rodolfo-pradohttps://github.com/vitorsouza/tcc-rodolfo-prado

  • 50

    5 Concluso

    Este captulo descreve como foi utilizar o mtodo FrameWeb, tendo o VRaptor

    4 como framework controlador frontal, nesta segunda implementao do SCAP. Iremos

    tambm propor possveis melhorias ao mtodo baseadas na experincia adquirira no

    decorrer deste projeto.

    O uso dos frameworks foi fundamental para simplificar a implementao do SCAP,

    pois alm de fornecerem classes pontas para serem utilizadas, os componentes presentes nes-

    ses frameworks j foram extensivamente testados e qualquer duvida sobre o funcionamento

    dos mesmos pode ser sanada com uma simples busca na Internet.

    A categorizao feita por Souza (2007) facilita a escolha de quais frameworks so

    fundamentais na implementao de um sistema Web, e os modelos propostos ajudam a

    traduzir muito bem o que observado na fase de anlise para o que deve ser implementado. O

    FrameWeb garante que as camadas do sistema mantenham um nvel baixo de acoplamento,

    assim o SCAP pode ter seus componentes substitudos ou aperfeioados com muita

    facilidade.

    Assim como observado em (DUARTE, 2014), percebeu-se tambm que a plataforma

    Java EE 7 muito boa para a concepo de sistemas para a Web, devido a sua larga

    utilizao no mercado ela possui um conjunto grande de frameworks e plugins altamente

    testados e documentados.

    Em relao a sua primeira implementao, a seguintes mudanas foram realizadas

    neste projeto do SCAP:

    Foi adicionada uma regra de negcio impedindo que um professor seja relator de um

    afastamento requerido por um parente prximo.

    Foram desenvolvidas as classes Documento, Relator e Parentesco.

    Foram reimplementadas todas as classes, exceto as de domnio, para melhor se

    adequar granularidade sugerida pelo VRaptor 4.

    Implementou-se as funcionalidades referentes aos pedidos de afastamentos internaci-

    onais.

    s pginas Web foram todas refeitas, optou-se por uma interface mais simples.

  • Captulo 5. Concluso 51

    5.1 VRaptor e o FrameWeb

    O VRaptor 4 se encaixa muito bem com os modelos de navegao que so propostos

    no FrameWeb, algo que os programadores devem considerar ao ler os modelos de navegao.

    Como foi dito anteriormente o VRaptor possui certas convenes de diretrio e nome

    que devem ser mantidas, assim varias pginas utilizadas tero exatamente o mesmo

    nome e so diferenciadas apenas pelas pastas onde esto localizadas, ex: uma pgina

    referente ao mtodo formulario de classe controladora AfastamentoController deve

    estar localizada na pasta WEB-INF/jsp/afastamento do pacote de viso.

    Outra considerao a ser feita quanto as tabelas que foram implementadas

    no SCAP. Na Figura 22, apresentada anteriormente, vimos que existe uma tabela dos

    afastamento ativos no sistema, onde o usurio pode clicar no boto ver para ver os

    dados de um afastamento sem precisar preencher o formulrio de busca. Porm o mtodo

    FrameWeb no fornece esse nvel de granularidade em relao s paginas web.

    Duarte (2014) sugere a incluso de um esteritipo component, que representaria

    um elemento da pgina que sofre a ao de algum outro componente, que me seu caso eram

    partes da pgina atualizadas atravs do Ajax. Poderamos aproveitar tal esteretipo para

    representar elementos dentro da pgina Web que direcionam a navegao do usurio, como

    as tabelas presentes no SCAP. Assim fica mais especificado como deve ser implementada a

    navegabilidade do sistema.

    A Figura 25 representa o modelo de navegao do caso de uso Consultar Solicitao

    usando o esteretipo component para representar a tabela.

    5.2 Trabalhos Futuros

    Alm da melhoria proposta na seo anterior, dois outros trabalhos futuros podem

    ser sugeridos dentro deste tema. Uma nova implementao do SCAP usando um coleo

    diferente de frameworks e tecnologias na plataforma Java EE 7, e uma aplicao de mtodo

    FrameWeb usando uma plataforma e linguagem de programao diferente do Java ex:

    PHP, Ruby on Rails etc.

  • Captulo 5. Concluso 52

    Figura 25 modelo de navegao proposto para o caso de uso Consular Solicitao, comadio de um novo esteretipo ao FrameWeb.

  • 53

    Referncias

    ALUR, D.; CRUPI, J.; MALKS, D. Core J2EE Patterns. [S.l.: s.n.], 2003. 650 p. ISBN0131422464. Citado 2 vezes nas pginas 20 e 24.

    BAUER, C.; KING, G. Hibernate em Ao. 1a edio. ed. [S.l.]: Cincia Moderna, 2005.ISBN 8573934042. Citado na pgina 21.

    CAVALCANTI, L. VRaptor: Desenvolvimento gil para web com Java. 1a edio. ed. [S.l.]:Casa do Cdigo, 2014. 218 p. ISBN 9788566250268. Citado 2 vezes nas pginas 12 e 13.

    CONALLEN, J. Building Web Applications with UML. 2a edio. ed. [S.l.]: Addison-Wesley,2002. 496 p. ISBN 0785342730388. Citado 4 vezes nas pginas 7, 17, 18 e 24.

    DEMICHIEL, L.; SHANNON, B. JavaTM Platform, Enterprise Edition (Java EE)Specification, v7. 2013. Disponvel em: . Citado 2vezes nas pginas 12 e 13.

    DUARTE, B. B. Aplicao do Mtodo FrameWeb no Desenvolvimento de um Sistema deInformao na Plataforma Java EE 7. Monografia (Trabalho de Concluso de Curso) Universidade Federal do Esprito Santo, 2014. Citado 7 vezes nas pginas 12, 13, 26, 31,35, 50 e 51.

    FALBO, R. Projeto de Sistemas de Software: Notas de aula. 2011. Disponvel em:. Citado 2vezes nas pginas 27 e 33.

    FALBO, R. Engenharia de Requisitos: Notas de aula. 2012. Disponvel em:. Citadona pgina 31.

    FOWLER, M. Patterns of Enterprise Application Architecture. [S.l.]: Addison-Wesley,2002. ISBN 0321127420. Citado 3 vezes nas pginas 7, 22 e 24.

    HUSTED, T.; DUMOULIN, F. Struts em Ao. 1a edio. ed. [S.l.]: Cincia Moderna,2004. 632 p. ISBN 8573932996. Citado na pgina 18.

    KOCH, N. et al. Extending uml to model navigation and presentation in web applications.In: Proceedings of Modelling Web Applications in the UML Workshop (UML2000). [S.l.:s.n.], 2000. Citado na pgina 24.

    MURUGESAN, S. et al. Web engineering: A new discipline for developmentof web-based systems. Web Engineering, v. 2016, p. 313, 2001. Disponvel em:

  • Referncias 54

    PANDOLFI, D.; MELOTTI, E. Ciclo de Desenvolvimento de Projetos Web. 2006. Citadona pgina 16.

    PASTOR, O.; FONS, J.; PELECHANO, V. Oows : A method to develop webapplications from web-oriented conceptual models. In: International Workshop on WebOriented Software Technology (IWWOST). [s.n.], 2003. p. 6570. Disponvel em: .Citado na pgina 17.

    PERUCH, L. A. Aplicao e anlise do Mtodo FrameWeb com Diferentes FrameworksWeb. Monografia (Trabalho de Concluso de Curso) Universidade Federal do EspritoSanto, 2007. Citado 3 vezes nas pginas 16, 30 e 33.

    PRESSMAN, R. S. Engenharia de Software - Uma Abordagem Profissional. 7a edio. ed.[S.l.]: McGraw-Hill, 2011. 780 p. ISBN 9788563308337. Citado 5 vezes nas pginas 12, 15,16, 17 e 33.

    REENSKAUG, T. THING-MODEL-VIEW-EDITOR, an Example from a planningsystem. [S.l.], 1979. Citado na pgina 19.

    SCHWABE, D.; ROSSI, G. An Object Oriented Approach to Web-Based ApplicationDesign. Theory and Practice of Object Systems, v. 4, p. 207225, 1998. ISSN 10743224.Disponvel em: .Citado na pgina 17.

    SOUZA, V. E. S. FrameWeb: um Mtodo baseado em Frameworks para o Projeto deSistemas de Informao Web. Dissertao (Programa de Ps-Graduao em Informtica) Universidade Federal do Esprito Santo, 2007. Citado 13 vezes nas pginas 7, 12, 13, 19,20, 21, 22, 23, 25, 36, 38, 42 e 50.

    http://ceit.aut.ac.ir/~sa\_hashemi/My Research/0-Selected Papers/2-ECommerce Systems/OOWS A Method to Develop Web Applications from Web-Oriented Conceptual \_ 6.pdfhttp://ceit.aut.ac.ir/~sa\_hashemi/My Research/0-Selected Papers/2-ECommerce Systems/OOWS A Method to Develop Web Applications from Web-Oriented Conceptual \_ 6.pdfhttp://ceit.aut.ac.ir/~sa\_hashemi/My Research/0-Selected Papers/2-ECommerce Systems/OOWS A Method to Develop Web Applications from Web-Oriented Conceptual \_ 6.pdfhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.57

  • Documento de Requisitos Projeto: SCAP Sistema de Controle de Afastamento de Professores Registro de Alteraes:

    Verso Responsveis Data Alteraes

    0.1 Rodolfo Costa, Rafael dos Anjos

    15/09/2014 Verso parcial inicial

    1. Introduo

    Este documento apresenta os requisitos de usurio da ferramenta SCAP Sistema de Controle de Afastamento de Professores e est organizado da seguinte forma: a seo 2 contm uma descrio do propsito do sistema; a seo 3 apresenta uma descrio do minimundo apresentando o problema; e a seo 4 apresenta a lista de requisitos de usurio levantados junto ao cliente. 2. Descrio do Propsito do Sistema

    O Propsito do SCAP um sistema que visa auxiliar o controle dos afastamentos dos professores do departamento de informtica da UFES, simplificando o processo de anlise e armazenamento dos pedidos de afastamento. Tais afastamentos podem ocorrer devido a eventos nacionais e internacionais. 3. Descrio do Minimundo

    No departamento de informtica (DI) da UFES os pedidos de afastamento so solicitados para eventos no Brasil ou no exterior. Tais solicitaes so avaliadas por professores do DI ou pela diretoria do Centro Tecnolgico (CT) juntamente com a Pr-reitoria de Pesquisa e Ps-Graduao (PRPPG) e, caso aprovadas, o afastamento aceito.

    Para eventos no Brasil o pedido de afastamento precisa ser aprovado pelo chefe do departamento, cargo este que exercido por algum professor do DI durante mandato temporrio. Assim, para eventos nacionais o processo ocorre inteiramente dentro do departamento.

    Para eventos fora do Brasil necessrio que o CT e a PRPPG aprovem o pedido e que o afastamento seja publicado no Dirio Oficial da Unio. Porm o SCAP s lida com a tramitao dentro do DI, no existe uma integrao com os processos do CT e da PRPPG. Desta forma, o escopo do sistema s trata do pedido na parte que cabe ao DI.

    O SCAP existe para assistir os professores e secretrios do departamento na tramitao das solicitaes de afastamento, tornando mais simples todo o processo, tanto a criao do pedido quanto a anlise e armazenamento do mesmo. O sistema atinge esse objetivo atravs do envio de e-mails automticos aos envolvidos e da utilizao de formulrios na criao dos documentos necessrios.

  • 4. Requisitos de Usurio

    Tomando por base o contexto do sistema, foram identificados os seguintes requisitos de usurio: Requisitos Funcionais

    Identificador

    Descrio Prioridade Depende de

    RF01 A ferramenta deve permitir o cadastro de usurios, armazenando informaes como o nome, a matrcula, o e-mail, a senha, o tipo de usurio e (caso exista) o parentesco com outros usurios.

    Alta

    RF02 A ferramenta deve permitir o cadastro de um chefe do departamento, que um professor que j est cadastrado no sistema, registrando a data de incio e fim do mandato.

    Alta RF01

    RF03 A ferramenta deve permitir o cadastro de uma solicitao de afastamento, registrando o perodo de afastamento, perodo do evento, se o evento no Brasil ou no exterior, o motivo do afastamento e o tipo de nus da viagem.

    Alta RF01

    RF04 A ferramenta deve ser capaz de exibir aos usurios cadastrados os dados de uma solicitao de afastamento que j esteja cadastrada no sistema.

    Alta RF01, RF03

    RF05 A ferramenta deve ser capaz de cadastrar um parecer de um professor sobre uma solicitao da qual ele tenha sido escolhido como relator.

    Alta RF01, RF03, RF04

    RF06 A ferramenta deve permitir que um professor se manifeste contra uma solicitao.

    Alta RF01, RF03

    RF07 A ferramenta deve permitir que um professor seja apontado como relator de uma solicitao pelo chefe do departamento.

    Alta RF01, RF02, RF03

    RF08 A ferramenta deve permitir que um professor cancele uma solicitao. Alta RF03

    RF09 A ferramenta deve permitir que o secretrio altere o status de uma solicitao.

    RF10 A ferramenta deve permitir que um secretrio cadastre o parecer do CT e da PRPPG sobre uma solicitao.

    Alta RF03

    RF11 A ferramenta deve ser capaz de mandar e-mails automticos e gerar relatrios para os professores e para o chefe de departamento.

    Mdio RF02, RF03

  • Regras de Negcio Identificador Descrio Prioridade Depende de

    RN01 Um professor no pode ser escolhido como relator da prpria solicitao. Alta RF01

    RN02 Um professor no pode ser relator da solicitao de algum parente. Mdia RF01

    RN03 Uma solicitao para eventos no exterior precisa do parecer do CT e da PRPPG antes de ser aprovada.

    Alta RF01, RF03, RF04

    RN04 Uma solicitao s pode ser cancelada pelo professor que a criou. Alta RF01

    RN05 Uma solicitao s pode ser arquivada quando a mesma j est com o status de concluda.

    Alta RF01, RF03, RF04, RF08

  • Requisitos No Funcionais Identificador Descrio Categoria Escopo Prioridade Depende de

    RNF01 A ferramenta deve prover controle de acesso s funcionalidades. Segurana de Acesso

    Sistema Mdia

    RNF02 A ferramenta deve ser de aprendizado fcil, no sendo necessrio nenhum treinamento especial para seu uso.

    Facilidade de Aprendizado

    Sistema Mdia

    RNF03 A ferramenta deve ser de fcil operao, no sendo necessrio uso contnuo para uma boa operao do sistema.

    Facilidade de Operao

    Sistema Alta

    RNF04 A persistncia das informaes deve ser implementada usando o Sistema Gerenciador de Bancos de Dados estabelecido na plataforma de implementao do Projeto. Contudo, as ferramentas devem ser projetadas para, no futuro, ser possvel utilizar outra tecnologia de bancos de dados.

    Portabilidade Sistema Alta

    RNF05 A ferramenta deve estar disponvel como uma aplicao Web, acessvel a partir dos principais navegadores disponveis no mercado.

    Portabilidade Sistema Alta

    RNF06 O sistema deve ser fcil de manter, de modo a acomodar novas funcionalidades ou at mesmo adaptao para organizaes especficas.

    Manutenibilidade Sistema Alta

    RNF07 O desenvolvimento do sistema deve explorar o potencial de reutilizao de componentes, tanto no que se refere ao desenvolvimento com reuso quanto ao desenvolvimento para reuso.

    Reusabilidade Sistema Mdia

    RNF08 O sistema deve ser desenvolvido utilizando os frameworks VRaptor 4, CDI e JPA. Seguindo o mtodo FrameWeb.

    Sistema Alta

  • Documento de Especificao de Requisitos Projeto: SCAP Sistema de Controle de Afastamento de Professores 1. Introduo

    Este documento apresenta o resultado da anlise dos requisitos da ferramenta SCAP. A atividade de anlise de requisitos foi conduzida aplicando-se tcnicas de modelagem de casos de uso, modelagem de classes e modelagem de comportamento dinmico do sistema. Os modelos apresentados foram elaborados usando a UML.

    Este documento est organizado da seguinte forma: a seo 2 apresenta os subsistemas identificados, mostrando suas dependncias na forma de um diagrama de pacotes; a seo 3 apresenta o modelo de casos de uso, incluindo descries de atores, os diagramas de casos de uso e descries de casos de uso; a seo 4 apresenta o modelo conceitual estrutural do sistema, na forma de diagramas de classes; a seo 5 apresenta o modelo comportamental dinmico do sistema, na forma de diagramas de estado; finalmente, a seo 6 apresenta o glossrio do projeto, contendo as definies das classes identificadas.

    2. Identificao de Subsistemas

    A Figura 1 mostra os subsistemas identificados no contexto do presente projeto, os quais so descritos na tabela abaixo.

    Figura 1 Diagrama dos Subsistemas Identificados.

    Tabela 1 Subsistemas.

    Subsistema Descrio

    Ncleo o princ