Seam TCC
Seam TCC
Cuiabá/MT
2013
RICARDO RODRIGUES BARCELAR
Cuiabá/MT
2013
RESUMO
Este trabalho faz uma abordagem teorico-prática sobre o Seam Framework com
foco no desenvolvimento de projetos web. O desenvolvimento web com Java EE
com seus inúmeros componentes exige um grande conhecimento acerca de sua
estrutura. A despeito de constituir uma plataforma seus componentes não são
coesos necessitando de muito trabalho de programação na camada de negócio. O
Seam surge neste cenário como uma solução ágil de coesão e traz em seu
framework um conjunto de ferramentas para simplificar o desenvolvimento. Diante
disso, objetiva-se neste trabalho realizar um estudo do JBoss Seam e constatar a
viabilidade de seu uso em projetos web. Para tanto, um estudo de caso acerca da
construção de uma aplicação web para uma associação de classe foi construído,
com vistas a comprovar sua viabilidade e compreender o uso de seus componentes.
Para subsidiar esta pesquisa diversas referências oficiais foram consultadas, bem
como autores com literaturas consagradas por sua qualidade e acertividade sobre o
tema. Por fim, após a revisão teórica e a implementação foi possível discutir o
emprego e a viabilidade acerca do uso do framework, chegando a uma conclusão
positiva sobre o emprego do JBoss Seam.
ABSTRACT
This paper makes a theoretical and practical approach about Seam Framework
focusing on the development of web projects. The web development with Java EE
with its numerous components requires a great knowledge of their structure. Despite
provide a platform their components are not very cohesive needing programming
work in the business layer. Seam arises in this scenario as an agile solution cohesion
and bring in your framework a set of tools to simplify development. Therefore, the
objective of this research was to conduct a study from JBoss Seam and to prove the
feasibility of its use in web projects. Therefore, a case study about building a web
application for an association class was built, in order to confirm your viability and
understand the use of their components. To support this research various official
references were consulted, as well as literature devoted to authors for their quality
and assertiveness about the topic. Finally, after reviewing theoretical and
implementation was possible to discuss the use and the feasibility about the use of
the framework, reaching a positive conclusion about use of JBoss Seam.
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 7
1.1 Justificativa ...................................................................................................... 8
1.2 Objetivo Geral................................................................................................... 9
1.3 Objetivos Específicos ...................................................................................... 9
2 PLATAFORMA JAVA ENTERPRISE EDITION – JAVA EE ................................. 10
2.1 Arquitetura Java EE ....................................................................................... 11
2.2 Componentes e Conteineres ........................................................................ 12
2.3 APIs da plataforma......................................................................................... 14
2.4 Tecnologias Requeridas pela Plataforma Java EE ..................................... 16
2.4.1 ENTERPRISE JAVABEANS (EJB) ........................................................... 16
2.4.2 JAVA SERVLET ........................................................................................ 17
2.4.3 JAVASERVER FACES - JSF .................................................................... 17
2.4.4 JAVASERVER PAGES - JSP.................................................................... 22
2.4.5 JAVASERVER PAGES STANDARD TAG LIBRARY - JSTL .................... 22
2.4.6 JAVA PERSISTENCE - JPA ..................................................................... 22
2.4.7 JAVA TRANSACTION - JTA ..................................................................... 23
2.4.8 JAVA API FOR RESTFUL WEB SERVICES - REST................................ 24
2.4.9 MANAGED BEANS ................................................................................... 24
2.4.10 CONTEXTS AND DEPENDENCY INJECTION FOR THE JAVA EE
PLATFORM (JSR 299) - CDI ............................................................................. 24
2.4.11 BEAN VALIDATION ................................................................................ 25
2.4.12 JAVA MESSAGE SERVICE - JMS.......................................................... 25
2.4.13 JAVA EE CONNECTOR ARCHITECTURE - JCA .................................. 25
2.4.14 JAVAMAIL ............................................................................................... 25
2.4.15 JAVA AUTHORIZATION CONTRACT FOR CONTAINERS - JACC ...... 26
2.4.16 JAVA AUTHENTICATION SERVICE PROVIDER INTERFACE FOR
CONTAINERS - JASPIC .................................................................................... 26
2.5 Serviços Padrão do Java EE ......................................................................... 26
3 SEAM FRAMEWORK ............................................................................................ 28
3.1 Integração entre o JBoss Seam e o Java EE............................................... 28
3.2 Modelo de Componentes .............................................................................. 29
3.3 Bijeção ............................................................................................................ 30
3.4 Contexto de Componentes ........................................................................... 31
3.5 Eventos Seam................................................................................................. 32
3.6 Seam Data Validation..................................................................................... 33
3.7 Página de Navegação .................................................................................... 35
3.7.1 ELEMENTOS DE NAVEGAÇÃO............................................................... 35
3.8 Biblioteca de Tags do JBoss Seam.............................................................. 37
3.8.1 TAGS DE NAVEGAÇÃO ........................................................................... 37
3.8.2 TAGS DE SELEÇÃO ................................................................................. 38
3.8.3 TAGS DE FORMATAÇÃO ........................................................................ 39
3.9 RichFaces ....................................................................................................... 40
3.9.1 BIBLIOTECA DE TAGS DOS COMPONENTES RICHFACES ................. 40
3.9.2 TEMAS RICHFACES ................................................................................ 42
4 METODOLOGIA..................................................................................................... 44
4.1 Cenário ............................................................................................................ 44
4.2 Descrição da Proposta .................................................................................. 44
5 ESTUDO DE CASO: PROJETO JBOSS SEAM ................................................... 46
5.1 Ferramentas (Tecnologia) ............................................................................. 46
5.1.1 SERVIDOR DE APLICAÇÃO JBOSS AS.................................................. 46
5.1.2 SEAM FRAMEWORK................................................................................ 47
5.1.3 SISTEMA GERENCIADOR DE BANCO DE DADOS POSTGRESQL...... 48
5.1.4 ECLIPSE IDE ............................................................................................ 48
5.1.5 IREPORTS E JASPERREPORTS ............................................................ 49
5.2 Levantamento de Requisitos ........................................................................ 50
5.3 Modelagem do Sistema ................................................................................. 51
5.3.1 DIAGRAMA DE CASO DE USO ............................................................... 51
5.3.2 DIAGRAMA DE CLASSE .......................................................................... 51
5.4 Implementação ............................................................................................... 52
5.5 Avaliação e discussão ................................................................................... 60
6 CONCLUSÃO......................................................................................................... 61
7 REFERÊNCIAS BIBLIOGRÁFICAS ...................................................................... 63
7
1 INTRODUÇÃO
1.1 Justificativa
no mercado que com ele podem ser melhor trabalhados permitindo um enfoque
maior no negócio do que na programação de mais baixo nível.
Conhecer o Seam Framework na teoria e na prática, permite ao analista de
tecnologia da informação ou ao programador decidir se esta é a ferramenta
adequada para seu problema ou mesmo tomá-lo como solução para
desenvolvimento de suas aplicações.
No âmbito acadêmico, o estudo do JBoss Seam permitirá uma revisão dos
conceitos da programação para web com vistas ao uso de frameworks, preocupação
voltada para ao negócio com o devido respeito ao padrões de projetos, bem como
um aprofundamento no conhecimento das técnicas de programação.
Ainda que a versão Java EE 7 já tenha sido lançada e seja a versão corrente
da plataforma, neste trabalho será abordada a versão Java EE 6, haja vista ser o
padrão ainda mais comumente utilizado pela grande maioria dos desenvolvedores e
ser a plataforma utilizada no estudo de caso.
Como se vê na figura 2, cada componente tem uma função especifica, a
saber:
- Os componentes JPA(Java Persistence API), JTA(Java Transaction API) e
JMS(Java Message Service) são responsáveis por fornecer os serviços básicos
como banco de dados acesso, transações e mensagens.
12
Os Entity Beans representam objetos que vão persistir numa base de dados
ou outra unidade de armazenamento. Também controlam a persistência de dados,
definindo o padrão para:
- Criação de metadados, mapeamento de entidades para tabelas do modelo
relacional;
- API EntityManager, API para realização de CRUD (create, retrieve, update e
delete);
- Java Persistence Query Language (JPQL), linguagem semelhante ao SQL
ANSI para pesquisa de dados persistidos;
@Stateless
public class PessoaDao(){
public void salvar(Pessoa pessoa){
//...
}
}
@WebServlet(name=”Pedido”, urlPatterns={“/Pedido”})
public class Pedido extends HttpServlet {
//...
}
dados entre requisições, que não onerasse tanto a aplicação e oferece suporte ao
modelo statefull do framework, onde é possível manter os dados durante quantas
requisições forem necessárias, desde que todas estas sejam realizadas para a
mesma view. (PACHECO, 2013)
Um dos fundamentos de maior relevância do JSF é seu ciclo de vida que se
dá entre a requisição e a resposta do servidor de aplicação. Este ciclo está
respresentado na figura abaixo:
O Java Persistence API (JPA) é uma solução baseada em padrões Java para
persistência. Persistência que usa um objeto/abordagem relacional para preencher a
23
2.4.14 JAVAMAIL
3 SEAM FRAMEWORK
Ao longo deste capítulo serão listados vários serviços e utilitários que o JBoss
Seam fornece.
@Name("minhaClasse")
public class MinhaClasse{
3.3 Bijeção
@In
private AlgumBean algumBean
ou
@In
public AlgumBean getAlgumBean(){
return algumBean;
}
@Out
private AlgumBean algumBean
ou
@Out
public AlgumBean getAlgumBean(){
return algumBean;
}
Não convém aqui voltar a descrevê-los visto que já foram alvo de estudo no
capítulo anterior.
Os contextos Seam são complementares e distintos dos contextos do Java
EE. No Entanto, alguns deles são internamente os mesmos contextos do Java EE. O
Seam disponibiliza os seguintes contextos: stateless, event, page, conversation,
session, business process e application.
- Stateless: Contexto para armazenar a referência para objetos sem estado
em session stateless EJB).
- Event: É equivalente ao contexto request do Java EE. Recebe outro nome
em razão de ser utilizado em outras situações além de requisições Web como
invocação RMI ou invocação via Seam Remoting aos componentes Seam. Este
contexto está associado ao ciclo de vida JSF. Durante o processamento do ciclo de
vida os objetos associados estarão disponíveis e serão eliminados somente ao final
do ciclo de vida JSF. Este contexto tem o tempo de vida de uma requisição Ajax
realizada pelas bibliotecas de componentes visuais JSF com suporte a Ajax.
- Page: Permite armazenar objetos que são criados e usados em uma tela
JSF. Este contexto pode ser comparado com o contexto page do Java EE. Contudo,
um objeto armazenado neste contexto estará diponível somente para a página JSF
correspondente que o instanciou a partir de algum listener de evento. Como a
documentação sugere, este contexto é útil em alguns componentes visuais como,
por exemplo, numa lista clicável de opções que precisa de um objeto com valores
específicos para esta lista e página JSF. Objetos neste contexto estarão disponíveis
mesmo em sucessivas requisições Ajax a partir de componentes visuais a partir do
navegador web.
- Conversation: Este contexto é considerado o grande diferencial do JBoss
Seam, o qual agrega valor no desenvolvimento de aplicações Web com JSF. O
contexto de conversação permite armazenar objetos que terão um tempo de vida
32
maior que uma requisição (event) e menor que uma sessão (session). Com este
contexto é possível definir um escopo para objetos que são usados para
implementar um fluxo de telas que realizam um caso de uso. Em um Componente
Seam é possível anotar o início da conversação e em outro método usar outra
anotação para demarcar o fim da conversação. (@Begin e @End). Funcionando
dessa forma é possível abrir várias janelas de navegação para uma mesma tela JSF
e cada janela representar uma conversação diferente (contexto diferente de objetos)
para execução simultânea do mesmo caso de uso. Cada janela é um contexto
separado que não influência um outro contexto aberto.
- Session: Este contexto é equivalente ao contexto Java EE de mesmo nome.
Define um escopo para manter objetos no contexto enquanto o usuário estiver
logado na aplicação
- Business Process: Define um contexto para objetos que são associados a
um processo de negócio gerenciado pelo jBPM. Objetos armazenados neste
contexto pertencem a um processo e podem ser compatilhados entre vários usuários
que acessam o mesmo processo de negócio. Só faz sentido usar este escopo se a
máquina de processos implementada pelo jBPM estiver em uso numa aplicação
Java EE em conjunto com o JBoss Seam.
- Application: É equivalente ao contexto Java EE de mesmo nome. Objetos
armazenados neste contexto estarão disponíveis para todas as conversações e
usuários que acessam a aplicação. É útil ao armazenar objetos com conteúdo que
não mudam com freqüência para compatilhar para toda aplicação. Muitos objetos
internos do próprio Seam são armazenados neste contexto.
@Length(max=2, min=2)
private Char uf;
@NotNull
private String nome;
@Length(max=8)
@Pattern("^\d*$")
private String cep;
/*Getters e Setters*/
}
<h:form>
<div>
<h:messages/>
</div>
<div>
Estado:
<h:inputText value="#{cidade.uf}">
<s:validate/>
</h:inputText>
</div>
<div>
Nome da Cidade:
<h:inputText value="#{cidade.nome}">
<s:validate/>
</h:inputText>
</div>
<div>
Cep:
<h:inputText value="#{cidade.cep}">
<s:validate/>
</h:inputText>
</div>
<div>
<h:commandButton/>
</div>
</h:form>
Ou simplesmente:
<h:form>
<div>
<h:messages/>
</div>
<s:validateAll>
<div>
Estado:
35
<h:inputText value="#{cidade.uf}"/>
</div>
<div>
Nome da Cidade:
<h:inputText value="#{cidade.nome}"/>
</div>
<div>
Cep:
<h:inputText value="#{cidade.cep}"/>
</div>
<div>
<h:commandButton/>
</div>
<s:validateAll>
</h:form>
<redirect view-id="/Agenda/AgendaView.xhtml"/>
</rule>
</navigation>
</page>
...
<exception class="org.jboss.seam.security.AuthorizationException”>
<end-conversation/>
<redirect view-id=”/generalError.xhtml”>
<message>
Você não tem autorização para acessar o recurso
</message>
</redirect>
</exception>
Uma biblioteca estendida de tags JSF é definida pelo Seam para fornecer
controle sobre a navegação de conversação, menu simplificado, validação de beans
bem como para formatação componente.
Para possibilitar esta integração e o uso da biblioteca de Tags do Seam é
necessário declarar seu uso. Isso pode ser feito através de facelets:
/* Na versão 2.3.0.Final */
xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.org/schema/seam/taglib"
<s:link> Link que executa um pedido GET para invocar uma ação e permite a
propagação da convesação.
<s:button> Botão que executa uma requisição GET para invocar uma ação e
permite a propagação da convesação.
<s:conversationId> Adiciona um ID a conversação em para um link ou botão JSF.
<s:conversation Propagation> Permite a propagação da conversação podendo
ser controlado por um link ou botão de comando do JSF.
<s:defaultAction> Configura um botão (por exemplo, <h:commandButton>) como
ação padrão quando o formulário é enviado usando a tecla Enter (Return).
Estas foram apenas algumas das tags possíveis de serem utilizadas com o
Seam Framework. Segue abaixo uma lista completa das tags disponibilizadas pelo
JBoss Seam:
- s:button - s:graphicImage
- s:cache - s:label
- s:conversationId - s:link
- s:conversationName - s:message
- s:conversationPropagation - s:remote
- s:convertAtomicBoolean - s:resource
- s:convertAtomicInteger - s:selectItems
- s:convertAtomicLong - s:selection
- s:convertDateTime - s:span
- s:convertEntity - s:taskId
- s:convertEnum - s:token
- s:decorate - s:transformImageBlur
- s:defaultAction - s:transformImageSize
- s:div - s:transformImageType
- s:download - s:validate
- s:enumItem - s:validateAll
- s:fileUpload - s:validateEquality
- s:formattedText - s:validateFormattedText
- s:fragment
40
3.9 RichFaces
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
- a4j:actionparam - a4j:log
- a4j:ajaxListener - a4j:mediaOutput
- a4j:commandButton - a4j:outputPanel
- a4j:commandLink - a4j:page
- a4j:facet - a4j:poll
- a4j:form - a4j:portlet
- a4j:htmlCommandLink - a4j:push
- a4j:include - a4j:queue
- a4j:jsFunction - a4j:region
- a4j:keepAlive - a4j:repeat
- a4j:loadBundle - a4j:status
- a4j:loadScript - a4j:support
- a4j:loadStyle
- rich:ajaxValidator - rich:dropDownMenu
- rich:beanValidator - rich:dropListener
- rich:calendar - rich:progressBar
- rich:changeExpandListener - rich:recursiveTreeNodesAdaptor
- rich:colorPicker - rich:scrollableDataTable
- rich:column - rich:scrollerListener
- rich:columnGroup - rich:separator
- rich:columns - rich:simpleTogglePanel
- rich:comboBox - rich:sliderListener
- rich:componentControl - rich:spacer
- rich:contextMenu - rich:subTable
- rich:currentDateChangeListener - rich:suggestionbox
- rich:dataDefinitionList - rich:tab
- rich:dataFilterSlider - rich:tabPanel
- rich:dataGrid - rich:toggleControl
- rich:dataList - rich:togglePanel
- rich:dataOrderedList - rich:toolBar
- rich:dataTable - rich:toolBarGroup
- rich:datascroller - rich:toolTip
- rich:dndParam - rich:tree
- rich:dragIndicator - rich:treeNode
- rich:dragListener - rich:treeNodesAdaptor
- rich:dragSupport - rich:virtualEarth
42
complexas com poucas classes java, interfaces com usuário poderosas e com
arquivos XML de configuração.
44
4 METODOLOGIA
4.1 Cenário
Um dos requisitos da aplicação é que seja acessado via web por meio de um
browser. Com o uso do Seam Framework, a escolha natural de um servidor de
aplicação é pelo JBoss Application Server. Contudo convém esclarecer que seria
possível o uso de qualquer outro conteiner web que suportasse Java EE como
descrito no capítulo 2.
A versão do JBoss AS escolhida foi a 7.1 em razão da compatibilidade com a
versão do JBoss Seam empregada e por suportar o uso das versões mais recentes
dos componentes assessórios.
- Visual Web Tools: editor visual que permite trabalhar com qualquer
tecnologia web, tais como JSF (suporte a Richfaces), Seam, JSP, HTML e outros;
- JBoss Server Manager: ferramentas para gerenciamento do servidor de
aplicações JBoss;
- JSF Tools: ferramentas para desenvolvimento JSF;
- entre outras.
5.4 Implementação
<persistence:managed-persistence-context
name="entityManager" auto-create="true" persistence-unit-jndi
name="java:/amdepolEntityManagerFactory"/>
<persistence:entity-manager-factory name="entityManagerFactory"
persistence-unit-name="amdepol" installed="false"/>
@Entity
@Table(name="PESSOA",
uniqueConstraints=@UniqueConstraint(columnNames="PES_NOME"))
@Name("pessoa")
@Inheritance(strategy=InheritanceType.JOINED)
@SequenceGenerator(name="SEQ_ID_PESSOA",
sequenceName="SEQ_ID_PESSOA", allocationSize=1, initialValue=1)
public class Pessoa implements Serializable{
...
}
@Name("associadoAction")
@Scope(ScopeType.CONVERSATION)
public class AssociadoAction{
...
@Begin(join=true)
public String novo(){
setAssociado(new Associado());
return ("editarAssociado");
}
@End
public String salvar(){
try{
associado = entityManager.merge(associado);
entityManager.flush();
facesMessages.add("#{messages.salvaSucesso}");
return "mostrarAssociado";
}catch (PersistenceException e) {
facesMessages.add("#{messages.duplicidade}");
return null;
}
}
...
}
@Name("associadoAction")
@Scope(ScopeType.CONVERSATION)
public class AssociadoAction{
public AssociadoAction() {
}
@In
private EntityManager entityManager;
@In(required=false)
private EnderecoList enderecoList;
@In
private FacesMessages facesMessages;
@In(required=false, create=true)
@Out(required=false)
private Associado associado;
...
}
@DataModel
private List<Associado> associados;
@DataModelSelection
private Associado associadoSelecionado;
A criação das páginas JSF segue o mesmo padrão das aplicações JSF com
destaque ao uso de componentes específicos do Seam Framework, Richfaces e
Facelets.
Nesta aplicação foi utilizado o template padrão gerado pelo Seam-Gen
utilizando facelets e aplicadas as adaptações necessárias. Estas páginas já vem
com o namespace correspondente configurado como se vê abaixo:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:s="http://jboss.org/schema/seam/taglib"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
template="/layout/template.xhtml" >
<ui:define name="body">
...
No trecho acima uma tag Seam foi utilizada junto com o componente
<h:selectOneRadio> com a finalidade de invocar um converter do Seam
Framework, poupando o programador da implementação de um converter que o
caso requer.
<h:outputText value="#{doc.tipoDocumento.descricao}"/>
<h:outputText value="#{doc.numero}"/>
<h:outputText value="#{doc.orgaoEmissor}" />
<h:outputText value="#{doc.uf.sigla}"
rendered="#{not empty doc.uf.sigla}" />
</rich:list>
Este código foi utilizado no arquivo menu.xhtml e exemplifica, mais uma vez,
o uso de uma tag Seam, no caso para criação de um link. O componente
<s:link>, assim como o <s:button>, tem a possibilidade de encerrar, iniciar ou
juntar conversações. No caso em pauta está impedindo a propagação da
conversação findando-a. Consequentemente, a partir deste momento nenhum
componente disponível na conversação poderá ser mais utilizado.
Figure 25 - Menu
<exception class="org.jboss.seam.framework.EntityNotFoundException">
<redirect view-id="/error.xhtml">
<message severity="warn">Registro não encontrado</message>
</redirect>
</exception>
<exception class="javax.persistence.EntityNotFoundException">
<redirect view-id="/error.xhtml">
<message severity="warn">Registro não encontrado</message>
</redirect>
</exception>
<exception class="javax.persistence.EntityExistsException">
<redirect view-id="/error.xhtml">
<message severity="warn">Registro duplicado</message>
</redirect>
</exception>
60
Pode-se dizer que estes são recursos chaves do Seam Framework, que faz
com que ele se destaque dos demais frameworks para desenvolvimento web. Porém
não esgota suas possibilidades. Os exemplos se repetem inúmeras vezes na
aplicação para associação de classe. Não convém aqui ficar replicando código, pois
dessa forma o texto ficaria muito extenso.
No apêndice H é possível observar o código fonte da aplicação com inúmeros
pontos onde os conceitos do Seam Framework foram aplicados.
6 CONCLUSÃO
Por fim, é possível afirmar que o Seam Framework atualmente constitui uma
excelente ferramenta para desenvolvimento web, unido inúmeros recursos, novos e
outros já conhecidos, com performance, segurança e produtividade, sendo
extremante viável seu emprego em qualquer projeto web.
Neste trabalho foram abrangidos apenas algumas funcionalidades do Seam
Framework. Em estudos futuros é aconselhável outras abordagens ao tema como o
uso de jBPM visto que este combina a facilidade de desenvolvimento de aplicações
web, aqui abordadas, com fluxos de trabalho, fluxos de processos corporativos em
um mecanismo de processo flexível e escalável. Além, também, de enfatizar o
desenvolvimento utilizando EJB 3, visto que inicialmente o Seam veio para integrar
JSF com EJB 3.
63
7 REFERÊNCIAS BIBLIOGRÁFICAS
ALLEN, Dan. Seam in Action. MEAP Edition. Manning Early Access Program, 2008.
FARLEY, Jim. Projetos Práticos com Jboss Seam. Rio de Janeiro: Editora Ciência
Moderna Ltda., 2008.
GUPTA, Arun. Java EE 6 – Pocket Guide. 1ª Edition. USA: O’Reilly Media, Inc.,
2012.
K19 Treinamentos. Desenvolvimento Web com JSF2 e JPA2. São Paulo, 2012.
SALTER, David. Seam 2.x Web Development - Build Robust Web Applications
with Seam, Facelets, and RichFaces, using the JBoss Application Server.
Olton-UK: Packt Publishing Ltd., 2009.
STORI, Daniel Augusto. Uma Breve História dos Patterns (JEE) – 2010.
Disponível em <http://coliriodamente.wordpress.com/2010/09/02/uma-breve-historia-
dos-patterns-jee/>. Acesso em 15 de maio de 2013.
Histórico da Revisão
Data Versão Descrição Autor
Levantamento de requisitos in
19/04/2013 1.0 RICARDO R BARCELAR
loco na sede da Associação
22/04/2013 1.1 Revisão pelo stakeholder RICARDO R BARCELAR
1. Introdução
1.1 Objetivo
Elicitar os requisitos funcionais de uma aplicação web para a Associação de
Classe.
1.3 Referências
- Ficha de cadastro dos associados
- Ficha de cadastro de funcionários
- Ficha de controle de hospedagem
- Livro de patrimônio
- Planilha contendo relação de fornecedores
- Planilha contendo relação de instituições
2. Requisitos Funcionais
RF_01: Manter cadastro dos associados – Manter uma relação completa dos
associados incluindo nos dados cadastrais endereços, telefones e e-mail’s.
• Fonte da Informação: Stakeholders
• Prioridade: [X] Essencial [ ] Importante [ ] Desejável
RF_13: Manter Agenda – Manter uma agenda que possibilite o controle dos
compromissos da associação, bem como as reservas de espaços privados
dentro do clube, tais como campo de futebol, áreas de churrasqueira e salão
de festas.
• Fonte da Informação: Stakeholders
• Prioridade: [ ] Essencial [X] Importante [ ] Desejável
Histórico da Revisão
Data Versão Descrição Autor
Levantamento de requisitos in
19/04/2013 1.0 RICARDO R BARCELAR
loco na sede da Associação
22/04/2013 1.1 Revisão pelo stakeholder RICARDO R BARCELAR
1. Introdução
1.1 Objetivos
Elicitar os requisitos não-funcionais de uma aplicação web para a Associação
de Classe.
1.3 Referências
- Estatuto da Associação de Classe
2. Requisitos Não-Funcionais
RNF_06: Cor predominante Azul – O sistema deve ter em seu design a cor
predominante azul, de modo a dar uma identidade visual com a cor da
Associação.
• Fonte da Informação: Stakeholders
• Prioridade: [ ] Essencial [ ] Importante [X] Desejável
REGRAS DE NEGÓCIO
Histórico da Revisão
Data Versão Descrição Autor
Levantamento de requisitos in
19/04/2013 1.0 RICARDO R BARCELAR
loco na sede da Associação
22/04/2013 1.1 Revisão pelo stakeholder RICARDO R BARCELAR
1. Introdução
1.1 Objetivos
Explicitar as regras de negócio da aplicação
1.3 Referências
- Estatuto da Associação de Classe
2. Regras de Negócios
RN_07: Uso das áreas privativas – O uso das áreas privativas é restrito
somente aos associados e quando reservados ao seus convidados. Dessa
forma, o sistema deverá restringir a reserva destes locais somente ao
responsável associado.
NÚMERO UC001
CASO DE USO Logar no Sistema
DESCRIÇÃO Usuário para acessar o sistema de dever informar usuário e
senha válidos
ATOR Usuário
CENÁRIO PRINCIPAL Sistema permite o acesso
1) Usuário para acessar o sistema deve informar a URL na qual será exibida a tela de login
do sistema.
2) Usuário informa, nos campos correspondentes e previamente cadastrado, seu usuário e
senha.
3) Sistema valida as informações.
4) Sistema concede acesso as funcionalidades.
5) Sistema encerra o caso de uso.
NÚMERO UC002
CASO DE USO Manter Usuário
DESCRIÇÃO Caso de uso responsável por manter o cadastro de usuários do
sistema.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar Usuário
1) Admin realiza login e obtém acesso ao sistema.
2) Admin solicita o formulário de cadastro de usuário.
3) Sistema exibe o formulário de cadastro de usuário.
4) Admin informa os dados requeridos, bem como vincula este usuário a um funcionário.
5) Sistema verifica se há duplicidade de login.
6) Sistema exibe os dados para confirmação.
7) Admin confirma o cadastro.
8) Sistema registra o Usuário.
9) Sistema emite a mensagem “Usuário cadastrado com sucesso.”
10) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar Autor (login já existente)
1) Admin realiza login e obtém acesso ao sistema.
2) Admin solicita o formulário de cadastro de usuário.
3) Sistema exibe o formulário de cadastro de usuário.
4) Admin informa os dados requeridos.
5) Sistema verifica se há duplicidade de login.
6) Sistema detecta duplicidade de login.
7) Sistema emite a mensagem “Nome de usuário (login) existente. Informe um login
diferente.”
8) Sistema verifica se há duplicidade de login.
9) Sistema exibe os dados para confirmação.
10) Admin confirma o cadastro.
11) Sistema registra o Usuário.
12) Sistema emite a mensagem “Registro realizado com sucesso.”
13) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar Usuário
1) Admin realiza login e obtém acesso ao sistema.
2) Admin aciona formulário de consulta de Usuários e informa o parâmetro de busca.
3) Sistema busca as informações e exibe o formulário com os dados do Usuário selecionado.
4) Sistema apresenta o resultado da consulta em uma lista.
5) Admin aciona a funcionalidade de edição do usuário.
6) Sistema carregas as informações do usuário selecionado.
7) Admin informa as alterações.
8) Sistema exibe os dados para confirmação.
9) Admin confirma as informações.
10) Sistema registra as alterações.
11) Sistema emite a mensagem “Alteração realizada com sucesso.”
12) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O nome de usuário (login) deve ser único no sistema.
2) Em caso de Edição não é permitido a alteração no nome do usuário (login).
PRÉ CONDIÇÃO Cadastrado: Não especificado
Edição: Admin deve estar logado no sistema
PÓS CONDIÇÃO Usuário cadastrado/alterado
NÚMERO UC003
CASO DE USO Manter Apartamento
DESCRIÇÃO Caso de uso responsável por manter o cadastro de
apartamentos disponíveis no hotel.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar Apartamento
1) Admin solicita o formulário de cadastro de apartamento.
2) Sistema exibe o formulário de cadastro de apartamento.
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar Apartamento (Apartamento já existente)
1) Admin solicita o formulário de cadastro de apartamento.
2) Sistema exibe o formulário de cadastro de apartamento.
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de apartamento para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar Apartamento
1) Admin aciona formulário de consulta de apartamento e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) apartamento(s) encontrado(s).
3) Admin aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do apartamento selecionado.
5) Admin informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir Apartamento
1) Admin aciona formulário de consulta de apartamento e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) apartamento(s) encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do apartamento selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir Apartamento (Violação de Chave Estrangeira)
1) Admin aciona formulário de consulta de apartamento e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) apartamento(s) encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do apartamento selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição do apartamento deve ser único
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC004
CASO DE USO Manter Situação do Associado
DESCRIÇÃO Caso de uso responsável por manter o cadastro de situação do
associado.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar situação do associado
1) Admin solicita o formulário de cadastro de situação do associado .
2) Sistema exibe o formulário de cadastro de situação do associado .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar situação do associado ( situação do associado já
existente)
1) Admin solicita o formulário de cadastro de situação do associado .
2) Sistema exibe o formulário de cadastro de situação do associado .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de situação do associado para nova
tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar situação do associado
1) Admin aciona formulário de consulta de situação do associado e informa o parâmetro de
busca.
2) Sistema busca as informações e exibe uma grid com a(s) situação(ões) do(s)
associado(s) encontrado(s).
3) Admin aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da situação do associado selecionada.
5) Admin informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir situação do associado
1) Admin aciona formulário de consulta de situação do associado e informa o parâmetro de
busca.
2) Sistema busca as informações e exibe uma grid com a(s) situação(ões) do(s)
associado(s) encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da situação do associado selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir situação do associado (Violação de Chave
Estrangeira)
1) Admin aciona formulário de consulta de situação do associado e informa o parâmetro de
busca.
2) Sistema busca as informações e exibe uma grid com a(s) situação(ões) do(s)
associado(s) encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da situação do associado selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição da situação do associado deve ser única
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC005
CASO DE USO Manter Tipo de Associado
DESCRIÇÃO Caso de uso responsável por manter o cadastro de tipo de
associado.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar tipo de associado
1) Admin solicita o formulário de cadastro de tipo de associado .
2) Sistema exibe o formulário de cadastro de tipo de associado .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar tipo de associado (Tipo de associado já existente)
1) Admin solicita o formulário de cadastro de tipo de associado .
2) Sistema exibe o formulário de cadastro de tipo de associado .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de tipo de associado para nova
tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar tipo de associado
1) Admin aciona formulário de consulta de apartamento e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) tipo(s) de associado(s)
encontrado(s).
3) Admin aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do tipo de associado selecionado.
5) Admin informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir tipo de associado
1) Admin aciona formulário de consulta de tipo de associado e informa o parâmetro de
busca.
2) Sistema busca as informações e exibe uma grid com o(s) tipo(s) de associado(s)
encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do tipo de associado selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir tipo de associado (Violação de Chave Estrangeira)
1) Admin aciona formulário de consulta de tipo de associado e informa o parâmetro de
busca.
2) Sistema busca as informações e exibe uma grid com o(s) tipo(s) de associado(s)
encontrado(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do tipo de associado selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição do tipo de associado deve ser único
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC006
CASO DE USO Manter Turma
DESCRIÇÃO Caso de uso responsável por manter o cadastro de turma.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar turma
1) Admin solicita o formulário de cadastro de turma.
2) Sistema exibe o formulário de cadastro de turma.
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar turma (Turma já existente)
1) Admin solicita o formulário de cadastro de turma .
2) Sistema exibe o formulário de cadastro de turma.
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de turma para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar turma
1) Admin aciona formulário de consulta de turma e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) turma (s) encontrada(s).
3) Admin aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da turma selecionada.
5) Admin informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir turma
1) Admin aciona formulário de consulta de turma e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) turma(s) encontrada(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da turma selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir turma (Violação de Chave Estrangeira)
1) Admin aciona formulário de consulta de turma e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) turma(s) encontrada(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da turma selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição da turma deve ser única
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC007
CASO DE USO Manter Unidade
DESCRIÇÃO Caso de uso responsável por manter o cadastro de unidade.
ATOR Admin
CENÁRIO PRINCIPAL Cadastrar unidade
1) Admin solicita o formulário de cadastro de unidade .
2) Sistema exibe o formulário de cadastro de unidade .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar turma (Unidade já existente)
1) Admin solicita o formulário de cadastro de unidade .
2) Sistema exibe o formulário de cadastro de unidade .
3) Admin informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de unidade para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar unidade
1) Admin aciona formulário de consulta de unidade e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) unidade(s) encontrada(s).
3) Admin aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da unidade selecionada.
5) Admin informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir unidade
1) Admin aciona formulário de consulta de unidade e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) unidade(s) encontrada(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da unidade selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir unidade (Violação de Chave Estrangeira)
1) Admin aciona formulário de consulta de unidade e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) unidade(s) encontrada(s).
3) Admin aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da unidade selecionado.
5) Admin clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Nome da unidade deve ser única
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC008
CASO DE USO Manter Associado
DESCRIÇÃO Caso de uso responsável por manter o cadastro de associados.
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar associado
1) Usuário solicita o formulário de cadastro de associado.
2) Sistema exibe o formulário de cadastro de associado.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar associado (Associado já existente)
1) Usuário solicita o formulário de cadastro de associado.
2) Sistema exibe o formulário de cadastro de associado .
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de associado para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Cadastrar associado pensionista
1) Usuário solicita o formulário de cadastro de associado.
2) Sistema exibe o formulário de cadastro de associado.
3) Usuário informa os dados requeridos informando que o associado é pensionista.
4) Sistema chama o caso de uso ”Informar vínculo do pensionista”.
5) Usuário informa o pensionista que a vincula.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Editar associado
1) Usuário aciona formulário de consulta de associado e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) associados(s) encontrado(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do associado selecionado.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir associado
1) Usuário aciona formulário de consulta de associados e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) associados(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do associado selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 5 Excluir associado (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de associado e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) associado(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do associado selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Matrícula e número do associado devem ser únicos
3) Lotação, tipo de associado e situação do associado são campos obrigatórios.
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC009
CASO DE USO Informar vínculo do pensionista
DESCRIÇÃO Caso de uso responsável por possibilitar a inserção de vínculo
do pensionista com associado falecido
ATOR Usuário
CENÁRIO PRINCIPAL Informar vínculo
1) Durante o cadastro ou atualização de um associado o usuário seleciona “Pensionista”
como tipo de associado.
2) Sistema renderiza um campo para o usuário informar qual o vínculo.
3) Usuário informa o vínculo.
4) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO Estar realizando o cadastro ou edição de um associado.
PÓS CONDIÇÃO
NÚMERO UC010
CASO DE USO Manter Funcionário
DESCRIÇÃO Caso de uso responsável por manter o cadastro de
funcionários.
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar funcionário
1) Usuário solicita o formulário de cadastro de funcionário.
2) Sistema exibe o formulário de cadastro de funcionário.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar funcionário(Funcionário já existente)
1) Usuário solicita o formulário de cadastro de funcionário.
2) Sistema exibe o formulário de cadastro de funcionário.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de funcionário para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar funcionário
1) Usuário aciona formulário de consulta de funcionário e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) funcionário(s) encontrado(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do funcionário selecionado.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir funcionário
1) Usuário aciona formulário de consulta de funcionário e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) funcionário(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do funcionário selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir funcionário (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de funcionário e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) funcionário(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do funcionário selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Dados do funcionários devem ser únicos
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC011
CASO DE USO Manter Fornecedor
DESCRIÇÃO Caso de uso responsável por manter o cadastro de fornecedor.
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar fornecedor
1) Usuário solicita o formulário de cadastro de fornecedor.
2) Sistema exibe o formulário de cadastro de fornecedor.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar fornecedor(Fornecedor já existente)
1) Usuário solicita o formulário de cadastro de fornecedor.
2) Sistema exibe o formulário de cadastro de fornecedor.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de fornecedor para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar fornecedor
1) Usuário aciona formulário de consulta de fornecedor e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) fornecedor(es) encontrado(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do fornecedor selecionado.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir fornecedor
1) Usuário aciona formulário de consulta de fornecedor e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) fornecedor(es) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do fornecedor selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir fornecedor(Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de fornecedor e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) fornecedore(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do fornecedor selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição do fornecedor deve ser único
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC012
CASO DE USO Manter hospedagem
DESCRIÇÃO Caso de uso responsável por manter o controle das
hospedagens no hotel.
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar hospedagem somente do associado
1) Usuário solicita o formulário de cadastro de hospedagem .
2) Sistema exibe o formulário de cadastro de hospedagem.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar hospedagem com acompanhante
1) Usuário solicita o formulário de cadastro de hospedagem .
2) Sistema exibe o formulário de cadastro de hospedagem.
3) Usuário informa os dados requeridos informa que há acompanhante(s).
4) Sistema chama o caso de uso “informar acompanhante”.
5) Usuário confirma os dados.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Cadastrar hospedagem (Hospedagem já registrada)
1) Usuário solicita o formulário de cadastro de hospedagem.
2) Sistema exibe o formulário de cadastro de hospedagem .
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de hospedagem para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Editar hospedagem
1) Usuário aciona formulário de consulta de hospedagem e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) hospedagem(s) encontrada(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da hospedagem selecionada.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir hospedagem
1) Usuário aciona formulário de consulta de hospedagem e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) hospedagem(s) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da hospedagem selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 5 Excluir hospedagem (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de hospedagem e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) hospedagem(s) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da hospedagem selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC013
CASO DE USO Informar acompanhante
DESCRIÇÃO Caso de uso responsável por possibilitar o cadastro de
acompanhante de associado hospedado no hotel
ATOR Usuário
CENÁRIO PRINCIPAL Informar acompanhante
1) Durante o cadastro ou atualização de uma hospedagem o usuário seleciona a
funcionalidade de adicionar acompanhante.
2) Sistema renderiza uma tela de modo a possibilitar o cadastro dos dados do(a)
acompanhante.
3) Usuário informa os dados requeridos da acompanhante e confirma o cadastro.
4) Sistema valida as informações.
5 Sistema emite a mensagem “Acompanhante cadastrado com sucesso.”
6) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO Estar realizando um cadastro ou edição de hospedagem
PÓS CONDIÇÃO
NÚMERO UC014
CASO DE USO Manter Agenda
DESCRIÇÃO Caso de uso responsável por manter o registro de
compromissos e reserva de área privativa
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar agenda
1) Usuário solicita o formulário de cadastro de agenda.
2) Sistema exibe o formulário de cadastro de agenda.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar agenda (Agenda já registrada)
1) Usuário solicita o formulário de cadastro de agenda.
2) Sistema exibe o formulário de cadastro de agenda .
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de agenda para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar agenda
1) Usuário aciona formulário de consulta de agenda e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) agenda(s) encontrada(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da agenda selecionada.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir agenda
1) Usuário aciona formulário de consulta de agenda e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) agenda(s) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da agenda selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir agenda (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de agenda e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) agenda(s) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da agenda selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Não deve coincidir duas agendas na mesma data/hora
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC015
CASO DE USO Manter Instituição
DESCRIÇÃO Caso de uso responsável por manter o cadastro de instituição
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar instituição
1) Usuário solicita o formulário de cadastro de instituição.
2) Sistema exibe o formulário de cadastro de instituição.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar instituição(Instituição já registrada)
1) Usuário solicita o formulário de cadastro de instituição.
2) Sistema exibe o formulário de cadastro de instituição.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de instituição para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar instituição
1) Usuário aciona formulário de consulta de instituição e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) instituição(ões) encontrada(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações da instituição selecionada.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir instituição
1) Usuário aciona formulário de consulta de instituição e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) instituição(ões) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da instituição selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir instituição (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de instituição e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com a(s) instituição(ões) encontrada(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações da instituição selecionada.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) Descrição da instituição deve ser único
3) Os dados do representante da instituição é campo obrigatório.
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC016
CASO DE USO Manter Patrimônio
DESCRIÇÃO Caso de uso responsável por manter o cadastro de patrimônio
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar patrimônio
1) Usuário solicita o formulário de cadastro de patrimônio.
2) Sistema exibe o formulário de cadastro de patrimônio.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Cadastrar patrimônio (Patrimônio já registrado)
1) Usuário solicita o formulário de cadastro de patrimônio.
2) Sistema exibe o formulário de cadastro de patrimônio.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e detecta duplicidade.
5) Sistema emite a mensagem “Registro já existente”
6) Sistema exibe novamente o formulário de cadastro de patrimônio para nova tentativa
7) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Editar patrimônio
1) Usuário aciona formulário de consulta de patrimônio e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) patrimônio(s) encontrado(s).
3) Usuário aciona a funcionalidade de edição dos dados.
4) Sistema carregas as informações do patrimônio selecionado.
5) Usuário informa as alterações e confirma a alteração.
6) Sistema valida as informações e persiste os dados.
7) Sistema emite a mensagem “Registro realizado com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 3 Excluir patrimônio
1) Usuário aciona formulário de consulta de patrimônio e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) patrimônio(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do patrimônio selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e realiza a operação.
7) Sistema emite a mensagem “Registro excluído com sucesso.”
8) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 4 Excluir patrimônio (Violação de Chave Estrangeira)
1) Usuário aciona formulário de consulta de patrimônio e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) patrimônio(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema carregas as informações do patrimônio selecionado.
5) Usuário clica no botão excluir e confirma a operação.
6) Sistema verifica os vínculos e detecta violação de chave estrangeira.
7) Sistema emite a mensagem “O registro não pode ser excluído – Vínculo existente.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
2) O número de patrimônio deve ser único
3) O número de patrimônio é campo obrigatório.
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC017
CASO DE USO Baixar Patrimônio
DESCRIÇÃO Caso de uso responsável baixar o patrimônio inservível
ATOR Usuário
CENÁRIO PRINCIPAL Baixar o patrimônio
1) Usuário aciona formulário de consulta de patrimônio e informa o parâmetro de busca.
2) Sistema busca as informações e exibe uma grid com o(s) patrimônio(s) encontrado(s).
3) Usuário aciona a funcionalidade de visualização dos dados.
4) Sistema exibe os dados do patrimônio e um botão para realizar a baixa.
5) Usuário clica em baixar material e confirma a operação.
6) Sistema realiza a baixa do material.
7) Sistema emite a mensagem “Patrimônio baixado com sucesso.”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO O usuário deve estar executando o caso de uso “Manter
patrimônio”
PÓS CONDIÇÃO Patrimônio não é apagado fisicamente, porém não é mais
acessível.
NÚMERO UC018
CASO DE USO Enviar e-mail
DESCRIÇÃO Caso de uso responsável pelo envio de e-mail a partir do
cadastro de associados
ATOR Usuário
CENÁRIO PRINCIPAL Enviar e-mail
1) Usuário solicita o formulário de envio de e-mail.
2) Sistema exibe o respectivo formulário.
3) Usuário chama o caso de uso “Selecionar destinatários”.
4) Sistema busca os e-mails dos associados selecionados.
5) Usuário redige a mensagem e informa o assunto.
6) Usuário clica no botão “Enviar mensagem”.
7) Sistema envia a mensagem aos associados selecionados e emite a mensagem “E-mail
enviado com sucesso”
8) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO O associado selecionado deve possuir e-mail registrado em
seu cadastro.
PÓS CONDIÇÃO
NÚMERO UC019
CASO DE USO Enviar SMS
DESCRIÇÃO Caso de uso responsável pelo envio de SMS a partir do
cadastro de associados
ATOR Usuário
CENÁRIO PRINCIPAL Enviar SMS
1) Usuário solicita o formulário de envio de SMS.
2) Sistema exibe o respectivo formulário.
3) Usuário chama o caso de uso “Selecionar destinatários”.
4) Sistema busca os números de telefone celulares dos associados selecionados.
5) Usuário redige a mensagem e informa o assunto.
6) Usuário clica no botão “Enviar mensagem”.
7) Sistema se conecta ao gateway de envio dos SMS’s.
8) Sistema envia a mensagem aos associados selecionados e emite a mensagem “SMS
enviado com sucesso”
9) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO O associado selecionado deve possuir e-mail registrado em
seu cadastro.
PÓS CONDIÇÃO
NÚMERO UC020
CASO DE USO Selecionar destinatários
DESCRIÇÃO Caso de uso responsável por filtrar os associados selecionados
como destinatários de e-mail ou SMS
ATOR Usuário
CENÁRIO PRINCIPAL Selecionar destinatários para e-mail
1) Estando na tela de envio de e-mail o usuário inicia o filtro de associados que receberão a
mensagem.
2) Sistema filtra os associados e constrói uma lista de e-mails quando o caso de uso origem
é o “Enviar e-mail”
3) Sistema libera o envio da mensagem.
4) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 1 Selecionar destinatários para SMS
1) Estando na tela de envio de SMS o usuário inicia o filtro de associados que receberão a
mensagem.
2) Sistema filtra os associados e constrói uma lista de telefones celulares quando o caso de
uso origem é o “Enviar SMS”
3) Sistema libera o envio da mensagem.
4) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) O usuário deve estar logado no sistema
PRÉ CONDIÇÃO O usuário deve estar executando o caso de uso “Enviar e-
mail” ou “Enviar SMS”.
PÓS CONDIÇÃO Lista de e-mail selecionados pronto para uso
NÚMERO UC021
CASO DE USO Manter agenda de envio
DESCRIÇÃO Caso de uso responsável pelo envio de SMS programado a
partir do cadastro de associados
ATOR Usuário
CENÁRIO PRINCIPAL Cadastrar agenda de envio
1) Usuário solicita o formulário de cadastro de agenda de envio de SMS.
2) Sistema exibe o formulário de cadastro de agenda de envio de SMS.
3) Usuário informa os dados requeridos e confirma o cadastro.
4) Sistema valida as informações e persiste os dados.
5) Sistema emite a mensagem “Registro realizado com sucesso.”
6) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Acionar o envio do SMS
1) Sistema monitora o cadastro de agenda de envio.
2) Sistema detecta que há um SMS a ser enviado.
3) Sistema aciona o caso de uso “Enviar SMS” passando como parâmetro os destinatários.
4) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
1) Deve ser usado a API do Quartz para monitorar a agenda.
PRÉ CONDIÇÃO
PÓS CONDIÇÃO
NÚMERO UC022
CASO DE USO Gerar Relatório
DESCRIÇÃO Caso de uso responsável pela geração de relatórios em PDF
ATOR Usuário
CENÁRIO PRINCIPAL Gerar relatório
1) Usuário solicita o formulário de geração de relatório a partir de um menu de opções.
2) Sistema exibe o formulário para parametrizar o relatório.
3) Usuário informa os dados requeridos e confirma a geração do relatório.
4) Sistema valida as informações, busca as informações no banco de dados e gera um
documento em PDF com as informações solicitadas.
5) Sistema encerra o caso de uso.
CENÁRIO ALTERNATIVO 2 Gerar etiquetas PIMACO de endereço
1) Usuário solicita o formulário de geração de relatório a partir de um menu de opções.
2) Sistema exibe o formulário para parametrizar a geração das etiquetas.
3) Usuário informa os dados requeridos e confirma a geração do relatório.
4) Sistema valida as informações, busca as informações no banco de dados e gera um
documento em PDF com a formatação própria para impressão em formulário de etiquetas
PIMACO.
5) Sistema encerra o caso de uso.
REQUISITOS ESPECIAIS
PRÉ CONDIÇÃO
PÓS CONDIÇÃO Documento PDF gerado
APÊNDICE F
DIAGRAMA DE CLASSE
APÊNDICE G
TELAS DO SISTEMA
Figura G:2 – Tela principal com exibição do menu com as funcionalidades. Menu criado a
partir do componente rich:menu
Figura G:5 – Tela de edição de associado com abertuda de um Modal Panel para insersão de
endereço fazendo uso do componente rich:select. A esquerda da tela uma lista de
dependentes fazendo uso do componente rich:list. Na parte inferior o envio e renderização de
fotografias
Figura G:6 – Tela de cadastro de hospedagem com adição de acompanhante por meio de um
Modal Panel
Figura G:9 – Tela de envio de SMS. Esta funcionalidade se conecta a um Gateway SMS
provedor do serviço por meio de um WebService
Figura G:10 – Tela de geração de relatório parametrizado. Esta funcionalidade utiliza o
JasperReports para gerar o arquivo PDF
CÓDIGO FONTE