TiEspec - Sistema de Apoio a Construção de Especificações de Caso de Uso de Software

July 5, 2017 | Autor: Hermann Neto | Categoria: Software Engineering, Java Programming
Share Embed


Descrição do Produto

UNIVERSIDADE VILA VELHA

TiEspec – Sistema de Apoio a Construção de Especificações de Caso de Uso de Software

Hermann Miertschink Neto Orientador Prof. Msc. Cristiano Biancardi

VILA VELHA, ES 2012

  HERMANN MIERTSCHINK NETO

TiEspec – Sistema de Apoio a Construção de Especificações de Caso de Uso de Software Trabalho de conclusão de curso apresentado a Universidade Vila Velha, como parte dos requisitos para

a

obtenção

Bacharel

em

do

grau

Sistemas

Informação. Orientador Prof. Msc. Cristiano Biancardi

VILA VELHA, ES 2012  

de de

 

AGRADECIMENTOS   Agradeço primeiramente a Deus, por me permitir a oportunidade e a força para cursar estes quarto anos de graduação. Em segundo lugar, agradeço a minha família, por ter me dado aconselhamento durante este período, me apoiando sempre que precisei, e me ajudando a superar todas as dificuldades encontradas. Agradeço aos mestres, que dia após dia, me ensinavam um pouco mais sobre o gigantesco mundo da computação, em especial a profa. Msc. Susiléa de Abreu Dos Santos, pela oportunidade dada a mim durante a graduação, e a meu coordenador, prof. Msc. Cristiano Biancardi, pelo direcionamento e paciência durante a elaboração deste artefato. Sou grato também pelas amizades que tive a oportunidade de cultivar durante este período, que com certeza irão durar por longos anos.

 

 

“Procure ser um homem de valor, em vez de ser um homem de sucesso.” Albert Einstein

 

 

RESUMO   O ambiente computacional vêm crescendo em uma velocidade cada vez maior nos últimos anos, principalmente no que se diz respeito a velocidade de processamento de dados e ao barateamento de tecnologias. Para acompanhar esta velocidade de crescimento, os processos envolvidos na criação de softwares precisam ser melhorados, seja com inovações, otimizações de processos ou por meio de ferramentas computacionais especializadas. O TiEspec, sistema desenvolvido, se propõe a ser uma ferramenta que auxilie os analistas de sistemas a construírem descrições de caso de uso de software, e que permita a reutilização de cenários de caso de uso. Tudo isso de forma confiável, rápida, por meio de uma interface web. Para alcançar tais objetivos, foi utilizada a Análise e Projeto de Sistemas Orientados a Objetos, conceitos de UML, a linguagem de programação Java, o servidor de aplicação GlassFish e o banco de dados PostgreSQL. Ao término do projeto, foi possível criar a ferramenta com sucesso, provendo funcionalidades de manutenção de cenários de caso de uso, e permitindo o reuso destas na construção de caso de uso de software. Foi possível perceber que a automatização da criação e manutenção de descrições de caso de uso de software pode ser aplicada para melhorar o processo de desenvolvimento de software.

Palavras-Chave: Análise de Sistemas, Especificação de Sistemas, Elicitação de Casos de Uso, UML, Java, Arquitetura Java EE 6, PostgreSQL.    

 

 

LISTA DE TABELAS Tabela  1  –  Problemas,  Causas  e  Possíveis  Soluções  ..........................................................  22   Tabela  2  –  Fontes  de  Informação  e  Técnicas  Utilizadas  ..................................................  24   Tabela  3  –  Descrição  Sucinta  de  Casos  de  Uso  do  Sistema  .............................................  27   Tabela  4  –  Dicionário  de  Dados  –  Entidade  ..........................................................................  45   Tabela  5  –  Dicionário  de  Dados  –  Anexo  ................................................................................  46   Tabela  6  –  Dicionário  de  Dados  –  Artefato  ............................................................................  46   Tabela  7  –  Dicionário  de  Dados  –  Atores  ...............................................................................  46   Tabela  8  –  Dicionário  de  Dados  –  Cenário  .............................................................................  46   Tabela  9  –  Dicionário  de  Dados  -­‐  Cliente  de  Portal  ...........................................................  47   Tabela  10  –  Dicionário  de  Dados  –  Cliente  de  Projeto  .....................................................  47   Tabela  11  –  Dicionário  de  Dados  –  Configuração  de  Descrição  Estendida  .............  48   Tabela  12  –  Dicionário  de  Dados  –  Contatos  ........................................................................  48   Tabela  13  –  Dicionário  de  Dados  –  Dados  .............................................................................  49   Tabela  14  –  Dicionário  de  Dados  –  Descrição  Estendida  ................................................  49   Tabela  15  –  Dicionário  de  Dados  –  Documento  ..................................................................  50   Tabela  16  –  Dicionário  de  Dados  –  Fluxo  ...............................................................................  50   Tabela  17  –  Dicionário  de  Dados  –  Fluxo  Base  ....................................................................  50   Tabela  18  –  Dicionário  de  Dados  –  Perfil  ...............................................................................  50   Tabela  19  –  Dicionário  de  Dados  –  Projeto  ...........................................................................  51   Tabela  20  –  Dicionário  de  Dados  –  Usuário  ..........................................................................  51   Tabela  21  –  PF  –  Contagem  de  Tipos  de  Dados  ...................................................................  56   Tabela  22  –  PF  –  Contagem  de  Tipo  Transação  ..................................................................  57   Tabela  23  –  PF  –  Fator  de  Ajuste  ...............................................................................................  59   Tabela  24  –  Tabela  de  Produtividade  de  Profissionais  de  TI  ........................................  60   Tabela  25  –  Tempos  e  Custo  de  Desenvolvimento  ............................................................  61   Tabela  26  –  Disponibilização  de  Planos  do  Portal  .............................................................  62   Tabela  27  –  Simulação  de  Faturamento  do  Portal  .............................................................  62   Tabela  28  –  Descrição  do  Equipamento  da  Primeira  Proposta  Tecnológica   (DELL,2012)  .............................................................................................................................  63   Tabela  29  –  Descrição  do  Serviço  da  Segunda  Proposta  Tecnológica  (UNDER,   2012)  ...........................................................................................................................................  64   Tabela  30  –  Lista  de  tecnologias  Java  EE  6  (JAVA  MAGAZINE,  2012)  .......................  68   Tabela  31  –  Dicionário  de  Dados  –  Tabela  de  Relacionamento  Ator  x  Descrição   Estendida  ...................................................................................................................................  90   Tabela  32  –  Ícones  Utilizados  .....................................................................................................  93   Tabela  33  –  Componentes  do  JSF  e  do  PrimeFaces  Utilizados  .....................................  95   Tabela  34  –  Template  utilizado  na  Fábrica  de  Software  do  Grupo  Europa   Empreendimentos  e  Negócios  ........................................................................................  189   Tabela  35  –  Modelo  De  Descrição  utilizado  para  descrever  o  sistema  TiEspec  .  190  

 

 

LISTA DE FIGURAS Figura  1  –  Independência  entre  formato,  grau  de  abstração  e  detalhamento  de   um  caso  de  uso  (BEZERRA,  2007)  ..................................................................................  18   Figura  2  –  Diagrama  de  Pacotes  .................................................................................................  25   Figura  3  –  Diagrama  de  Casos  de  Uso  ......................................................................................  26   Figura  4  –  Diagrama  de  Classes  .................................................................................................  32   Figura  5  –  DS  –  Aprovação  de  Clientes  do  Portal  ...............................................................  34   Figura  6  –  DS  –  Aprovação  de  Clientes  do  Portal  ...............................................................  34   Figura  7  –  DS  –Aprovação  de  Usuários  ...................................................................................  35   Figura  8  –  DS  –  Atualizar  Ator  ....................................................................................................  35   Figura  9  –  DS  –  Cadastrar  Ato  .....................................................................................................  35   Figura  10  –  DS  –  Excluir  Ator  ......................................................................................................  35   Figura  11  –  DS  –  Listar  Atores  ....................................................................................................  36   Figura  12  –  DS  –Cadastrar  Descrição  Estendida  ................................................................  36   Figura  13  –  DS  –  Cadastrar  Projeto  ..........................................................................................  36   Figura  14  –  DS  –  Alterar  Projeto  ................................................................................................  37   Figura  15  –  DS  –  Excluir  Projeto  ................................................................................................  37   Figura  16  –  DS  –  Visualizar  Projeto  ..........................................................................................  37   Figura  17  –  DS  –  Configurar  Descrições  Estendidas  .........................................................  38   Figura  18  –  DS  –  Criar  Artefato  ..................................................................................................  38   Figura  19  –  DS  –  Alterar  Artefato  ..............................................................................................  38   Figura  20  –  DS  –  Excluir  Artefato  ..............................................................................................  39   Figura  21  –  DS  –  Imprimir  Descrição  Estendida  .................................................................  39   Figura  22  –  DS  –  Listar  Usuários  (Administrador)  ............................................................  40   Figura  23  –  DS  –  Solicitar  Cadastro  No  Portal  (Cliente  Existente)  ..............................  40   Figura  24  –  DS  –  Solicitar  Cadastro  no  Portal  (Cliente  Não  Existente)  .....................  41   Figura  25  –  DS  –  Visualizar  Cliente  de  Portal  .......................................................................  41   Figura  26  –  DTE  –  Cliente  de  Portal  .........................................................................................  42   Figura  27  –  DTE  –  Cliente  de  Projeto  .......................................................................................  43   Figura  28  –  DTE  –  Perfil  ................................................................................................................  43   Figura  29  –  DTE  -­‐  Projetos  ...........................................................................................................  44   Figura  30  –  DTE  –  Usuários  .........................................................................................................  45   Figura  31  –  Tabelas  de  Complexidade  Funcional  e  Contribuição  (VAZQUEZ,   SIMÕES,  ALBERT,  2010)  .....................................................................................................  56   Figura  32  –  Cálculo  de  Pontos  de  Função  ..............................................................................  60   Figura  33  –  Diagrama  de  Pacotes  Revisado  ..........................................................................  78   Figura  34  –  Divisão  de  Camadas  ................................................................................................  79   Figura  35  –  Divisão  de  Camadas  e  o  Relacionamento  com  Pacotes  de   Programação  ............................................................................................................................  80   Figura  36  –  Domínio  do  Problema  –  Modelo  –  Parte  I  .....................................................  82   Figura  37  –  Domínio  do  Problema  –  Modelo  –  Parte  II  ....................................................  83   Figura  38  –  Domínio  do  Problema  –  EJB  ................................................................................  84   Figura  39  –  Gerência  de  Tarefas  –  Managed  Bean  .............................................................  85   Figura  40  –  Gerência  de  Dados  –  Camada  DAO  –  Parte  I  ................................................  87   Figura  41  –  Gerência  de  Dados  –  Camada  DAO  –  Parte  II  ...............................................  88   Figura  42  –  Diagrama  Relacional  ..............................................................................................  89   Figura  43  –  Grid  960  (24)  .............................................................................................................  91    

  Figura  44  –  Grid  486  (18)  .............................................................................................................  92   Figura  45  –  Grid  432  (16)  .............................................................................................................  92   Figura  46  –  Classe  CSS  Width  ......................................................................................................  92   Figura  47  –  Classe  CSS  Dialog_Width  .......................................................................................  93   Figura  48  –  Exemplo  de  Mensagens  ao  Usuário  .................................................................  94   Figura  49  –  Exemplo  de  Botões  ..................................................................................................  95   Figura  50  –  Tela  de  Visualização  de  Atores  Cadastrados  ...............................................  97   Figura  51  –  Diálogo  de  Criação  de  Atores  ..............................................................................  97   Figura  52  –  Diálogo  de  Busca  de  Atores  .................................................................................  98   Figura  53  –  Tela  de  Visualização  de  Descrição  Estendida  –  Aba  Dados  Básicos  ..  98   Figura  54  –  Tela  de  Visualização  de  Descrição  Estendida  –  Aba  Tipos  de  Dados  99   Figura  55  –  Diálogo  de  Busca  de  Clientes  de  Portal  ..........................................................  99   Figura  56  –  DS  Revisado  –  Cadastrar  Ator  ..........................................................................  100   Figura  57  –  DS  Revisado  –  Atualizar  Ator  ............................................................................  100   Figura  58  –  DS  Revisado  –  Listar  Atores  ..............................................................................  100   Figura  59  –  DS  Revisado  –  Excluir  Ator  ................................................................................  100   Figura  60  –  DS  Revisado  –  Buscar  Projeto  Pré-­‐Impressão  ...........................................  101   Figura  61  –  DS  Revisado  –  Imprimir  Descrição  Estendida  ...........................................  101   Figura  62  –  DS  Revisado  –  Cadastrar  Dado  .........................................................................  101   Figura  63  –  Organização  dos  Módulos  de  Empacotamento  na  Visão  de   Codificação  ..............................................................................................................................  102   Figura  64  –  Diagrama  de  Implantação  ..................................................................................  103   Figura  65  –  Diagrama  de  Implantação  com  UML  .............................................................  103  

 

 

LISTA DE SIGLAS DE – Descrição Estendida DAO – Data Access Object DP – Domínio do Problema GD – Gerência de Dados GT – Gerência de Tarefas IU – Interface com Usuário SHA-1 – Secure Hash Algorithm MVC – Model, View and Controller UML – Unified Modeling Language XML – eXtensible Markup Language TI – Tecnologia da Informação IT – Information Technology PDS – Processo de Desenvolvimento de Software APF – Análise de Pontos de Função ALI – Arquivo Lógico Interno AIE – Arquivo de Interface Externa EE – Entrada Externa SE – Saída Externa CE – Consulta Externa TR – Tipos de Registros TD – Tipos de Dados AR – Arquivos Referenciados EJB - Enterprise Java Beans Java EE – Java Enterprise Edition JSF – Java Server Faces POJO – Plain And Old Java Object FSW-UVV – Fábrica de Software da Universidade de Vila Velha FSW-GEEN – Fábrica de Software do Grupo Europa Empreendimentos e Negócios RUP – Rational Unified Process

 

 

SUMÁRIO 1   Introdução  ..................................................................................................................  11   1.1   Motivação  e  Justificativa  ............................................................................................  12   1.2   Objetivos  ..........................................................................................................................  13   1.3   Metodologia  ....................................................................................................................  13   1.4   Descrição  dos  Capítulos  .............................................................................................  13   2   Conceitos  ....................................................................................................................  15   2.1   Análise  de  Requisitos  ..................................................................................................  15   2.2   Analista  de  sistemas  ....................................................................................................  15   2.3   Modelagem  de  Caso  de  Uso  .......................................................................................  16   2.3.1   Diagrama  de  Casos  de  Uso  ................................................................................................  16   2.3.2   Atores  .........................................................................................................................................  16   2.3.3   Descrição  de  Casos  de  Uso  ................................................................................................  17   3   Levantamento  e  especificação  de  Requisitos  .................................................  21   3.1   Descrição  do  Mini  Mundo  ..........................................................................................  21   3.2   Problemas,  Causas  e  Possíveis  Soluções  ...............................................................  22   3.3   Fontes  de  Informação  e  Técnicas  Utilizadas  .......................................................  24   3.4   Diagrama  de  Pacotes  ...................................................................................................  24   3.5   Modelagem  de  Caso  de  Uso  .......................................................................................  26   3.5.1   Diagrama  de  Casos  de  Uso  ................................................................................................  26   3.5.2   Descrição  de  Atores  .............................................................................................................  27   3.5.3   Descrição  de  Caso  de  Uso  ..................................................................................................  27   4   Especificação  de  Análise  ........................................................................................  30   4.1   Diagrama  de  Classes  ....................................................................................................  30   4.2   Diagramas  de  Sequência  ............................................................................................  33   4.3   Diagrama  de  Transição  de  Estados  ........................................................................  41   4.3.1   DTE  Cliente  de  Portal  ..........................................................................................................  42   4.3.2   DTE  Cliente  de  Projeto  ........................................................................................................  42   4.3.3   DTE  Perfil  .................................................................................................................................  43   4.3.4   DTE  Projeto  ..............................................................................................................................  43   4.3.5   DTE  Usuário  .............................................................................................................................  44   4.4   Dicionário  de  Dados  ....................................................................................................  45   5   Propostas  Tecnológicas  .........................................................................................  53   5.1   Pontos  de  Função  ..........................................................................................................  53   5.1.1   Elementos  de  Contagem  de  Pontos  de  Função  .........................................................  54   5.1.2   Contagem  de  Pontos  de  Função  ......................................................................................  55   5.1.2.1   Tabela  de  Pontos  de  Função  ....................................................................................................  56   5.1.3   Composição  da  Equipe  de  Desenvolvimento  ............................................................  60   5.1.4   Mão  de  obra  para  o  Desenvolvimento  do  Sistema  ..................................................  60   5.1.5   Plano  de  Venda  de  Serviço  ................................................................................................  61   5.1.6   Primeira  Proposta  Tecnológica  .......................................................................................  63   5.1.6.1   Custo  Operacional  ........................................................................................................................  63   5.1.6.2   Custo  de  Investimento  (CI)  .......................................................................................................  64   5.1.6.3   Custo  Total  .......................................................................................................................................  64   5.1.7   Segunda  Proposta  Tecnológica  .......................................................................................  64   5.1.7.1   Custo  Operacional  ........................................................................................................................  65   5.1.7.2   Custo  de  Investimento  (CI)  .......................................................................................................  65   5.1.7.3   Custo  Total  .......................................................................................................................................  65   5.1.8   Proposta  Escolhida  ...............................................................................................................  66  

 

  6   Especificação  de  Projeto  ........................................................................................  67   6.1   Escolha  da  Tecnologia  .................................................................................................  67   6.1.1   Java  ..............................................................................................................................................  67   6.1.2   Arquitetura  Java  EE  6  ..........................................................................................................  68   6.1.2.1   Enterprise  JavaBeans  (EJB)  ......................................................................................................  69   6.1.2.2   Java  Server  Faces  –  JSF  ...............................................................................................................  70   6.1.2.3   PrimeFaces  ......................................................................................................................................  71   6.1.2.4   JSP/Servlets  ....................................................................................................................................  71   6.1.2.5   Java  Persistence  API  e  Hibernate  ...........................................................................................  71   6.1.3   Servidor  de  Aplicação  ..........................................................................................................  72   6.1.4   Maven  .........................................................................................................................................  73   6.1.5   PostgreSQL  ...............................................................................................................................  74   6.1.6   Spring  Tool  Suite  ...................................................................................................................  74   6.1.7   Controle  de  Versões  .............................................................................................................  75   6.1.8   Apache  HTTP  Server  ............................................................................................................  75   6.2   Padrões  de  Projeto  e  Outras  Técnicas  ...................................................................  76   6.2.1   Plain  Old  Java  Object  ............................................................................................................  76   6.2.2   Suporte  a  Internacionalização  .........................................................................................  76   6.3   Arquitetura  do  Sistema  ..............................................................................................  77   6.3.1   Diagrama  de  Pacotes  ...........................................................................................................  77   6.3.2   Divisão  em  Camadas  ............................................................................................................  78   6.3.3   Camada  Domínio  do  Problema  ........................................................................................  80   6.3.4   Camada  Gerência  de  Tarefas  ............................................................................................  85   6.3.5   Camada  Gerência  de  Dados  ...............................................................................................  85   6.3.6   Dicionário  de  Dados  do  Diagrama  Gerência  de  Dados  ..........................................  88   6.3.7   Diagrama  Relacional  ............................................................................................................  88   6.3.8   Dicionário  de  Dados  do  Diagrama  Relacional  ..........................................................  90   6.3.9   Camada  de  Interface  ao  Usuário  .....................................................................................  90   6.3.9.1   Grids  Base  ........................................................................................................................................  90   6.3.9.2   Ícones,  Botões  e  Mensagens  .....................................................................................................  93   6.3.9.3   Componentes  JSF  e  PrimeFaces  utilizados  na  Interface  ..............................................  95   6.3.9.4   Exemplos  de  Telas  do  Sistema  ................................................................................................  97   6.3.10   Diagramas  de  Sequência  Revisados  ..............................................................................  99   6.3.11   Estrutura  do  Projeto  ..........................................................................................................  101   6.3.12   Diagrama  de  Implantação  ...............................................................................................  102   7   Políticas  de  Segurança  .........................................................................................  104   8   Conclusão  .................................................................................................................  106   9   Referências  bibliográficas  ..................................................................................  107   ANEXO  A  –  DESCRIÇÕES  ESTENDIDAS  ....................................................................  110   ANEXO  B  –  MODELOS  DE  DESCRIÇÃO  DE  CASOS  DE  USO  DE  SOFTWARE  ....  188    

 

 

11  

1 INTRODUÇÃO É

notável

que

o

ser

humano

depende

muito

de

soluções

computacionais. Nas mais simples coisas que executadas ou relacionadas, por mais imperceptível que seja, elas estão presentes: computadores, internet, celulares, tablets, carros, geladeiras, enfim, a lista é realmente enorme. De uma forma geral, cada vez mais, processos antes feitos única e exclusivamente por humanos estão sendo computadorizados ou, ao menos sendo auxiliados por recursos computacionais. Medicina, indústria, educação, comércio, agropecuária, entre outros. Dificilmente conseguiremos pensar em alguma área que não esteja sendo incorporada ou que não esteja incorporando a informática em seus amplos fins. Este grande crescimento computacional precisa ser acompanhado pelo crescimento da quantidade de sistemas para auxiliar na resolução de tais tarefas. É fato que a construção de sistemas computacionais não é algo simples. Não basta sair por aí programando, pondo a ‘mão na massa’ ou algo do tipo. Este tipo de atitude já deveria ter se tornado coisa do passado. Qualquer profissional que trabalhe na área da computação deveria saber da importância de uma análise correta, um planejamento, um projeto e outros passos que envolvem a criação e a construção de um software ou sistema computacional. Outro fato é que, quando analistas de sistemas estão a confeccionar os artefatos da fase de levantamento de requisitos, geralmente usam templates em ferramentas não especializadas, como Microsoft Word ou em textos HTML, utilizando facilidades providas por meio de copiar e colar. Infelizmente, este processo é muito trabalhoso e propenso a erros e retrabalho. Estes são alguns dos problemas que o sistema desenvolvido se propõe a resolver, buscando ser uma ferramenta que automatize a criação de descrições estendidas de caso de uso, provendo reuso, facilidade de manutenção e controle, produtividade, diminuição de custos e outros.

 

 

