Escolar Documentos
Profissional Documentos
Cultura Documentos
ELISSON TAVARES
DIEGO MATEUS
JEFFERSON FRAGOSO
HILDEGARDE MACEDO
RAINER LOPES
Taguatinga - DF
2014
ELISSON TAVARES
DIEGO MATEUS
JEFFERSON FRAGOSO
HILDEGARDE MACEDO
RAINER LOPES
Taguatinga - DF
2014
ELISSON TAVARES
DIEGO MATEUS
JEFFERSON FRAGOSO
HILDEGARDE MACEDO
RAINER LOPES
Trabalho de Conclusão de Curso apresentado como exigência parcial para a obtenção do grau
de Bacharel em Sistemas de Informação da Anhanguera Educacional S.A.
__________________________________________
Prof. Esp. Guilherme Parente Costa
Anhanguera Educacional S.A.
Orientador
__________________________________________
Prof. Esp. Fernando Gonçalves de Oliveira
Anhanguera Educacional S.A.
Avaliador
__________________________________________
Prof. Esp. Wesley Tschiedel
Anhanguera Educacional S.A.
Avaliador
Taguatinga - DF
2014
RESUMO
This work arose from the observation of the need to manage personal
documents in a simple and effective way. Your purpose is to describe the development of
"Document Store - DocStr" software capable of providing this management quick and easy
way. In general, problems and proposed solutions will be presented. The work will be
developed obeying the various stages of document production software, such as the project
vision, the actors involved in the process, the necessary functionality, constraints and
prospects of the system. At the end the final product developed with implementation and
operational tests will be presented.
1. INTRODUÇÃO .....................................................................................................................1
2. DOCUMENTO DE VISÃO ..................................................................................................2
2.1. Introdução ...........................................................................................................................2
2.2. Definições, Acrônimos e Abreviações ................................................................................2
2.3. Enunciado do Problema ......................................................................................................3
2.4. Descrição dos Atores...........................................................................................................4
2.4.1 Stakeholders …..................................................................................................................4
2.4.2 Usuários …........................................................................................................................5
2.5. Visão Geral do Produto ......................................................................................................5
2.5.1. Perspectiva do Produto ....................................................................................................5
2.5.2. Resumos das Funcionalidades .........................................................................................5
2.5.3. Requisitos do Sistema ......................................................................................................6
2.5.4. Restrições do Produto ......................................................................................................6
3. MODELOS DO NEGÓCIO ..................................................................................................8
3.1. Diagrama de domínio .........................................................................................................8
3.1. Diagrama de Atividades .....................................................................................................9
4. MODELOS DE ANÁLISE ..................................................................................................24
4.1. Diagrama de Casos de Uso ...............................................................................................24
4.1.2. Diagrama de Casos de Uso Geral –DocStr ....................................................................25
4.2. Detalhamento dos Casos de Uso .......................................................................................26
4.2.1. Descrição do Caso de Uso – UC-01: Efetuar Login ......................................................26
4.2.2. Descrição do Caso de Uso – UC-02: Manter Documento .............................................30
4.2.3. Descrição do Caso de Uso – UC-03: Realizar Busca ....................................................35
4.2.4. Descrição do Caso de Uso – UC-04: Manter anexos ....................................................36
4.2.5. Descrição do Caso de Uso – UC-05: Manter Compartilhamento ..................................40
4.2.6. Descrição do Caso de Uso – UC-06: Manter Conta ......................................................44
4.2.7. Descrição do Caso de Uso – UC-07: Consultar Espaço Utilizado ................................47
4.2.8. Descrição do Caso de Uso – UC-08: Manter Usuário ...................................................49
4.2.9. Descrição do Caso de Uso – UC-09: Manter Parâmetro do sistema .............................56
4.2.10. Descrição do Caso de Uso – UC-10: Obter gráfico .....................................................59
4.2.11. Descrição do Caso de Uso – UC-11: Obter Relatório .................................................61
4.2.12. Descrição do Caso de Uso – UC-12: Visualizar documento compartilhado ...............62
4.2.13. Descrição do Caso de Uso – UC-13: Realizar LogOff ................................................65
4.3. Diagrama de Classes Geral do sistema – DocStr ..............................................................67
5. MODELAGEM DE DADOS ...............................................................................................68
5.1. Modelo de Entidades e Relacionamentos (MER Conceitual) ….......................................68
5.2. Modelo Relacional de Dados (Modelo do Banco de Dados) …........................................69
5.3. Dicionário de Dados ….....................................................................................................69
6. PROJETO DE ARQUITETURA ........................................................................................74
6.1. Listagem e descrição das tecnologias e ferramentas utilizadas pelo sistema ...................74
6.2. Listagem e descrição do ambiente que utilizará as tecnologias ........................................75
6.3. Arquitetura de implementação (modelo em camadas) ......................................................76
6.4. Diagrama de Implantação .......................................... ......................................................78
7. PROJETO DE INTERFACES ….........................................................................................79
8. REFERÊNCIAS TEÓRICAS …..........................................................................................87
9. CONCLUSÃO .....................................................................................................................91
10. REFERÊNCIAS BIBLIOGRAFIA ................................................................................. .92
LISTA DE FIGURAS
1. INTRODUÇÃO
2. DOCUMENTO DE VISÃO
2.1. Introdução
Este documento apresenta uma solução de software para o projeto “Armazém de
Documentos - DocStr”, oferecido como proposta de Trabalho de Conclusão de Curso, como
exigência parcial para a obtenção do grau de Bacharel em Sistemas de Informação da
Anhanguera Educacional S.A.
3
A
ADMINISTRADOR: usuário com o grau total de controle sobre as funcionalidades do sistema.
B
BSI: Bacharel em Sistemas de Informação.
C
COOKIES: grupo de dados trocados entre o navegador e o servidor de páginas cuja função
principal é a de manter a persistência de sessões HTTP.
CSS3: Cascading Style Sheets 3.
D
DocStr: Sigla do Sistema Armazém de Documentos, sua concepção vem do nome em inglês,
Document Store.
F
FACNET: Faculdade de Negócios e Tecnologias da Informação.
M
MySQL – SGBD
O
Oracle - SGBD
H
4
J
Javascript: Linguagem de programação desenvolvida pela Netscape.
R
Ruby: Linguagem de programação com gerenciamento de memória automático, desenvolvida
no Japão em 1995, para ser usada como linguagem de script.
Ruby on Rails: Framework para desenvolvimento web.
S
SGBD: Sistema de Gerenciamento de Banco de Dados.
SQLite3: Software SGBD.
T
TCC: Trabalho de Conclusão de Curso: trabalho desenvolvido por grupos de alunos como
condição para a obtenção do grau de Bacharel em Sistemas de Informação;
TCC I: Trabalho de Conclusão de Curso I: primeira etapa do TCC, desenvolvido durante o 7º
semestre.
TCC II: Trabalho de Conclusão de Curso II: segunda etapa do TCC, desenvolvida e
apresentada no 8º semestre.
2.4.2 Usuários
IDENTIFICAÇÃO RESPONSABILIDADES USUÁRIOS
Promove alterações em
Administrador do banco de dados, administra
Usuários privilegiados
sistema contas de usuários e
documentos.
3. MODELOS DO NEGÓCIO
3.1. Diagrama de Classe de domínio
Conforme a definição de Guedes (2009), o diagrama de classes apresenta uma
visão estática de como estão organizadas as classes. Neste diagrama a abstração de cada classe
com seus atributos e métodos individualmente corresponde à Modelagem de Vocabulário, onde
são definidas as classes que farão parte do diagrama. Já a definição de como as classes se
relaciona e colabora para a execução de um determinado processo corresponde à Modelagem
de colaboração.
4. MODELOS DE ANÁLISE
4. O fluxo se encerra.
4.2.2.8. Atributos e suas definições
Dados para criação do documento
Este caso de uso permite ao ator realizar as operações necessárias para manter os
arquivos anexados em seus documentos.
4.2.4.2. Atores
Cliente
Administrador
4.2.4.3. Pré-condições
O ator deverá estar logado no sistema.
4.2.4.4. Pós-condições
Não se aplica.
4.2.4.5. Fluxo Principal
1. O ator inicia o fluxo clicando no “Nome” ou “Rótulo” do documento.
2. O sistema apresenta as informações do documento e as ações possíveis de se
realizar sobre o documento.
3. O ator solicita anexar um arquivo clicando no botão “Selecionar Arquivo”.
[FA 01] [FA 02] [FA 03]
4. O sistema abre uma janela do sistema operacional do usuário.
5. O ator procura e seleciona o arquivo desejado e clica em “Anexar”.
6. O sistema informa que o arquivo foi anexado.
7. O fluxo se encerra.
4.2.4.6. Fluxos Alternativos
[FA 01] Visualizar Anexo
1. O ator inicia o fluxo clicando no “Nome” do arquivo anexado.
2. O sistema mostra o conteúdo do arquivo. [FA 03]
3. O fluxo se encerra.
[FA 02] Excluir Anexo
1. O ator inicia o fluxo marcando o(s) anexo(s) através da caixa de seleção
existente para cada anexo.
2. O sistema mostra o(s) anexo(s) selecionados através de um “ícone”.
3. O ator clica no botão “Excluir Selecionados”.
4. O sistema solicita confirmação da exclusão.
5. O ator confirma a operação.
6. O sistema informa a exclusão do(s) anexo(s).
7. O fluxo se encerra.
39
1. Caso o e-mail informado não esteja no formato padrão, o sistema não realiza
a operação e informa o motivo.
2. O fluxo se encerra.
[EXC 02] E-mail já cadastrado
1. Caso o e-mail informado já esteja cadastrado, o sistema não realiza a
operação e informa que o e-mail já está cadastrado na lista.
2. O fluxo se encerra.
4.2.5.8. Atributos e suas definições
Não se aplica
4.2.5.9. Diagrama de Sequência
4.2.5.9.1. Cenário Principal
5. MODELAGEM DE DADOS
5.1. Modelo de Entidades e Relacionamentos (MER Conceitual)
ENTIDADE DESCRIÇÃO
ENTIDADE – document_attachments
Atributo Classe Domínio Tamanho Descrição
attachment_file_name Simples Texto 255 Nome do
arquivo,
inclusive com
a estrutura de
diretórios
definida
previamente
configurada
attachment_content_type Multivalorado Texto 255 Conteúdo do
arquivo
(extensão)
attachment_file_size Simples Numérico 11 Tamanho, em
bytes, do
arquivo
document_id Determinante Numérico 11 Número do
documento a
qual o arquivo
pertence
ENTIDADE - documents
Atributo Classe Domínio Tamanho Descrição
Name Determinante Texto 255 Nome do
documento (ou
rótulo)
Description Simples Texto 2000 Descrição do
documento (ou
rótulo)
account_id Determinante Numérico 11 Número da conta
do usuário
created_at Simples Data Data da criação
do documento
updated_at Simples Data Data da última
atualização do
documento
72
ENTIDADE – system_parameters
Atributo Classe Domínio Tamanho Descrição
Name Determinante Texto 255 Nome do
parâmetro
Value Simples Texto 255 Valor do
parâmetro
default_value Simples Texto 255 Valor padrão
do parâmetro
Description Simples Texto 2000 Descrição do
parâmetro
created_at Simples Data Data da
criação do
parâmetro
updated_at Simples Data Data da
última
atualização
do parâmetro
ENTIDADE – space_usage_histories
Atributo Classe Domínio Tamanho Descrição
used_in_bytes Simples Numérico 11 Espaço
utilizado (em
bytes)
account_id Determinante Numérico 11 Número da
conta do
usuário
operation Multivalorado Texto 255 Operação
executada
(ADD para
inclusão e
DELETE
73
para
remoção)
created_at Simples Data Data da
criação do
parâmetro
updated_at Simples Data Data da
última
atualização
do parâmetro
ENTIDADE – space_usage_global_histories
Atributo Classe Domínio Tamanho Descrição
used_in_bytes Simples Numérico 11 Espaço
utilizado (em
bytes)
created_at Simples Data Data da
criação do
parâmetro
updated_at Simples Data Data da
última
atualização
do parâmetro
ENTIDADE – accounts
Atributo Classe Domínio Tamanho Descrição
Username Determinante Texto 255 Nome do
usuário,
utilizando o e-
mail como
entrada
password_digest Simples Texto 255 Senha
criptografada
full_name Simples Texto 255 Nome
complete do
usuário
birth_date Simples Data Data de
nascimento
status Multivalorado Numérico 11 Status da
conta (0 –
aberta, 1 –
bloqueada, 2
– em
recuperação
de senha)
last_access_timestamp Simples Data Data e hora
do ultimo
acesso do
usuário
74
ENTIDADE – audit_logins
Atributo Classe Domínio Tamanho Descrição
account_id Determinante Numérico 11 Número da
conta do
usuário
ip_addr Simples Texto 255 Endereço do
IP do acesso
do usuário
timestamp Simples Data Data e hora
do acesso
agent Simples Texto 255 Informações
sobre o agente
de acesso
ENTIDADE – shared_emails
Atributo Classe Domínio Tamanho Descrição
email Determinante Texto 255 Endereço de
email que terá
permissão de
visualizar o
document
compartilhado
document_id Determinante Numérico 11 Número do
documento
compartilhado
75
Obs.: A entidade “schema_migrations” foi omitida por fazer parte apenas da estrutura interna
do framework Ruby on Rails. Seu propósito é apenas de manter um controle das migrações
(alterações em banco de dados) da aplicação.
6.1.2. Front-end
Para a apresentação, utilizamos HTML5 com CSS3, além do uso do JQuery.
Também utilizamos o Twitter Bootstrap para reutilizar elementos (tags e definições CSS) já
formatados, com a intenção de proporcionar um design mais limpo e agradável ao usuário. O
uso do Twitter Bootstrap ainda proporciona um design responsivo, para o propósito de leitura
em outros dispositivos, como smartphones e tablets.
7. PROJETO DE INTERFACES
7.1. Telas
7.1.1. Tela Inicial
8.2. UML
UML (Linguagem de Modelagem Unificada) é uma linguagem visual utilizada
para modelar sistemas computacionais por meio do paradigma de Orientação á objetos,
utilizada para especificar, construir e documentar um sistema de software. Nos últimos anos,
essa linguagem tornou-se padrão de modelagem de software adotada internacionalmente pela
indústria de Engenharia de Software (GUEDES, 2009).
8.15. DRY
DRY (Don't Repeat Yourself, Não se repita) é o conceito por trás da técnica de
definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações
em outros. (Fonte: WIKIPEDIA, 2014)
9. CONCLUSÃO
O desenvolvimento do software proposto como trabalho de conclusão de curso
nos proporcionou visualizar, por meio de uma forma prática, muitos dos conceitos aprendidos
durante o decorrer de nossa formação.
A escolha da linguagem Ruby, uma linguagem totalmente orientada a objetos,
nos proporcionou um desenvolvimento de código mais ágil, enxuto e legível. Foram utilizadas
muito menos linhas de códigos do que usaríamos se tivéssemos utilizado o PUP, por exemplo.
A diagramação do projeto nos proporcionou uma excelente visão do ambiente
desejado, o que facilitou sobremaneira o desenvolvimento do sistema.
Não sentimos muita necessidade de consultas teóricas como um todo.
Percebemos que recorrendo a arquivos e teorias disponibilizadas em aulas de semestres
anteriores, era possível o desenvolvimento do trabalho.
Contudo, o que realmente fez a diferença para nosso progresso foram as
experiências adquiridas por meio das aulas práticas realizadas em laboratório.
Em relação ao tema escolhido, percebemos que, por vezes, pessoas realizam
manualmente algumas tarefas que apresentariam rendimento muito superior se fossem
auxiliadas por algum software como o DocStr.
Para ilustrar, durante o período de desenvolvimento e testes chegamos a perder
fisicamente um dos documentos utilizados, porém, como já se encontrava na base de dados do
sistema, pôde ser facilmente recuperado.
Com sua utilização, percebemos que o software pode ser ampliado, que várias
funcionalidades poderão ser futuramente implementadas, o que de fato é bom e necessário,
visto que necessidades de usuários são mutáveis.
93
MEDEIROS, Ernani. Desenvolvendo Software com UML 2.0. São Paulo, 2004.
PRESSMAN, Roger. Engenharia de Software Uma Abordagem Profissional. São Paulo, 2011.
SOUZA, Lucas. Ruby – aprenda a programar na linguagem mais divertida. São Paulo, 2014.
FUENTES, Vinícius. Ruby on Rails coloque sua aplicação web nos trilhos. São Paulo, 2014.
MAZZA, Lucas. HTML5 e CSS3 domine a web do futuro. São Paulo, 2014.