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