1.1

12  

Motivação e Justificativa Ao longo principalmente da graduação, foi percebido o fato de que

muitas

das

tarefas

antes

exclusivamente

humanas

vêm

sendo

computadorizadas, removendo a complexidade e o risco e transferindo isto para um ambiente controlável, suportado por sistemas computacionais. A área de levantamento e especificação de requisitos não deveria ser diferente. Não foram encontradas ferramentas que se propõem a automatizar a criação e manutenção de descrições de caso de uso. Algumas empresas de tecnologia da informação acabam criando seus próprios templates e formas de trabalhar, porém o processo quase sempre gira em torno de editores de texto ou ferramentas que não são específicas ou direcionadas para esta finalidade. Imagine o problema: Tenho um componente de busca que realiza um filtro nos registros de Usuários do sistema. Este filtro se repete muitas vezes, em vários locais da aplicação. Idealmente, assim como na UML, eu apenas devo referenciar aquele caso de uso, porém na hora de fazer a especificação os analistas acabam por copiar e colar aquele caso de uso de uma especificação para a outra. Continuando, caso uma regra de negócio mude, agora vou filtrar usuários por e-mail, ou por uma situação específica. Replicar tudo isso em todas as especificações, pode ser uma tarefa extremamente trabalhosa! Pior ainda: como vou saber quais locais da minha aplicação deverão ser modificados? Isso vai exigir um conhecimento muito grande do sistema por parte do analista. Isso não seria um problema em projetos menores, onde um ou dois analistas dão conta do trabalho. Agora imagine um projeto grande, ou mesmo imagine se os analistas que inicialmente descreveram as especificações deixarem a empresa. No final das contas, podemos resumir que estas situações geram improdutividade, atrasos, falhas, extrapolação de custos, entre outros.

 

 

13  

1.2

Objetivos Este projeto têm como principal objetivo automatizar a criação e

manutenção de descrições de caso de uso de software, auxiliando o analista de sistemas em seu trabalho. Os objetivos específicos são: •

Desenvolver um software que possa ser acessado de diversos locais, com interface amigável, e que ajude o analista de sistemas na construção do artefato;



Coletar informações atuais de como as especificações de caso de uso de software são construídas, e com base nestas, projetar um padrão que possa ser seguido, facilmente expansível e adaptável aos processos mais utilizados na geração deste artefato;



Criar funcionalidades de software que permitam aos usuários reutilizar cenários de caso de uso de forma fácil, rápida e segura;

1.3

Metodologia O projeto será desenvolvido utilizando princípios de UML, com

conceitos de orientação a objetos, com a linguagem de programação Java, e prezando-se pelas boas práticas em análise, projeto e desenvolvimento de software.

1.4

Descrição dos Capítulos Os capítulos presentes neste documento estão dispostos da seguinte

forma: •

O capítulo 2, Conceitos, descreve os conceitos que devem ser compreendidos para o entendimento do software aqui proposto. A maioria deles está ligado à área de Análise de Requisitos de Software, que será utilizada tanto para a construção da especificação do sistema quanto para modelagem da solução.

 

 

14   •

O capítulo 3, Levantamento e Especificação de Requisitos, têm como objetivo descrever o ambiente no qual o sistema está inserido, apresentando as técnicas que foram utilizadas, as fontes de informações, os casos de uso, atores e pacotes que foram encontrados, além das propostas de melhoria.



O capítulo 4, Especificação de Análise, apresenta os artefatos que foram gerados a partir do levantamento e especificação de requisitos, como por exemplo o diagrama de classes, de sequência, de transição de estados, além do dicionário dos dados que foram utilizados na criação dos mesmos.



O capítulo 5, Propostas Tecnológicas, contempla a contagem de pontos de função para se desenvolver o sistema, as propostas tecnológicas que poderão ser adotadas, custos, previsão de retorno de investimento, entre outros.



O capítulo 6, Especificação de Projeto, abrange de forma específica toda a parte de escolha de tecnologia, englobando a linguagem de programação, padrões, divisão das camadas, especificações do pacote, entre outros.



O capítulo 7, Políticas de Segurança, define uma série de medidas para prevenir, diminuir e/ou contornar os riscos que são gerados ameaças, evitando ou minimizando ao máximo os danos que estas possam vir a causar no sistema.



O capítulo 8, Conclusão, descreve as dificuldades que foram encontradas no projeto, bem como o que foi aprendido.



Por fim, temos o capítulo Anexos, que contém as Descrições de Caso de Uso Estendidas do sistema TiEspec, além dos modelos de caso de uso utilizados durante a fase de análise.

 

 

15  

2 CONCEITOS São apresentados neste capítulo assuntos relevantes para o entendimento e a elaboração do projeto TiEspec.

2.1

Análise de Requisitos A análise de requisitos está associada ao processo de descobrir quais

são as operações que o sistema deve realizar e quais são as restrições que existem sobre elas. É nesta fase serão gerados os artefatos que o analista de sistema irá se apoiar para poder modelar e posteriormente projetar o sistema. Ela visa identificar as funcionalidades e operações presentes no sistema de forma a responder as seguintes perguntas: “De que forma essas operações se realizam?”, ou ainda “Quando, como, onde, para quem, por que, por quanto tempo, estas operações se realizam?”. (WAZLAVICK, 2004)

2.2

Analista de sistemas Este é o profissional que deve ter o conhecimento do domínio do

negócio. Ele precisa ter esta qualidade para que possa, com sucesso, definir o que o sistema precisará fazer (WAZLAVICK, 2004). Geralmente, o analista não é um especialista na área, mas precisa estar familiarizado com o vocabulário e os processos da mesma, no mínimo de forma macroscópica. Um dos principais papeis do analista de sistemas é entender as necessidades dos clientes e repassar este entendimento aos demais envolvidos no desenvolvimento do projeto, funcionando como uma ponte entre os dois grupos. No processo de desenvolvimento de um software, é este profissional que irá confeccionar os artefatos como descrições de caso de uso, diagramas de classes, diagramas de casos de uso, entre outros. (PRESSMANN, 2011)

 

 

16  

2.3

Modelagem de Caso de Uso O modelo de casos de uso serve como representação das

funcionalidades que o sistema irá prover, bem como dos elementos externos que interagem com o sistema. É nesta parte que os requisitos funcionais do sistema proposto serão refinados (BEZERRA, 2007). A construção deste modelo é composta por vários componentes. Entre eles podemos citar: diagramas de caso de uso, descrições de casos de uso, definição de atores e seus relacionamentos.

2.3.1 Diagrama de Casos de Uso O diagrama de caso de uso (DCU) é responsável por descrever o que o sistema faz do ponto de vista do usuário. (BEZERRA, 2007) Ele demonstra as funcionalidades do sistema e quais atores estão envolvidos com os mesmos. Em um DCU não se descrevem detalhes técnicos de como o sistema executa as funcionalidades; apenas quais funcionalidades ele executa. São úteis para dar uma visão clara ao cliente sobre as funcionalidades do sistema. São compostos basicamente de: •

Cenário: Sequência de eventos que acontecem quando um usuário interage com o sistema.



Ator: Usuário do sistema, ou melhor, um tipo de usuário.



Caso de Uso: É uma tarefa ou uma funcionalidade realizada pelo ator (usuário).



Comunicação: é o que liga um ator com um caso de uso.

2.3.2 Atores Um ator define um conjunto coerente de papéis que os usuários do sistema podem desempenhar ao interagir com ele. Uma instância de

 

 

17  

ator pode ser desempenhada tanto por um indivíduo quanto por um sistema externo. Um ator é uma entidade que interage com o sistema participando e frequentemente iniciando um Caso de Uso. Eles não representam uma pessoa física ou algum sistema em si, mas sua regra, (WALZLAVICK, 2004).

2.3.3 Descrição de Casos de Uso

Segundo BEZERRA, 2007, um caso de uso é a especificação de uma sequência completa de interações entre um sistema e um ou mais agentes externos a esse sistema. São artefatos gerados com base nas funcionalidades que o sistema deve executar, que foram exibidas no diagrama de casos de uso, e têm como finalidade descrever de forma genérica qual o fluxo de trabalho que será adotado. É importante salientar que as descrições de caso de uso devem ser genéricas de forma a não entrar em detalhes técnicos de implementação, ao mesmo tempo devem ser detalhadas o suficiente para não gerarem dúvidas e ou pontas soltas no processo de desenvolvimento. Existem basicamente três dimensões em que o estilo de uma descrição de um caso de uso pode variar. Elas podem ser visualizadas na figura 1.

 

 

18  

  Figura 1 – Independência entre formato, grau de abstração e detalhamento de um caso de uso (BEZERRA, 2007)

O formato de uma descrição de caso de uso se relaciona com a estrutura utilizada para organizar a narrativa. Os formatos comumente utilizados são: •

Contínuo: Neste formato, é utilizada uma narrativa, em texto livre, que descreve como aconteceria algum caso de uso.



Numerado: Acontece por uma série de passos numerados, onde os atores envolvidos executam pequenos “passos”, e para cada passo, pode ou não haver uma resposta específica.



Tabular: Neste caso, as interações entre ator e sistema são divididas em duas colunas, onde uma delas representa as ações do ator e outra representa como o sistema reage a tal estímulo.

O grau de detalhamento, outra dimensão de estilo de caso de uso, varia desde o mais sucinto até a descrição detalhada (estendida). A ideia é que, quanto mais detalhada é a descrição, mais informações sobre a interação entre os atores serão escritas. O grau de abstração, a dimensão restante, diz respeito a existência ou não de aspectos relativos a uma tecnologia específica durante a descrição dos casos de uso. Quanto ao grau de abstração, as descrições podem ser dividas em dois grupos:

 

 

19   •

Caso de Uso Essencial: descreve a interação entre os atores de forma genérica, sem, em nenhum momento, especificar detalhes de tecnologia;



Caso de Uso Real: descreve a interação entre os atores citando detalhes e aspectos referentes a uma tecnologia em questão, e, de certa forma, amarrando o caso de uso a uma solução tecnológica específica; De forma geral e independente de qual fluxo de trabalho adotado, a

descrição de caso de uso é uma parte muito importante da modelagem de casos de uso, pois define o fluxo de ações que um ator deverá executar para que ele possa executar uma funcionalidade do sistema. A escolha de qual modelo será usado pode variar de projeto a projeto, dependendo das necessidades do cliente e do fornecedor.

Além própria da descrição do caso de uso, o documento gerado pode conter outras informações relevantes. São comumente adicionados no documento as seguintes informações: •

Código da Descrição: Uma forma de identificar aquele artefato unicamente dentro de um projeto;



Sumário: Representa o por que da criação da descrição, que visa atender a um requisito do sistema;



Atores

Envolvidos:

Os

atores

que

participam,

direta

ou

indiretamente nos casos de uso descritos; •

Questões em Aberto: Pontos que ainda não foram definidos, e que devem ser levados em consideração antes que a descrição seja liberada para desenvolvimento;



Prioridade: Qual é, para o projeto, a prioridade de entrega do que está descrito no documento;



Risco: Qual o nível de risco que aquele documento traz ao projeto, o que pode ser utilizado pela gerência de projetos para definir prioridades;



Regras de Negócio: As regras de negocio direta ou indiretamente relacionadas com o artefato;

 

 

20   •

Tipos de Dados: Os dados e informações do negócio que serão mantidos ou exibidos pelos casos de uso descritos;



Casos de Uso Relacionados: Outras descrições que possuem forte relacionamento com os casos de uso descritos no documento;



Notas de Implementação: Detalhes técnicos, especificando a forma que aqueles casos de uso deverão ser desenvolvidos; Uma das maiores dificuldades na hora de se construir este tipo de

artefato é conseguir refletir as regras pertinentes ao negócio, muitas vezes extremamente complexas, em textos simples e fáceis de serem entendidos. O

artefato

gerado,

além

de

ser

diretamente

utilizado

no

desenvolvimento do sistema, tem se tornado uma espécie de contrato entre cliente e fornecedor. Assim o cliente e o fornecedor, podem, respectivamente, saber o que contrataram e o que devem entregar.

 

 

21  

3 LEVANTAMENTO E ESPECIFICAÇÃO DE REQUISITOS Conforme

foi

comentado

anteriormente,

o

levantamento

e

a

especificação de requisitos são partes de grande importância dentro do processo de construção de um software.

A partir de agora, serão

apresentados os detalhes do sistema e os artefatos gerados durante o processos da construção do software.

3.1

Descrição do Mini Mundo O sistema a ser desenvolvido deverá automatizar e gerenciar a

manutenção de casos de uso do processo de especificação de requisitos de sistemas computacionais. Basicamente, o sistema proverá funcionalidades para criação de descrições estendidas de caso de uso baseado em reuso de cenários. O sistema deverá prover suporte a múltiplos clientes com múltiplos usuários. Para isso, teremos um “Cliente de Portal”. Esse cliente corresponde a grupos de pessoas que terão acesso representando uma mesma empresa ou organização. Os usuários pertencentes a um mesmo cliente de portal poderão compartilhar seus projetos, modificar descrições estendidas, utilizar padrões de fluxos, e irão utilizar uma mesma configuração de descrição estendida. Um cliente de portal poderá personalizar quais campos ele deseja que seus usuários mantenham nas descrições estendidas. Os usuários do sistema deverão registrar seu nome completo, nome curto, e-mail, e terão ainda uma situação (Ativo, Suspenso, Excluído, Pendente Aprovação, Pendente Ativação E-mail). Os clientes de projeto são os clientes de uma organização ou empresa, para os quais serão construídas as descrições estendidas. Eles só podem ser visíveis aos usuários de uma mesma organização. Um cliente de projeto deve ter nome, observações, e deve ter registro de contatos. Um projeto pertence a um cliente de projeto e a um cliente de portal. Um projeto terá datas de inicio e fim(previstas e reais), código, nome e

 

 

22  

situação. Um projeto pode ter vários artefatos. Artefatos são conjuntos de documentos, fotos, textos, enfim, registros diversos que servirão de apoio aos usuários na hora de criar e manter as descrições estendidas. Os artefatos podem ser anexos ou ser incluídos na própria aplicação, caso sejam textos. Além disso, é necessário saber qual usuário cadastrou o artefato. O sistema também permitirá o cadastro de Atores. Estes (principais ou secundários) serão utilizados na construção das descrições estendidas. De uma descrição estendida podemos manter os seguintes atributos: Código, Sumário, Pré-condições, Questões em Aberto, Pós Condições, Risco, Prioridade, Regras de Negócio, Casos de Uso Relacionados, Variações Tecnológicas, Notas de Implementação Dados (Nome na Tela, Atributo de Classe, Regra/Descrição, Tipo de Dado, Tamanho, Editável, Obrigatório) e Cenários (Nome, Ponto de Chamada, Fluxo Alternativo, Fluxos). Um cenário corresponde a um conjunto de ações executadas no sistema, seja pelo sistema ou por outro ator. Cada cenário representa uma funcionalidade de sistema. As funcionalidades implementadas no sistema não devem demorar mais de 5 segundos para ocorrer (Consultas simples, criação e edição de registros, e remoção de registros, navegação entre páginas, etc.). Os relatórios de sistema deverão ser executados em no máximo 15 segundos. O sistema deverá funcionar por meio da internet e ser acessível nos principais web browsers do mercado. A construção do sistema deverá priorizar o uso de softwares e tecnologias de código aberto tais como Linux, Java, PostGreSQL, entre outras.

3.2

Problemas, Causas e Possíveis Soluções

A tabela 1 descreve os problemas encontrados, as causas e as possíveis soluções. Tabela 1 – Problemas, Causas e Possíveis Soluções

Problemas Levantados

 

Causas

Possíveis Soluções

 

23  

Descrições de casos de Grande

quantidade Quanto ao número de

uso com muitos erros de especificações, o especificações não temos nos fluxos.

que

dificulta

manutenção

a muito o que fazer, porém deste pode ser construída uma

tipo de artefato. Qualidade

ferramenta que auxilie no do controle

processo

e

e

manutenção

dos das mesmas

envolvidos Cenários

pouco Trabalho

descritos, deixando os mais

repetitivo, Uma ferramenta que use

propenso

a padrões

fluxos muito abertos, erros. erros

e Esquecer

divergências

entre

o programador

que

o dos

templates

de

não especificação, e que o

que o cliente quer e o sabe o que o cliente analista o

descrição,

automatize a construção

ocasionando

que

de

programador quer.

tenha

trabalho

realmente desenvolveu.

menos

para

ficar

acertando detalhes, e se preocupe com as regras de negócio.

Pouca

documentação Prazos

ou

documentação analistas

incompleta.

apertados, Transferir o processo de não construção de descrições

capacitados,

estendidas

processo

de ferramenta,

para

a

tornando-a

desenvolvimento

mais

padronizada

e

pouco maduro

menos dependente dos próprios analistas.

Atraso

em

projetos Baixo

nível

de Prover uma forma rápida

decorrentes de falhas detalhamento de especificações

de e fácil de criar e manter

especificações, deixando

descrições, que ajude o

muitas analista a gerar artefatos

decisões na mão de mais completos programadores, não

sabem

que a

necessidade real do

 

 

24   cliente.

Extrapolação de custos Devido as falhas na Reduzir a quantidade de envolvidos em projetos especificação, muito erros de especificação, de

sistemas

de do que foi definido minimizando o retrabalho.

software

precisa

ser

modificado, causando retrabalho,

que

impacta diretamente nos

custos

do

projeto.

3.3

Fontes de Informação e Técnicas Utilizadas A tabela 2 informa as fontes de informação bem como as técnicas

utilizadas para colher as informações necessárias no desenvolvimento deste documento.

Tabela 2 – Fontes de Informação e Técnicas Utilizadas

Fonte de Informação

Técnica Utilizada

Descrições de caso de uso FSW- Leitura de Documentos UVV

e

FSW-VIX,

descrições

presentes nos livros de BEZERRA, 2007 e WAZLAVICK, 2004 Processos

de

construção

de Observação

especificações de caso de uso da fábrica

de

Europa

software

do

Grupo

Empreendimentos

Negócios

3.4

 

Diagrama de Pacotes

e

 

25   Diagrama de Pacotes é aquele que descreve os pacotes ou pedaços

do sistema divididos em agrupamentos lógicos mostrando as dependências entre os mesmos. Um pacote representa um grupo de classes e/ou outros elementos que se relacionam com outros pacotes através de uma relação de dependência. É uma visão do sistema como um todo, sob tal perspectiva que se possa observar todos os subsistemas que o compõem. Tem como proposta apresentar a modelagem estrutural do sistema em divisões lógicas e suas interações em alto nível, (WIKIPEDIA, 2012).

  Figura 2 – Diagrama de Pacotes

A figura 2 apresenta o Diagrama de Pacotes do sistema TiEspec. O pacote Cadastro representa e engloba todas as funcionalidades necessárias para que os usuários e clientes possam se cadastrar no sistema, serem aprovados, e efetivamente utilizar o portal. O pacote de Suporte engloba todas as funcionalidades que darão base e proverão dados para que o pacote de Especificações possa ter seus casos de uso efetuados. Entre as funcionalidades aqui presentes podemos citar a manutenção de Clientes de Projeto, Projetos, Artefatos, entre outros. O pacote de Especificação representa as funcionalidades onde o usuário vai realmente construir as especificações de caso de uso, criando atores, cenários base, especificações, e também imprimindo as mesmas.

 

 

26   Por fim, temos o pacote Utilidades, que abrange todas as

funcionalidades que serão necessárias para o bom funcionamento do sistema, como funcionalidades de envio de e-mail, configuração de base de dados, entre outras.

3.5

Modelagem de Caso de Uso O conceito de modelagem de caso de uso já foi apresentado

anteriormente, no capítulo 2, Conceitos. Nas próximas páginas temos os artefatos gerados nesta fase.

3.5.1 Diagrama de Casos de Uso A figura 3 representa o diagrama de casos de uso do pacote de especificação do sistema TiEspec, e suas respectivas funcionalidades.

Figura 3 – Diagrama de Casos de Uso

 

 

27  

 

3.5.2 Descrição de Atores A seguir são descritos os atores do sistema em construção. Os casos de uso que cada ator possui acesso podem ser visualizados na figura 3. •

Administrador do Portal: É o responsável por manter a ferramenta a nível administrativo. Ele representa o dono do portal, mantém o cadastro dos clientes de portal e pode manter todos os usuários do sistema.



Administrador do Cliente(Usuário Responsável): É o usuário responsável por algum cliente do portal. Ele têm a tarefa de configurar as descrições, cadastrar clientes de projeto, manter os projetos e os usuários de seu cliente, além também de realizar as mesmas tarefas de um usuário cliente.



Usuário Registrado: Podem ser considerados como analistas de sistemas,

que

utilizarão

as

funcionalidades

de

criação

de

especificação do sistema. Eles terão acesso a manutenção de casos de uso, poderão criar cenários, cadastrar dados, manter artefatos em um projeto, entre outros. •

Usuário: É qualquer outro usuário que acesse o sistema e que não esteja logado.

3.5.3 Descrição de Caso de Uso A importância da criação de descrições de caso de uso já foi discutida no capítulo de conceitos, e se reforça ainda mais pela ideia da ferramenta que está sendo construída. A tabela a seguir descreve, sucintamente, as descrições de caso de uso deste sistema. As descrições expandidas podem ser encontradas ao final deste documento, no anexo A.

Tabela 3 – Descrição Sucinta de Casos de Uso do Sistema

Nome

Descrição

ESP00 – Solicitação de Prover uma funcionalidade onde novos clientes

 

 

28  

Cadastro

no

Portal possam se cadastrar no portal e ter acesso as

(Cliente Não Existente)

demais

funcionalidades

de

uma

forma

controlada. ESP00A – Solicitação de Prover Cadastro

no

uma

funcionalidade

onde

usuários

Portal possam se cadastrar no portal, e que o cliente ao

