TCC - SANAT

Embed Size (px)

Citation preview

  • 8/18/2019 TCC - SANAT

    1/96

      Curso de Sistemas de Informação 

    Jadson Silva Barros Dias Pereira - 010830 

    Marcelo Santos de Brito - 615950

    Paulo José Milanez - 614993

    SANAT - Sistema de Apoio ao Núcleo de Atendimento ao Docente e Discente

    Brasília

    Novembro/2015

  • 8/18/2019 TCC - SANAT

    2/96

    ii

    Curso de Sistemas de Informação 

    Jadson Silva Barros Dias Pereira - 010830 Marcelo Santos de Brito - 615950

    Paulo José Milanez - 614993

    SANAT - Sistema de Apoio ao Núcleo de Atendimento ao Docente e Discente

    Projeto da disciplina: Projeto de Sistemas

    de Informação II, do Centro Universitário

    UNIEURO, unidade de Águas Claras,Brasília, DF.

    Orientadora: Profª Msc. Elizabeth

    d’Arrochella Teixeira 

    BrasíliaNovembro/2015

  • 8/18/2019 TCC - SANAT

    3/96

    iii

    Curso de Sistemas de Informação 

    Jadson Silva Barros Dias Pereira - 010830 Marcelo Santos de Brito - 615950

    Paulo José Milanez - 614993

    SANAT - Sistema de Apoio ao Núcleo de Atendimento ao Docente e Discente

    BANCA EXAMINADORA - APROVADO POR:

     __________________________________________

    Profª Msc Elizabeth d’ Arrochella Teixeira

    Centro Universitário Unieuro, DF

     __________________________________________

    Prof. Msc Percival Lopes Pompeu Filho

    Centro Universitário Unieuro, DF

    Brasília

    Novembro/2015

  • 8/18/2019 TCC - SANAT

    4/96

    iv

    Curso de Sistemas de Informação 

    AGRADECIMENTOS

     Agradecemos primeiramente a Deus, que em sua infinita bondade e sabedoria,

    guiou os nossos passos e permitiu que chegássemos até aqui, pois nos proporcionou

    a chance de demonstrar a nossa capacidade para a realização deste trabalho que,

    apesar de árduo, hoje nos proporciona orgulho e vontade de seguir adiante. 

    Não podemos deixar de agradecer também a todos os professores da

    UNIEURO pela presteza que nos fora conferido durante todos os semestres até aqui

    cursado, em especial à professora Mestra Elizabeth d’Arrochella Teixeira.

  • 8/18/2019 TCC - SANAT

    5/96

    v

    Curso de Sistemas de Informação 

    RESUMO

    Este trabalho apresenta os modelos de análise e projeto da solução de

    tecnologia da informação para o Centro Universitário JMP (empresa fictícia).

    Foram levantadas as necessidades no Núcleo de Atendimento ao Docente e

    Discente (NADD) do Centro Universitário JMP, que é composto por coordenadores e

    colaboradores, onde a finalidade é auxiliar os professores e alunos. Na ocasião

    identificou-se o problema da falta de dados atualizados para se obter informações

    precisas a respeito de turmas dos cursos de graduação, sua localização física,

    professores, disciplinas e cursos, cujo controle não é feito em forma de sistema, mas

    com planilhas.

    Para minimizar a questão, o NADD deve dispor de uma ferramenta

    informatizada para controle de turmas e divulgação de informações a respeito destas.

     As funcionalidades do Sistema de Apoio ao Núcleo de Atendimento ao Docente

    e Discente (SANAT), um software  construído e implantado a partir de recursos e

    métodos da Tecnologia da Informação (TI) modernos, resolve o problema do NADDem ter de maneira atualizada, rápida, fácil e segura, as informações corretas sobre

    turmas.

    Para a operacionalização do SANAT, foram necessárias pesquisas em

    literatura relacionadas com a TI, além da utilização de ferramentas próprias para seu

    desenvolvimento, métodos indicados pelas melhores práticas, e aplicações de

    conteúdos de disciplinas do Curso de Sistemas de Informação.

    Com o SANAT, o NADD minimiza os problemas de divulgação de informaçõesimprecisas a respeito de turmas e dispõe de uma ferramenta informatizada e moderna,

    de grande utilidade, servindo de auxílio nas suas atividades diárias, inclusive como

    apoio aos coordenadores na montagem de turmas.

    Palavras-chaves: SANAT; NADD; Centro Universitário JMP.

  • 8/18/2019 TCC - SANAT

    6/96

    vi

    Curso de Sistemas de Informação 

    ABSTRACT

    This document presents models of analysis and design of information

    technology solution for the Centro Universitário JMP (fictitious company).

    The needs were raised in the Center for Attention to Teacher and Student

    (NADD) of Centro Universitário JMP, which is composed of coordinators and

    collaborators, where the purpose is to help teachers and students. At the time identified

    the problem of lack of updated data to obtain accurate information about classes of

    undergraduate courses, their physical location, teachers, subjects and courses, whose

    control is not made in the form of computerized system, but with spreadsheets.

    To minimize the issue, the NADD must have a computerized tool to control

    groups and disseminating information regarding these.

    The features of the System Support Center for Attention to Teacher and Student

    (SANAT), a software built and deployed from resources and methods of Information

    Technology (IT) Modern, NADD solve the problem of having to updated, quickly , easy

    and safe, the right information about classes.In order to implement SANAT were necessary research literature related to IT,

    in addition to using its own tools for their development, methods outlined the best

    practices, applications and content of courses Course of Information Systems.

    With SANAT, the NADD minimizes the problems of disseminating inaccurate

    information about classes and runs a computerized and modern tool, very useful,

    serving as assistance in their daily activities, including as a support to the Coordinators

    on the assembly classes.

    Keywords: SANAT; NADD; Centro Universitário JMP.

  • 8/18/2019 TCC - SANAT

    7/96

    vii

    Curso de Sistemas de Informação 

    LISTA DE FIGURAS

    Figura Nome Página

    01 Arquitetura do Sistema 17

    02 Máquina Virtual 20

    03 Gráfico dos Melhores Servidores em Todos Domínios 25

    04 Diagrama Geral dos Processos do SANAT 43

    05 Diagrama de Casos de Uso 52

    06 Diagrama de Classe de Domínio 77

    07 Diagrama de Sequência – Cadastrar Usuário 78

    08 Diagrama de Sequência – Cadastrar Professor   79

    09 Diagrama de Sequência – Cadastrar Curso  79

    10 Diagrama de Sequência – Cadastrar Disciplina  80

    11 Diagrama de Sequência – Cadastrar Sala  80

    12 Diagrama de Sequência – Cadastrar Turma  81

    13 Diagrama de Sequência – Ensalamento  8114 Diagrama de Sequência – Visualizar Mapa  82

    15 Diagrama de Entidade e Relacionamento do Banco de Dados  83

    16 Tela de Login 84

    17 Tela Principal de Manter Usuário 85

    18 Tela Editar Professor   86

    19 Tela Criar Novo Curso 87

    20 Tela Editar Disciplina  8821 Tela Principal de Manter Turma 89

    22 Tela Principal de Ensalamento 90

    23 Tela Visualizar Mapa 91

  • 8/18/2019 TCC - SANAT

    8/96

    viii

    Curso de Sistemas de Informação 

    LISTA DE QUADROS

    Quadro Nome Página

    01 Descrição do Problema 41

    02 Sobre o Produto Final 42

    03 Requisitos Funcionais 46

    04 Requisitos Não Funcionais 48

    05 Regras de Negócio 49

    06 Características de Qualidade 50

    07 Atores  53

    08 Prioridades e Riscos dos Casos de Uso  53

    09 Regras de Negócio de UC-01 – Manter Usuário  56

    10 Mensagens de UC-01 – Manter Usuário  56

    11 Regras de Negócio de UC-02 – Manter Professor 59

    12 Mensagens de UC-02 – Manter Professor 59

    13 Regras de Negócio de UC-03 – Manter Curso  6214 Mensagens de UC-03 – Manter Curso  62

    15 Regras de Negócio de UC-04 – Manter Disciplina  65

    16 Mensagens de UC-04 – Manter Disciplina  65

    17 Regras de Negócio de UC-05 – Manter Sala  68

    18 Mensagens de UC-05 – Manter Sala  68

    19 Regras de Negócio de UC-06 – Manter Turma  71

    20 Mensagens de UC-06 – Manter Turma  7121 Regras de Negócio de UC-07 – Ensalamento  74

    22 Mensagens de UC-07 – Ensalamento  74

    23 Regras de Negócio de UC-08 – Visualizar Mapa  76

  • 8/18/2019 TCC - SANAT

    9/96

    ix

    Curso de Sistemas de Informação 

    LISTA DE ABREVIATURAS E SIGLAS

    SIGLA Descrição

    ABNT  Associação Brasileira de Normas Técnicas

    ACM  Association For Computing Machinery

    BD Banco de Dados

    CASE Computer-Aided Software Engineering

    EA Enterprise Architect

    GPL GNU General Public Licence

    HTML Hyper Text Markup Language

    HTTP Hypertext Transfer Protocol

    IDE Integrated Development Enviroment (Ferramenta de Desenvolvimento) 

    IBM International Businesse Machine

    IIS Internet Information Services

    MER Modelo Entidade Relacionamento

    MVC Modelo Visualização-Controle

    NADD Núcleo de Apoio ao Docente e Discente

    NCSA National Center For Supercomputing ApplicationsORM Object Role Model

    RAD Rapid Application Development (Desenvolvimento Rápido de Aplicativo)

    RAM  Random Access Memory (Memória de Acesso Aleatório)

    RDBMS Relational Database Management System

    RF Requisito Funcional

    RN Regra de Negócio

    RNF Requisito Não Funcional

    SANAT Sistema de Apoio ao Núcleo de Atendimento ao Docente e Discente

    SGDB Sistema Gerenciador de Banco de DadosSQL Structured Query Language

    UC User Case (Caso de Uso)

    UML Unified Modeling Language (Linguagem de Modelagem Unificada)

    URL Uniform Resource Locator   – Endereço Virtual de Rede

    WEB  World-Wide Web (Rede de Computadores de Alcance Mundial)

  • 8/18/2019 TCC - SANAT

    10/96

    x

    Curso de Sistemas de Informação 

    SUMÁRIO1. 

    INTRODUÇÃO ........................................................................................................................ 12 1.1.

     

    Motivação.......................................................................................................................................... 13 

    1.2. 

    Objetivos. .......................................................................................................................................... 14 

    1.2.1.  Geral  ............................................................................................................................................. 14 

    1.2.2.  Específicos ...................................................... ............................................................. ................ 14 

    1.3.  Organização do Trabalho ....................................................... ........................................................ 14 

    2.  PESQUISAS E MÉTODOS................................................................................................... 15 2.1.  Metodologia ...................................................................................................................................... 15 

    2.2.  Proposta da Solução ..................................................... ............................................................. ..... 15 

    2.3.  Referencial Tecnológico ......................................................... ........................................................ 16  

    2.3.1. 

     Arquitetura do Sistema .............................................................................................................. 16  

    2.3.2. 

    Requisitos Mínimos Para Instalação ........................................................................................ 18 

    2.4.  Tecnologia de Desenvolvimento ................................................................................................... 18 

    2.4.1.  Linguagem de Programação ........................................................ ............................................. 18 

    2.4.1.1.  JAVA ............................................................................................................................................. 19 

    2.4.1.2. 

    PHP  ......................................................... ........................................................... ........................... 21 

    2.4.1.3.  Visual Basic.NET  ........................................................................................................................ 22 

    2.4.2.  Servidor Web ............................................................. ............................................................. ..... 23 

    2.4.2.1. 

     Apache ......................................................................................................................................... 24 

    2.4.2.2. 

    Tomcat  ............................................................... ........................................................... ................ 25 

    2.4.2.3.  Internet Information Services – IIS ........................................................ ................................... 25 

    2.4.3.  Banco de Dados/Sistema Gerenciador de Banco de Dados (SGDB)  ................................ 26  

    2.4.3.1. 

    Mysql  ............................................................................................................................................ 27  

    2.4.3.2. 

    PostgreSQL ................................................................................................................................. 28 

    2.4.3.3. 

    Oracle ........................................................................................................................................... 29 

    2.4.4.  Modelador de Dados .......................................................... ........................................................ 30 

    2.4.4.1.  Dbdesigner  ...................................................... ............................................................. ................ 31 

    2.4.4.2.  Enterprise Architect (EA) ........................................................................................................... 32 

    2.4.4.3. 

    ERWin........................................................................................................................................... 32 

    2.4.5.  Ferramenta de Desenvolvimento IDE (Integrated Development Environment)  ................ 33 

    2.4.5.1.  Eclipse .......................................................................................................................................... 33 

    2.4.5.2.  NetBeans ..................................................................................................................................... 34 

    2.4.6. 

    Outras Tecnologias .................................................................................................................... 35 

    2.4.6.1.  HTML ............................................................................................................................................ 35 

    2.4.6.2. 

    Bootstrap ........................................................... ........................................................... ................ 35 

    2.4.6.3.  MVC (Model - View - Controller) ............................................................ ................................... 36  

    2.4.6.4.   AXURE RP Pro ........................................................................................................................... 37  

    2.4.6.5. 

    UML .............................................................................................................................................. 38 

    2.4.6.5.1.  Diagramas da UML: ....................................................... ........................................................ 38 

    2.5.  Ferramentas Utilizadas ........................................................... ........................................................ 39 

    3. 

    VISÃO DO SISTEMA ............................................................................................................. 41 3.1.

     

    Descrição do Problema .................................................................................................................. 41 

    3.2.  Sentença de Posição do Produto ............................................................... ................................... 42 

    3.3.  Modelo de Negócio ......................................................................................................................... 42 

    3.4.   Apoio da Solução............................................................................................................................. 44 

    4. 

    ELABORAÇÃO DA SOLUÇÃO ............................................................................................ 45 4.1.

     

    Requisitos Funcionais ............................................................. ........................................................ 45 

    4.2.  Requisitos Não Funcionais ............................................................................................................ 47  

    4.3.  Regra de Negócio .......................................................... ............................................................. ..... 48 

  • 8/18/2019 TCC - SANAT

    11/96

    xi

    Curso de Sistemas de Informação 

    4.4. 

    Características de Qualidade ........................................................................................................ 50

     

    4.5.  Casos de Uso ...................................................... ............................................................. ................ 51 

    4.5.1.   Atores ........................................................................................................................................... 53 

    4.5.2.  Prioridades ...................................................... ............................................................. ................ 53 

    4.5.3. 

    Caso de Uso (UC-01): Manter Usuário. .................................................................................. 54 

    4.5.4.  Caso de Uso (UC-02): Manter Professor. .................................................... ........................... 57  

    4.5.5.  Caso de Uso (UC-03): Manter Curso. ..................................................................................... 60 

    4.5.6.  Caso de Uso (UC-04): Manter Disciplina. .................................................... ........................... 63 

    4.5.7. 

    Caso de Uso (UC-05): Manter Sala ...................................................... ................................... 66  

    4.5.8.  Caso de Uso (UC-06): Manter Turma. .................................................................................... 69 

    4.5.9.  Caso de Uso (UC-07): Ensalamento. ...................................................................................... 72 

    4.5.10.  Caso de Uso (UC-08): Visualizar Mapa. ................................................................................. 75 

    4.6. 

    Diagrama de Classe ...................................................... ............................................................. ..... 77  

    4.7. 

    Diagrama de Sequência ......................................................... ........................................................ 78 

    4.8.  Modelo Entidade Relacionamento ............................................................. ................................... 82 

    4.9.  Telas do Sistema. .......................................................... ............................................................. ..... 83 

    5. 

    CONCLUSÃO ......................................................................................................................... 92 REFERÊNCIAS BIBLIOGRÁFICAS................................................................................................. 93 

  • 8/18/2019 TCC - SANAT

    12/96

    12 

    Curso de Sistemas de Informação 

    1. INTRODUÇÃO

    Segundo CAUTELA & POLLONI (1996), sistemas de informação é um conjunto

    de elementos interdependentes (subsistemas), logicamente associados, para que

    sejam geradas informações necessárias à tomada de decisões a partir de sua

    interação, ou seja, é um conjunto de elementos interdependentes ou um todo

    organizado ou partes que interagem formando um todo unitário e complexo.

    Um outro conceito de sistemas de informação, segundo LAUDON & LAUDON

    (2004), é um conjunto de componentes inter-relacionados que coleta (ou recupera)

    dados, processa, armazena e distribui informações destinadas a apoiar a tomada de

    decisões e o controle em uma organização.

     A Engenharia de Software na prática profissional cresce dia após dia, por meio

    do somatório das experiências. As disciplinas acadêmicas são estudadas em todos

    os anos letivos, desmembradas em diversas cadeiras.

    De forma moderna, a Engenharia de Software caminha em paralelo com os

    Sistemas de Informação, ambos os temas destinados às organizações, para auxiliar

    as mesmas a tomarem decisões sob o foco de seu negócio empresarial ou de sua

    atividade pública (REZENDE, 2005).

    Durante as três primeiras décadas da era do computador, o principal desafio

    era desenvolver um hardware  que reduzisse o custo de processamento e

    armazenagem de dados (PRESSMAN, 1995).

    Para REZENDE (2005), hoje o problema é diferente, o principal desafio desta

    década é melhorar a qualidade (e reduzir o custo) de soluções baseados em

    computador, que são implementados com softwar e.

    O principal problema nos tempos atuais é desenvolver sistema de informação

    que seja de grande utilidade, de alta qualidade, alto desempenho, seguro e que

    satisfaça as exigências do usuário final. Ao desempenhar suas tarefas o analista de

    desenvolvimento de software, deve considerar a produtividade, a confiabilidade e a

    manutenibilidade do sistema.

     Atualmente o software deve ser distribuído, com “inteligência” embutida, comvisuais orientados aos clientes ou usuários, modulares e em redes complexas.

  • 8/18/2019 TCC - SANAT

    13/96

    13 

    Curso de Sistemas de Informação 

    Modernamente o software ou sistema de informação deve estar com o foco no negócioempresarial ou atividade organizacional e com o objetivo de auxiliar os processos de

    tomadas de decisões (estratégicas, táticas ou gerenciais e operacionais) (REZENDE,

    2005).

    Este trabalho apresenta o documento de projeto do Sistema de Apoio ao

    Núcleo de Atendimento ao Docente e Discente (SANAT), do Centro Universitário JMP

    (empresa fictícia). Essa atividade é um projeto idealizado para atender aos requisitos

    do Curso de Sistemas de Informação, disciplina Projeto de Sistemas de Informação

    II, do Centro Universitário UNIEURO, unidade de Águas Claras.

    1.1. Motivação

    O Centro Universitário JMP foi fundado no ano de 2000 e consolida-se no

    ensino superior como uma das maiores instituições de ensino da região Centro-Oeste.

    Possui instalações modernas, arrojadas, projetos que mobilizam toda a sociedade e

    principalmente, um ensino focado nos princípios humanistas e ético na busca dacidadania plena e universal. Esse sucesso permite que sonhos sejam realizados e

    carreiras construídas. O orgulho de fazer parte da vida de cada aluno é a recompensa

    pelos anos de esforço e dedicação da instituição.

    Todo início de semestre o Núcleo de Atendimento ao Docente e Discente

    (NADD) possui dificuldades em obter informações precisas, bem como repassar com

    exatidão em que local do Centro Universitário JMP as turmas dos cursos de graduação

    estão alocadas.Em contato com o NADD, no Centro Universitário JMP, durante o levantamento

    de requisitos, foi identificado que o mesmo não dispõe de uma ferramenta que

    pudesse auxiliar na minimização da dificuldade citada, bem como qual disciplina e

    qual professor ocupa um determinado ambiente de ensino, dos cursos de graduação,

    em um determinado horário.

    Para suprir a falta de uma ferramenta que viesse minimizar a dificuldade

    encontrada no NADD, a criação de um sistema informatizado que fosse capaz de

    realizar o ensalamento, ou seja, alocar turma, professor, sala e disciplina, seria uma

    boa solução.

  • 8/18/2019 TCC - SANAT

    14/96

    14 

    Curso de Sistemas de Informação 

    1.2. Objetivos.Encontrar uma solução que auxilie o NADD na dificuldade de atendimento aos

    alunos e professores, em divulgar corretamente a localização física de um ambiente

    de ensino, disciplina, turma e o respectivo professor.

    1.2.1. Geral

    Criação de um sistema onde o NADD poderá controlar e alocar turmas,

    professor das disciplinas dos cursos de graduação em uma sala de aula.

    1.2.2. Específicos

      Criar uma ferramenta para ser utilizada em rede local de computadores;

      Obter informações relacionadas a turmas, cursos, disciplinas e

    professores;

      Realizar Ensalamento das turmas.

    1.3. Organização do Trabalho

    Esse trabalho está organizado em cinco capítulos assim distribuídos:

    O primeiro capítulo refere-se à introdução englobando a motivação, objetivos e

    organização.

    O segundo capítulo aborda pesquisas e métodos.

    No capítulo três está descrito a visão do sistema, sua descrição e o problema.

    O capítulo quatro apresenta a elaboração da solução, os requisitos funcionais

    e não funcionais, as regras do negócio, os casos de uso e suas respectivas

    documentações. É apresentado o modelo de classes de domínio da solução.

    Descreve as interações dos objetos da solução, através dos diagramas de sequência.

    Também estão apresentados exemplos de telas do sistema, e está registrado o

    modelo Entidade Relacionamento do sistema.

    No capítulo cinco está apresentado a conclusão do trabalho.

    E por último é apresentada as Referências Bibliográficas.

  • 8/18/2019 TCC - SANAT

    15/96

    15 

    Curso de Sistemas de Informação 

    2. PESQUISAS E MÉTODOSPara desenvolver o trabalho foi necessário realizar uma pesquisa exploratória

    que proporciona uma maior familiaridade com o problema, explicitando-o, envolvendo

    pesquisa bibliográfica e entrevistas com pessoas experientes no problema pesquisado

    (GIL, 2008).

    Neste capítulo serão apresentadas a metodologia, a proposta da solução, o

    referencial tecnológico, a arquitetura do sistema e as tecnologias empregadas no

    desenvolvimento do projeto.

    2.1. Metodologia

     A pesquisa bibliográfica é desenvolvida com base em material já elaborado,

    constituído principalmente de livros e artigos científicos (GIL, 2008).

     A metodologia utilizada é basicamente uma pesquisa bibliográfica na área de

    engenharia de software, análise de dados, aplicação de recomendações técnicas de

    desenvolvimento de software, bem como leitura de artigos técnicos relacionados com

    a Tecnologia da Informação (GIL, 2008).

    Utilizou-se também por meio de entrevistas e questionários um levantamento

    da situação atual no local de funcionamento do NADD. Foram entrevistados os

    colaboradores, coordenadores de curso e coordenador administrativo.

    Também foram analisados diversos documentos da instituição, como por

    exemplo, a planta baixa arquitetônica do Centro Universitário JMP, a grade de cursos,

    o cadastro de disciplinas e de professores, planilhas e tabelas utilizadas pelo NADD,

    Plano de Desenvolvimento Institucional, o Regimento e o Estatuto do Centro

    Universitário JMP.

    2.2. Proposta da Solução

     A solução proposta proveu os mecanismos necessários para auxiliar o NADD

    em suas atividades diárias de apoio aos docentes e discentes do Centro UniversitárioJMP através do sistema denominado SANAT. Esse sistema se propõe a manter

  • 8/18/2019 TCC - SANAT

    16/96

    16 

    Curso de Sistemas de Informação 

    atualizados a localização física dos ambientes de ensino, bem como as turmas e seusrespectivos professores, de maneira informatizada e de fácil utilização, em rede,

    sendo uma solução para os coordenadores na criação de turmas das disciplinas dos

    cursos de graduação e base para o NADD divulgar informações sobre a localização

    de turmas, professores e alunos.

    2.3. Referencial Tecnológico

    Tem como base a aplicação de conhecimento adquiridos durante o

    desenvolvimento do curso de Sistema de Informação e a consulta às normas

    relacionadas com software.

     A seguir será apresentada uma abordagem tecnológica, tratando da arquitetura

    do sistema, dos requisitos mínimos de instalação de hardware e de software.

    2.3.1. Arquitetura do Sistema

    De acordo com BASS, CLEMENTS E KAZMAN (2003), a arquitetura de

    software  de um sistema computacional refere-se à sua estrutura, consistindo de

    elementos de software, propriedades externamente visíveis desses elementos e os

    relacionamentos entre eles. A arquitetura define elementos de software (ou módulos)

    e envolve informações sobre como eles se relacionam uns com os outros. Uma

    arquitetura pode envolver mais de um tipo de estrutura, com diferentes tipos de

    elementos e de relacionamentos entre eles. A arquitetura omite certas informações

    sobre os elementos que não pertencem às suas interações. As propriedadesexternamente visíveis indicam as suposições que os demais elementos podem fazer

    sobre um elemento, tais como serviços providos e características de qualidade

    esperadas. Assim, uma arquitetura é antes de tudo uma abstração de um sistema que

    suprime detalhes dos elementos que não afetam como eles são usados, como se

    relacionam, como interagem e como usam outros elementos. Na maioria das vezes,

    a arquitetura é usada para descrever aspectos estruturais de um sistema.

    Outro fator que afeta a escolha da arquitetura é o ambiente técnico (ouplataforma de implementação) corrente. Muitas vezes, há para esse ambiente um

  • 8/18/2019 TCC - SANAT

    17/96

    17 

    Curso de Sistemas de Informação 

    conjunto dominante de padrões, práticas e técnicas que é aceito pela comunidade dearquitetos ou pela organização de desenvolvimento. Por fim, a arquitetura é

    influenciada também pela estrutura e natureza da organização de desenvolvimento

    (BASS; CLEMENTS; KAZMAN, 2003).

    De acordo com PRESSMAN (2011) a arquitetura de software de um programa

    ou sistema computacional é a estrutura ou estruturas do sistema, que abrangem os

    componentes de software, as propriedades externas visíveis desses componentes e

    as relações entre eles.

     A arquitetura proposta para o SANAT é mostrada graficamente na figura 01. O

    acesso para coordenador Administrativo, coordenador de curso e colaborador ocorre

    através de requisição Hypertext Transfer Protocol (HTTP) para o servidor, que

    interage com o código PHP, que por sua vez faz acesso aos dados armazenados no

    banco de dados MySQL.

    SERVIDOR

       S   E   R   V   I   D   O   R

       A   P   A   C   H   E  –

       P   H   P

    Banco deDados MySql

    WEBPHP + HTML

    Resultados

    Requisições

     Administrador Coordenador Administrativo

    Coordenador de CursoColaborador 

    Resultados

    Resultados

    Requisições

    CLIENTE

    BROWSER - PÁGINA WEB

    Requisições

     Figura 01  – Arquitetura do Sistema.

    Fonte: Elaborado pelos autores.

    O modelo proposto está baseado na arquitetura do tipo cliente-servidor, onde

  • 8/18/2019 TCC - SANAT

    18/96

    18 

    Curso de Sistemas de Informação 

    o servidor Web (Rede Mundial de Computadores) representa a figura no banco dequestões e coordenador administrativo, coordenador do curso e o colaborador são

    representados através de clientes, o conteúdo em PHP não é visível ao usuário, sendo

    processado no servidor.

    2.3.2. Requisitos Mínimos Para Instalação

    Para o correto funcionamento do sistema é necessário atender aos requisitos

    mínimos listados a seguir.

      Requisitos mínimos de hardware:

    - Computador Pentium/AMD 500 MHz;

    - 128 MB de memória RAM (recomendado 256 MB);

    - 50 MB de espaço disponível em disco rígido;

    - Interface de rede.

      Requisitos mínimos de software:

    - Sistema Operacional WINDOWS versão 7 ou superior;

    - Servidor Web Apache – 2.0.54 ou superior;

    - PHP 5;

    - Gerenciador de banco de dados MySQL 5.

    2.4. Tecnologia de Desenvolvimento

     A seguir estão descritas algumas das tecnologias envolvidas em

    desenvolvimento de projeto de software.

    2.4.1. Linguagem de Programação

    O conjunto de instruções de um processador, que é conhecido como linguagem

    de máquina, é pouco amigável para o desenvolvimento de programas.

    Linguagens de programação surgiram para implementação de algoritmos,

    complexos ou não, em um computador, tornando a tarefa de programar mais fácil e

    menos suscetível a erros. Ao longo do tempo as linguagens de programação foram

  • 8/18/2019 TCC - SANAT

    19/96

    19 

    Curso de Sistemas de Informação 

    introduzindo facilidades e recursos, e atualmente, com as linguagens visuais,programar deixou de ser uma arte restrita a poucos, tornando-se mais uma ferramenta

    para os usuários comuns (GUDWIN, 1997).

    Linguagem de programação, é um tipo de linguagem usada pelo homem para

    desempenhar comunicação com a máquina, pois essa não reconhece a linguagem

    normal do ser humano. Para que a relação homem versus máquina pudesse evoluir,

    fez-se necessário a criação de uma linguagem que tornasse a máquina operacional.

     A partir do desenvolvimento da linguagem de programação é que o ser humano

    passou a obter grandes resultados com a máquina. Atualmente é possível encontrar

    diversos tipos de linguagem de programação, sendo as principais: Java, C, C++, C#,

    PHP, Delphi, entre outras (REAL, 2015).

     A seguir serão mostradas as linguagens mais aplicadas em desenvolvimento

    de software, destacando-se o Java, o PHP e o Visual Basic.NET.

    2.4.1.1. JAVA

    O Java foi criado pela antiga empresa de softwares  Sun Microsystems e

    mantida através de um comitê. Seu site principal era o  java.sun.com, e  java.com um

    site mais institucional, voltado ao consumidor de produtos e usuários leigos, não

    desenvolvedores. Com a compra da Sun Microsystems pela Oracle em 2009, muitas

    Uniform Resource Locators (URL) ou Localizador Padrão de Recursos, que se refere

    ao endereço de rede no qual se encontra algum recurso informático e nomes tem sido

    trocado para refletir a marca da Oracle. A página principal do Java é:

    http://www.oracle.com/technetwork/java/ (CAELUM, 2015).

    No Brasil, diversos grupos de usuários se formaram para tentar disseminar o

    conhecimento da linguagem. Um deles é o GUJ no endereço da internet

    http://www.guj.com.br , uma comunidade virtual com artigos, tutoriais e fórum para tirar

    dúvidas, o maior em língua portuguesa com mais de cem mil usuários e um milhão de

    mensagens.

    Em 2009 a Oracle comprou a Sun, fortalecendo a marca. A Oracle sempre foi,

     junto com a International Businesse Machine  (IBM), uma das empresas que maisinvestiram e fizeram negócios através do uso da plataforma Java. Em 2014 surge a

    http://www.java.sun.com/http://www.java.sun.com/http://www.java.sun.com/http://www.java.sun.com/http://www.java.sun.com/http://www.java.sun.com/http://www.oracle.com/technetwork/java/http://www.oracle.com/technetwork/java/http://www.guj.com.br/http://www.guj.com.br/http://www.guj.com.br/http://www.oracle.com/technetwork/java/http://www.java.sun.com/http://www.java.sun.com/

  • 8/18/2019 TCC - SANAT

    20/96

    20 

    Curso de Sistemas de Informação 

    versão Java 8 com mudanças interessantes na linguagem (CAELUM, 2015).Segundo CAELUM (2015), o Java utiliza do conceito de máquina virtual (Figura

    02), onde existe, entre o sistema operacional e a aplicação, uma camada extra

    responsável por "traduzir", mas não apenas isso, o que sua aplicação deseja fazer

    para as respectivas chamadas do sistema operacional onde ela está rodando no

    momento:

    Byte Code Java

    Máquina Virtual Java para Linux

    Linux

    Byte Code Java

    Máquina Virtual Java par a Windows

    Windows

     

    Figura 02  – Máquina Virtual.

    Fonte: http://www.caelum.com.br/apostila-java-orientacao-objetos/o-que-e-java/ (CAELUM, 2015).

    Principais características e vantagens da linguagem Java:

      Suporte à orientação a objetos;

      Portabilidade;

      Segurança;

      Linguagem Simples;   Alta Performance;

      Dinamismo;

      Interpretada (o compilador pode executar os bytecodes do Java

    diretamente em qualquer máquina);

      Distribuído;

      Independente de plataforma;

      Tipada (detecta os tipos de variáveis quando declaradas).

  • 8/18/2019 TCC - SANAT

    21/96

    21 

    Curso de Sistemas de Informação 

    2.4.1.2. PHPO PHP é uma linguagem de criação de scripts do lado do servidor que foi

    projetada especificamente para Web. Dentro de uma página HTML (Hyper Text

    Markup Language), você pode embutir código de PHP que será executado toda vez

    que a página for visitada. O código de PHP é interpretado no servidor Web e gera

    HTML ou outra saída que o visitante verá (THOMSON, 2005).

    O PHP foi concebido em 1994, como resultado do trabalho de uma única

    pessoa, Rasmus Lerdorf. O PHP foi adotado por outras pessoas inteligentes e foireescrito três vezes para proporcionar o amplo e aperfeiçoado produto que vemos

    hoje (THOMSON, 2005).

    Em outubro de 2002, ele era utilizado em mais de nove milhões de domínios

    em todo o mundo e esse número está crescendo rapidamente. Você pode constatar

    o número atual em http://php.net/usage.php (THOMSON, 2005).

    O PHP significa originalmente Personal Home Page, mas foi alterado de acordo

    com a conversão para atributos de nomes recursiva do GNU (GNU = GNU’a Not Unix )e agora significa PHP Hypertext Preprocessor  (THOMSON, 2005).

     A atual versão do PHP é a versão 5. Nesta versão, o Zend Engine foi

    completamente reescrito, e foram feitos aprimoramentos à linguagem.

     Algumas capacidades do PHP (THOMSON, 2005).

      Alto desempenho;

      Interfaces para muitos sistemas diferentes de bancos de dados;

      Biblioteca integradas para muitas tarefas comuns da Web;  Baixo custo;

      Facilidade de aprender e utilizar;

      Ótimo suporte orientado a objetos;

      Portabilidade;

      Disponibilidade de código-fonte;

      Disponibilidade de suporte.

    http://php.net/usage.phphttp://php.net/usage.phphttp://php.net/usage.phphttp://php.net/usage.php

  • 8/18/2019 TCC - SANAT

    22/96

    22 

    Curso de Sistemas de Informação 

    O desempenho do PHP é muito eficiente. Utilizado um único servidor barato,você pode atender a milhões de acessos por dia. Os benchmarks  (processo de

    comparação)  publicados pela Zend Tecnologies mostraram o PHP superando o

    desempenho do concorrente.

     A integração do banco de dados com o PHP tem conexões nativas disponíveis

    para muitos sistemas de banco de dados. Além do MySQL você pode conectar

    diretamente a bancos de dados PostgreSQL, Oracle, entre outros.

    O PHP é gratuito. Pode-se fazer download   da última versão a qualquer

    momento em http://www.php.net, gratuitamente.

    2.4.1.3. Visual Basic.NET

    O Visual Basic .NET evoluiu a partir do BASIC (Beginner’s All-purpose Symbolic

    Instruction Code  – código de instrução simbólico de propósito geral para iniciantes),

    desenvolvido na metade da década de 60 pelos professores John Kemeny e Thomas

    Kurtz da Faculdade Dartmouth como uma linguagem para escrever programas

    simples. O propósito primário do BASIC era familiarizar novatos com as técnicas de

    programação (DEITEL, 2004).

    O uso difundido do BASIC em vários tipos de computadores causou vários

    aprimoramentos na linguagem. Quando Bill Gates fundou a Microsoft Corporation, ele

    implementou o BASIC em diversos dos primeiros computadores pessoais. Com o

    desenvolvimento da interface gráfica do usuário (GUI) do Windows da Microsoft, no

    final da década de 80 e início da década de 90, a evolução natural do BASIC foi o

    Visual Basic, introduzido pela Microsoft em 1991 (DEITEL, 2004).

     Até que o Visual Basic surgisse em 1991, desenvolver aplicativos baseado no

    Windows da Microsoft era um processo difícil e complicado. Embora o Visual Basic

    seja derivado da linguagem de programação BASIC, ele é uma linguagem

    distintamente diferente que oferece recursos poderosos como interfaces gráficas do

    usuário, tratamento de eventos, programação orientada a objetos e tratamento de

    exceções. O Visual Basic .NET é uma linguagem de programação visual, dirigida a

    eventos, na qual os programas são criados usando um IDE (integrated developmentenviroment   – ambiente de desenvolvimento integrado). Com o IDE, um programador

    http://www.php.net/http://www.php.net/http://www.php.net/http://www.php.net/

  • 8/18/2019 TCC - SANAT

    23/96

    23 

    Curso de Sistemas de Informação 

    pode escrever, executar, testar, depurar convenientemente os programas em VisualBasic, reduzindo assim o tempo que gasta para produzir um programa que funcione a

    uma fração do tempo que gastaria sem o uso do IDE. O processo de criar rapidamente

    um aplicativo é chamado RAD (rapid application development   –  desenvolvimento

    rápido de aplicativo). O Visual Basic é a linguagem RAD mais amplamente usada no

    mundo (DEITEL, 2004).

     A Microsoft anunciou a introdução da estratégia Microsoft .NET (pronuncia-se

    ‘ponto-net’) em 2000. A plataforma .NET é uma sobre a qual os aplicativos baseados

    em Web  podem ser distribuídos a uma variedade de dispositivos (como telefones

    celulares) e a computadores de mesa. A plataforma .NET oferece um modelo novo de

    programação que permite que os programas criados em linguagens de programação

    incompatíveis se comuniquem uns com os outros (DEITEL, 2004).

     A Microsoft projetou uma versão do Visual Basic para .NET. As primeiras

    versões do Visual Basic ofereciam recursos orientados a objeto, mas o Visual Basic

    .NET oferece orientação a objetos aprimorada, incluindo uma biblioteca poderosa de

    componentes, permitindo que os programadores desenvolvam aplicativos muito mais

    rapidamente. O Visual Basic .NET também possibilita interoperabilidade de linguagem

    aprimorada: Componentes de software de linguagem diferentes podem interagir como

    nunca antes. Os desenvolvedores podem empacotar até mesmo um software antigo

    para trabalhar com novos programas Visual Basic .NET. Além disso, os aplicativos

    Visual Basic .NET podem interagir via Internet (DEITEL, 2004).

    2.4.2. Servidor Web

    Os servidores Web tornaram-se essenciais com a evolução da tecnologia, que

    é o meio responsável por armazenar e trocar informações com outra máquina. Para

    realizar este ciclo de troca de mensagem é preciso um cliente que solicite a informação

    e o servidor que irá receber a solicitação. O cliente utiliza os browsers como Internet

    Explorer, Google Chrome para realizar a solicitação e o servidor trabalha com

    softwares  para realizar a transferência de informação. Para essa transferência de

    informação é usado o protocolo Hypertext Transfer Protocol  (HTTP) de comunicaçãoda Web. Segundo INFOWESTER (2015), quando um navegador de internet acessa

  • 8/18/2019 TCC - SANAT

    24/96

    24 

    Curso de Sistemas de Informação 

    um site, este faz as solicitações devidas ao servidor Web do mesmo através do HTTPe então recebe o conteúdo correspondente.

    Existem alguns servidores disponíveis como: IIS (Internet Information Services)

    da Microsoft, que possui seus servidores baseados em Windows NT e aplicação

    proprietária, o Tomcat que é servidor voltado para aplicações Java, e o Apache HTTP

    Server, que é o servidor mais robusto no mercado.

     A seguir uma breve descrição do Apache, do Tomcat e o do IIS.

    2.4.2.1. Apache

    O Apache Software Foundation contém mais de 140 projetos de software de

    código aberto que contam com suporte organizacional, legal e financeiro. Trata-se de

    uma organização sem fins lucrativos que proporciona estrutura intelectual e ao mesmo

    tempo limita a exposição legal potencial para esses projetos. O projeto Apache HTTP

    Server nasceu em 1995, obra do então funcionário do NCSA (National Center for

    Supercomputing Applications), Rob McCool, responsável também pela versão 2.2 do

     Apache (APACHE, 2015).

    O Apache é um software colaborativo que tem o objetivo de criar um robusto

    nível comercial, provido de recursos e com livre implementação de código fonte de um

    servidor HTTP (Web). O projeto é desenvolvido por um grupo de voluntários ao redor

    do mundo, que se comunicam através da Internet e da Web, bem como planejam e

    desenvolvem tanto o servidor como sua documentação (APACHE, 2015).

    Segundo as informações disponibilizadas pela Netcraft, desde 1995 (figura 03),

    vem crescendo o uso dos domínios da internet utilizando o servidor Web Apache, que

    tem entre suas principais qualidades a independência de plataformas específicas, o

    que possibilita o suporte para os variados tipos de documentos da Web.

  • 8/18/2019 TCC - SANAT

    25/96

    25 

    Curso de Sistemas de Informação 

    Figura 03  – Gráfico dos Melhores Servidores em Todos Domínios.

    Fonte: http://news.netcraft.com/archives/2014/05/07/may-2014-web-server-survey.html (NEWS

    CRAFT, 2014).

    2.4.2.2. Tomcat

    O Tomcat é um dos servidores WEB mais utilizados, a diferença é que esse

    servidor é voltado para aplicações Java e pode ser utilizado independentemente ou

    como uma extensão do Apache. Foi desenvolvido pela Fundação Apache e por esse

    motivo também é disponibilizado como um software livre, além disso também é um

    servidor de alto desempenho e de qualidade. Apache Tomcat é desenvolvido em um

    ambiente aberto e participativo e liberado sob a licença Apache versão 2. Apache

    Tomcat é destinado a ser uma colaboração de desenvolvedores de todo o mundo

    (PORTALEDUCAÇÃO, 2015).

    2.4.2.3. Internet Information Services  – IIS

    Segundo a MICROSOFT  (2015), o Internet Information Services  (IIS), é um

    servidor web criado por ela para seus sistemas operacionais para servidores. Sua

    primeira versão foi introduzida com o Windows NT Server versão 4, e passou por

    várias atualizações. Vale ressaltar que a versão mais atual é a 7.5, que se encontra

    disponível no Windows Server 2008 R2 e Windows 7.

  • 8/18/2019 TCC - SANAT

    26/96

    26 

    Curso de Sistemas de Informação 

    Das várias características existentes, uma das mais utilizadas é a geração depáginas HTML dinâmicas, que ao contrário de outros servidores web, usa tecnologia

    proprietária, podendo usar outras tecnologias com adição de módulos de terceiros.

    O IIS 7.0 completa 10 anos onde se consolida como o principal servidor web

    da atualidade sendo distribuído com o Windows Server 2008 e Windows Vista SP1.

    Para os desenvolvedores ASP.NET o IIS é o grande parceiro responsável pela

    distribuição das aplicações na Web. Desde a versão 6.0 foram feitos grandes

    investimentos em segurança tornando a infraestrutura muito segura reduzindo a zero

    o número de hotfix  (correções) relacionados (DURÃES, 2015, p.1).

    Segundo DURÃES (2015) o IIS oferece ao desenvolvedor Web  uma nova

    plataforma totalmente reestruturada e adaptável as suas necessidades consolidando

    o mesmo como principal plataforma para hospedagem de aplicações Web. Com a

    criação de novos módulos é possível ampliar os recursos e criar novas

    funcionalidades conforme as necessidades de negócio.

    2.4.3. Banco de Dados/Sistema Gerenciador de Banco de Dados (SGDB)

    O modelo relacional de banco de dados foi introduzido em 1970, por Edgar

    Frank Codd, em uma publicação com o título: " A relational model of data for large

    shared data banks", na revista da Association for Computing Machinery (ACM). Essa

    publicação revolucionária demonstrou como tabelas podem ser usadas para

    representar objetos, do mundo real e como os dados podem ser armazenados para

    os objetos. A integridade dos dados nesse conceito foi levada mais a sério que em

    qualquer modelo de Banco de Dados (BD) antes visto. Desde esta publicação

    surgiram muitos BDs utilizando esse conceito e conquistaram um status quase padrão

    para uso no desenvolvimento de aplicações (MATTHEW; STONES, 2005).

    O conceito é baseado na teoria relacional da matemática, por isso há uma

    grande flexibilidade para o acesso e a manipulação de dados gravados no BD. Usando

    técnicas simples, como normalização na modelagem do BD, criam-se várias tabelas

    relacionadas, as quais servem como base para consultas usando uma linguagem de

    consulta quase padronizada, a Structured Query Language - SQL. Um BD relacional,basicamente, contém relações (tabelas) com atributos (colunas) e tuplas (linhas).

  • 8/18/2019 TCC - SANAT

    27/96

    27 

    Curso de Sistemas de Informação 

    Todo atributo tem um tipo de dado definido, uma tupla representa um conjunto dedados com um valor para cada atributo da linha e as tabelas são relacionadas através

    de chaves (MATTHEW; STONES, 2005).

    O uso de banco de dados relacionais torna necessário dividir agregados

    utilizados na aplicação em várias relações conforme as regras da normalização. Para

    recuperar o mesmo agregado são necessárias consultas utilizando joins, (junção) uma

    operação que dependendo da quantidade e do tamanho das relações pode ser muito

    custosa no sentido de necessidade de processamento. Nos casos em que se deseja

    uma resposta rápida de um sistema isso pode ser uma desvantagem (SADALAGE;

    FOWLER, 2013).

    Segundo DATE (2004), “Um banco de dados é uma coleção de dados

    persistentes, usada pelos sistemas de aplicação de uma determinada empresa”. Em

    outras palavras, um banco de dados é um local onde são armazenados dados

    necessários à manutenção das atividades de determinada organização, sendo este

    repositório a fonte de dados para as aplicações atuais e as que vierem a existir.

     A seguir estão as descrições do Mysql, PostreSQL e do Oracle.

    2.4.3.1. Mysql

    O MySQL é um sistema de gerenciamento de banco de dados relacional

    (relational database management system - RDBMS) poderoso e muito rápido. Um

    banco de dados permite armazenar, pesquisar, classificar e recuperar dados de forma

    eficiente. O servidor de MySQL, controla o acesso aos dados para assegurar que

    vários usuários possam trabalhar com os dados ao mesmo tempo, fornecendo acesso

    rápido aos dados e assegurar que somente usuários autorizados obtenham acesso.

    Portanto, o MySQL é um servidor multiusuário e multiencadeado (ou  multitbreaded ).

    Ele utiliza SQL (Structured Query Language), a linguagem de consulta padrão de

    banco de dados em todo o mundo. O MySQL está publicamente disponível desde

    1996, mas tem uma história de desenvolvimento que remonta a 1979. O MySQL

    ganhou o prêmio Journal Readers’ Choice Award Linux  em várias ocasiões

    (THOMSON, 2005).MySQL está disponível sob um esquema de licença dupla. Você pode usá-lo

  • 8/18/2019 TCC - SANAT

    28/96

    28 

    Curso de Sistemas de Informação 

    sob a licença Open Source  (código aberto) General Public Licence ( GPL)gratuitamente, contanto que cumpra os termos da licença. No entanto, se quiser

    distribuir uma aplicação não GPL que inclua o MySQL, você pode comprar uma

    licença comercial (THOMSON, 2005).

    O MySQL é inegavelmente rápido. Pode ver a página de benchmark   dos

    desenvolvedores em https://www.mysql.com/why-mysql/benchmarks/. Muitos desses

    benchmarks mostraram como o MySQL é bem mais rápido do que os concorrentes.

    Em 2002, a revista EWEEK publicou um benchmark  comparando cinco bancos de

    dados que fazem uma aplicação Web funcionar. O melhor resultado foi em empate

    entre o MySQL e o Oracle, que é muito caro (THOMSON, 2005).

    O MySQL está disponível sem nenhum custo, sob uma licença de código-fonte

    aberto, ou a baixo custo, sob uma licença comercial. A licença é necessária se você

    quiser redistribuir o MySQL como parte de uma aplicação não desejada disponibilizar

    sua aplicação com uma licença de código-fonte aberto (THOMSON, 2005).

    O MySQL pode ser utilizado em muitos sistemas, Microsoft Windows e Linux

    (THOMSON, 2005).

    2.4.3.2. PostgreSQL

    Tecnicamente falando, o PostgreSQL é um banco de dados relacional e

    orientado a objetos. Um de seus atrativos é possuir recursos comuns a banco de

    dados de grande porte, o que o deixa apto a trabalhar, inclusive, com operações de

    missão crítica. Além disso, trata-se de um banco de dados versátil, seguro, gratuito e

    de código aberto (disponível sob uma licença do Sistema Operacional BSD)

    (POSTGRESQL, 2015).

    Entre suas características, tem-se:

      Compatibilidade multiplataforma, ou seja, executa em vários sistemas

    operacionais, como Windows, Mac OS X, Linux e outras variantes de Unix;

      Compatibilidade com várias linguagens, entre elas, Java, PHP, Python,

    Ruby, e C/C++;

      Base de dados de tamanho ilimitado;

      Tabelas com tamanho de até 32 TB;

    https://www.mysql.com/why-mysql/benchmarks/https://www.mysql.com/why-mysql/benchmarks/https://www.mysql.com/why-mysql/benchmarks/https://www.mysql.com/why-mysql/benchmarks/

  • 8/18/2019 TCC - SANAT

    29/96

    29 

    Curso de Sistemas de Informação 

      Quantidade de linhas de até 1.6 TB ilimitada;  Campos de até 1 GB;

      Suporte a recursos como triggers, views, stored procedures, SSL, MVCC,

    schemas, transactions, savepoints, referential integrity   e expressões

    regulares;

      Instruções em SQL, como indica o nome.

    O PostgreSQL é otimizado para aplicações complexas, isto é, que envolvem

    grandes volumes de dados ou que tratam de informações críticas. Assim, para um

    sistema de comércio eletrônico de porte médio/alto, por exemplo, o PostGreSQL é

    mais interessante, já que esse SGBD é capaz de lidar de maneira satisfatória com o

    volume de dados gerado pelas operações de consulta e venda (POSTGRESQL,

    2015).

    2.4.3.3. Oracle

     A história do banco de dados da Oracle começa em 1970, quando Ted Coddlançou um modelo de dados relacional, tendo como protótipos o System R e o Ingress.

    O System R foi desenvolvido pela IBM, porém, ainda era um modelo não-comercial

    de banco de dados. Já o Ingress, teve seu desenvolvimento na Universidade de

    Berkeley, na Califórnia, pela equipe liberada por Michael Stonebaker (FANDERUFF,

    2003).

    De acordo com ORACLE (2004), nessa época Larry Ellison vislumbrou, ao

    encontro uma descrição de um protótipo funcional de um banco de dados relacional,uma oportunidade que outras companhias não haviam percebido, a de comercializar

    essa tecnologia. Porém, Ellison e os co-fundadores da Oracle, Bob Miner e Ed Oates,

    não imaginavam de que transformariam “a cara da computação empresarial para

    sempre”. 

    De acordo com RAMALHO (1999), a estrutura física do Oracle é determinada

    pelos arquivos do sistema operacional que o constituem. Então, para cada banco de

    dados da Oracle há pelo menos: um arquivo datafiles (conjunto de arquivos onde as

    informações estão efetivamente armazenadas), dois arquivos redo (são utilizados

    para armazenagem de transações realizadas no banco de dados com a finalidade

  • 8/18/2019 TCC - SANAT

    30/96

    30 

    Curso de Sistemas de Informação 

    desfazer as operações quando da perda de dados) e um arquivo de controle.O Oracle divide a memória RAM (Randon Acess Memory ) em duas partes

    (ZEGGER, 2001):

      O SGA (system global área) é um grupo das estruturas de memórias

    compartilhadas que, quando combinadas com os processos do Oracle,

    compreendem uma instância do Oracle.

      O PGA ( process global área) é onde a memória é alocada a cada processo

    conectado a base de dados. O tamanho deste alocamento é estático. O

    tamanho do PGA é dependente do sistema, mas é afetado pelos seguintes

    parâmetros: open links; db_files; e log_files.

    2.4.4. Modelador de Dados

    Modelagem de dados é o ato de explorar estruturas orientadas a dados. Como

    outros artefatos de modelagem, modelos de dados podem ser usados para uma

    variedade de propósitos, desde modelos conceituais de alto nível até modelos físicos

    de dados. Do ponto de vista de um desenvolvedor atuando no paradigma orientado a

    objetos, modelagem de dados é conceitualmente similar à modelagem de classes.

    Com a modelagem de dados identificamos tipos de entidades da mesma forma que

    na modelagem de classes identificamos classes. Atributos de dados são associados

    a tipos de entidades exatamente como associados atributos e operações às classes.

    Existem associações entre entidades, similar às associações entre classes

    (relacionamento, herança, composição e agregação) são todos conceitos aplicáveis

    em modelagem de dados (NETO, 2015).

    Modelagem de dados tradicional é diferente da modelagem de classes porque

    o seu foco é totalmente nos dados  –  modelos de classes permitem explorar os

    aspectos comportamentais e de dados em um domínio de aplicação, já com o modelo

    de dados podemos apenas explorar o aspecto dado. Por causa deste foco, projetistas

    de dados tendem a serem melhores em identificar os dados “corretos” em uma

    aplicação do que modeladores de objetos. No entanto, algumas pessoas modelam

    métodos de banco de dados (stored procedures, stored functions e triggers) quando

  • 8/18/2019 TCC - SANAT

    31/96

    31 

    Curso de Sistemas de Informação 

    estão realizando a modelagem física dos dados (NETO, 2015). Apesar do foco ser modelagem de dados, existem normalmente alternativas

    para artefatos orientados a dados. Por exemplo, quando estamos na modelagem

    conceitual, os diagramas ORM (Object Role Model ) não são a única opção. Além do

    Modelo Lógico de Dados, é comum a criação de diagramas de classes da UML

    (Unified Modeling Language) (NETO, 2015).

     A seguir uma breve descrição do Dbdesigner, do Enterprise Architect e do

    ERWin.

    2.4.4.1. Dbdesigner

    O DBDesigner é uma ferramenta CASE (Computer-Aided Software

    Engineering ) desenvolvida pela empresa Fabulous Force Database Tools. Esta

    ferramenta é livre e utilizada para a modelagem de dados visual que está disponível

    sob a licença GPL (GNU General Public License  ou Licença Pública Geral)

    (FABFORCE, 2015).

    O DBDesigner é uma excelente opção para quem utiliza qualquer banco de

    dados principalmente MySQL, Oracle, MSSQL e PostgreSQL, mas obviamente não

    se limita apenas a esses. Através dele podemos modelar tabelas de forma gráfica,

    relacionamentos e muito mais (FABFORCE, 2015).

     Após a modelagem, é possível nos conectarmos ao banco de dados, por

    exemplo, o banco de dados MySQL, para sincronização. Com o DBDesigner também

    é possível trabalharmos com os dados das tabelas (FABFORCE, 2015).

    Para fins de comparação com outras ferramentas o DBDesigner tem como

    principais concorrentes produtos como Oracle Designer, IBM Relational Rose e CA

    Erwin. A diferença para outras versões é que o DBDesigner tem bastante suporte

    tanto no fórum da ferramenta quanto na internet em geral devido à grande quantidade

    de pessoas que utilizam esta ferramenta, além de ser uma opção livre e disponível

    para diferentes sistemas operacionais. No entanto, o DBDesigner já está há um certo

    tempo sem receber atualizações muito em função do desenvolvedor principal da

    ferramenta ter sido contratado para trabalhar no Workbench que é mais umconcorrente do DBDesigner (FABFORCE, 2015).

  • 8/18/2019 TCC - SANAT

    32/96

    32 

    Curso de Sistemas de Informação 

    2.4.4.2. Enterprise Architect (EA)Segundo SPARX SYSTEMS (2015), o EA é uma ferramenta CASE baseada

    em UML. O EA é utilizado no desenho e construção de projetos de sistemas de

    software e abrange todas as fases do ciclo de desenvolvimento do projeto do sistema

    de software, desde o levantamento das necessidades, o desenvolvimento até a

    manutenção.

    De acordo com LIMA (2005, p.41), o EA é uma ferramenta que cobre todos os

    aspectos do ciclo de desenvolvimento, fornecendo suporte para teste, manutenção econtrole de mudanças e requisitos, além de diagramas e modelos UML 2. Algumas

    características do EA são:

      Modelagem de sistemas de software de acordo com a notação UML 2.1;

      Integração com o Visual Studio .Net e Eclipse;

      Importação e exportação de modelos nos formatos XML;

      Controle de versão e comparação de modelos e criação de baseline;

      Automação e customização do EA nas linguagens VB, C++ e Delphi.

    2.4.4.3. ERWin

    O software ERWin é uma poderosa ferramenta que simplifica a modelagem,

    criação e manutenção de bases de dados, data warehouses  (depósitos de dados

    digitais) e modelos de dados empresariais. Essa ferramenta não apenas permite que

    o usuário defina as necessidades e regras corporativas na forma de um modelo de

    dados lógico, mas também as converta em seu equivalente físico para um dos bancosde dados suportados. Esta ferramenta é utilizada no mercado para modelagem de

    dados relacionais e/ou dimensionais. A modelagem dimensional é o nome de uma

    técnica de projeto lógico normalmente usados para data warehouses  (DEVMEDIA,

    2015).

    O ERWin permite, ainda, a construção de modelos lógicos (Logical ), modelos

    físicos (Physical ) e modelos lógicos e físicos (Logical/Physical ). O modelo lógico

    permite representar fielmente o negócio, e não necessariamente a base de dadosdesejada, a qual será construída posteriormente por ocasião do projeto físico. Já o

  • 8/18/2019 TCC - SANAT

    33/96

    33 

    Curso de Sistemas de Informação 

    modelo físico oferece funcionalidades para implementação em um SGBD específico(DEVMEDIA, 2015).

    2.4.5. Ferramenta de Desenvolvimento IDE (Integrated DevelopmentEnvi ronment )

    IDE, do inglês Integrated Development Environment  ou Ambiente Integrado de

    Desenvolvimento, é um programa de computador que reúne características e

    ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este

    processo (CAELUM, 2015).

    Geralmente os IDEs facilitam a técnica de RAD (Rapid Application

    Development , ou Desenvolvimento Rápido de Aplicativos), que visa a maior

    produtividade dos desenvolvedores, como (CAELUM, 2015):

      Editar;

      Compilador;

      Lincador;

      Depurador;

      Modelagem;

      Geração de código.

     A seguir uma breve descrição do Eclipse e do Netbeans.

    2.4.5.1. Eclipse

    O Eclipse é uma IDE (integrated development environment ). Diferente de uma

    RAD (Rapid Application Development ) é um modelo de processo de desenvolvimento

    de software  interativo e incremental que enfatiza um ciclo de desenvolvimento

    extremamente curto (entre 60 e 90 dias), onde o objetivo é desenvolver o mais rápido

    possível através do arrastar-e-soltar do mouse, onde montanhas de código são

    gerados em background (segundo plano) uma IDE auxilia no desenvolvimento, e

    evitando mudanças (CAELUM, 2015).

    O Eclipse é a IDE líder de mercado. Formada por um consórcio liderado pela

    IBM, possui seu código livre (CAELUM, 2015).

    De acordo com a revista CNET NEWS, em 2001 o projeto Eclipse foi iniciado

  • 8/18/2019 TCC - SANAT

    34/96

    34 

    Curso de Sistemas de Informação 

    na IBM que desenvolveu a primeira versão do produto e doou-o como software livrepara a comunidade. O gasto inicial da IBM no produto foi de mais de 40 milhões de

    dólares. Hoje, o Eclipse é o IDE Java mais utilizado no mundo. Possui como

    característica marcante o uso da SWT (Standard Widget Toolkit) e não do Swing  como

    biblioteca gráfica do Java, a forte orientação ao desenvolvimento baseado em  plug-

    ins  e o amplo suporte ao desenvolvedor com centenas de  plug-ins  que procuram

    atender as diferentes necessidades de diferentes programadores.

    2.4.5.2. NetBeans

    O NetBeans IDE é um ambiente de desenvolvimento integrado gratuito e de

    código aberto para desenvolvedores de software nas linguagens Java, C, C++, PHP,

    Groovy, Ruby, entre outras. O IDE é executado em muitas plataformas, como

    Windows, Linux, Solaris e MacOS. O NetBeans IDE oferece aos desenvolvedores

    ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais,

    Web e aplicações móveis multiplataformas (NETBEANS, 2015).

    O NetBeans foi iniciado em 1996 por dois estudantes tchecos na Universidade

    de Charles, em Praga, quando a linguagem de programação Java ainda não era tão

    popular como atualmente. Primeiramente o nome do projeto era Xelfi, em alusão ao

    Delphi, pois a pretensão deste projeto era ter funcionalidades semelhantes aos IDEs

    então populares do Delphi que eram mais atrativas por serem ferramentas visuais e

    mais fáceis de usar, porém com o intuito de ser totalmente desenvolvido em Java.

    Em 1999 o projeto já havia evoluído para uma IDE proprietário, com o nome de

    NetBeans DeveloperX2, nome que veio da ideia de reutilização de componentes que

    era a base do Java. Nessa época a empresa Sun Microsystems havia desistido de

    sua IDE Java Workshop e, procurando por novas iniciativas, adquiriu o projeto

    NetBeans DeveloperX2 incorporando-o a sua linha de softwares (NETBEANS, 2015).

    Por alguns meses a Sun mudou o nome do projeto para Forte for Java e o

    manteve por um bom tempo como software proprietário, porém, em junho de 2000 a

    Sun disponibilizou o código fonte do IDE NetBeans tornando-o uma plataforma

    OpenSource  (código livre). Desde então a comunidade de desenvolvedores queutilizam e contribuem com o projeto não parou de crescer, tornando-se uma das IDEs

  • 8/18/2019 TCC - SANAT

    35/96

    35 

    Curso de Sistemas de Informação 

    mais populares atualmente (NETBEANS, 2015).

    2.4.6. Outras Tecnologias

     A seguir estão listadas outras tecnologias empregadas.

    2.4.6.1. HTML

    É uma linguagem de programação muito simples, utilizada para criar

    documentos Hipertexto. A HTML (Hyper Text Markup Language) pode ser portada de

    uma plataforma computacional para outra (BUGAY, 2000).

     A linguagem HTML é usada para criar as páginas usadas na Web, o serviço

    mais popular na Internet. HTML é uma linguagem simples, porém poderosa e com

    muitos recursos. Ela é composta de marcações de formatação e diagramação de

    hipertexto/hipermídia (informações em texto, imagens, sons e ações ligadas umas às

    outras de uma forma complexa e não sequencial através de chaves relacionadas). É

    com essa linguagem que são feitos os hyperlinks que permitem navegar pela web.

    Para isso, utiliza marcações, chamadas tags, no ponto da página que é feito um

    hyperlink  com outras páginas. É a linguagem da WWW (World Wide Web), justamente

    por esta capacidade de formatação e diagramação de hipertexto/hipermídia.

     Atualmente existem muitas outras linguagens utilizadas concorrentemente com o

    HTML, mas a base da WWW ainda é HTML, por isso essa ferramenta foi escolhida

    (FRAGA, 2003).

    2.4.6.2. Bootstrap

    Desenvolvido pela equipe do Twitter, é uma rede social e um serviço para

    microblogging , que permite aos usuários enviar e receber atualizações pessoais de

    outros contatos até 140 caracteres, conhecido como “tweets”. Foi criado em março de

    2006 por Jack Dorsey, Evan Williams, Biz Stone e Noah Glasss e foi lançado em julho

    de 2006 nos EUA. O Bootstrap é um framework ( arcabouço )  front-end   de código

    aberto (opensource). Em palavras simples, é um conjunto de ferramentas criadas para

    facilitar o desenvolvimento de sites e sistemas Web (BOOTSTRAP, 2015).Compatível com HTML5 e CSS3, o framework  possibilita a criação de layouts 

  • 8/18/2019 TCC - SANAT

    36/96

    36 

    Curso de Sistemas de Informação 

    responsivos e o uso de grids (sistema de grades), permitindo que seu conteúdo sejaorganizado em até 12 colunas e que se comporte de maneira diferente para cada

    resolução (BOOTSTRAP, 2015).

    Como qualquer outra ferramenta, possui suas vantagens. É importante

    conhecer e entender suas funcionalidades para saber os momentos certos de utilizá-

    lo (BOOTSTRAP, 2015).

    Vantagens:

      Possui documentação detalhada e de fácil entendimento;

      É otimizado para o desenvolvimento de layouts responsivos;

      Possui componentes suficientes para o desenvolvimento de qualquer site

    ou sistema Web com interface simples;

      Facilita a criação e edição de layouts por manter padrões;

      Funciona em todos os navegadores atuais (Chrome, Safari, Firefox, IE,

    Opera).

    Como funciona:

     A estrutura é simples e seu pacote contém três tipos diferentes de arquivos

    (CSS, JavaScrpipt e Fonts), que vêm devidamente organizados em suas pastas.

    Montar um layout  é simples e rápido utilizando sua documentação. Como toda

    a estrutura do CSS já vem definida, basta procurar o componente necessário e

    adicionar seu código. Em poucos minutos seu layout  toma forma e está pronto para

    uso. E o mesmo acontece com o JavaScript (BOOTSTRAP, 2015).

    O sistema de grids:O uso efetivo dos grids é fundamental para um bom projeto com o Bootstrap e

    entender sua lógica é simples.

    2.4.6.3. MVC (Model - View - Controller)

    O Modelo é o objeto de aplicação, a Visão é a apresentação na tela e o

    Controlador é o que define a maneira como a interface do usuário reage às entradas

    do mesmo (GAMMA, 2000).O padrão de projeto MVC (Modelo Visualização Controle) fornece uma maneira

  • 8/18/2019 TCC - SANAT

    37/96

    37 

    Curso de Sistemas de Informação 

    de dividir a funcionalidade envolvida na manutenção e apresentação dos dados deuma aplicação. O MVC não é novo e foi originalmente desenvolvido para mapear as

    tarefas tradicionais de entrada, processamento e saída para o Modelo de interação

    com o usuário. Usando o padrão MVC fica fácil mapear esses conceitos no domínio

    de aplicações Web multicamadas (MACORATTI, 2015).

    Na arquitetura do MVC o Modelo representa os dados da aplicação e as regras

    do negócio que governam o acesso e a modificação dos dados. O Modelo mantém o

    estado persistente do negócio e fornece ao controlador a capacidade de acessar as

    funcionalidades da aplicação encapsuladas pelo próprio Modelo (MACORATTI, 2015).

    Um componente de visualização renderiza (compila) o conteúdo de uma parte

    particular do Modelo e encaminha para o controlador as ações do usuário e, acessa

    também os dados do Modelo via controlador e define como esses dados devem ser

    apresentados (MACORATTI, 2015).

    Um controlador define o comportamento da aplicação, é ele que interpreta as

    ações do usuário e as mapeia para chamadas do Modelo. Em um cliente de aplicações

    Web essas ações do usuário poderiam ser cliques em botões ou seleções de menus.

     As ações realizadas pelo Modelo incluem ativar processos de negócio, alterar o

    estado do Modelo. Com base na ação do usuário e no resultado do processamento

    do Modelo, o controlador seleciona uma visualização a ser exibida como parte da

    resposta a solicitação do usuário. Há normalmente um controlador para cada conjunto

    de funcionalidades relacionadas (MACORATTI, 2015).

    2.4.6.4. AXURE RP Pro

     Axure RP Pro é um wireframing   (simulação de como a interface deve

    funcionar), prototipagem rápida, documentação e especificações ferramenta de

    software  voltado para aplicações Web  e desktop. Dispõe de arrastar e soltar

    colocação, redimensionar e formatação de widgets (pequenos aplicativos). O Axure

    suporta prototipagem Rich Internet Applications, mapeando os comportamentos

    desejados de interface (como exibir ou ocultar um elemento), em resposta a ações

    como cliques do mouse ou gestos de toque. Axure RP gera sites em HTML e MicrosoftWord documentos como saída (AXURE, 2015).

  • 8/18/2019 TCC - SANAT

    38/96

    38 

    Curso de Sistemas de Informação 

    2.4.6.5. UML A UML (Unified Modeling Language ou Linguagem de Modelagem Unificada)

    surgiu da união de três métodos de modelagem: o método de Booch, o método OMT

    de Jacobson e o método OOSE de Rumbaugh. Estas eram, até meados da década

    de 90, os três métodos de modelagem orientada a objetos mais populares entre os

    profissionais da área de desenvolvimento de software. A união dessas metodologias

    contou com o amplo apoio da Rational Software, que incentivou e financiou a união

    das três metodologias (MEDEIROS, 2004). A UML é uma linguagem visual utilizada para modelar sistemas computacionais

    por meio do paradigma de Orientação a Objetos. O objetivo da UML é ajudar a definir

    as características do software, tais como seus requisitos, seu comportamento, sua

    estrutura lógica, a dinâmica de seus processos e suas necessidades físicas em

    relação ao equipamento sobre o qual o sistema deverá ser implantado. Todas essas

    características são definidas por meio da UML antes do software  começar a ser

    realmente desenvolvido (GUEDES, 2004). A UML é composta por diferentes tipos de diagrama, cada um representando o

    sistema sob uma determinada ótica. A utilização de diversos diagramas permite que

    falhas sejam descobertas, diminuindo a possibilidade da ocorrência de erros futuros.

    2.4.6.5.1. Diagramas da UML:  Diagrama de Casos de Uso: é o diagrama mais geral e informal da UML,

    sendo utilizado normalmente nas fases de levantamento e análise de

    requisitos do sistema. Procura identificar os atores que utilizarão o softwaree os serviços que o sistema disponibilizará aos atores, conhecidos como

    casos de uso.

      Diagrama de Classes: é o diagrama mais utilizado e o mais importante da

    UML. Define a estrutura das classes utilizadas pelo sistema, determinando

    os atributos e métodos de cada classe, além de estabelecer como as

    classes se relacionam e trocam informações entre si.

      Diagrama de Sequência: preocupa-se com a ordem temporal em que asmensagens são trocadas entre os objetos envolvidos em um determinado

  • 8/18/2019 TCC - SANAT

    39/96

    39 

    Curso de Sistemas de Informação 

    processo.  Diagrama de Atividades: preocupa-se em descrever os passos a serem

    percorridos para a conclusão de uma atividade específica.

    2.5. Ferramentas Utilizadas

    Para o desenvolvimento do sistema do SANAT, citamos duas ferramentas

    Eclipse e NetBeans, sendo ótimas opções aos desenvolvedores. Estes dois

    ambientes possuem código aberto e são gratuitos, podendo ser utilizado para odesenvolvimento de aplicações em outras linguagens. Mas o Eclipse é uma IDE

    desenvolvida em Java e possibilita integração com frameworks  e  plug-ins  como o

    PHP. Estas integrações podem subsidiar a construção, implantação e gerenciamento

    de software  em todo seu ciclo de vida. O Eclipse também se destaca por possui

    características de arquiteturas diferenciadas.

     A linguagem de programação, tem vários tipos como PHP, Java e .Net. O PHP

    tem uma sintaxe bastante parecida com Java. Com o PHP é possível desenvolver:  Aplicações Web dinâmicas (websites, intranets, extranets, etc);

      Aplicações desktop;

      Rich Clients;

      Web Services;

      Scripts de linha de comando;

      Tarefas de segundo plano.

    O PHP usa duas sintaxes. Uma é procedural e a outra é orientada a objetos. A

    procedural é utilizada por webmasters  (profissional da Web) que trabalham na

    interface com o usuário. Já a sintaxe Orientada a Objetos é, propositalmente similar,

    ao Java, com o objetivo de reduzir os custos com treinamento e encorajar a migração

    para o PHP.

    Na maioria das vezes o PHP é utilizado com um servidor Web: Apache ou

    Microsoft IIS.

    Umas das melhores habilidades do PHP é lidar com banco de dados de uma

    forma fácil. O MySQL é um banco de dados simples, rápido e eficiente para se

  • 8/18/2019 TCC - SANAT

    40/96

    40 

    Curso de Sistemas de Informação 

    trabalhar com sistemas Web. A licença desse banco de dados é software livre.PHP e HTML possuem muita interação: PHP pode gerar HTML, e o HTML pode

    passar informações para o PHP.

    Utilizaremos o Apache para o servidor Web, por ser gratuito.

    Uma tendência em alta no mundo front-end é o uso de frameworks CSS com

    estilos base para nossa página. Ao invés de começar todo projeto do zero, criando

    todo estilo na mão, existem frameworks que já trazem toda uma base construída de

    onde partiremos nossa aplicação (WD-43, 2015).

    Existem muitas opções, mas o Twitter Bootstrap talvez seja o de maior

    notoriedade. Ele foi criado pelo pessoal do Twitter a partir de código que eles já

    usavam internamente. Foi liberado como opensource e ganhou muitos adeptos. O

    projeto cresceu bastante em maturidade e importância no mercado a ponto de se

    desvincular do Twitter e ser apenas o Bootstrap.

    O Bootstrap traz uma série de recursos:

      Reset  CSS;

      Estilo visual base para maioria das tags;

      Ícones;

      Grids prontos para uso;

      Componentes CSS;

      Plug-ins JavaScript;

      Tudo responsivo e mobile-first ;

      Como sugere o nome, é uma forma de começar o projeto logo com um

    design e recursos base sem perder tempo com design no início.

  • 8/18/2019 TCC - SANAT

    41/96

    41 

    Curso de Sistemas de Informação 

    3. VISÃO DO SISTEMASerá mostrada a descrição do problema, o impacto e a proposta de solução.

    3.1. Descrição do Problema

    No quadro a seguir está a descrição do problema.

    Quadro 01  – Descrição do Problema

    O problema do NADD de

     Atendimento ao Docente e Discentedo Centro Universitário JMP.

    Os colaboradores do NADD têm dificuldades em fazer

    um bom atendimento de demandas no que se refere àatribuição de ambiente de ensino para cada mapa doscursos de Graduação. Quando há mudanças dalocalização de um ambiente de ensino para umadeterminada turma, o NADD não fica informadoimediatamente pelos coordenadores que fazematualização das informações, o que traz um desconfortotanto para alunos quanto para colaboradoras que nãorecebem a informação precisa. As informações sobreturma e o local do ambiente de ensino ficamarmazenadas em planilhas, que, se não forem

    repassadas ao NADD imediatamente, a informação nãoestará atualizada, comprometendo a veracidade dainformação.

     Afeta Os colaboradores do NADD, professores ecoordenadores e alunos.

    O seu impacto é O desencontro das informações a respeito do local físicodo ambiente de ensino, das disciplinas que estão sendoministradas em cada ambiente de ensino e seusrespectivos professores, trazendo imprecisão nainformação.

  • 8/18/2019 TCC - SANAT

    42/96

    42 

    Curso de Sistemas de Informação 

    Uma solução bem-sucedida seria Um sistema informatizado que, baseado em informaçõesrepassadas por coordenadores sobre os ambientes deensino, disciplina, professor, onde será mostrada em umlayout   a alocação de ambientes de ensino das turmasdos cursos de graduação do Centro Universitário JMP,auxiliando aos colaboradores na divulgação dainformação correta sobre turmas e sua localização noCentro Universitário JMP, de modo que as informaçõesestarão disponíveis simultaneamente para todosusuários que estiverem logados no sistema. O sistema manterá cadastro de disciplinas, de ambientesde ensino e de professores, onde permitirá que

    coordenadores atribuam um ambiente de ensino a umadisciplina assim como um professor a uma disciplina emum determinado horário.

    3.2. Sentença de Posição do Produto

    No quadro a seguir temos a sentença sobre o produto final.

    Quadro 02 – Sobre o Produto Final 

    Para O Núcleo de Atendimento ao Docente e Discente, do Centro UniversitárioJMP.

    Que Terá uma ferramenta para auxiliar na atividade de apoio a docentes ediscentes.

    O SANAT Sistema de Apoio ao Núcleo de Atendimento ao Docente e Discente.Que Facilitará a identificação de ambientes de ensino alocadas das disciplinas e

    seus respectivos professores, para os cursos de graduação.Diferente Da maneira como é feito atualmente, em planilhas.Nosso produto Visa informatizar de tal forma que, em vez de planilhas, será visualizado em

    tela.

    3.3. Modelo de Negócio

     A Figura 04 mostra o modelo de processo do SANAT.

  • 8/18/2019 TCC - SANAT

    43/96

    43 

    Curso de Sistemas de Informação 

    Figura 04 - Diagrama Geral dos Processos do SANAT.Fonte: Elaborado pelos autores.

  • 8/18/2019 TCC - SANAT

    44/96

    44 

    Curso de Sistemas de Informação 

    3.4. Apoio da SoluçãoOs coordenadores terão mais facilidades para criar turmas, realizar alocação

    de ambientes de ensino para as salas, realizar ensalamento de turmas, bem como

    alocar disciplinas aos professores.

    Os colaboradores terão uma melhor visão da distribuição dos ambientes de

    ensino e turmas dos cursos de graduação na unidade de ensino, podendo assim

    repassar as informações disponíveis.

  • 8/18/2019 TCC - SANAT

    45/96

    45 

    Curso de Sistemas de Informação 

    4. ELABORAÇÃO DA SOLUÇÃO A criação de um sistema informatizado deverá melhorar o atendimento do

    NADD, facilitando a relação entre o corpo Docente e o Discente de modo que as

    informações referentes a localização e ocupação de um ambiente de ensino estará

    sempre atualizada.

    4.1. Requisitos Funcionais

    São declarações de serviços que o sistema deve prover, descrevendo o que o

    sistema deve fazer (SOMMERVILLE, 2007). Um requisito funcional descreve uma

    interação entre o sistema e o seu ambiente (PFLEEGER, 2004), podendo descrever,

    ainda, como o sistema deve reagir a entradas específicas, como o sistema deve se

    comportar em situações específicas e o que o sistema não deve fazer

    (SOMMERVILLE, 2007).

    Eles dependem do tipo de  software  a ser desenvolvido, de quem são seus

    possíveis usuários e da abordagem geral adotada pela organização ao escrever os

    requisitos. Quando expressos como requisitos de usuário, os requisitos funcionais são

    normalmente descritos de forma abstrata, para serem compreendidos pelos usuários

    do sistema. No entanto, requisitos de sistema funcionais mais específicos descrevem

    em detalhes as funções do sistema, suas entradas e saídas, exceções etc.

    (SOMMERVILLE, 2007).

    Requisitos funcionais do sistema variam de requisitos gerais, que abrangem o

    que o sistema deve fazer, até requisitos muito específicos, que refletem os sistemas

    e as formas de trabalho em uma organização (SOMMERVILLE, 2007).

    No levantamento de requisitos foi utilizada a técnica mais comumente utilizada,

    o da entrevista aberta, tendo como participantes os alunos atuando como

    desenvolvedores, as coordenações e os colaboradores do NADD.

    O sistema será capaz de:

      Manter Usuários;

      Manter Professores;

      Manter Cursos;

  • 8/18/2019 TCC - SANAT

    46/96

    46 

    Curso de Sistemas de Informação 

      Manter Disciplinas;  Manter Sala (Ambientes de Ensino);

      Manter Turmas,

      Manter Ensalamentos, e

      Visualizar Mapas de Ambientes de Ensino.

    No quadro a seguir são demonstrados os requisitos funcionais.

    Quadro 03 – Requisitos Funcionais 

    RequisitoFuncional 

    Descrição

    RF-01

    Manter Usuário

    Operação realizada pelo administrador do sistema.

      Cadastrar usuário;  Al