(Cliente Existente)

qual pertence já existe.

ESP01 – Manter Clientes Permitir de Portal

aos

administradores

do

sistema

cadastrar, alterar e remover clientes de portal que terão acesso a aplicação.

ESP01A – Aprovação de Prover Clientes de Portal

uma

funcionalidade

onde

os

administradores possam ver as aprovações de clientes pendentes no portal, e aprova-las de forma rápida.

ESP02



Manter Permitir

aos

administradores

do

sistema

Usuários

manterem os usuários de algum cliente do portal,

(Administrador)

alterar e remover registros.

ESP02A



Manter Permitir ao usuário responsável de um cliente

Usuários

(Usuário manter os seus usuários, criando, alterando e

Responsável)

removendo registros.

ESP02B – Aprovação de Prover uma funcionalidade onde os usuários Usuários de Cliente de responsáveis de um cliente de portal possam ver Portal

os usuários pendentes de seu cliente, e aprovalos de forma rápida.

ESP03



Configurar Permite ao usuário responsável do sistema

Descrição Estendida

configurar os campos que irão aparecer na funcionalidades de manutenção de descrições estendidas.

ESP04



Manter Permitir aos clientes de portal e seus usuários

Cenários Base

manterem fluxos padrão de especificação, ou seja, criar fluxos de casos de uso base, para serem ser reutilizados na hora de criar casos de uso em uma especificação.

ESP05 – Manter Atores

 

Permite

que

os

usuários

de

um

cliente

 

29   mantenham os dados dos possíveis Atores que possam ser utilizados na hora se construir especificações técnicas.

ESP06 – Manter Clientes Permitir aos usuários administradores de um de Projeto

cliente de portal cadastrar, alterar e remover dados de seus clientes de projeto.

ESP07



Manter Permitir aos usuários de um cliente de portal

Projetos

cadastrar, alterar e remover dados de seus projetos.

ESP08



Manter Permitir aos usuários de um cliente de portal

Artefatos de Projeto

cadastrar,

alterar

e

remover

artefatos

e

documentos dentro de um projeto, que serão utilizados para consulta. ESP09



Manter Permitir aos usuários de um cliente do portal

Descrições Estendidas

fazerem a manutenções de diversos dados referentes a descrições estendidas.

ESP09 – Impressão De Permitir aos usuários de um cliente do portal Descrições Estendidas

gerar os arquivos de impressão das descrições que foram confeccionadas por meio do sistema.

 

 

30  

4 ESPECIFICAÇÃO DE ANÁLISE Segundo WAZLAWICK, 2004, a especificação de análise enfatiza a investigação do problema proposto. O principal objetivo da fase de análise é levar o analista ao entendimento de como o sistema em questão funciona. Nas próximas páginas serão apresentados os artefatos gerados durante esta fase.

4.1

Diagrama de Classes O Diagrama de Classes é um modelo estático que dá suporte a

visualização do sistema desenvolvido. Ele mostra as classes e os relacionamentos entre as mesmas que permanecem constantes no sistema com o passar do tempo (BEZERRA, 2007). A figura 4 representa o Diagrama Classes do sistema proposto. Foi utilizada uma definição de tipos abstratos para facilitar o entendimento do modelo pelo cliente e/ou leigos para com este tipo de notação. Os tipos utilizados estão listados a seguir: •

Booleano: Representa um valor que aceita uma de duas opções, no caso, Verdadeiro ou Falso;



Caracter: São textos de tamanho máximo de 255 caracteres;



Data: Representa valores de tempo, que só trabalham apenas com anos, meses e dias, não importando horas, minutos e segundos;



DataHora: Representa valores de datas completas, importando anos, meses dias, horas, minutos e segundos;



Documento: Representa conteúdos de texto com um limite de 4096 caracteres. Para uma interface web, atributos deste tipo irão ser alterados geralmente por meio de um editor de texto de interface rica, com opções de formatação;



Número: Representam conjuntos numéricos diversos, podendo ser inteiros ou números decimais;

 

 

31   •

PK: Utilizada em diagramas de sequência para representar um atributo que identifica unicamente um registro para o sistema;



FK: Utilizado no mapeamento objeto relacional para definir chaves estrangeiras, que criam relacionamentos entre objetos do sistema;



Texto: Representa conteúdos de texto com tamanho limite de 4000 caracteres.;

 

 

32  

Figura 4 – Diagrama de Classes

 

 

 

33   Assim também foram criadas classes para representar os estados que

um objeto pode assumir durante seu ciclo de vida. Estas classes estão descritas abaixo, e são melhores comentadas na sessão 4.3, Diagramas de Transição de Estados. São elas: •

SituClientePortal;



SituClienteProjeto;



SituDescricao;



SituPerfil;



SituProjeto;

 

4.2

Diagramas de Sequência O diagrama de sequência é um diagrama que representa uma

sequência de mensagens passadas entre objetos em um sistema computacional. Ele descreve a maneira em que grupos de objetos colaboram entre si para gerar um comportamento ao longo da execução, (WIKIPEDIA, 2012). Ele é criado principalmente para determinar a sequência global do comportamento dos objetos de uma forma simples e lógica. São componentes de um diagrama de sequência: •

Atores: São entidades externas que interagem com o sistema e que solicitam serviços.



Objetos: Representam as instâncias das classes representadas no processo.



Gate: Indica um ponto em que a mensagem pode ser transmitida para dentro ou para fora.



Fragmento: Fragmentos de interação como: Alt (Alternativa), Opt (Opcional), Break (Parar), Loop (Repetição) e outras.



Linha de vida: As linhas de vida compõem a dimensão vertical. A classe denominada Controller, presente nos diagramas de

sequência a seguir, representam o sistema, que irá receber o estímulo vindo do usuário e servirá como interface para as funcionalidades.

 

 

34   As figuras de número 5 à 24 representam os diagramas de sequência

do sistema TiEspec. Não foram gerados os diagramas de sequência para todas as funcionalidades do sistema, pois muitas das funcionalidades utilizam de um mesmo fluxo de troca de mensagens.

Figura 5 – DS – Aprovação de Clientes do Portal

Figura 6 – DS – Aprovação de Clientes do Portal

 

 

 

 

35  

Figura 7 – DS –Aprovação de Usuários

Figura 8 – DS – Atualizar Ator

Figura 9 – DS – Cadastrar Ato

Figura 10 – DS – Excluir Ator

 

 

 

 

 

 

36  

Figura 11 – DS – Listar Atores

Figura 12 – DS –Cadastrar Descrição Estendida

Figura 13 – DS – Cadastrar Projeto

 

 

 

 

 

37  

Figura 14 – DS – Alterar Projeto

Figura 15 – DS – Excluir Projeto

 

Figura 16 – DS – Visualizar Projeto

 

 

 

 

38  

 

Figura 17 – DS – Configurar Descrições Estendidas

Figura 18 – DS – Criar Artefato

Figura 19 – DS – Alterar Artefato

 

 

 

 

 

39  

Figura 20 – DS – Excluir Artefato

Figura 21 – DS – Imprimir Descrição Estendida

 

 

 

 

40  

Figura 22 – DS – Listar Usuários (Administrador)

Figura 23 – DS – Solicitar Cadastro No Portal (Cliente Existente)

 

 

 

 

41  

 

Figura 24 – DS – Solicitar Cadastro no Portal (Cliente Não Existente)

Figura 25 – DS – Visualizar Cliente de Portal

4.3

 

Diagrama de Transição de Estados Um Diagrama de Transição de Estados (DTE) têm como objetivo

demonstrar todos os estados possíveis de um objeto, os eventos que alteram tal estado, as condições que devem ser satisfeitas para que uma transição possa ocorrer e as respectivas ações durante a vida do objeto, (BEZERRA, 2007). •

Estado: É qualquer condição na qual um objeto satisfaz uma condição, executa uma ação ou aguarda por um evento.



Evento: É qualquer acontecimento que provoque uma mudança de estados. Pode ser oriundo de um sinal interno ou externo ao sistema.

 



Transição: É a mudança de estado de um objeto.



Ação: É a resposta de um objeto a mudança de estado.

 

42   A seguir, podemos visualizar todos os diagramas de transição de

estados dos objetos de negócio do sistema proposto.

4.3.1 DTE Cliente de Portal   A figura 26 representa a transição entre estados de objetos da classe Cliente de Portal. Para representar esta troca de estados, foi criado um atributo chamado situação do tipo “SituClientePortal”, que pode assumir os valores dos estados representados no diagrama, e têm como finalidade auxiliar no fluxo de criação, manutenção e remoção de clientes de portal. Clientes com situação “Excluído” não poderão ser reativados por meio da aplicação.

  Figura 26 – DTE – Cliente de Portal

   

4.3.2 DTE Cliente de Projeto A figura 27 representa a transição de estados dos objetos da classe Cliente de Projeto. Para representar estes estados, foi criado um atributo

 

 

43  

chamado situação do tipo “SituClienteProjeto”, que pode assumir os valores descritos no diagrama. Objetos na situação “Excluído” não poderão ser reativados por meio da aplicação.

Figura 27 – DTE – Cliente de Projeto

 

 

4.3.3 DTE Perfil A figura 28 representa a transição de estados dos objetos da classe Perfil. Para representar estes estados, foi criado um atributo chamado situação do tipo “SituPerfil”, que pode assumir os valores descritos no diagrama. Objetos na situação “Excluído” não poderão ser reativados por meio da aplicação.

Figura 28 – DTE – Perfil

 

4.3.4 DTE Projeto A figura 29 representa a transição de estados dos objetos da classe Projeto. Para representar estes estados, foi criado um atributo chamado situação do tipo “SituProjeto”, que pode assumir os valores descritos no diagrama. Parte da transição de estados se dá por uma fórmula envolvendo o atributo “Data de Término Prevista”. Quando restar apenas 5% do intervalo entre a data de início prevista e a data de fim prevista, o objeto deve mudar

 

 

44  

automaticamente para a situação ‘Tempo Crítico. Quando a data atual for maior que a data fim prevista, a situação deve mudar para ‘Atrasado’. O usuário pode, a qualquer momento, cancelar ou concluir o projeto.

  Figura 29 – DTE - Projetos

4.3.5 DTE Usuário A figura 30 representa a transição de estados dos objetos da classe Usuário. Para representar estes estados, foi criado um atributo chamado situação do tipo “SituUsuario”, que pode assumir os valores descritos no diagrama. A criação de tal atributo foi causada pela necessidade de controle do fluxo de criação e manutenção de usuários. Objetos na situação “Excluído” não poderão ser reativados por meio da aplicação.

 

 

45  

Figura 30 – DTE – Usuários

4.4

 

Dicionário de Dados O dicionário de dados compreende os locais onde serão armazenadas

informações dos atributos das classes de negócio. As tabelas numeradas de 4 a 20 descrevem os atributos das classes de negócio que serão utilizadas ou mantidas pelo sistema. A tabela 4 representa atributos que todas as classes de negócio implementarão. O propósito de cada campo está descrito na coluna Regra/Descrição.   Tabela 4 – Dicionário de Dados – Entidade Campo

Edit.

Obr.

Formato

Regra/Descrição Chave primária do registro. Usado como “Id

id

N

S

Número

Burro”, começa em 0 e é incrementado de 1 em 1 para cada novo registro da tabela. Inicia em 0 e é incrementado de 1 em 1 para cada alteração que for feita registro. É

version

S

S

Número

utilizado como mecanismo garantia de integridade de dados para sistemas de acesso compartilhado.

 

 

46  

Tabela 5 – Dicionário de Dados – Anexo Campo

Edit.

Obr.

Formato

Regra/Descrição

nome

S

S

Caracter[128]

Nome que irá identificar o anexo.

content_type

N

S

Caracter[48]

Tipo do anexo.

tamanho

N

S

Número

artefato_id

N

S

FK

Representa o tamanho do anexo. Não pode ser menor ou igual a 0; Aponta para o artefato ao qual o anexo pertence.

Tabela 6 – Dicionário de Dados – Artefato Campo

Edit.

Obr.

Formato

Regra/Descrição

nome

S

S

Caracter[128]

descricao

S

N

Texto[4000]

data_hora_criacao

N

S

DataHora

projeto_id

S

S

FK

responsavel_id

N

S

FK

Nome

de

identificação

do

artefato. Descrição sobre o registro. Momento da criação do artefato. Aponta para o projeto cujo o artefato está relacionado. Aponta para o usuário de criação do registro

Tabela 7 – Dicionário de Dados – Atores Campo

Edit.

Obr.

Formato

Regra/Descrição

nome

S

S

Caracter[128]

cliente_id

N

S

FK

Nome de identificação do ator. Aponta para o cliente de portal do usuário que cadastrou o registro.

Tabela 8 – Dicionário de Dados – Cenário Campo

Edit.

Obr.

nome

S

S

Caracter[255]

ponto_chamada

S

S

Caracter[255]

fluxo_alternativo

S

S

Caracter[255]

descricao_estentida_id

N

S

FK

 

Formato

Regra/Descrição Nome

de

identificação

do

artefato. Informações Sobre o Ponto de Chamada do Cenário Informações sobre o Fluxo Alternativo do Cenário Chave da descrição estendida

 

47   que o cenário pertence

Tabela 9 – Dicionário de Dados - Cliente de Portal Campo

Edit.

Obr.

Formato

nome_completo

S

S

Caracter[255]

nome_curto

S

S

Caracter[64]

observacoes

S

N

Texto[2000]

Regra/Descrição Nome do Completo do Cliente de Portal Nome Curto do Cliente de Portal Informações Relevantes Sobre o Cliente SituClientePortal: 0. Ativo

situacao

S

S

Número

1. Suspenso 2. Excluido 3. PendenteAprovacao 4. PendenteAprovacaoEmail

data_cadastro

N

S

DataHora

Data de Cadastro do Cliente

data_aprovacao

S

N

DataHora

Data de Aprovação do Cliente

logo

S

N

Imagem

Logomarca do Cliente Arquivo

config_descricao_es

N

tentida

S

FK

de

Configuração

de

Descrição Estendida do Cliente de Portal

resposavel_id

N

S

FK

Usuário responsável pela criação do Cliente

Tabela 10 – Dicionário de Dados – Cliente de Projeto Campo

Edit.

Obr.

Formato

nome_completo

S

S

Caracter[255]

nome_curto

S

S

Caracter[128]

observacoes

S

N

Texto[4000]

Regra/Descrição Nome do Completo do Cliente de Projeto Nome Curto do Cliente de Projeto Informações Relevantes Sobre o Cliente SituClienteProjeto:

situacao

S

S

Número

0. Ativo 1. Desativado 2. Excluído

cliente_portal_id

 

N

S

DataHora

Cliente de Portal a qual o Cliente de Projeto Pertence.

 

48  

Tabela 11 – Dicionário de Dados – Configuração de Descrição Estendida Campo

Edit.

Obr.

Formato

codigo

N

S

Booleano

sumario

N

S

Booleano

atores

S

S

Booleano

pre_condicoes

S

S

Booleano

prioridade

N

S

Booleano

pos_condicoes

S

S

Booleano

risco

N

S

Booleano

regras_negocio

S

S

Booleano

questoes_aberto

S

S

Booleano

caso_uso_relacionados

S

S

Booleano

variacoes_tecnologicas

S

S

Booleano

notas_implementacao

S

S

Booleano

Regra/Descrição Se o código será mantido na aplicação Se o sumário será mantido pela aplicação Se os atores serão mantidos pela aplicação Se

as

pré-condições

serão

mantidas pela aplicação Se a prioridade será mantida pela aplicação Se

as

pós-condições

serão

mantidas pela aplicação Se o risco será mantido pela aplicação Se as regras de negócio serão mantidas pela aplicação Se as questões em aberto serão mantidas pela aplicação Se os casos de uso relacionados serão mantidos pela aplicação Se as variações tecnológicas serão mantidas pela aplicação Se as notas de implementação serão mantidas pela aplicação

Tabela 12 – Dicionário de Dados – Contatos Campo

Edit.

Obr.

nome_contato

S

S

Caracter[128]

telefones

S

N

Caracter[128]

email

S

N

Caracter[128]

observacoes

S

N

Texto[2000]

cliente_projeto_id

N

S

FK

 

Formato

Regra/Descrição Nome do Contato de Um cliente de Projeto Os Telefones que o contato ode ser encontrado E-mail do Contato Observações Sobre o Contato Relacionamento Com Cliente de Projeto

 

49  

Tabela 13 – Dicionário de Dados – Dados Campo

Edit.

Obr.

Formato

nome_tela

S

S

Caracter[128]

atributo_classe

S

S

Caracter[128]

regra_descricao

S

N

Caracter[255]

tipo_dado

S

S

Caracter[32]

tamanho

S

N

Número

editavel

S

S

Booleano

obrigatorio

S

S

Booleano

descricao_estendida_id

N

S

FK

Regra/Descrição Nome do Atributo na Tela Atributo que o campo será na classe Regra ou Descrição sobre o Atributo Tipo de Dado do Atributo Tamanho do Campo Se o campo é editável ou não Se o campo é obrigatório ou não Relacionamento

com

a

Descrição Estendida

Tabela 14 – Dicionário de Dados – Descrição Estendida Campo

Edit.

Obr.

Formato

codigo

S

S

Caracter[10]

sumario

S

S

Texto[4000]

riscos

S

S

TipoRisco

prioridade

S

S

TipoPrioridade

Regra/Descrição O

código

da

Estendida Sumário da DE Os Riscos do Conjunto de Funcionalidades A prioridade desta DE Pré-condições

pre_condicoes

S

N

Texto[1000]

Descrição

para

execução

a das

funcionalidades questoes_aberto

S

N

Texto[1000]

pos_condicoes

S

N

Texto[1000]

regras_negocio

S

N

Texto[1000]

casos_uso_relacionados

S

N

Caracter[255]

variacoes_tecnologicas

S

N

Texto[1000]

notas_implementacao

S

N

Texto[1000]

 

Questões em aberto das funcionalidades Pós-condições

das

funcionalidades Regras

de

negócio

envolvidas nesta DE Casos de Uso que estão relacionados com esta DE Variações

tecnológicas

relacionadas Notas

sobre

implementação

a das

 

50   funcionalidades Chave

projeto_id

N

S

FK

Estrangeira

apontando para o projeto o qual a descrição pertence

Tabela 15 – Dicionário de Dados – Documento Campo

Edit.

Obr.

Formato

nome

S

S

Caracter[128]

conteudo

S

S

Texto[4000]

Regra/Descrição Nome do Documento Conteúdo do Documento Chave Estrangeira apontando para

artefato_id

N

S

FK

o artefato ao qual este documento pertence

Tabela 16 – Dicionário de Dados – Fluxo Campo

Edit.

Obr.

Formato

cod_fluxo

N

S

Caracter[32]

descricao

S

S

Caracter[255]

Regra/Descrição Índice

N

S

FK

para

ordenação.

Mantido pela própria aplicação Texto de um respectivo fluxo Chave

cenario_id

usado

estrangeira

que

aponta

para o cenário que possui o respectivo fluxo

Tabela 17 – Dicionário de Dados – Fluxo Base Campo

Edit.

Obr.

Formato

cod_fluxo

N

S

Caracter[32]

acao

S

S

Caracter[255]

Regra/Descrição Índice

N

S

FK

para

Texto de um respectivo fluxo estrangeira

Tabela 18 – Dicionário de Dados – Perfil Edit.

Obr.

nome

N

S

Caracter[128]

situacao

N

S

SituPerfil

 

Formato

que

aponta

para o cenário base que possui o respectivo fluxo

Campo

ordenação.

Mantido pela própria aplicação

Chave cenario_base_id

usado

Regra/Descrição Nome do Perfil SituPortal: 0. Ativo

 

51   1. Suspenso 2. Excluído

Tabela 19 – Dicionário de Dados – Projeto Campo

Edit.

Obr.

Formato

Regra/Descrição

codigo

N

S

Caracter[16]

Código do projeto

nome

N

S

Caracter[255]

Nome Completo do Projeto

descricao

S

S

Texto[4000]

data_inicio_prevista

S

S

Data

data_inicio_real

S

N

Data

Data de Início Real do Projeto

data_fim_prevista

S

N

Data

Data Prevista do Fim do Projeto

data_fim_real

S

N

Data

Data de Fim Real do Projeto

Descrição sobre o projeto Data

Prevista

de

Início

do

Projeto

SituProjeto: 0. AIniciar situacao

S

S

1. Ativo

SituProjeto

2. Cancelado 3. Concluído 4. Atrasado Chave Estrangeira que aponta

cliente_projeto

N

S

FK

para o cliente que é dono do projeto.

Tabela 20 – Dicionário de Dados – Usuário Campo

Edit.

Obr.

Formato

Regra/Descrição

nome_completo

S

S

Caracter[255]

Nome Completo do Usuário

nome_curto

S

N

Caracter[128]

Nome Curto do Usuário

email

S

S

Caracter[128]

E-mail do Usuário. Também usado como login. Senha

senha

S

S

Caracter[128]

de

acesso

ao

sistema.

Gravada com aplicação algoritmo de resumo de mensagem.

token

N

N

Caracter[128]

email_enviado

N

N

Booleano

situação

S

S

SituUsuario

 

Identificação

para

WorkFlow

de

Criação de cadastro Flag para confirmação de e-mail de cadastro enviado SituUsuario:

 

52   0. Ativo 1. Suspenso 2. Excluido 3. PendenteAprovacao 4. PendenteAprovacaoEmail Representa

responsavel

N

N

FK

se

o

usuário

é

responsável por algum Cliente de Portal

cliente_id

N

S

FK

perfil_id

N

S

FK

 

Representa o cliente de Portal ao qual o usuário pertence. Perfil do usuário.

 

53  

5 PROPOSTAS TECNOLÓGICAS Para o desenvolvimento deste projeto, será utilizada a plataforma de programação Java, em sua versão 6. Dentro da plataforma, serão utilizados os componentes da Arquitetura Java EE 6, sendo os mais notáveis o EJB, Java Server Faces, Managed Beans, e Java Persistence API. Como servidor de aplicação será utilizado o GlassFish Server e, finalmente, como provedor de serviços de persistência de dados, será utilizado o PostgreSQL, em sua versão 9.1. A escolha das tecnologias se deu pela notoriedade e confiabilidade que cada uma possui em sua área de atuação. Este capítulo tem como objetivo descrever a contagem de pontos de função do sistema aqui proposto, bem como o investimento para a construção do mesmo, o custo operacional, o retorno esperado, entre outros.

5.1

Pontos de Função Segundo VAZQUEZ, SIMÕES e ALBERT, 2010, a análise de pontos de

função é uma técnica de medição das funcionalidades fornecidas por um software do ponto de vista de seu usuário. Ponto de função é uma unidade de medida desta técnica que tem por objetivo tornar a medição independente da tecnologia utilizada para a construção do software. A APF (Análise de Pontos de Função) tem como objetivos: •

Medir as funções que o usuário solicita e recebe;



Medir o desenvolvimento e manutenção de software independente da tecnologia de implementação;

A técnica define algumas abstrações necessárias à determinação do tamanho funcional do sistema. Estes conceitos representam os componentes do

sistema

que

fornecem

funcionalidades

de

armazenamento

e

processamento de dados aos seus usuários e por eles reconhecidas e solicitadas. Ela também fornece definições de conceitos utilizados como referência na identificação desses componentes.

 

 

54  

5.1.1 Elementos de Contagem de Pontos de Função   Os elementos envolvidos na contagem de pontos de função são separados em dois grandes grupos, conhecidos como funções do tipo dado e funções do tipo transação. As funções do tipo dado representam as funcionalidades fornecidas pelo sistema ao usuário para atender a suas necessidades de armazenamento de dados. São divididas em: •

Arquivo Lógico Interno (ALI): Representa os conjuntos de dados ou informações de controle, logicamente relacionados, identificável pelo usuário e mantidos dentro da fronteira da aplicação. Sua principal intenção é armazenar dados mantidos através de uma ou mais transações.



Arquivo de Interface Externa (AIE): Representa os conjuntos de dados ou informações de controle, mantidos fora da aplicação. Tem como objetivo armazenar dados referenciais através de transações da aplicação. As funções do tipo transação representam os requisitos de

processamento fornecidos pelo sistema ao usuário. São classificadas em: •

Entrada Externa (EE): É uma transação que processa dados ou informações de controle originados de fora da aplicação. Seu objetivo é manter arquivos lógicos internos e/ou alterar o comportamento do sistema.



Saída Externa (SE): É uma função do tipo transação que envia dados ou informações de controle para fora da fronteira da aplicação. Sua principal intenção é apresentar informações ao usuário através de lógica de processamento que não seja apenas uma simples recuperação

de

dados

ou

informações

de

controle.

Seu

processamento deve conter cálculo, ou criar dados derivados, ou manter um arquivo lógico interno, ou alterar o comportamento do sistema (relatórios com cálculos). •

Consulta Externa (CE): É uma transação que envia dados ou informações de controle para fora da aplicação. Sua principal intenção

 

 

55   é apresentar informações ao usuário pela simples recuperação de dados ou informações de controle de ALIs e/ou AIEs (consultas). Durante a realização o cálculo do tamanho funcional, cada função

possui

um

peso,

determinado

pela

complexidade

da

função.

Tal

complexidade é do tipo é determinada por dois parâmetros: quantidade de tipos de dados (campos) (TD) e quantidade de tipos de registros (TR) (subgrupos de dados dentro do arquivo). As funções do tipo transação têm sua complexidade determinada por outros parâmetros: quantidade de tipos de dados (TD) e quantidade de arquivos referenciados (AR). Para finalizar a contagem dos pontos de função do sistema, é utilizado o fator de ajuste, que tem como propósito medir requisitos gerais da aplicação (não funcionais).

5.1.2 Contagem de Pontos de Função Contagem dos tipos dados estão baseados nos atributos das classes persistentes da aplicação, e na contagem das funções do tipo transação, os TDs são acrescentados 2 (dois) a mais levando em consideração o comando e a mensagem de retorno. O cálculo dos pontos ajustados é dado pela seguinte fórmula: 𝑇𝑜𝑡𝑎𝑙  𝑃𝐹 = 𝑇𝑜𝑡𝑎𝑙  𝑇𝐷   + 𝑇𝑜𝑡𝑎𝑙  𝑇𝑇 ∗ (0,65   +  0,01 ∗ 𝑇𝑜𝑡𝑎𝑙  𝐴𝑗𝑢𝑠𝑡𝑒) A tabela a seguir foi utilizada como base para a contagem dos pontos de função.

 

 

56  

Figura 31 – Tabelas de Complexidade Funcional e Contribuição (VAZQUEZ, SIMÕES, ALBERT, 2010)

   

5.1.2.1 Tabela de Pontos de Função A tabela 21 descreve a contagem de pontos de função de funções do tipo dado. A tabela 22, descreve a contagem de funções do tipo transação. A tabela 23 descreve a contagem de fator de ajuste por fim, a figura 32 mostra o cálculo da dos pontos de função do sistema TiEspec.

Tabela 21 – PF – Contagem de Tipos de Dados

Arquivo

Tipo

TD

TR

Complexidade

Peso

Usuários

ALI

13

1

Baixa

7

Perfis

ALI

3

1

Baixa

7

Clientes de Portal

ALI

8

1

Baixa

7

Clientes de Projeto

ALI

Contatos

ALI

11

2

Baixa

7

Projetos

ALI

10

1

Baixa

7

ALI

12

3

Baixa

7

Artefatos Anexos Documentos

 

  Cenários Base Fluxos Base Ator Configuração de Descrição Estendida Planos

57  

ALI

5

2

Baixa

7

ALI

4

1

Baixa

7

ALI

14

1

Baixa

7

ALI

7

1

Baixa

7

ALI

29

4

Média

10

Descrições Estendidas Dados Cenários Fluxos Total TD

80

Tabela 22 – PF – Contagem de Tipo Transação

Função

Tipo

TD

AR

Complexidade

Peso

EE

8

2

Média

4

2 – Buscar Cliente de Portal

CE

4

1

Baixa

3

3 – Visualizar Cliente de Portal

CE

12

2

Média

4

4 – Cadastrar Cliente de Portal

EE

12

2

Média

4

5 – Editar Cliente de Portal

EE

12

2

Média

4

6 – Remover Cliente de Portal

EE

3

1

Baixa

3

EE

4

1

Baixa

3

CE

2

1

Baixa

3

9 – Filtrar Clientes de Portal

CE

6

1

Baixa

3

10 – Detalhar Cliente

CE

6

1

Baixa

3

11 – Aprovar Cliente de Portal

EE

3

1

Baixa

3

12 – Visualizar Usuário

CE

8

1

Baixa

3

13 – Cadastrar Usuário

EE

8

1

Baixa

3

14 – Combo Box Perfil

CE

2

1

Baixa

3

15 – Buscar Usuário

CE

6

1

Baixa

3

1 – Solicitar Cadastro Como Cliente No Portal

7 – Alterar Situação de Cliente de Portal 8 – Listar Clientes de Portal Pendente Aprovação

 

 

58  

16 – Editar Usuário

EE

8

1

Baixa

3

17 – Remover Usuário

EE

3

1

Baixa

3

18 – Alterar Situação de Usuário

EE

4

1

Baixa

3

19 – Listar Usuários Pendentes

CE

2

1

Baixa

3

20 – Filtrar Usuários

CE

6

1

Baixa

3

21 – Ativar Usuário

EE

3

1

Baixa

3

CE

18

3

Média

4

EE

18

3

Alta

6

24 – Cadastrar Cenário Base

EE

3

2

Baixa

3

25 – Buscar Cenário Base

CE

2

2

Baixa

3

26 – Visualizar Cenário Base

CE

2

2

Baixa

3

27 – Editar Cenário Base

EE

3

2

Baixa

3

28 – Remover Cenário Base

EE

3

2

Baixa

3

29 – Listar Ator

CE

2

1

Baixa

3

30 – Cadastrar Ator

EE

4

1

Baixa

3

31 – Filtrar Ator

CE

3

1

Baixa

3

32 – Editar Ator

EE

4

1

Baixa

3

33 – Remover Ator

EE

3

1

Baixa

3

34 – Cadastrar Cliente de Projeto

EE

9

2

Baixa

3

35 – Visualizar Cliente de Projeto

CE

9

2

Baixa

3

36 – Buscar Cliente de Projeto

EE

3

1

Baixa

3

37 – Editar Cliente de Projeto

EE

9

2

Baixa

3

38 – Remover Cliente de Projeto

EE

3

2

Baixa

3

EE

3

1

Baixa

3

40 – Cadastrar Projeto

EE

9

2

Baixa

3

41 – Buscar Projeto

CE

5

1

Baixa

3

42 – Editar Projeto

EE

9

2

Baixa

3

43 – Alterar Situação de Projeto

EE

4

1

Baixa

3

44 – Visualizar Artefatos do

CE

4

3

Baixa

3

22 – Visualizar Configuração de Descrições Estendidas 23 – Editar Configuração de Descrições Estendidas

39 – Alterar Situação de Cliente de Projeto

 

 

59  

Projeto 45 – Visualizar Descrições

CE

3

1

Baixa

3

46 – Cadastrar Artefato de Projeto

EE

13

3

Alta

6

47 – Buscar Artefato de Projeto

EE

3

3

Média

4

48 – Visualizar Artefato de Projeto

CE

11

3

Média

4

49 – Editar Artefato de Projeto

EE

13

3

Alta

6

50 – Excluir Artefato de Projeto

EE

3

3

Média

4

CE

30

6

Alta

6

CE

5

2

Baixa

3

EE

30

6

Alta

6

54 – Editar Descrição Estendida

EE

30

6

Alta

6

55 – Imprimir Descrição Estendida

SE

25

6

Alta

6

Estendidas do Projeto

51 – Visualizar Descrição Estendida 52 – Buscar Descrição Estendida 53 – Cadastrar Descrição Estendida

Total TT

190

Tabela 23 – PF – Fator de Ajuste

Fator de Ajuste

 

Pontuação

Comunicação de Dados

5

Funções Distribuídas

4

Desempenho

5

Utilização do Equipamento

1

Volume de Transações

3

Entrada de Dados On-Line

5

Interface com Usuário

5

Atualizações On-Line

3

Processamento Complexo

3

Reusabilidade

5

Facilidade de Implantação

4

Facilidade Operacional

4

Múltiplos Locais

4

 

60   Facilidade de Mudanças

4

Total Ajuste

55

  𝑇𝑜𝑡𝑎𝑙  𝑃𝐹 = 𝑇𝑜𝑡𝑎𝑙  𝑇𝐷 +  𝑇𝑜𝑡𝑎𝑙  𝑇 ∗ +(0,65 + 0,01 ∗ (𝑇𝑜𝑡𝑎𝑙  𝐴𝑗𝑢𝑠𝑡𝑒))   𝑇𝑜𝑡𝑎𝑙  𝑃𝐹 = 80 + 190 ∗ (0,65 + 0,01 ∗ 55  )   𝑇𝑜𝑡𝑎𝑙  𝑃𝐹 = 270 ∗ (0,65 + 0,55)   𝑇𝑜𝑡𝑎𝑙  𝑃𝐹 = 324   Figura 32 – Cálculo de Pontos de Função

5.1.3 Composição da Equipe de Desenvolvimento Será necessário a montagem de uma equipe de desenvolvimento para o projeto. A tabela a seguir, gerada a partir de informações providas por Susiléa Abreu dos Santos, gerente de projetos do Grupo Europa Empreendimentos e Negócios, mostra a produtividade e o custo de cada profissional envolvido no desenvolvimento.   Tabela 24 – Tabela de Produtividade de Profissionais de TI

Profissional

Quantidade

Produtividade

Custo

Gerente

1

-----

R$ 50,00 / h

Analista

1

4h / PF

R$ 35,00 / h

Desenvolvedor

1

2h / PF

R$ 25,00 / PF

Tester

1

1h / PF

R$ 15,00 / h

5.1.4 Mão de obra para o Desenvolvimento do Sistema Será adotada uma carga horária de trabalho de 8 horas por dia, 20 dias ao mês. O gerente é um caso a parte, pois irá trabalhar completo na primeira semana, e após isto apenas 20h/mês acompanhando o projeto. Para o cálculo do custo do projeto, será estimado um esforço de 55% para a fase de Análise, 35% para a fase de Desenvolvimento e 10% para a  

 

61  

fase de testes. O tempo gasto e os custos totais de cada fase estão descritos na tabela 26. Tabela 25 – Tempos e Custo de Desenvolvimento

Atividade

Profissional

Tempo Gasto

Gerência

Gerente

20 Dias

R$ 8.000,00

Analise

Analista

90 Dias

R$ 25.060,00

Desenvolvimento

Desenvolvedor

29 Dias

R$ 2.825,00

Testes

Tester

5 Dias

R$ 525,00

Total

Custo

R$ 36.410,00

5.1.5 Plano de Venda de Serviço Este software será disponibilizado como um serviço que poderá ser contratado por outras empresas. A ideia central é cobrar uma mensalidade sobre o uso do software. Esta forma de disponibilização de software é baseada no conceito de SaaS (Software As A Service). O SaaS é uma forma de distribuição e comercialização de software onde o fornecedor se responsabiliza por toda a estrutura necessária para a disponibilização do sistema (servidores, conectividade, cuidados com segurança da informação) e o cliente utiliza o software via internet, pagando um valor recorrente pelo uso. As características principais são a não aquisição das licenças (mas sim pagar pelo uso como um serviço) e a responsabilidade do fornecedor pela disponibilização do sistema em produção. O software a ser desenvolvido será disponibilizado nas modalidades descritas na tabela 27. Abaixo temos a legenda do significado e das diferenças entre planos: •

Número de Projetos Ativos: É a quantidade de projetos que poderão ser desenvolvidos ao mesmo tempo pela equipe.



Número de Usuários Ativos: Corresponde a quantidade de usuários que poderão estar ativos na ferramenta, podendo logar e disfrutar das funcionalidades.

 

 

62   •

Número de Descrições Por Projeto: É a quantidade máxima de Descrições de Caso de Uso que poderão ser mantidas para cada projeto.



Impressão de Descrições Por Projeto: Permite ao usuário realizar a impressão das descrições de caso de uso de todo um projeto com poucos iterações. Caso contrário, o usuário é obrigado a buscar cada funcionalidade e imprimi-las separadamente.



Valor: É o preço da mensalidade do uso do respectivo plano da ferramenta.

Tabela 26 – Disponibilização de Planos do Portal

Plano

Plano

Plano

Plano

Pessoal

Básico

Equipe

Empresarial

1

Até 3

Até 10

Até 20

2

Até 3

Até 10

Até 25

Até 5

Até 12

Até 20

Até 50

Não

Sim

Sim

Sim

Gratuito

R$ 45,00/Mês

R$ 80.00/Mês

R$ 200,00/Mês

Número de Projetos Ativos Número de Usuários Ativos Número de Descrições Por Projeto Impressão de Descrições Por Projeto Valor

Como não existe uma definição exata de quanto a ferramenta irá faturar, será utilizada uma situação hipotética de ganhos que está descrita na tabela 28.

Tabela 27 – Simulação de Faturamento do Portal

Período/ Plano Jan/2013

 

Pessoal

Básico

Equipe

2

1

1

Empresarial Faturamento/Mês 0

R$ 125,00

 

63  

Fev/2013

5

2

1

0

R$ 170,00

Mar/2013

10

3

2

0

R$ 295,00

Abr/2013

12

4

2

0

R$ 340,00

Mai/2013

20

6

3

1

R$ 710,00

Jun/2013

30

9

3

1

R$ 845,00

Jul/2013

43

10

4

1

R$ 970,00

Ago/2013

50

13

7

1

R$ 1.345,00

Set/2013

60

14

7

1

R$ 1.390,00

Out/2013

78

15

8

2

R$ 1.715,00

Nov/2013

90

16

9

2

R$ 1.840,00

Dez/2013

100

20

9

3

R$ 2.220,00

5.1.6 Primeira Proposta Tecnológica Trabalha com a aquisição de um servidor local, para instalação de base de dados e servidor web.

Tabela 28 – Descrição do Equipamento da Primeira Proposta Tecnológica (DELL,2012)

Descrição do Equipamento Servidor Dell PowerEdge T110II Processador Intel® Xeon® Quad-Core E3-1220 (3.10GHz, 8M Cache, Turbo/4T (80W) Memória de 2GB, 1333MHz (1X2GB UDIMM) Disco Rígido de 500GB SATA, 7.2K RPM, 3Gbps, cabeado, 3.5" Unidade de DVD Sem Sistema Operacional – A Instalar Distribuição Linux Placa de Rede On-Board Total: R$ 1.999,00

5.1.6.1 Custo Operacional   Os  custos  operacionais  relacionados  com  esta  proposta  estão  descritos  a   seguir:  

 

 

64   •

Registro de domínio público “www.tiespec.com.br” = R$ 30,00 / ano



Internet com serviço de IP dedicado: GVT R$ 150,00 / mês



Custos Diversos de Manutenção = 200,00 / mês



Custo Inicial de Configuração = R$ 150,00 Sendo a assim, o custo mensal é expresso pela seguinte fórmula:

𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 =  Custo Internet + Custo Domínio/12 + Custos Manutenção 𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 = 150,00 + 30,00/12 +  200,00   𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 = 𝑅𝑆  352,50

5.1.6.2 Custo de Investimento (CI)   𝐶𝐼 = 𝑇𝑜𝑡𝑎𝑙  𝐼𝑛𝑣𝑒𝑠𝑡𝑖𝑚𝑒𝑛𝑡𝑜 + 𝑇𝑜𝑡𝑎𝑙  𝑆𝑒𝑟𝑣𝑖𝑑𝑜𝑟 + 𝐶𝑢𝑠𝑡𝑜  𝐶𝑜𝑛𝑓𝑖𝑔𝑢𝑟𝑎çã𝑜   𝐶𝐼 = 36.410,00 + 1.999,00 +  150,00   𝐶𝐼 = 𝑅$  38.559,00    

5.1.6.3 Custo Total   𝐶𝑇 = 𝐶𝐼 + 𝐶𝑂 ∗ 𝑁ú𝑚𝑒𝑟𝑜  𝑑𝑒  𝑀𝑒𝑠𝑒𝑠   𝐶𝑇 = 38.559,00 + 352,50 ∗ 𝑁       Com base nos ganhos definidos na situação hipotética definida anteriormente, ao final do ano 2013, o saldo da empresa responsável pelo será de (R$ 30.864,00). É sim um saldo negativo, porém, já pagou parte do investimento inicial de R$ 38.559,00, e caso mantenha a perspectiva de crescimento, tende a se pagar completamente até no máximo, o ano de 2015.

5.1.7 Segunda Proposta Tecnológica Contratação de servidor web por meio de planos de computação nas nuvens.

Tabela 29 – Descrição do Serviço da Segunda Proposta Tecnológica (UNDER, 2012)

 

 

65  

Plano Cloud Under 1 Servidor com 1 Core de 2.4 Ghz 1 GB de RAM Hard Disk com 80 GB Banda Extrema de 3Mbps Transferência de 300 GB Linux CentOS 5.x (64 Bits) Valor: R$ 100,00 / mês

5.1.7.1 Custo Operacional   Os  custos  operacionais  relacionados  com  esta  proposta  estão  descritos  a   seguir:   • Registro de domínio público “www.tiespec.com.br” = R$ 30,00 / ano •

Plano Cloud Under 1 = 100,00 / mês



Custos Diversos de Manutenção = 100,00 / mês



Custo Configuração Inicial = R$ 150,00 Sendo a assim, o custo mensal é expresso pela seguinte fórmula:

𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 =  Custo Internet + Custo Domínio/12 + Custos Manutenção 𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 = 150,00 + 30,00/12 +  100,00   𝐶𝑂  𝑀𝑒𝑛𝑠𝑎𝑙 = 𝑅𝑆  252,50

5.1.7.2 Custo de Investimento (CI)   𝐶𝐼 = 𝑇𝑜𝑡𝑎𝑙  𝐼𝑛𝑣𝑒𝑠𝑡𝑖𝑚𝑒𝑛𝑡𝑜 + 𝐶𝑢𝑠𝑡𝑜  𝐶𝑜𝑛𝑓𝑖𝑔𝑢𝑟𝑎çã𝑜   𝐶𝐼 = 36.410,00 +  150,00   𝐶𝐼 = 𝑅$  36.560,00      

5.1.7.3 Custo Total  

𝐶𝑇 = 𝐶𝐼 + 𝐶𝑂 ∗ 𝑁ú𝑚𝑒𝑟𝑜  𝑑𝑒  𝑀𝑒𝑠𝑒𝑠   𝐶𝑇 = 36.560,00 + 252,50 ∗ 𝑁   Com base nos ganhos definidos na situação hipotética definida

anteriormente, ao final do ano 2013, o saldo da empresa responsável pelo

 

 

66  

será de (R$ 28.825,00). É sim um saldo negativo, porém, já pagou parte do investimento inicial de R$ 36.560,00, e caso mantenha a perspectiva de crescimento, tende a se pagar completamente até no máximo, o ano de 2015.

5.1.8 Proposta Escolhida   Com base nas propostas apresentadas, a escolha fica pela hospedagem do sistema no plano de computação nas nuvens. Os principais fatores que contribuíram com tal escolha foram: •

O investimento inicial é menor, e não teríamos que nos preocupar com renovação e manutenção da estrutura física dos equipamentos;



Segurança oferecida pelo plano de hospedagem, que agrega funcionalidades de gerenciamento e backups inclusas;



O nível de disponibilidade de serviço definido no contrato do plano de hospedagem nas nuvens garante que o serviço esteja no ar 99,5% do tempo.



Possibilidade de aumentar os recursos computacionais de acordo com a demanda de forma rápida e fácil, sem a necessidade de adquirir novos recursos de hardware.



 

Custos de manutenção menores.

 

67  

6 ESPECIFICAÇÃO DE PROJETO A fase de projeto é onde os envolvidos determinam como o sistema irá funcionar para atender aos requisitos levantados nas fases anteriores. Esta fase produz uma descrição computacional do que o software deve fazer e deve ser coerente coma descrição feita na análise (BEZERRA, 2007). Nas próximas páginas iremos definir a tecnologia, padrões de interface, melhorar artefatos gerados na fase de análise, definir a comunicação entre as camadas do software a ser construído, entre outros.

6.1

Escolha da Tecnologia Para o desenvolvimento do sistema será utilizada a linguagem de

programação Java, adotando padrões e tecnologias presentes na Arquitetura Java EE 6. Será adotado o Java Server Faces 2.0, junto com a biblioteca PrimeFaces. O PostgreSQL será o SGDB a ser utilizado. Para a construção e empacotamento do projeto, será utilizado o Maven. Para auxiliar no desenvolvimento, utilizaremos a IDE SpringSource Tool Suite. O servidor de aplicação escolhido para o projeto é o GlassFish. Nas próximas páginas as tecnologias utilizadas serão detalhadas.

6.1.1 Java   Java é uma linguagem de programação e uma plataforma de computação lançada pela primeira vez em 1995 pela Sun Microsystems, recém adquirida pela Oracle. A versatilidade, eficiência, portabilidade da plataforma e segurança da tecnologia Java, a tornam a tecnologia ideal para a computação de rede. De laptops a datacenters, consoles de games a supercomputadores científicos, telefones celulares à Internet, o Java está em todos os lugares (ORACLE, 2012). Alguns dados: •

 

1,1 bilhão de desktops executam Java.

 

68   •

930 milhões de download do Java Runtime Environment a cada ano.



3 bilhões de telefones celulares executam Java.



Telefones Java são lançados a cada ano em um número 31 vezes maior que a Apple e a Android juntas.



100% de Blu-ray players executam Java.



1,4 bilhões de Placas Java são fabricadas a cada ano.



Decodificadores

Java,

impressoras,

câmeras

Web,

games,

sistemas de navegação automotiva, casas lotéricas, dispositivos médicos, estações de pagamento de estacionamento e mais. Além dos pontos comentados, Java como um todo têm grande aceitação em diversos tamanhos de empresas, e em diversos segmentos. Java prove diversos recursos de

disponibilidade, confiabilidade,

escalabilidade e muitos outros.

6.1.2 Arquitetura Java EE 6 Java EE, ou Java Plataform Enterprise Edition é uma plataforma de programação para servidores na linguagem Java. Suas diferenças mais marcantes se comparada as outras versões do Java são a adição de bibliotecas que fornecem funcionalidades para implementar software Java distribuído, tolerante a falhasse multicamada, baseando-se em componentes modulares, e que executam em um servidor de aplicações (JAVA MAGAZINE, 2012). Esta plataforma contém uma séria de especificações ou containers, que proveem as mais diversas funcionalidades para a mesma. A seguir, na tabela 31, temos todas as tecnologias envolvidas na plataforma Java EE 6. Não faremos uso de todas as tecnológicas mencionadas, porém as que iremos utilizar serão comentadas nas páginas que estão por vir.   Tabela 30 – Lista de tecnologias Java EE 6 (JAVA MAGAZINE, 2012)

Tecnologia Bean Validation  

Versão 1.0

 

69  

Common Annotations for The Java Plataform Context And Dependency Injection for Java EE Plataform (CDI) EJB (Enterprise Java Beans) EL (Expression Language) Interceptors JACC(Java Authorization Service Provider Contract for Containers) JASPIC(Java Authorization Service Provider Interface for Containers) Java EE Deployment API Java EE Management API JavaMail JAX-RPC (Java API for XML based RPC) JAX-RS (Java API for RESTful Web Services) JAX-WS (Java API for XML Web Services) JAXB (Java Architecture for XML Binding) JAXR (Java API for XML Registries) JCA (Java EE Connector Architecture) JMS (Java Messaging Services) JPA (Java Persistence API) JSF (Java Server Faces) JSP (Java Server Pages) JSTL (Standard Tag Library for JavaServer Pages) JTA (Java Transaction API) Managed Beans Servlet Web Services Metadata for the Java Plataform

1.1 1.0 3.1 2.2 1.1 1.4 1.0 1.2 1.1 1.4 1.1 1.1 2.2 2.2 1.0 1.6 1.1 2.0 2.0 2.2 1.2 1.1 1.0 3.0 2.1

 

6.1.2.1 Enterprise JavaBeans (EJB) O EJB é uma plataforma para a construção de aplicações corporativas portável, reutilizável e escalável, que utiliza a linguagem Java. Desde seu inicio ele tem sido considerado um modelo de componente ou framework que permite que se construam aplicações corporativas com Java sem que seja necessário reinventar serviços comumente necessários, como gerenciadores de transação, componentes de segurança, serviços de mensagens, entre outros. (JAVA MAGAZINE, 2012) Do ponto de vista do desenvolvedor, um EJB é um pedaço de código Java que executa em um ambiente de tempo de execução especializado chamado container EJB, que fornece um número de componentes de serviços.

 

 

70   O Enterprise JavaBeans vem se aperfeiçoando nos últimos anos, e

depois de passar por algumas dificuldades e desconfianças, ganhou fôlego novamente e se encontra na versão 3.1.

6.1.2.2 Java Server Faces – JSF O Java Server Faces ou JSF, é um framework que permite a elaboração de interfaces de usuário web colocando componentes em um formulário e ligando-os a objetos Java permitindo a separação entre lógica entre as camadas envolvidas. Seu ponto forte é o grande número de componentes e um design muito flexível o que permitiu que este framework crescesse muito acomodando novas tecnologias (JAVA SERVER FACES, 2012). O JSF possui as seguintes partes: •

Um conjunto de componentes pré-fabricados de IU (interface de usuário)



Um modelo de programação orientado a eventos



Um modelo de componentes que permite a desenvolvedores independentes fornecerem componentes adicionais O JSF possui componentes simples como input e botões e outros

componentes sofisticados como tabelas de dados e árvores, porem o mais importante talvez seja o fato de integrar o padrão Java EE e estar incluído em cada servidor de aplicação Java EE, podendo facilmente ser adicionado a um container web. Os principais motivos que levaram o JSF ao sucesso provavelmente sejam: •

Ser parte da especificação Java EE desde as versão 5.



Ser um framework cuja a API foi pensada no trabalho dos desenvolvedores de IDEs.



Implementar o modelo MVC o que facilita o trabalho com outros frameworks encontrados no mercado.

 



Fazer parte da certificação OCWCD antiga SCWCD.



Possuir comunidades ativas em fóruns.

 

71   •

Exigir pouco conhecimento inicial para criação de interfaces de usuários tradicionais.



Possuir

ótimas

bibliotecas

de

componentes

livres

e

pagas

desenvolvidas por terceiros. •

Possuir Ajax nativo em sua versão 2.0.

6.1.2.3 PrimeFaces O PrimeFaces é uma suíte de código aberto de componentes para Java Server Faces que conta com mais de 100 componentes completos e de fácil utilização. Além do grande número de componentes, uma grande vantagem da suíte é que seus componentes utilizam Ajax nativo do JSF, o que permite desenvolver uma interface rica (PRIMEFACES, 2012). Seu uso é simples, feito pela importação de uma biblioteca no projeto Java, não requerendo nenhuma configuração adicional nem outras dependências.

6.1.2.4 JSP/Servlets O JSP é a abreviação de Java Server Pages, que em português seria algo como Páginas de Servidor Java. É uma tecnologia para criar páginas web com programação em Java. As páginas JSP estão compostas de código HTML/XML misturado com etiquetas especiais para programar scripts de servidor em sintaxe Java (ORACLE, 2012). O Servlet é um componente que funciona como um servidor, e que gera dados em HTML/XML. Basicamente, é uma classe Java que processa as requisições e envia respostas.

6.1.2.5 Java Persistence API e Hibernate

 

 

72   O Java Persistence API, comumente chamado de JPA, é uma API

padrão do Java para a persistência, que deve ser implementada por qualquer framework que queira seguir este padrão. Ele é utilizado na camada de persistência da aplicação, e visa abstrair o uso da linguagem SQL, oferecendo métodos que deixem este procedimento mais simples e fácil. Ele define um meio de ORM (Mapeamento Objeto/Relacional) para os objetos POJOs. Atualmente, está em sua versão 2.0. Neste

projeto,

utilizaremos

o

framework

Hibernate

como

implementação do JPA. O Hibernate foi criado em 2001, inicialmente por Gavin King, e, liderados por ele, foi construído pela comunidade de desenvolvedores Java ao redor do mundo, tanto que, atualmente o framework é distribuído sobre a licença de software livre LGPL 2.1 (HIBERNATE, 2012). Algum período após sua criação, a Jboss Inc. (Ramo de desenvolvimento da gigante Red Hat). Atualmente, está em sua versão 4.1.16. Sua principal função é a de diminuir a complexidade entre os programas que precisam trabalhar com um banco de dados do modelo relacional. Com o uso desta tecnologia, não é necessário escrever comando SQL diretamente, pois o framework faz esta transformação para o programador, liberando o trabalho extra de ficar convertendo SQL para objetos e vice-versa.

6.1.3 Servidor de Aplicação Um servidor de aplicação, também chamado de middleware, é uma plataforma sobre a qual é provido um ambiente para a instalação e execução de

outras

aplicações,

dispensando

a

instalação

do

aplicativo

nos

computadores clientes. Seu principal objetivo é prover uma plataforma que separe o desenvolvedor de complexidades desnecessárias e recorrentes, como por exemplo os diversos sistemas operacionais. Além disso, é no servidor de aplicação que geralmente são implementadas questões comuns a diferentes

 

 

73  

aplicações, como segurança, garantia de disponibilidade, balanceamento de carga, tratamento de exceções e outras. Neste projeto, utilizaremos o GlassFish v3. Ele foi criado pela Sum Microsystems (adquirida pela Oracle em meados de 2010), no ano de 2006. Ele foi o primeiro servidor de aplicação a implementar completamente o especificação da Arquitetura Java EE 6, e com este e outros motivos como tempo de inicialização rápido, modularização, suporte de clusterização e balanceamento de carga foi rapidamente adotado pela comunidade (GLASSFISH, 2012) Atualmente, está em sua versão 3.1.2, e é esta que iremos utilizar.

6.1.4 Maven O Apache Maven é uma ferramenta para gerenciamento e automação de projetos em Java e possui um modelo de configuração simples, baseado em XML. Ele foi construído focando em desenvolvimento e configuração em rede. (APACHE MAVEN, 2012) Utiliza um arquivo chamado Project Object Model (POM), que descreve todo o processo de construção do software, suas dependências entre módulos, sequência de construção, entre outros. Grande parte das suas funcionalidades já são pré-definidas e realizam tarefas bastante utilizadas, como compilação de código e empacotamento de projeto. No Maven, existem os chamados repositórios, que podem ser acessados pela internet, intranet, ou serem locais. Um repositório Maven é uma estrutura que armazena outros projetos, também disponibilizados via Maven, de bibliotecas ou módulos que poderão ser utilizados em alguma outra aplicação. Em um processo de construção ou empacotamento de um software, é o Maven que irá se preocupar em buscar as dependências corretas do nosso projeto, colocando-as onde foi definido de forma automática e de fácil manutenção. Podemos definir também que certas bibliotecas serão utilizadas apenas em alguns momentos durante o processo, como por exemplo, apenas na fase de testes.

 

 

74   Para utilizar o Maven em seu projeto, basta criar um projeto Maven

pela sua IDE, e ele já virá com a estrutura base do Maven, além do arquivo de configuração pom.xml. Também podemos criar projetos Maven utilizando a linha de comando dos diversos sistemas operacionais, bastado apenas fazer o download da ferramenta e configurarmos as variáveis de ambiente. O Maven está em sua versão 3.0.4, porém, por motivos de estabilidade, utilizaremos a versão 2.2.1.

6.1.5 PostgreSQL O PostgreSQL é um sistema gerenciador de banco de dados objeto relacional muito poderoso, desenvolvido em código aberto, que possui confiabilidade, exatidão, é altamente escalável e é considerado um dos mais avançados na comunidade de software livre. Possui interfaces nativas de programação para C/C++, Java, .Net, Perl, Python, Ruby, ODBC, entre outros, além de uma documentação bem completa (POSTGRESQL, 2012). Sua versão atual é a 9.2.1. Porém, utilizaremos a versão 9.1.6 por estar mais estável e com menos bugs conhecidos.

6.1.6 Spring Tool Suite Também conhecido como STS, é um ambiente de desenvolvimento integrado (IDE) baseado no conhecido Eclipse. Ele é mantido e disponibilizado pela SpringSource, que é uma divisão de pesquisas e desenvolvimento da VmWare. Seu foco é o desenvolvimento de aplicações empresariais, e já vem com integração com várias tecnologias bastante úteis neste processo, como exploradores de base de dados,

integração com

servidores de aplicação, ferramentas de fatoração e geração de código, integração

com

softwares

(SPRINGSOURCE, 2012).

 

de

controle

de

versão,

entre

outros

 

75   Assim como o Eclipse, ele possui uma infinidade de plug-ins, que

permite ao desenvolvedor, de forma rápida e fácil, adicionar o suporte a outras tecnologias. A versão que será utilizada para o desenvolvimento será 3.1.0, que é baseada no Eclipse Juno (4.2). A escolha de tal tecnologia se dá pura e simplesmente pela familiaridade com a ferramenta.

6.1.7 Controle de Versões Durante o desenvolvimento da aplicação, será importante manter os códigos da aplicação sempre atualizados, garantido que seja possível voltar a versões antigas de um arquivo, fazer junção entre arquivos que foram editados por desenvolvedores diferentes, entre outros. Para prover tais funcionalidades, foi utilizada a ferramenta de controle de versões, chamada SubVersion. O SubVersion, ou SVN, é um projeto gerenciado pela conhecida Apache, desenhado especificamente para ser um substituto moderno do CVS, outro software de gerenciamento de versões (SUBVERSION, 2012). Sua versão estável atual é a 1.7.6. O projeto será hospedado em um serviço gratuito provido pelo Google, chamado de Google Code, que nos permite criar repositórios SVN e acessá-los de qualquer lugar que possui conexão com a Internet. Outra facilidade é a integração com a IDE Spring Tool Suite, a qual iremos utilizar.

6.1.8 Apache HTTP Server Comumente conhecido como Apache, ele é o mais bem sucedido servidor web existente. O servidor é compatível com o protocolo HTTP, e é disponibilizado para diversos sistemas operacionais, com Windows, Linux, MacOS, Unix, entre outros. O apache é um software livre, o que permite a

 

 

76  

qualquer um visualizar, estudar ou alterar seu código fonte gratuitamente. (APACHE, 2012) O servidor Apache será o software responsável por disponibilizar as páginas e os demais recursos que algum cliente acessar por meio de um browser. Assim, quando o cliente acessa um site, requisições são feitas por meio do protocolo HTTP ao servidor Apache, que recebe a requisição e posteriormente envia a resposta.

6.2

Padrões de Projeto e Outras Técnicas Visando aproveitar os benefícios da linguagem de programação

orientada a objetos Java, explicaremos alguns padrões e técnicas que serão utilizados no projeto.

6.2.1 Plain Old Java Object Também conhecido pelo acrônimo POJO, ele se define por ser um objeto na linguagem de programação Java que contém apenas seus atributos, construtores, getters e setters. Outra característica importante dos POJOs é que não implementam ou estendem nenhum tipo de método de outro framework. Seu objetivo principal é ser um objeto leve, sem regras de negócio atreladas, o que o permite transitar por todas as camadas da aplicação sem que seja necessário um grande uso de recursos.

6.2.2 Suporte a Internacionalização O framework Java Server Faces permite a construção de sistemas com internacionalização de idiomas. O sistema a ser desenvolvido deverá prover a possibilidade rápida de se modificar o idioma. Não será necessário

 

 

77  

por enquanto, implementar ou disponibilizar a aplicação em outro idioma. Porém deverão ser tomados todos os cuidados para que, caso seja necessário, o esforço para esta mudança seja pequeno e rápido.

6.3

Arquitetura do Sistema A partir deste ponto, iremos observar como o sistema será subdividido

física e logicamente.

Além disso, poderemos ver como o sistema será

construído e como as camadas que surgiram vão interagir entre si para que as funcionalidades do portal sejam executadas.

6.3.1 Diagrama de Pacotes O diagrama de pacotes mostra a decomposição do próprio modelo em unidades organizacionais e suas dependências (BOOCH, 2005). É no diagrama de pacotes que podemos visualizar os pacotes envolvidos na construção do software como um todo, e a dependência entre eles. A utilização desta divisão visa agrupa-los em conjuntos gerenciáveis, organizados por suas responsabilidades e coerência com o negócio. No sistema em questão, foram separados os seguintes pacotes: •

Utilidades: abrange todas as funcionalidades que serão necessárias para o bom funcionamento do sistema, como funcionalidades de envio de e-mail, configuração de base de dados, entre outras.



Suporte: engloba todas as funcionalidades que darão base e proverão dados para que o pacote de Especificações possa ter seus casos de uso executados. Entre as funcionalidades aqui presentes podemos citar a manutenção de Clientes de Projeto, Projetos, Artefatos, entre outros.



Cadastro: representa e engloba todas as funcionalidades necessárias para que os usuários e clientes possam se cadastrar no sistema, ser aprovados, e efetivamente utilizar o portal.

 

 

78   •

Especificação: representa as funcionalidades onde o usuário vai realmente construir as especificações de caso de uso, criando atores, cenários base, especificações, e também imprimindo as descrições criadas. Na figura 33 temos a visão do sistema, apresentado através do

diagrama de pacotes.

  Figura 33 – Diagrama de Pacotes Revisado

   

6.3.2 Divisão em Camadas Os subsistemas que serão construídos serão divididos em camadas, cada uma com um conjunto específico de responsabilidades: •

(DP) Camada Domínio do Problema: Nesta camada definidos os objetos de negócio e tratadas as regras de negócio.



(GT) Camada Gerência de Tarefas: A camada de GT é a responsável por direcionar o fluxo da aplicação, servindo como intermédio entre a camada de interface ao usuário para com as demais camadas.

 

 

79   •

(GD) Camada Gerência de Dados: Esta é a camada responsável por persistir e recuperar os dados que são manipulados pela aplicação. Todo e qualquer acesso a dados deve passar por esta camada.



(IU) Camada Interface ao Usuário: É a camada que engloba as interfaces de iteração Humano x Máquina, e que direciona os dados e eventos enviados a ela para a GT realizar o processamento e encaminhamento das mesmas.

A figura 34 representa a divisão de camadas do subsistema de Especificação, o qual será construído.

  Figura 34 – Divisão de Camadas

  Falando em termos de codificação, a divisão dos pacotes dentro do subsistema de especificação pode ser observada na figura 35. Os pacotes internos a cada camada serão comentados nas próximas páginas, onde iremos falar separadamente de cada uma delas.  

 

 

80  

  Figura 35 – Divisão de Camadas e o Relacionamento com Pacotes de Programação

6.3.3 Camada Domínio do Problema A camada de Domínio do Problema é a responsável pelo tratamento das regras do negócio. Na arquitetura que estamos utilizando, esta camada é composta por 4 pacotes, descritos a seguir: •

Pacote Enum: Abreviação de Enumerable, que é um tipo de classe Java que representa uma estrutura de dados numerada e constante. Engloba as classes de situação que um objeto pode assumir durante seu ciclo de vida.



Pacote Modelo: Neste pacote existem os objetos Java que mapeiam as entidades que serão trabalhadas na aplicação. Estas entidades utilizam o conceito de POJO, descrito anteriormente, e são nestas classes que definimos os relacionamentos entre os objetos além de servirem de mapeamento para base de dados. O objetivo de utilizar POJO é montar um objeto leve, que possa transitar entre as camadas da

 

 

81   aplicação

sem

utilizar

grandes

recursos

de

memória

processamento. •

Pacote EJB: Neste pacote estão as classes que implementam as regras do negócio. Este pacote é o único que conhece o pacote DAO. Ele solicita os dados persistentes a esta camada e repassa a camada de GT. As classes de negócio aqui existentes devem, obrigatoriamente, implementar uma interface do pacote EJBInterface.



Pacote EJBInterface: Este pacote engloba as interfaces que são implementadas pelo pacote EJB. Uma interface funciona como contrato entre o objeto chamador e o objeto que implementa a interface. O uso de interface é recomendado na plataforma Java EE para diminuir o acoplamento e permitir a rastreabilidade de erros de forma fácil. No caso, o objeto chamador

não

precisa

conhecer

detalhes

do

método

implementado, e faz a chamada para um componente semelhante a uma caixa preta. As imagens a seguir representam os diagramas de classes desta camada. A classe Entidade, presente na figura 37, foi utilizada para centralizar a definição de atributos comuns a todas as classes persistentes. Sendo assim todas as classes persistentes devem estender esta classe, garantindo a criação de atributos como a chave primária e a definição do atributo de controle de versão. As figuras 36 e 37 representam o pacote Modelo, e a figura 38 representa o pacote EJB.

 

 

82  

  Figura 36 – Domínio do Problema – Modelo – Parte I

 

 

83  

  Figura 37 – Domínio do Problema – Modelo – Parte II

 

 

84  

Figura 38 – Domínio do Problema – EJB

 

 

 

85  

 

6.3.4 Camada Gerência de Tarefas A gerência de tarefas é a camada responsável por controlar o fluxo de dados da aplicação, recebendo os dados vindos da camada de interface ao usuário e direcionando o fluxo da aplicação para que as funções possam ser executadas. Esta camada é composta por um único pacote, descrito a seguir: •

Pacote ManagedBean: É neste pacote que estarão presentes as classes que irão receber os estímulos da interface ao usuário direcionar o fluxo para as demais camadas da aplicação.

  Figura 39 – Gerência de Tarefas – Managed Bean

A classe ContextoBean, que pode ser observada na figura 39, representa a classe onde serão armazenados os dados de sessão do usuário. No caso, é nesta classe que serão armazenados o usuário logado, o cliente o qual o usuário pertence, o plano corrente e outros.  

6.3.5 Camada Gerência de Dados

 

 

86   A camada de gerência de dados é a responsável por fazer o

intermédio entre a aplicação e o banco de dados no qual serão persistidas as informações de negócio. A camada de negócio (Domínio do Problema), sempre que precisar criar, alterar ou recuperar dados persistentes, solicitará a esta camada, que será responsável por executar as ações solicitadas. Com a utilização desta camada, a troca de um banco de dados, por exemplo, idealmente não deve causar alterações nas demais camadas da aplicação. As figuras 40 e 41 representam as classes envolvidas na camada de gerência de dados. A classe ‘DAO’, representa uma classe estendida por todas as classes que precisam fazer acesso a dados. Assim, as classes filhas herdam os métodos genéricos que possibilitam a conexão com a base de dados e a execução de métodos de CRUD (criação, alteração, leitura e exclusão) de dados. Os tipos de manipulações que fogem aos padrões CRUD deverão ser implementados em cada classe filha.

 

 

87  

  Figura 40 – Gerência de Dados – Camada DAO – Parte I

 

 

88  

Figura 41 – Gerência de Dados – Camada DAO – Parte II

 

6.3.6 Dicionário de Dados do Diagrama Gerência de Dados As classes e atributos que deveriam estar definidas aqui já foram comentadas no capítulo 4, pois não houve nenhuma alteração com relação a gerência de dados.

6.3.7 Diagrama Relacional O modelo relacional se fundamenta no conceito de ralação. De forma bastante simplista, pode-se pensar em uma relação como uma tabela, composta de linhas e colinas, onde cada relação possui um nome. O diagrama relacional é a representação das tabelas que serão geradas no sistema gerenciador de base de dados (SGDB), os atributos criados, e os  

 

89  

relacionamentos entre estas tabelas (BEZERRA, 2007). A figura 42 representa o diagrama relacional do sistema TiEspec.

Figura 42 – Diagrama Relacional

 

 

 

90  

6.3.8 Dicionário de Dados do Diagrama Relacional A maioria dos atributos que aqui deveriam estar presentes já foram definidos no diagrama de classes e no dicionário de dados, no capítulo 4. A única alteração está descrita na tabela 31. Tabela 31 – Dicionário de Dados – Tabela de Relacionamento Ator x Descrição Estendida Campo

Edit.

Obr.

S

S

ator_id

Formato PK

Regra/Descrição Chave estrangeira apontado para a tabela Ator Chave estrangeira apontado

descricao_id

S

S

PK

para

a

tabela

Descrição

Estendida

6.3.9 Camada de Interface ao Usuário A camada de interface ao usuário representa a fronteira entre a aplicação e o usuário utilizador do portal. Esta camada irá receber os estímulos oriundos desta iteração e irá direcionar as requisições para a gerencia de tarefas, que prosseguirá com o processamento. Esta camada não possui diagramas de classes. Os elementos responsável por prover a interface são arquivos do tipo HTML, Java Script e CSS. As páginas HTML, por meio de formulários, enviam as requisições ao ManagedBean, componente da Gerência de Tarefas. Visando construir uma interface amigável, de fácil aprendizado, foram definidos padrões a serem seguidos.

6.3.9.1 Grids Base Para construir telas que possam ser facilmente redimensionadas, serão utilizados grids base, por meio do uso de CSS, para definir o tamanho dos campos de texto, das áreas da tela e das mensagens. O uso de grid também ajuda ao programador a posicionar dos elementos na tela.

 

 

91   •

Grid 960 (24): Representado pela figura 43, e o grid principal onde serão montadas as telas. Ele deve ter 960 pixels, dividido em 24 colunas de 40 pixels cada.



Grid 486 (18): Este grid deverá ser utilizado para criar diálogos de busca, diálogos de operação como criação e edição de objetos. É dividido em 18

colunas de 27 pixels cada. É

visualizado na figura 44. •

Grid 432 (16): Também utilizado em diálogos, servirá como base para diálogos de informação e confirmação de ações, como exclusão, ativação, entre outros. É dividido em 16 colunas de 27 pixels cada. Pode ser visto na figura 45.



Classes CSS Width: Deve ser composta por 24 estilos CSS. Cada um deste deve ter 40 pixels de diferença entre seu antecessor. O prefixo para uso do estilo é “grid_”. Assim, caso o programador necessite de definir um campo com 400 pixels, ele irá usar o “grid_10”, se necessitar de um campo com 440 pixels, ele utilizará o “grid_11”, e assim sucessivamente. Está apresentado na figura 46.



Classes CSS Dialog_Width: Apresentado na figura 47, funciona de forma análoga ás Classes CSS Width, porém serão utilizadas para montar a interface dos diálogos da aplicação. São compostos por 18 estilos, cada um com 27 pixels a mais que seu anterior.

As imagens a seguir representam os grids e classes de CSS.

Figura 43 – Grid 960 (24)

 

 

 

 

92  

 

Figura 44 – Grid 486 (18)

 

Figura 45 – Grid 432 (16)

Figura 46 – Classe CSS Width

 

 

 

 

 

93  

Figura 47 – Classe CSS Dialog_Width

 

 

6.3.9.2 Ícones, Botões e Mensagens Visando construir um sistema homogêneo, seguindo padrões e telas bem definidas, iremos utilizar um grupo de ícones que ajudem ao usuário a identificar a ação que ele irá executar. A tabela 31 descreve os ícones disponíveis. Tabela 32 – Ícones Utilizados

Função Buscar ou Filtrar Adicionar/Incluir ou Novo Salvar Cancelar ou Desistir Fechar Excluir ou Remover Ajuda Ordenação de Paginação

 

Ícone Ativo

Ícone Desativado

 

94  

Descendente Ordenação de Paginação Ascendente Coluna Não Ordenada Imprimir Início Ativar ou Habilitar Ações

As mensagens que serão exibidas ao usuário também seguirão padrões no que se diz respeito a interface. Na figura 48 podem ser observadas, respectivamente, as mensagens para aviso, erro e sucesso.

  Figura 48 – Exemplo de Mensagens ao Usuário

  Sobre o texto das mensagens sobre status de ações, devem ser montadas conforme o seguinte padrão: •

Mensagens de Sucesso: O registro {0} foi {1} com sucesso! o {0} = Chave Candidata (Campo que identifica o objeto e que seja de fácil entendimento ao usuário. Caso não exista nenhuma possível chave candidata, usar a chave primária do registro). o {1} = Referente a ação (criado, alterado, excluído, etc.).



Mensagens de Falha: Ocorreu um erro ao {0} o registro {1}! o {0} = Referente a ação (criar, alterar, excluir, etc.). o {1} = Chave Candidata (Campo que identifica o objeto e que seja de fácil entendimento ao usuário. Caso não exista nenhuma possível chave candidata, usar a chave primária do registro).

 

 

95  

6.3.9.3 Componentes

JSF

e

PrimeFaces

utilizados

na

Interface Os botões a serem utilizados deverão ter, além de seu nome, um ícone para identificar o tipo de ação que está sendo realizada, conforme exemplos na figura 49.     Figura 49 – Exemplo de Botões

O JSF 2.0, juntamente com o PrimeFaces, possui uma grande quantidade de componentes para serem utilizados na construção de interfaces. A tabela 34 descreve os componentes que serão utilizados: Tabela 33 – Componentes do JSF e do PrimeFaces Utilizados

Nome

Descrição

ajax

Componente não visual que adiciona funcionalidades AJAX a um componente que não possui tais funcionalidades. Disponível tanto na biblioteca do JSF quanto na do PrimeFaces

blockUI

Componente que exibe uma sombra que não permite ao usuário executar ações em um determinado espaço na tela.

calendar

Elemento de exibição de um calendário.

column

Elemento

que

criar

colunas

dentro

de

outros

componentes, como é o caso do dataTable. commandButton

É o botão padrão utilizado na aplicação. Pode ser utilizado tanto para abrir diálogos, quanto fazer requisições com ou em Ajax.

contextMenu

É um menu que é exibido por meio do clique com o botão direito do mouse.

dataTable

 

É o componente de exibição de registros mis utilizado.

 

96   Ele suporta carregamento sob demanda, seleção de registros de forma única e múltipla, entre outros.

dialog

Funciona como um diálogo que salta na tela para o usuário. É utilizado para diversos fins, como buscas, operações CRUD, entre outros.

editor

É um componente que permite ao usuário escrever textos com o uso de HTML e CSS, ou seja, um editor de texto que permite formatações diversas

fileUpload

Componente utilizado para que seja possível que o usuário envie arquivos de diversos tipos para o site.

form

É um formulário HTML, que quando acionado envia os valores dos campos de entrada de dados internos a ele ao servidor.

inputText

Uma caixa de inserção de texto com apenas uma linha

inputTextarea

Uma caixa de inserção de texto com várias linhas

inputMask

Uma caixa de inserção de texto que permite que seja configurada máscaras específicas de entrada de dados

menu

Componente de criação de menus na aplicação, podendo ser horizontal ou vertical.

messages

Componente que exibe mensagens de informação, avisos ou erros na tela. Ele como se fosse um banner.

menuButton

Botão semelhante ao commandButton, porém que é utilizado dentro do componente menu

password

Caixa de inserção de texto. Ele exibe os caracteres digitados de forma escondida. É utilizado quando o usuário precisa inserir senhas

radioButton

Botão de seleção única entre duas ou mais opções.

selectOneListBox

É um componente de seleção de um valor entre vários que possam ser exibidos na lista. Possui um botão que ao ser acionado exibe os possíveis valores a serem selecionados

separator

 

É uma linha horizontal que recebe características do

 

97   tema que está sendo utilizado.

splitButton

Botão composto por dois botões, um com função igual ao commandButton e o outro funciona como um menu que é exibido quando o botão é acionado. Este menu contém outras ações que podem ser executadas.

tab

É um componente que integra a tabView. É utilizada para agrupar informações de um mesmo contexto.

tabView

É um componente que permite que sejam construídas páginas que se sobrepõem, e que são exibidas ou não dado o acionamento de uma tab.

6.3.9.4 Exemplos de Telas do Sistema As figuras 50 a 55 representam a interface de algumas das funcionalidades do sistema.

  Figura 50 – Tela de Visualização de Atores Cadastrados

  Figura 51 – Diálogo de Criação de Atores

 

 

98  

  Figura 52 – Diálogo de Busca de Atores

  Figura 53 – Tela de Visualização de Descrição Estendida – Aba Dados Básicos

 

 

99  

  Figura 54 – Tela de Visualização de Descrição Estendida – Aba Tipos de Dados

  Figura 55 – Diálogo de Busca de Clientes de Portal

6.3.10

Diagramas de Sequência Revisados

  Foi necessário, durante a fase de projeto, refinar os diagramas de sequência para que pudessem incorporar e exibir corretamente a troca de mensagens entre as camadas da aplicação, durante a execução de alguma funcionalidade de software. A seguir, nas figuras de 56 a 62, temos os diagramas de sequência do pacote que fora prototipado, englobando as

 

 

100  

funcionalidades de Manutenção de Atores, Manutenção de Cenários Base, Manutenção de Descrições Estendidas e, por fim, a Impressão de Descrições Estendidas.

  Figura 56 – DS Revisado – Cadastrar Ator

  Figura 57 – DS Revisado – Atualizar Ator

  Figura 58 – DS Revisado – Listar Atores

  Figura 59 – DS Revisado – Excluir Ator

 

 

 

101  

Figura 60 – DS Revisado – Buscar Projeto Pré-Impressão

 

 

Figura 61 – DS Revisado – Imprimir Descrição Estendida

 

 

Figura 62 – DS Revisado – Cadastrar Dado

   

6.3.11

Estrutura do Projeto

  A organização física do código fonte e como os projetos irão se comunicar pode ser observada na figura 63. 1. Projeto EAR: Este é efetivamente o projeto que irá gerar o arquivo final para implantação no servidor de aplicação. Ele é o responsável por juntar os outros projetos e prover ao sistema as bibliotecas compartilhadas. O arquivo empacotado por este projeto é gerado com a extensão ‘.ear’. 2. Projeto Web: Este projeto engloba o que representaria a camada de interface ao usuário e a gerência de tarefas. Ele que irá receber as  

 

 

102   requisições, e irá fazer chamadas ao projeto EJB para que as regras de negócio sejam processadas. Neste projeto estarão presentes tecnologias como o Java Server Faces, PrimeFaces, JSPs, Servlets, e os Managed Beans. 3. Projeto EJB: O projeto EJB é onde serão tratadas efetivamente as regras de negócio. Cada classe presente neste projeto terá. É neste projeto que teremos a implementação da camada DAO. 4. Projeto Model: Este projeto possui o pacote de modelo de dados, que descreve as classes de negócio implementadas como POJO.

 

Figura 63 – Organização dos Módulos de Empacotamento na Visão de Codificação

   

6.3.12

Diagrama de Implantação

Segundo

a

UML,

o

diagrama

de

implantação

representa

a

configuração e a arquitetura do sistema em que estarão ligados os respectivos componentes. As figuras 64 e 65 representam o diagrama de implantação do sistema TiEspec.

 

 

103  

  Figura 64 – Diagrama de Implantação

 

  Figura 65 – Diagrama de Implantação com UML

 

 

104  

7 POLÍTICAS DE SEGURANÇA Nos sistemas atuais, principalmente aqueles que são disponibilizados por meio da internet, é imprescindível que sejam implementadas soluções que garantam a segurança dos dados manipulados. Assim também, não deve se focar apenas na segurança, mas também na confiabilidade, integridade e disponibilidade dos dados. Visando garantir que tais requisitos sejam atendidos, foram definidas as seguintes estratégias, políticas e mecanismos: •

Autenticação de Usuários e Controle de Acesso: Algumas funcionalidades do sistema só poderão ser acessadas por usuários registrados, logados na aplicação e que possuam acesso a mesma. Assim, deverá ser implementado um mecanismo de login e de controle de acesso as funcionalidades presentes. A definição de quem acessa o que está definida no Diagrama de Casos de Uso e nas Descrições Estendidas.



Uso

de

Algoritmos

de

Resumo

de

Mensagem

Para

Armazenamento de Senhas do Usuário: Visando a segurança dos dados dos usuários que utilizam a aplicação, as senhas do usuário deverão ser persistidas apenas depois que passarem por um mecanismo de resumo de mensagens. Este mecanismo gera um texto baseado na senha do usuário. Para uma mesma senha o mecanismo sempre gera um mesmo resumo (Hash). Assim a aplicação não precisará persistir a senha em texto plano. •

Politicas de Backup: Os backups de dados são de extrema importância caso ocorram incidentes de segurança que prejudiquem os dados da aplicação. Por isso, será necessária a configuração e execução de rotinas de backup dos dados. Iremos trabalhar com dois tipos de procedimentos. Um deles deverá ocorrer diariamente, sempre ás 03:00 (3 Horas) e deverá salvar uma cópia do banco de dados da aplicação no próprio servidor onde se encontra a base de dados, se limitando a salvar 35 backups diários. Quando atingir este número, o backup diário de data mais antigo deverá ser excluído. O

 

 

105   outro procedimento é um backup mensal, que ocorrerá no primeiro dia de cada mês, ás 04:00 (4 Horas) e deverá ser mantido, limitandose a guardar informações de até 24 meses. Todos os backups deverão ser guardados no próprio servidor e ainda em um local físico, que será na sede da empresa. Quando um backup é efetuado no servidor, uma cópia dele deve, em no máximo 2 dias, ser movido para o arquivo de backups na sede da empresa. •

Mascarar URL de acesso a aplicação: Muitos dos ataques a sistemas que ocorrem na internet utilizam da URL do sistema para conseguir dados e/ou deixar o sistema indisponível. Para minimizar esta tipo de ataque, será utilizado um elemento da linguagem HTML, o IFrame. Ele é capaz de fazer com que determinada página seja aberta dentro de outra página. Assim, o usuário verá sempre em seu navegador, o caminho www.tiespec.com.br, enquanto isso vai estar na verdade navegando pelos diversos caminhos da aplicação. É importante lembrar que esta técnica é facilmente burlada, porém, em conjunto com outras tecnologias e técnicas se torna um recurso de segurança a mais.



Controle de limites de utilização conforme os planos de um cliente: Conforme foi discutido, a aplicação deve limitar as ações e limites de uso de acordo com o plano associado ao usuário por meio do relacionamento com Cliente de Portal. Este bloqueio será feito de forma HardCoded, ou seja, o bloqueio será feito na própria programação das funcionalidades. Esta abordagem é considerada um anti-padrão de programação, porém, no momento, é a solução mais viável para o desenvolvimento do projeto.

 

 

106  

8 CONCLUSÃO O crescimento ocasionado pelo avanço da tecnologia está gerando demandas de construção de novos e modernos sistemas de informação. Esta grande demanda, juntamente com o aumento da complexidade dos sistemas a serem criados, nos inspira a buscar melhorias nos processos de construção de software. O TiEspec se insere neste ambiente, com o objetivo de melhorar o processo de especificação de descrições de caso de uso, provendo aos profissionais responsáveis por esta demanda, meios realizar o processo de forma fácil. Ao fim do período do projeto, não foi possível atingir todos os objetivos que eram esperados. O objetivo principal, de automatizar a criação e manutenção de descrições de caso de uso de software foi concluído com sucesso. O TiEspec também pode ser acessado por meio da internet, e possui funcionalidades implementadas que permitem ao usuário reutilizar cenários de caso de uso. Infelizmente, não foi possível coletar o feedback dos usuários, pois a ferramenta não entrou em produção por completo. Como trabalhos futuros, serão desenvolvidos os demais pacotes do projeto, para que a ferramenta esteja concluída e possa, enfim, entrar em produção. Além disso, já existem propostas de melhorias que podem agregar valor ao sistema: •

Prover funcionalidades de gerência para controlar os prazos, produtividade e situação das demandas que são geradas no portal;



Adicionar o módulo de segurança que permita ao administrador do portal gerenciar com granularidade baixa o que cada perfil de usuário pode fazer na aplicação, de forma dinâmica, confiável e segura.



Integrar a ferramenta com outras soluções existentes. Um caso é a integração da funcionalidade de manutenção de artefatos do projeto com ferramentas como DropBox, Google Drive e Microsoft SkyDrive.



Permitir a impressão dos relatórios em templates personalizados e que cada cliente pode personalizar na própria aplicação.

 

 

107  

9 REFERÊNCIAS BIBLIOGRÁFICAS     APACHE. Servidor Apache, 2012. Disponivel em: . Acesso em: 29 out. 2012. BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro: Editora Campus, 2007. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. Rio de Janeiro: Trad. Fabio Freitas, 2005. BRAGA, A. Análise de Ponto de Função. Rio de Janeiro: Editora IPBI Press, 1996. APACHE MAVEN, Maven, 2012. Disponível em . Acesso em 01 nov. 2012. GLASSFISH,

Glassfish

Application

Server,

2012.

Disponível

em

. Acesso em 01 nov 2012. ORACLE, Java , 2012. Disponível em <   http://www.java.com/ >. Acesso em 01 nov 2012. JAVA

MAGAZINE,

Java

Magazine

ed

106,

2012.

Disponível

em

. Acesso em 15 out 2012. SUBVERSION,

Apache

SubVersion,

2012.

Disponível

em

<  

http://subversion.apache.org/>. Acesso em 01 nov. 2012. JBOSS. Hibernate, 2012. Disponivel em: . Acesso em: 29 out. 2012.

 

  JSF.

108   Java

Server

Faces,

2012.

Disponível

em:

. Acesso em: 29 out. 2012. POSTGRESQL.

Postgres,

2012.

Disponivel

em:

. Acesso em: 29 out. 2012. PRESSMAN, R. S. Engenharia de Software. São Paulo: Pearson Makron Books, 2011. PRIMEFACES.

PrimeFaces,

2012.

Disponivel

em:

. Acesso em: 26 out. SILVA, R. P. UML2 em Modelagem Orientada a Objetos. Santa Catarina: Editora Visual Books, 2007. SPRINGSOURCE.

Springsource,

Disponivel

em:

. Acesso em: 29 out. 2012. VAZQUEZ, C. E.; SIMÕES, G. S.; ALBERT, R. M. Análise de Ponto de Função – Medição, Estimativa e Gerenciamento de Projetos de Software. São Paulo: Editora Érica, 2010. WAZLAWICK, R. S. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Editora Campus, 2004. MARINESCU, F. Padrões de Projeto EJB - Padrões Avançados, Processos e Idiomas. São Paulo: Editora Bookman, 2002. PANDA, D; RAHMAN, R; LANE, D. EJB 3 Em Ação. Rio de Janeiro: Editora Alta Books , 2009. LUCKOW, D; MELO, A. Programação Java para a Web. São Paulo, Novatec Editora, 2010.

 

  WIKIPEDIA,

109   2012,

Diagrama

de

Pacotes,

Disponível

em:

. Acesso em 05 out. 2012 WIKIPEDIA,

2012,

Diagrama

de

Sequência,

Disponível

em:

. Acesso em 05 out. 2012

 

 

ANEXO A – DESCRIÇÕES ESTENDIDAS  

 

110  

 

111  

 

 

 

 

112  

ESP00 – Solicitação de Cadastro no Portal (Cliente Não Existente) Prover uma funcionalidade onde novos clientes possam se cadastrar no portal, e ter acesso as demais funcionalidades de uma forma controlada. Atores: Usuário Pré-condição: Que o usuário não esteja logado. Fluxo Principal – Solicitação de Cadastro no Portal (Cliente Não Existente) 1. O caso de uso se inicia quando o ator decide por se cadastrar no portal, e clica no botão de “Registrar”. 2. O sistema exibe uma tela com duas opções, uma para cliente já existente, e outra para cliente não existente; 3. O usuário seleciona a opção de cliente não existente. 4. O sistema exibe um formulário de cadastro, com campos a preencher do novo cliente e do usuário responsável. 5. O usuário preenche os dados do formulário e clica no botão ‘Salvar’. 5.1. Alternativamente ele pode clicar no botão ‘Cancelar’ e o caso de uso se encerra, voltando a tela inicial do portal. 6. O sistema faz a validação dos dados do formulário. (#E1) (#E2) 7. O sistema persiste os dados, envia um e-mail de confirmação para o email cadastrado e exibe uma mensagem de sucesso ao usuário. Os registros de Cliente de Portal e Usuário são criados com a situação de “Pendente Ativação E-mail”. 7.1. Alternativamente, caso ocorra algum erro neste processo, uma mensagem de falha é apresentada ao usuário, com o(s) respectivo(s) motivo. 8. O caso de uso se encerra. Fluxos Alternativos (#A1): Confirmação de E-mail 1. O usuário acessa o e-mail com o qual se cadastrou e clica no link de confirmação. 2. O link irá apontar para o sistema, este que ao receber a solicitação irá alterar a situação do Cliente de Portal e do Usuário para “Pendente Aprovação”.

 

 

113  

Fluxo de Exceção (#E1): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem “O campo ‘NomeCampo’ é obrigatório!”. 2. O caso de uso retorna ao passo 5 do fluxo principal. (#E2): E-mail Inválido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!”. 2. O caso de uso retorna ao passo 5 do fluxo principal. Protótipos de Tela

 

 

   

 

114  

 

 

 

 

 

 

115  

ESP00A – Solicitação de Cadastro no Portal (Cliente Existente) Prover uma funcionalidade onde usuários possam se cadastrar no portal, e que o cliente ao qual pertencem já existe. Atores: Usuário Pré-condição: Que o usuário não esteja logado. Fluxo Principal – Solicitação de Cadastro no Portal (Cliente Existente) 1. O caso de uso se inicia quando o ator decide por se cadastrar no portal, e clica no botão de “Registrar”. 2. O sistema exibe uma tela com duas opções, uma com cliente já existente, e outra com cliente não existente; 3. O usuário seleciona a opção de cliente existente. 4. O sistema exibe um formulário de cadastro, com campos a preencher do novo do usuário e com os dados do cliente para visualização. 5. O cliente executa o fluxo (#A1). 6. O usuário preenche os dados do formulário e clica no botão ‘Salvar’. 6.1. Alternativamente ele pode clicar no botão ‘Cancelar’ e o caso de uso se encerra, voltando a tela inicial do portal. 7. O sistema faz a validação dos dados do formulário. (#E1) (#E2) 8. O sistema persiste os dados, envia um e-mail de confirmação para o email cadastrado e exibe uma mensagem de sucesso ao usuário. Os registros de Cliente de Portal e Usuário são criados com a situação de “Pendente Ativação E-mail”. 8.1. Alternativamente, caso ocorra algum erro neste processo, uma mensagem de falha é apresentada ao usuário, com o(s) respectivo(s) motivo. 9. O caso de uso se encerra. Fluxos Alternativos (#A1): Buscar Cliente de Portal 1. O sistema exibe um dialogo de busca de clientes de portal. 2. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3. O sistema executa a busca com os filtros passado pelo usuário e trás os resultados que batem com os mesmos. 4. O usuário seleciona o cliente na lista e clica no botão ‘Selecionar’.

 

 

116   4.1. Alternativamente, o usuário pode voltar ao passo 2 e refazer sua busca. 4.2. Alternativamente, o usuário pode clicar no botão cancelar e nenhuma ação é executada.

5. O sistema então mostra os dados básicos do cliente de portal selecionado na aba de Cliente. (#A2): Confirmação de E-mail 1. O usuário acessa o e-mail com o qual se cadastrou e clica no link de confirmação. 2. O link irá apontar para o sistema, este que ao receber a solicitação irá alterar a situação do Usuário para “Pendente Aprovação”. Fluxo de Exceção (#E1): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem “O campo ‘NomeCampo’ é obrigatório!”. 2. O caso de uso retorna ao passo 6 do fluxo principal. (#E2): E-mail Inválido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!”. 2. O caso de uso retorna ao passo 6 do fluxo principal. Interface

 

 

 

117  

 

 

118  

 

119  

ESP01 – Manter Clientes de Portal Permitir aos administradores do sistema cadastrar, alterar e remover clientes de portal que terão acesso a aplicação. Atores: Administrador do Portal Pré-condição: Que o usuário esteja logado e seja um administrador do portal Fluxo Principal – Manter Clientes de Portal 1. O caso de uso se inicia quando o usuário decide manter o os dados de clientes de portal. 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Cliente de Portal 3. O administrador do sistema quer cadastrar algum cliente no portal e clica no botão “Menu/Novo”. 4. O sistema exibe o formulário de cadastro usuários. 1. O usuário preenche os campos e clica no botão “Salvar”.(#A6) (#A7) (#A8) (#A9) 5. O sistema faz as validações necessárias. (#E2) 5.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 6. O sistema persiste os dados e exibe uma mensagem de sucesso. 6.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 7. O caso de uso retorna ao passo 3 do fluxo principal, com o registro criado selecionado e com os fluxos (#A3) (#A4) (#A5) habilitados. (#A2): Buscar Cliente de Portal

 

 

120  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de clientes de portal 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que “batem” com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o fluxo volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Cliente de Portal 2. O usuário clica no botão “Menu/Editar”. 3. O sistema exibe um formulário com os dados para a edição. 4. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) (#A7) (#A8) (#A9) 5. O sistema faz as validações necessárias. (#E2) 5.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 6. O sistema persiste os dados e exibe uma mensagem de sucesso. 6.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 7. O caso de uso retorna ao passo 3 do fluxo principal. (#A4): Remover Cliente de Portal

 

 

121  

1. O usuário decide por remover um cliente e clica no botão “Menu/Excluir“. 2. O sistema exibe um dialogo de confirmação de exclusão. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e o caso de uso se encerra. 4. O sistema altera a situação do cliente para “Excluído”,

persiste as

alterações na base de dados e exibe uma mensagem de sucesso. Agora os usuários do cliente não podem mais logar no sistema. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A5): Alterar Situação de Cliente de Portal 1. O ator decide alterar a situação de um cliente de portal e clica no botão “Menu/Alterar Situação”. 2. O sistema exibe um dialogo com as opções de situações disponíveis. 3. O ator escolhe a situação desejada e clica no botão “Confirmar”. 3.1. Alternativamente o ator clica no botão “Cancelar” e o caso de uso retorna para o passo 3 do fluxo principal. 4. O sistema altera a situação do cliente, persiste a alteração na base de dados e exibe uma mensagem de sucesso. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem “O campo ‘Nome Campo’ é obrigatório!” e volta ao preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca de clientes de portal não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”.

 

 

122  

(#E4): Resultado de filtro vazio 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!” e volta ao preenchimento das informações. Protótipos de tela

 

 

 

123  

 

 

124  

 

 

125  

 

126  

ESP01A – Aprovação de Clientes de Portal Prover uma funcionalidade onde os administradores possam ver as aprovações de clientes pendentes no portal, e aprova-las de forma rápida. Atores: Administrador do Portal Pré-condição: Que o usuário esteja logado e tenha perfil de administrador do portal. Fluxo Principal – Aprovação de Clientes de Portal 1. O caso de uso se inicia quando o ator decide visualizar as aprovações de clientes de portal pendentes. 2. O sistema exibe uma lista de clientes de portal com o status “Pendente Aprovação”, ordenados pela data de criação mais antiga. (#E1) 3. O ator escolhe uma das opções disponíveis. (#A1) (#A2) (#A3) 4. O ator pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra. Fluxos Alternativos (#A1): Filtrar Clientes de Portal 1. O ator deseja filtrar os clientes pendentes e clica no botão “Filtrar”. 2. O sistema exibe um dialogo com os campos de busca a serem preenchidos. 3. O ator preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o ator clica no botão “Todos”, e o sistema realiza a busca ignorando os filtros passados. 3.2. Alternativamente o ator clica no botão “Cancelar”, e o caso de uso se encerra. 4. O sistema realiza a busca na base de dados, atualizando a lista de clientes com os registros que combinam com os filtros passados. (#E1) (#A2): Detalhar Cliente 1. O usuário clica no botão “Menu Ações/Detalhar” do registro que ele deseja visualizar os dados. 2. O sistema exibe um dialogo com os dados do cliente de portal. 3. O usuário clica no botão “Fechar” e o dialogo é fechado. (#A3): Aprovar Cliente de Portal

 

 

127  

1. O ator clica no botão “Menu Ações/Ativar” do registro que ele deseja alterar. 2. O sistema exibe um dialogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e este fluxo se encerra. 4. O sistema então muda a situação do Cliente de Portal para “Ativo”, juntamente com a situação de seu usuário responsável, persistindo as alterações na base de dados. 5. O sistema envia um e-mail ao usuário ativado, avisando que ele já pode acessar o sistema. 6. O sistema exibe uma mensagem de sucesso. Fluxo de Exceção (#E1): Resultado de filtro vazio 1. Sistema emite a mensagem “Nenhum registro encontrado” dentro da lista de registros. Pós-condição: N/A Protótipos de Tela

 

 

 

128  

 

129  

ESP02 – Manter Usuários (Administrador) Permitir aos administradores do sistema manter os usuários de algum cliente de portal, alterar e remover registros. Atores: Administrador do Portal Pré-condição: Que o usuário esteja logado e seja um administrador do portal Fluxo Principal – Manter Usuários 1. O caso de uso se inicia quando o usuário decide manter o usuários 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Usuário 1. O administrador do sistema quer cadastrar usuário para algum cliente e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro usuários. 3. O usuário preenche os campos e clica no botão “Salvar. (#A6) 4. O sistema faz as validações necessárias. (#E2) (#E4) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar Usuário

 

 

130  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de usuários 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que “batem” com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o fluxo volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Usuário 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados para a edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) 4. O sistema faz as validações necessárias. (#E2) (#E4) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A4): Remover Usuário

 

 

131  

1. O usuário decide por remover um usuário e clica no botão “Menu/Excluir“. 2. O sistema exibe um dialogo de confirmação de exclusão. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e o caso de uso se encerra. 4. O sistema altera a situação do usuário para “Excluído”,

persiste as

alterações na base de dados e exibe uma mensagem de sucesso. Agora os usuário não pode mais logar o sistema nem aparece nas buscas para o cliente. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A5): Alterar Situação de Usuário 1. O ator decide alterar a situação de um usuário. 2. O sistema exibe um dialogo com as opções de situações disponíveis. 3. O ator escolhe a situação desejada e clica no botão “Confirmar”. 3.1. Alternativamente o ator clica no botão “Cancelar” e o caso de uso retorna para o passo 3 do fluxo principal. 4. O sistema altera a situação do usuário, persiste a alteração na base de dados e exibe uma mensagem de sucesso. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A6): Buscar Cliente de Portal

 

 

132  

1. O ator deseja selecionar o cliente de portal a qual o usuário pertence e clica no botão de “Buscar Cliente de Portal”. 2. O sistema exibe um dialogo de busca de clientes de portal. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que “batem” com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o fluxo volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o usuário é relacionado como usuário deste cliente. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. (#E4): E-mail Inválido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!” e volta ao preenchimento das informações. Pós-condição: N/A Protótipos de Tela

 

 

 

133  

 

 

134  

 

135  

ESP02A – Manter Usuários (Usuário Responsável) Permitir aos usuário responsável de um cliente manter os seus usuários, criando, alterando e removendo registros. Atores: Usuário Responsável Pré-condição: Que o usuário esteja logado e seja um o usuário responsável de um cliente de portal. Fluxo Principal – Manter Usuários 1. O caso de uso se inicia quando o usuário decide manter o usuários. 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra. Fluxos Alternativos (#A1): Cadastrar Usuário 1. O administrador do cliente quer cadastrar usuário e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro usuários. 3. O usuário preenche os campos e clica no botão “Salvar. 4. O sistema faz as validações necessárias. (#E2) (#E4) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar Usuário

 

 

136  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de usuários. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que “batem” com os filtros passados. Esta busca será filtrada e trará resultados apenas do cliente de portal ao qual o usuário logado pertence. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o fluxo volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Usuário 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados para a edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. 4. O sistema faz as validações necessárias. (#E2) (#E4) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A4): Remover Usuário

 

 

137  

1. O usuário decide por remover um usuário e clica no botão “Menu/Excluir“. 2. O sistema exibe um dialogo de confirmação de exclusão. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e o caso de uso se encerra. 4. O sistema altera a situação do usuário para “Excluído”,

persiste as

alterações na base de dados e exibe uma mensagem de sucesso. Agora os usuário não pode mais logar o sistema nem aparece nas buscas para o cliente. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A5): Alterar Situação de Usuário 1. O ator decide alterar a situação de um usuário. 2. O sistema exibe um dialogo com as opções de situações disponíveis. 3. O ator escolhe a situação desejada e clica no botão “Confirmar”. 3.1. Alternativamente o ator clica no botão “Cancelar” e o caso de uso retorna para o passo 3 do fluxo principal. 4. O sistema altera a situação do usuário, persiste a alteração na base de dados e exibe uma mensagem de sucesso. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”.

 

 

138  

(#E4): E-mail Inválido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!” e volta ao preenchimento das informações. Pós-condição: N/A Protótipos de Tela

 

 

 

139  

 

140  

ESP02B – Aprovação de Usuários de Cliente Prover uma funcionalidade onde os usuários responsáveis de um cliente de portal possam ver as os usuários pendentes de seu cliente, e aprova-los de forma rápida. Atores: Usuário Responsável Pré-condição: Que o usuário esteja logado e seja um usuário responsável do cliente de portal. Fluxo Principal – Aprovação de Usuários de Cliente 1. O caso de uso se inicia quando o ator decide visualizar as aprovações de usuário pendentes. 2. O sistema exibe uma lista de usuários com a situação “Pendente Aprovação”, ordenados pela data de criação mais antiga e pertencentes ao cliente de portal do usuário que está logado. 3. O ator escolhe uma das opções disponíveis. (#A1) (#A2) 4. O ator pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra. Fluxos Alternativos (#A1): Filtrar Usuários 1. O ator deseja filtrar os usuários pendentes e clica no botão “Filtrar”. 2. O sistema exibe um dialogo com os campos de busca a serem preenchidos. 3. O ator preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o ator clica no botão “Todos”, e o sistema realiza a busca ignorando os filtros passados. 3.2. Alternativamente o ator clica no botão “Cancelar”, e o caso de uso se encerra. 4. O sistema realiza a busca na base de dados, atualizando a lista de usuários com os registros que combinam com os filtros passados. (#A2): Ativar Usuário

 

 

141  

1. O ator clica no botão “Menu Ações/Ativar” do registro que ele deseja alterar. 2. O sistema exibe um dialogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e este fluxo se encerra. 4. O sistema então muda a situação do Usuário para “Ativo”, persistindo as alterações na base de dados. 5. O sistema envia um e-mail ao usuário ativado, avisando que ele já pode acessar o sistema. 6. O sistema exibe uma mensagem de sucesso. Fluxo de Exceção (#E1): Resultado de filtro vazio 1. Sistema emite a mensagem “Nenhum registro encontrado” dentro da lista de registros. Pós-condição: N/A Protótipos de Tela

 

 

 

 

142  

 

 

143  

ESP03 – Configuração de Descrição Estendida Permite ao usuário responsável do sistema configurar os campos que irão aparecer na funcionalidades de manutenção de descrições estendidas. Atores: Usuário Responsável Pré-condição: Que o usuário esteja logado e seja o usuário responsável do cliente. Fluxo Principal – Configuração de Descrição Estendida 1. O caso de uso se inicia quando o ator decide configurar o arquivo de descrições estendidas. 2. O sistema exibe uma tela com os dados do cliente e com as opções de dados que a descrição estendida irá manter. 3. O usuário clica no botão “Editar”. 4. O sistema exibe a mesma tela de visualização, porém com os campos habilitados para a edição. 5. O usuário altera as opções que desejar e clica no botão “Salvar”. 5.1. Alternativamente o usuário clica no botão “Cancelar” e o sistema o redireciona para a tela de visualização. 6. O sistema então persiste a alteração e exibe uma mensagem de sucesso ao usuário. 6.1. Caso ocorra algum erro, o sistema exibe uma mensagem de erro. 7. Agora, na funcionalidade Manutenção de Descrições Estendidas, apenas os dados marcados nesta UF serão apresentados na tela do usuário para a visualização e manutenção. Pós-condição: O arquivo de demanda foi devidamente mantido. Protótipos de Tela

 

 

   

 

144  

 

 

145  

ESP04 – Manter Cenários Base Permitir aos clientes de portal e seus usuários manterem fluxos padrão de especificação, ou seja, criar fluxos de casos de uso base, para poderem ser reutilizados na hora de criar casos de uso em uma especificação. Atores: Usuários de Cliente de Portal Regras de Negócio Associadas: Um cenário precisa possuir no mínimo dois passos para poder ser salvo. Pré-condição: Que o usuário esteja logado. Fluxo Principal – Manter Cenários Base 1. O caso de uso se inicia quando o ator decide manter os cenários base do cliente. 2. O sistema habilita as opções de manutenção de cenários base. (#A1) (#A2) (#A3) (#A4) (#A5) (#A6) (#E1) 3. O ator escolhe uma das opções disponíveis. 4. O ator pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Cenário Base 1. O ator decide cadastrar um cenário base e clica no botão “Novo”. 2. O sistema exibe um dialogo para o cadastro do cenário. 3. O ator preenche todos os campos obrigatórios e opcionais que desejar. (#A5) 4. O ator decide salvar o cadastro. 4.1. Alternativamente o ator desiste da operação e o caso de uso retorno para o passo 3 do fluxo principal. 5. O sistema valida os dados inseridos (#E2) (#E4) 6. O sistema persiste o novo fluxo. 7. O caso de uso retorna ao ponto de chamada. (#A2): Procurar Cenário Base

 

 

146  

1. O ator deseja buscar algum cenário já cadastrado na aplicação e clica no botão Filtrar. 2. O sistema exibe um dialogo de busca de cenários. 3. O ator preenche os filtros ou parte deles e clica no botão filtrar. 4. O ator clica em filtrar e o sistema exibe o resultado da busca (#E3) 4.1. O ator pode retornar ao passo 3 quantas vezes achar necessário 5. O ator navega pela lista e escolhe o registro desejado 5.1. Alternativamente o ator desiste da operação e o caso de uso retorna para o passo 3 do fluxo principal 6. O sistema habilita os fluxos (#A3) (#A4) (#A5) (#A6) 7. O sistema retorna ao passo 3 do fluxo principal (#A4): Editar Cenários Base 1. O ator decide editar algum cenário base e clica no botão “Ações/Editar”. 2. O sistema exibe o formulário de alteração de cenários. 3. O ator altera todos os campos que desejar e clica no botão “Salvar”. 3.1. Alternativamente o ator desiste da operação e o caso de uso retorno para o passo 3 do fluxo principal 4. O sistema valida os dados inseridos (#E2) 5. O sistema armazena os novos dados no arquivo de demandas na base de dados 6. O caso de uso retorna para o passo 3 do fluxo principal (#A5): Remover Cenário Base 1. O usuário seleciona o(s) cenário(s) que deseja remover e clica no botão “Excluir”. 2. O sistema exibe um diálogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente ele clica em “Cancelar” e o caso de uso se encerra. 4. Os cenários são removidos da base de dados e a lista de cenários é atualizada. 5. O sistema retorna ao ponto de chamada. (#A6): Visualização Rápida de Cenário

 

 

147  

1. O ator clica no botão “Ações/Visualizar”. 2. O sistema exibe um dialogo com os dados do cenário selecionado. 3. O ator clica no botão “Fechar”. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#A6). (#E2): Dados inseridos inválidos 1. Sistema emite a mensagem informando os campos cujo valores são inválidos. 2. O sistema volta ao ponto de chamada. (#E3): Resultado de filtro vazio 1. Sistema emite a mensagem “Nenhum registro encontrado” dentro da lista de busca de registros. (#E4): Restrições de integridade Protótipos de Tela

 

 

 

148  

 

149  

ESP05 – Manter Atores Permite que os usuários de um cliente mantenham os dados dos possíveis Atores que podem ser utilizados na hora se construir especificações técnicas. Atores: Usuários de Cliente de Portal Pré-condição: O Usuário precisa estar logado. Fluxo Principal – Manter Atores 1. O caso de uso se inicia quando usuário opta por manter atores. 2. O sistema exibe uma tela com uma lista de atores cadastrados, habilitando os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#E2) 3. O ator escolhe uma das opções disponíveis. 4. O ator pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Ator 1. O usuário deseja criar um novo Ator e clica no botão “Novo”. 2. O sistema exibe um dialogo com os dados do novo ator a serem preenchidos. 3. O usuário preenche os campos e clica no botão “Salvar”. 4. O sistema faz as validações necessárias. (#E1) 5. O sistema então persiste os dados do novo Ator e envia uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema envia uma mensagem de erro. 6. A lista de atores é atualizada, agora com o novo ator incluído. 7. O caso de uso retorna para o passo 3 do fluxo principal (#A2): Filtrar Atores

 

 

150  

1. O usuário clica no botão “Filtrar”. 2. O sistema exibe um dialogo com campos de filtro a serem preenchidos. 3. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o usuário clica no botão “Todos”. 3.2. O sistema realiza o filtro de atores ignorando os filtros passados pelo usuário. 3.3. Alternativamente o usuário clica no botão “Cancelar” o dialogo é fechado e nenhuma filtro é executado. 4. O sistema realiza o filtro de atores de acordo com os parâmetros passados pelo usuário, e atualiza a lista de atores na tela. (#E2) (#A4): Editar Ator 1. O usuário deseja editar um ator existente e clica no botão “Menu Ações/Editar”. 2. O sistema exibe um dialogo com os dados do ator para serem editados. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. 4. O sistema faz as validações necessárias. (#E1) 5. O sistema então persiste os dados e envia uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema envia uma mensagem de erro. 6. A lista de atores é atualizada, agora com o os dados do ator atualizados. 7. O caso de uso retorna para o passo 3 do fluxo principal (#A5): Remover Ator 1. O usuário seleciona o(s) ator(es) que deseja remover e clica no botão “Excluir”. 2. O sistema exibe um diálogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente ele clica em “Cancelar” e o caso de uso se encerra. 4. Os atores são removidos da base de dados e a lista de atores é atualizada. 5. O sistema retorna ao ponto de chamada. Fluxo de Exceção (#E1): Dados Obrigatórios

 

 

151  

1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E2): Resultado de filtro vazio 1. Sistema emite a mensagem “Nenhum registro encontrado” dentro da lista de registros. (#E3): Restrição de Integridade 1. Se o ator estiver atrelado a alguma especificação ele não pode ser excluído. Pós-condição: O arquivo de demanda foi devidamente mantido. Protótipos de Tela

 

 

 

152  

 

153  

ESP06 – Manter Clientes de Projeto Permitir aos usuários administradores de um cliente de portal cadastrar, alterar e remover dados de seus clientes de projeto. Atores: Administrador Cliente Pré-condição: Que o usuário esteja logado e seja um administrador cliente. Fluxo Principal – Manter Clientes de Projeto 1. O caso de uso se inicia quando o usuário decide manter o os dados de clientes de projeto. 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Cliente de Projeto 1. O ator deseja cadastrar algum cliente de projeto e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro com os campos a serem preenchidos. 3. O usuário preenche os campos e clica no botão “Salvar”.(#A6) (#A7) (#A8) (#A9) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar Cliente de Projeto

 

 

154  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de clientes de projeto. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Cliente de Projeto 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados preenchidos em modo de edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) (#A7) (#A8) (#A9) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A4): Remover Cliente de Projeto

 

 

155  

1. O usuário decide por remover um cliente e clica no botão “Menu/Excluir“. 2. O sistema exibe um dialogo de confirmação de exclusão. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente o usuário clica no botão “Cancelar” e o caso de uso se encerra. 4. O sistema altera a situação do cliente para “Excluído”,

persiste as

alterações na base de dados e exibe uma mensagem de sucesso. Agora, o cliente de projeto não aparece mais nas buscas. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A5): Alterar Situação de Cliente de Projeto 1. O ator decide alterar a situação de um cliente de projeto. 2. O sistema exibe um dialogo com as opções de situações disponíveis. 3. O ator escolhe a situação desejada e clica no botão “Confirmar”. 3.1. Alternativamente o ator clica no botão “Cancelar” e o caso de uso retorna para o passo 3 do fluxo principal. 4. O sistema altera a situação do cliente, persiste a alteração na base de dados e exibe uma mensagem de sucesso. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A6): Novo Contato 1. O usuário decide cadastrar um novo contato para o cliente de projeto e clica no botão “Menu Contato/Novo”. 2. O sistema exibe um diálogo com os dados do novo contato a preencher. 3. O ator preenche os campos e clica no botão “Salvar” 3.1. Alternativamente o ator desiste da operação e o caso de uso retorna ao ponto de chamada. 4. O sistema faz a validação dos campos. (#E2) (#E4) 5. O usuário é adicionado na lista de contatos do cliente. 6. O sistema retorna ao ponto de chamada. (#A7): Filtrar Contatos

 

 

156  

1. O usuário clica no botão “Menu Contato/Filtrar”. 2. O sistema exibe um dialogo com campos de filtro a serem preenchidos. 3. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o usuário clica no botão “Todos”. 3.2. O sistema realiza o filtro de contatos ignorando os filtros passados pelo usuário. 3.3. Alternativamente o usuário clica no botão “Cancelar” o dialogo é fechado e nenhuma filtro é executado. 4. O sistema realiza o filtro de contatos de acordo com os parâmetros passados pelo usuário, e atualiza a lista de contatos na tela. (#E3) (#A8): Editar Contato 1. O usuário decide editar um usuário e clica no botão “Menu Ações/Editar”. 2. O sistema exibe um diálogo com os dados do contato a alterar. 3. O ator altera os campos que deseja e clica no botão “Salvar”. 3.1. Alternativamente o ator desiste da operação e o caso de uso retorna ao ponto de chamada. 4. O sistema faz a validação de campos. (#E2) (#E4) 5. O usuário é atualizado na lista de contatos do cliente. 6. O sistema retorna ao ponto de chamada. (#A9): Excluir Contatos 1. O ator seleciona o(s) contato(s) que deseja remover e clica no botão “Menu Contato/Excluir”. 2. O sistema exibe um diálogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente ele clica em “Cancelar” e o caso de uso se encerra. 4. Os contatos selecionados são removidos da lista de contatos do cliente. 5. O sistema retorna ao ponto de chamada. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios

 

 

157  

1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. (#E4): E-mail Válido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!” e volta ao preenchimento das informações. Protótipos de Tela

 

 

 

158  

 

 

159  

 

 

160  

 

161  

ESP07 – Manter Projetos Permitir aos usuários de um cliente de portal cadastrar, alterar e remover dados de seus projetos. Atores: Administrador Cliente Pré-condição: Que o usuário esteja logado e seja um administrador cliente. Fluxo Principal – Manter Projetos 1. O caso de uso se inicia quando o usuário decide manter o os dados e um projeto. 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Projetos 1. O ator deseja cadastrar algum projeto e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro com os campos a serem preenchidos. 3. O usuário preenche os campos e clica no botão “Salvar”.(#A6) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar Projeto

 

 

162  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de projetos. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Projeto 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados preenchidos em modo de edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A5): Alterar Situação de Projeto

 

 

163  

1. O ator decide alterar a situação de um projeto. 2. O sistema exibe um dialogo com as opções de situações disponíveis. 3. O ator escolhe a situação desejada e clica no botão “Confirmar”. 3.1. Alternativamente o ator clica no botão “Cancelar” e o caso de uso retorna para o passo 3 do fluxo principal. 4. O sistema altera a situação do projeto, persiste a alteração na base de dados e exibe uma mensagem de sucesso. 4.1. Alternativamente, caso ocorra algum erro no passo 4, o sistema exibe uma mensagem de erro. 5. O caso de uso retorna para o passo 3 do fluxo principal. (#A6): Buscar Cliente Projeto 1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de clientes de projeto. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 5.2. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A7): Visualizar Artefatos do Projeto 1. Ao se selecionar algum projeto, é exibida uma lista com todos os artefatos cadastrados no mesmo, sendo possível a navegação para eles a partir da mesma tela. (#A8): Visualizar Descrições do Projeto 1. Ao se selecionar algum projeto, é exibida uma lista com todas as descrições estendidas do projeto, permitindo que seja feita a navegação para a funcionalidade de visualizar descrição. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5)

 

 

164  

(#E2): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. Protótipos de Tela

 

 

 

165  

 

 

166  

 

 

167  

 

168  

ESP08 – Manter Artefatos de Projeto Permitir aos usuários de um cliente de portal cadastrar, alterar e remover artefatos e documentos dentro de um projeto, que serão utilizados para consulta. Atores: Usuário Pré-condição: Que o usuário esteja logado. Fluxo Principal – Manter Artefatos de Projeto 1. O caso de uso se inicia quando o usuário decide manter os artefatos de algum projeto 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5) (#A7) (#A8) (#A9) (#A10) (#A11) (#A12) (#A13) (#A14) 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 5. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar Artefato de Projeto 1. O ator deseja cadastrar algum artefato e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro com os campos a serem preenchidos. 3. O usuário preenche os campos e clica no botão “Salvar”.(#A6) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar Artefato de Projeto

 

 

169  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de artefatos de projetos. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) (#A3): Editar Artefato de Projeto 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados preenchidos em modo de edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A6): Buscar Projeto

 

 

170  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de projetos. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 5.2. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A7): Novo Anexo 1. O usuário decide cadastrar um novo anexo e clica no botão “Menu Anexo/Novo”. 2. O sistema exibe um diálogo com o componente de file upload. 3. O ator clica no botão selecione, e seleciona o(s) arquivo(s) que deseja anexar. 3.1. Alternativamente o ator desiste da operação e o caso de uso retorna ao ponto de chamada. 4. O anexo é atrelado ao artefato. 5. O sistema retorna ao ponto de chamada. (#A8): Filtrar Anexos 1. O usuário clica no botão “Menu Anexo/Filtrar”. 2. O sistema exibe um dialogo com campos de filtro a serem preenchidos. 3. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o usuário clica no botão “Todos”. 3.2. O sistema realiza o filtro de anexos ignorando os filtros passados pelo usuário. 3.3. Alternativamente o usuário clica no botão “Cancelar” o dialogo é fechado e nenhum filtro é executado. 4. O sistema realiza o filtro de anexos de acordo com os parâmetros passados pelo usuário, e atualiza a lista de contatos na tela. (#E3) (#A10): Excluir Anexo

 

 

171  

1. O ator seleciona o(s) anexo(s) que deseja remover e clica no botão “Menu Anexo/Excluir”. 2. O sistema exibe um diálogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente ele clica em “Cancelar” e o caso de uso se encerra. 4. Os anexos selecionados são removidos da lista de contatos do cliente. 5. O sistema retorna ao ponto de chamada. (#A11): Novo Documento 1. O usuário decide cadastrar um novo documento e clica no botão “Menu Documentos/Novo”. 2. O sistema exibe um diálogo com os campos de documento a serem preenchidos 3. O ator preenche os dados e clica no botão “Salvar”. 4. O sistema faz a validação dos campos. (#E2) 4.1. Alternativamente o ator desiste da operação e o caso de uso retorna ao ponto de chamada. 5. O novo documento é atrelado ao artefato. 6. O sistema retorna ao ponto de chamada. (#A12): Filtrar Documentos 1. O usuário clica no botão “Menu Documentos/Filtrar”. 2. O sistema exibe um dialogo com campos de filtro a serem preenchidos. 3. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3.1. Alternativamente o usuário clica no botão “Todos”. 3.2. O sistema realiza o filtro de documentos ignorando os filtros passados pelo usuário. 3.3. Alternativamente o usuário clica no botão “Cancelar” o dialogo é fechado e nenhum filtro é executado. 4. O sistema realiza o filtro de documentos de acordo com os parâmetros passados pelo usuário, e atualiza a lista de contatos na tela. (#E3) (#A13): Editar Documentos

 

 

172  

1. O usuário decide editar um documento existente e clica no botão “Menu Ações/Editar”. 2. O sistema exibe um diálogo com os campos de documento a serem editados. 3. O ator altera os dados que deseja e clica no botão “Salvar”. 4. O sistema faz a validação dos campos. (#E2) 4.1. Alternativamente o ator desiste da operação e o caso de uso retorna ao ponto de chamada. 5. O novo documento é atrelado ao artefato. 6. O sistema retorna ao ponto de chamada. (#A14): Excluir Documento 1. O ator seleciona o(s) documentos(s) que deseja remover e clica no botão “Menu Documento/Excluir”. 2. O sistema exibe um diálogo de confirmação. 3. O usuário clica no botão “Confirmar”. 3.1. Alternativamente ele clica em “Cancelar” e o caso de uso se encerra. 4. Os documentos selecionados são removidos da lista de contatos do cliente. 5. O sistema retorna ao ponto de chamada. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. Protótipos de Tela

 

 

 

173  

 

 

174  

 

 

175  

 

 

176  

 

177  

ESP09 – Manter Descrições Estendidas Permitir aos usuários de um cliente de portal fazer a manutenções diversos dados referentes a descrições estendidas. Atores: Usuário Pré-condição: Que o usuário esteja logado Fluxo Principal – Manter Descrições Estendidas 1. O caso de uso se inicia quando o usuário decide manter o os dados de uma descrição estendida. 2. O sistema habilita os botões para os fluxos alternativos. (#A1) (#A2) (#A3) (#A4) (#A5). 3. O usuário seleciona a opção que deseja executar. 4. O usuário pode retornar ao passo 3 quando vezes desejar. 6. Este caso de uso se encerra Fluxos Alternativos (#A1): Cadastrar DE 1. O ator deseja cadastrar alguma nova descrição e clica no botão “Menu/Novo”. 2. O sistema exibe o formulário de cadastro com os campos a serem preenchidos, porém apenas as abas de Dados Básicos e Outras Informações estão com os dados para a edição, enquanto os outros serão apenas visualizados. 3. O usuário preenche os campos e clica no botão “Salvar”. 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A2): Buscar DE

 

 

178  

1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de descrições estendidas. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela e o sistema habilita os fluxos (#A3) (#A4) (#A5) ALTERAR (#A3): Editar DE 1. O usuário clica no botão “Menu/Editar”. 2. O sistema exibe um formulário com os dados preenchidos em modo de edição. 3. O usuário altera os campos que deseja e clica no botão “Salvar”. (#A6) 4. O sistema faz as validações necessárias. (#E2) 4.1. Alternativamente o usuário clica no botão “Cancelar” o sistema volta ao passo 3 do fluxo principal. 5. O sistema persiste os dados e exibe uma mensagem de sucesso. 5.1. Alternativamente, caso ocorra algum erro, o sistema exibe uma mensagem de erro. 6. O caso de uso retorna ao passo 3 do fluxo principal. (#A5): Manter Cenários

 

 

179  

1. O ator decide buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de descrições estendidas. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E3) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela; (#A6): Manter Tipos de Dados 1. O usuário deseja manter algum tipo de dado e acessa a aba de Tipos de dados. 2. O usuário pode deseja cadastrar um novo Dado e clica no botão ‘Novo’; 3. O sistema exibe o diálogo de criação de tipos de dados; 4. O usuário preenche os dados e clica no botão ‘Salvar’; 5. O novo registro é criado e a lista de dados atualizada; 5.1. Alternativamente, o usuário deseja alterar algum dado existente e clica no botão ‘Editar’ do registro selecionado; 5.2. O sistema exibe um diálogo com os dados para alteração; 5.3. O usuário altera os dados que desejar e clica no botão ‘Salvar’ 5.4. O sistema atualiza o registro editado e atualiza a lista de dados; (#A7): Visualizar Descrições do Projeto 1. Ao se selecionar algum projeto, é exibida uma lista com todas as descrições estendidas do projeto, permitindo que seja feita a navegação para a funcionalidade de visualizar descrição. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A3) (#A4) (#A5) (#E2): Dados obrigatórios

 

 

180  

1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem

“O

campo

‘NomeCampo’

é

obrigatório!”

e

volta

ao

preenchimento das informações. (#E3): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. Protótipos de Tela

 

 

 

181  

 

 

182  

 

 

183  

 

184  

ESP09A – Impressão de Descrições Estendidas Permitir aos usuários de um cliente de portal gerar os arquivos de impressão das descrições que foram confeccionadas por meio do sistema. Atores: Usuário Pré-condição: Que o usuário esteja Fluxo Principal – Impressão de Descrições Estendidas 1. O caso de uso se inicia quando o usuário por imprimir alguma descrição estendida de um projeto. 2. O sistema exibe uma tela de impressão de descriçõ 3. O usuário executa o fluxo (#A1). 4. O usuário seleciona a opção que deseja executar. (#A2) (#A3) 5. O usuário pode retornar ao passo 3 quando vezes desejar. 6. Este caso de uso se encerra Fluxos Alternativos (#A1): Buscar Projeto 1. O ator deseja buscar um registro já existente e clica no botão “Buscar”. 2. O sistema exibe um dialogo de busca de projetos. 3. O ator preenche os filtros ou parte deles e clica no botão “Filtrar”. 4. O sistema realiza a busca na base de dados e trás os registros que conferem com os filtros passados. (#E2) 4.1. Alternativamente, o usuário pode retornar ao passo 3 e refazer sua busca. 5. O usuário seleciona o registro que deseja e clica no botão “Selecionar”. 5.1. Alternativamente o ator desiste da operação, clica no botão “Cancelar” e o sistema volta ao passo 3 do fluxo principal. 6. O registro selecionado é exibido na tela, e a lista de descrições estendidas é atualizada, listando todas as descrições do projeto selecionado. (#A2): Imprimir Descrição Estendida

 

 

185  

1. O ator seleciona a(s) descrição(s) que deseja imprimir e clica no botão “Menu Descrição/Imprimir”. 2. O sistema então gera a descrição no formato PDF e disponibiliza para download. 3. O sistema retorna ao ponto de chamada. (#A3): Visualizar Descrição Estendida 1. O usuário clica no botão “Menu Ações/Detalhar” e o sistema o redireciona para a tela de manutenção de DE, com o registro escolhido selecionado. Fluxo de Exceção (#E1): Não existe registro selecionado 1. O sistema desabilita a opções (#A2) (#A3) (#E2): Resultado de filtro vazio 1. Caso a busca não retorne nenhum registro, será exibida a mensagem “Nenhum registro foi encontrado”. Protótipos de Interface

 

 

 

186  

 

 

187  

 

188  

ANEXO B – MODELOS DE DESCRIÇÃO DE CASOS DE USO DE SOFTWARE Este modelo foi retirado do livro de Eduardo Bezerra. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro. Ed. Campus.

2003. Ele

apresenta a descrição de dois casos de uso: Realizar Inscrição de Aluno e Manter informações sobre Disciplinas. Realizar Inscrição de Aluno (CSU01) Sumário: Aluno usa o sistema para realizar inscrição em disciplina Ator Primário: Aluno Ator Secundário: Sistema de Faturamento Pré-condições: O aluno está identificado pelo sistema Fluxo Principal 1. O caso de uso inicia quando o aluno solicita a realização de inscrição. 2. O sistema apresenta as disciplinas disponíveis para o semestre corrente e para as quais o aluno tem pré-requisitos. 3. O aluno seleciona as disciplinas desejadas e as submete para inscrição. 4. Para cada disciplina selecionada, o sistema aloca o aluno em uma turma que apresente uma oferta para tal disciplina. 5. O sistema informa as turmas nas quais o aluno foi alocado. Para cada alocação, o sistema informa o professor, os horários e os respectivos locais das aulas de cada disciplina. 6. O aluno confere as informações fornecidas. 7. O sistema envia os dados sobre a inscrição do aluno para o Sistema de Faturamento e o caso de uso termina. Fluxo Alternativo (4): Inclusão em lista de espera a. Se não há oferta disponível para alguma disciplina selecionada pelo aluno, o sistema reporta o fato e fornece a possibilidade de inserir o aluno em uma lista de espera.

 

 

189   b. Se o aluno aceitar, o sistema o insere na lista de espera e apresenta a posição na qual o aluno foi inserido na lista. O caso de uso retorna ao passo 4. c. Se o aluno não aceitar, o caso de uso prossegue a partir do passo 4.

Fluxo de Exceção (4): Aluno atinge a quantidade máxima de inscrições a. Se o aluno atingiu a quantidade máxima de inscrições, o sistema informa ao aluno a quantidade de disciplinas que ele pode selecionar, e o caso de uso retorna ao passo 2. Pós-condições: O aluno foi inscrito em uma das turmas de cada uma das disciplinas desejadas, ou foi adicionado a uma ou mais lista de espera.

Tabela 34 – Template utilizado na Fábrica de Software do Grupo Europa Empreendimentos e Negócios

XXXNNX - Objetivos Protótipo da Interface

Interface com: Usuário

Tipo de Formulário

Comando

Funcionalidade

Posição

HOME

VIEW

Transição

Diagrama Funcional



Arquivos C R U D Restrições na camada de persistência X Campo da tela Obr RO Formato Atributo Arquivo Restrições Outras Camadas

Gatilho da Mensagem

Cod Mensagem

   

Tipo

Botões

 

190  

Objetivo Pré-req Restrições Pós-req Notas

Demanda e requisitos Tabela 35 – Modelo De Descrição utilizado para descrever o sistema TiEspec

ESP00A – Solicitação de Cadastro no Portal (Cliente Existente) Prover uma funcionalidade onde usuários possam se cadastrar no portal, e que o cliente ao qual pertencem já existe. Atores: Usuário Pré-condição: Que o usuário não esteja logado. Fluxo Principal – Solicitação de Cadastro no Portal (Cliente Existente) 1. O caso de uso se inicia quando o ator decide por se cadastrar no portal, e clica no botão de “Registrar”. 2. O sistema exibe uma tela com duas opções, uma com cliente já existente, e outra com cliente não existente; 3. O usuário seleciona a opção de cliente existente. 4. O sistema exibe um formulário de cadastro, com campos a preencher do novo do usuário e com os dados do cliente para visualização. 5. O cliente executa o fluxo (#A1). 6. O usuário preenche os dados do formulário e clica no botão ‘Salvar’. 6.1. Alternativamente ele pode clicar no botão ‘Cancelar’ e o caso de uso se encerra, voltando a tela inicial do portal. 7. O sistema faz a validação dos dados do formulário. (#E1) (#E2) 8. O sistema persiste os dados, envia um e-mail de confirmação para o email cadastrado e exibe uma mensagem de sucesso ao usuário. Os registros de Cliente de Portal e Usuário são criados com a situação de “Pendente Ativação E-mail”. 8.1. Alternativamente, caso ocorra algum erro neste processo, uma mensagem de falha é apresentada ao usuário, com o(s) respectivo(s) motivo. 10. O caso de uso se encerra.

 

 

191  

Fluxos Alternativos (#A1): Buscar Cliente de Portal 1. O sistema exibe um dialogo de busca de clientes de portal. 2. O usuário preenche os campos ou parte deles e clica no botão “Filtrar”. 3. O sistema executa a busca com os filtros passado pelo usuário e trás os resultados que batem com os mesmos. 4. O usuário seleciona o cliente na lista e clica no botão ‘Selecionar’. 4.1. Alternativamente, o usuário pode voltar ao passo 2 e refazer sua busca. 4.2. Alternativamente, o usuário pode clicar no botão cancelar e nenhuma ação é executada. 5. O sistema então mostra os dados básicos do cliente de portal selecionado na aba de Cliente. (#A2): Confirmação de E-mail 1. O usuário acessa o e-mail com o qual se cadastrou e clica no link de confirmação. 2. O link irá apontar para o sistema, este que ao receber a solicitação irá alterar a situação do Usuário para “Pendente Aprovação”. Fluxo de Exceção (#E1): Dados obrigatórios 1. Caso algum dado obrigatório não seja preenchido, o sistema exibe a mensagem “O campo ‘NomeCampo’ é obrigatório!”. 3. O caso de uso retorna ao passo 6 do fluxo principal. (#E2): E-mail Inválido 1. Se o e-mail informado pelo usuário não respeitar sua máscara, o sistema exibe a mensagem “O e-mail informado é inválido!”. 2. O caso de uso retorna ao passo 6 do fluxo principal. Interface



 

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.