Buscar

PIM VIII APLICAÇÃO ASP NET

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

41
UNIP INTERATIVA 
PROJETO INTEGRADO MULTIDISCIPLINAR 
CURSOS SUPERIORES DE TECNOLOGIA 
		PIM VIII
APLICAÇÃO ASP.NET
POLO JAGUARÉ
2017
UNIP INTERATIVA 
PROJETO INTEGRADO MULTIDISCIPLINAR 
CURSOS SUPERIORES DE TECNOLOGIA 
PIM VIII
APLICAÇÃO ASP.NET
Rafael Pereira dos Santos – RA: 1406176
Análise e Desenvolvimento de Sistemas
4ºSemestre 
POLO JAGUARÉ 
2017 
RESUMO
Este trabalho tem como objetivo o levantamento, planejamento e o processo de desenvolvimento de um sistema acadêmico, com foco nas necessidades de uma instituição que não possuía tecnologia, levantando as principais técnicas de programação para Internet através da plataforma .NET da Microsoft, com a linguagem C# em conjunto com as tecnologias oferecidas pelo ASP.NET 2.0. Todas as escolhas tecnológicas foram levantadas e discutidas para a criação do sistema, apresentando de maneira criteriosa com dados e gráficos a explicação de cada decisão, a fim de demonstrar a viabilidade das propostas deste trabalho e como cada uma delas favorece a criação do sistema e pode facilitar sua manutenção. Por fim, tornou -se possível constatar que a utilização da Internet como base para sistemas de gestão acadêmica pode ser um grande atrativo, além de facilitar um dos maiores desafios de sistemas a serem acessados por diferentes usuários em diferentes lugares, que é a distribuição do mesmo e facilitar todos os processos existentes na instituição escolhida.
Palavras-chave: Testes, acadêmicos, formatação, sistema.
 
ABSTRACT
The work aims to present the development of a script tests for a system to format the academic papers to be submitted by the authors, conferences and scientific journals of the University. An article can only be submitted if within formatting standards set by DEPP, in .pdf format and you have to 42,000 characters. To be submitted, the article must have two versions, one with the name of the authors and one without the authors' names (blind review). These two versions are to be generated by Articles Formatting System Academic.
Keywords: Testing, academics, formatting system.
SUMÁRIO
INTRODUÇÃO										 7
1. LEVANTAMENTO DE REQUISITOS		 	 8
	1.1. Cenário Atual				 8
	1.2. Escolhas Tecnológicas							 8
2. PLATAFORMA .NET 11
	2.1. Framework .NET	 	 11
	2.2. Linguagem C#		 	 11
	2.3. ASP.NET		 	 12
3. CENTRAL DE GESTÃO ACADÊMICA 12
3.1. Definição de Escopo							 12
	3.2. Desenvolvimento Iterativo e Incremental 12
	3.3. Modelo de Banco de Dados	 13
	3.4. Segurança de Acesso		 12
	3.5. Cadastros			 13
	3.6. Matrícula			 13
	3.7. Arquitetura			 13
CONCLUSÃO										 17
REFERÊNCIAS BIBLIOGRÁFICAS	 29
1. INTRODUÇÃO
	A humanidade, desde o início das civilizações tem como desafio a organização das informações, e é este desafio que é o grande responsável pela busca por avanços relacionados a área de tecnologia da informação.
Devido a Globalização ocorrida nas últimas décadas, ocorreu uma ampliação e constante atualização do processo de informatização que passou a ser utilizado de maneira comercial, como uma importante ferramenta de gestão e não somente restrito ao ambiente acadêmico, militar e científico, como era no início.
A utilização da tecnologia trouxe grandes vantagens, podendo citar como as principais: aumento na capacidade de manipulação de dados, que podem ser consultados e alterados simultaneamente, de maneira mais precisa e com maior velocidade, diminuição dos custos e do desperdício devido a automação das tarefas e a utilização da Internet possibilitou o aumento do alcance dos mercados consumidores, pois consegue atingir de maneira mais rápida e eficaz um maior número de pessoas. O grande desafio da utilização da tecnologia é, através da compreensão e das melhorias oferecidas, conseguir transformar a maior parte das coisas disponíveis na rede em oportunidades (ORLANDINI, 2005).
A popularização e expansão da Internet possibilita a criação de sistemas que estejam conectados entre si, 24 horas por dia, o que pode ser considerada uma vantagem, oferecendo diversas oportunidades, além de ser simples e com um custo baixo.
Após esta análise inicial sobre as oportunidades oferecidas pela tecnologia, este trabalho tem como objetivo demonstrar a criação de um sistema de gestão acadêmica online. A intenção deste sistema é facilitar a realização das operações principais das partes mais importantes para o funcionamento de uma Universidade: alunos, professores e funcionários administrativos.
1. LEVANTAMENTO DE REQUISITOS
	O objetivo deste trabalho foi levantado e elaborado a partir das necessidades de utilização deste tipo de sistema acadêmico, através das oportunidades oferecidas pelo ambiente utilizado, a Internet.
A necessidade deste sistema não é especifica de uma instituição de ensino, mas de diversas instituições que buscam a utilização da tecnologia. Para Orlandini (2005), a informatização tornou-se uma importante ferramenta para as organizações de uma maneira acessível a grande maioria, podendo ser comparada a energia elétrica. Isso acontece, pois, os serviços de hospedagem de sistemas pela Internet estão cada vez mais presentes e fáceis de utilizar, com uma maior adesão das empresas além disso o custo de infraestrutura de TI sofre uma redução significativa.
A Figura 1 demostra a evolução da utilização de sistemas da, tendo a Internet como base. Pode-se perceber que houve um crescimento de 60% dos sistemas publicados para a Internet em dez anos.
FIGURA 1 - Evolução na utilização de sistemas
FONTES: Info Online (http://info.abril.com.br/) e IBGE (http://www.ibge.com.br)
Apesar das necessidades verificadas pelas empresas neste cenário, as instituições de ensino superior, principalmente as públicas não se encaixam neste perfil pois não utilizam as ferramentas das tecnologias oferecidas no mercado atual, as consideradas de ponta, mesmo as que oferecem os cursos relacionados a tecnologia e poderiam utilizar seus alunos para desenvolver projetos específicos.
A elaboração do objetivo deste trabalho, desde o levantamento das necessidades levou em consideração a criação de um sistema cuja manutenção seja realizada pela própria instituição, utilizando seus alunos e estagiários, por exemplo e possa ser expandido conforme suas necessidades. Também deve ser levado em consideração que o projeto facilite a produtividade da instituição, sendo útil para facilitar os processos e que ele tenha uma continuidade.
1.1. Cenário Atual
O processo de modelagem foi iniciado através de um levantamento e análise do cenário atual da instituição em que será inserido o projeto, para conseguir entender em que estágio está sua automação acadêmica. Como uma maneira de facilitar a compreensão deste processo, ele foi dividido em três etapas descritas abaixo.
A primeira etapa está relacionada aos primórdios das atividades executadas pela instituição, não relacionado diretamente à proposta deste trabalho. Esta etapa trabalha com a inexistência de qualquer sistema que facilite as atividades acadêmicas. 
A formação de uma instituição de ensino superioracontece através de processos, os costumes que possivelmente tornarão regras de trabalho, e a forma de execução de cada processo. 
A segunda etapa é o surgimento e a implantação do sistema acadêmico da instituição, que será o responsável por substituir os processos que antes eram executados manualmente. Ela ocorre após a análise da execução dos processos da primeira fase.
Nesta etapa não são oferecidas melhorias na execução dos processos já existentes, ele apenas informatiza uma parcela das tarefas da maneira como elas eram realizadas anteriormente.
Mas este processo não tem muita validade pois ter um grande potencial de informatização e não coordenar e analisar os processos acaba desenvolvendo novos problemas e reclamações ao invés de soluções. A informatização das tarefas que não foram formuladas corretamente ou cuja execução não seja correta, o que é muito comum no início destes processos, pode trazer mais dificuldades e resistências do que os benefícios esperados (ORLANDINI, 2005).
Inicialmente foi elaborado e desenvolvido um sistema em Clipper e nomeado como Cadastro Geral de Alunos (sigla CGA). O objetivo principal deste sistema era realizar o cadastro de dados pessoais e gerais de todos os alunos na realização da matrícula e gerar um RA (Registro Acadêmico) automaticamente.
FIGURA 2 - Primeira versão do CGA
FONTE: Sistema CGA versão 5.1 Y2K
A terceira etapa é a demonstrada na Figura 3, uma nova e atualizada versão do CGA, que foi adaptado para a instituição através da implantação de novas possibilidades de inclusão, ferramentas para automatizar e facilitar as matrículas. Houve a inclusão de matrícula de novos alunos, tela com as disciplinas disponíveis, lançamento de notas e faltas para os alunos e a disponibilidade de impressão de relatórios que facilitem o acompanhamento do rendimento dos alunos, por exemplo.
FIGURA 3 - Segunda versão do CGA
FONTE: Sistema CGA versão 2004
A empresa parceira responsável pelo desenvolvimento da segunda versão do sistema CGA foi a Techne, uma empresa que busca desenvolver soluções inovadoras, com o uso de TI, que promovam o sucesso de clientes e contribuam para o desenvolvimento social do país. Em troca a Instituição ofereceu bolsas de estudo para os funcionários da empresa.
O desenvolvimento do sistema foi realizado sem a elaboração de uma análise detalhada prévia, na versão 1.1 da plataforma .NET da Microsoft, depois foram realizadas alterações para as versões Beta 1, Beta 2 e Final da plataforma .NET 2.0. A ausência desta análise prévia e de um planejamento bem elaborado ocasionou problemas relacionados a arquitetura e a manutenção do projeto, que foram percebidos pelos próprios participantes do projeto. 
1.2. Escolhas Tecnológicas
A partir de uma análise dos diferentes problemas existentes no sistema ou modo de trabalho antigo e levantados os objetivos do novo sistema, foram realizadas algumas alterações e decisões tecnológicas para a implantação.
Seguindo um cronograma, a primeira coisa a ser realizada foi a definição da metodologia que seria utilizada. Munido de conhecimentos prévios, foi escolhida a Análise Orientada a Objetos, que já é amplamente conhecida e utilizada, além de ser de fácil compreensão. Outro diferencial desta metodologia é o alvo do sistema utilizado, ambiente de Internet, considerando que as melhores tecnologias e mais atuais utilizadas para o desenvolvimento para a Internet são JSP, para o desenvolvimento Java, e ASP.NET, para desenvolvimento .NET (JOHNSON, 2007).
Segundo Cardoso (2006) ainda existe uma grande vantagem para a utilização da orientação a objetos, é a possibilidade de reutilizar o código, devido a um recurso chamado herança de classes, que evita as repetições desnecessárias dos códigos através de classes específicas se aproveitando de recursos existentes nas classes mais genéricas.
 Levando em consideração que o sistema criado tem como requisitos a facilidade de manutenção e a possibilidade de expansão, a característica deste recurso torna-se um importante diferencial a ser utilizado.
Após esta análise, é necessário escolher qual plataforma de desenvolvimento orientado a objetos será utilizada, a Java ou a .NET. Existe uma dificuldade na escolha pois as duas tem grandes vantagens, o Java apresenta a força do software livre, já a .NET está em amplo crescimento e em relação a produtividade tem ganhado muito espaço e demonstrando sua importância em diferentes possibilidades de padrões disseminados como o tratamento de documentos DOM (Document Object Model) e XML (Extensible Markup Language)
Na figura 4, o gráfico faz uma demonstração entre o desempenho de documentos XML entre as versões 1.1 e 2.0 do Framework .NET, na leitura e interpretação quando comparados ao Java 1.5.
FIGURA 4 - Desempenho na interpretação de documentos XML
FONTE: Microsoft Developers Network (http://www.msdn.com)
Esta comparação para a tomada de decisões tornou-se possível a pouco tempo pois antes o Java era gratuito, mas o .NET não era, o que já se tornava um diferencial considerável. Somente em 2005 ocorreu o lançamento de versões de produtos da Microsoft (versões Express Edition) que ofereciam licença livre de utilização, apenas com a condição de que não houvesse a comercialização do produto final, e esta não seria uma limitação quando fosse utilizado o sistema na versão acadêmica da Instituição.
A segunda decisão seria entre as versões 1.1 ou 2.0 do .NET Framework, que não teria a necessidade de muitas análises ou avaliações. Para Marques (2005) a versão 2.0 apresenta uma quantidade maior de recursos e de produtividade para o desenvolvimento quando comparado ao 1.1, essa melhoria será tratada no decorrer deste trabalho também. 
Relacionando as duas escolhas descritas acima, foi selecionado o banco de dados SQL Server 2005 Express Edition. Esta versão possui duas limitações importantes que devem ser consideradas, a comercialização e o limite existente no arquivo do banco de dados no disco rígido, 4 GB no máximo. Mas a segunda limitação não deve ser considerada um problema que invalidaria o uso do sistema pois, atualmente o SQL Server 2000 possui 17 anos de dados cadastrados e o seu banco de dados ainda não atingiu 25 MB. 
Levando em consideração o SQL Server 2005, ele já foi desenhado e preparado para ser unicamente Sistema Acadêmico em ASP.NET 2.0 integrado ao desenvolvimento .NET. A utilização do conjunto SQL Server 2005 e o .NET 2.0 aumenta consideravelmente a produtividade no desenvolvimento do sistema (RYAN, 2006).
A figura 5 demonstra a integração do ambiente de desenvolvimento .NET 2.0 com os recursos de visualização e de edição dos dados, com o objetivo de agilizar e facilitar o desenvolvimento. 
FIGURA 5 - Integração do SQL Server 2005 com o Visual Studio 2005.
FONTE: Microsoft Visual Studio 2005	
Após o processo de escolha das tecnologias que serão utilizadas para o desenvolvimento e armazenamento das informações acadêmicas, o próximo passo é a definição do ambiente que será utilizado e o que é esperado pelos usuários do sistema. Esta definição é importante pois é difícil controlar a maneira como cada um utilizará e acessará a aplicação pois a mesma será publicada na Internet.
É importante a definição dos navegadores que podem ser utilizados para acessar e utilizar o sistema, na fase de desenvolvimento Web, pois os navegadores são diferentes e possuem características próprias para interpretar os padrões do sistema. Existe um órgão responsável por regulamentar os padrões de desenvolvimento para a Internet, o W3C (World Wide Web Consortium), que apresenta a melhor maneira de desenvolver e após o sistema pronto, qual ou quais os melhores navegadores para a utilização.
A figura 6 demonstra, segundo o W3C quais os navegadores mais utilizados pelos usuários no período de janeiro de 2002 a julho de 2007. Analisando o gráfico, os mais utilizados (com mais de 10%) são o: Internet Explorer 6, Internet Explorer 7 e Firefox.
FIGURA 6 - Estatística de utilização de navegadores
FONTE: W3 Schools (http://www.w3schools.com)
O suportea Java Script também deve ser levado em consideração dependendo do navegador escolhido pelo usuário pois, mesmo com a modernização e constante atualização dos servidores e plataformas de desenvolvimento para a Internet utilizadas, a parte do usuário é um tanto limitada, podendo apenas executar instruções simples realizadas por scripts. A internet pode utilizar diferentes linguagens para a execução de scripts, mas a mais comum é o Java Script.
Mesmo com toda a importância citada, alguns usuários ainda desabilitam em seus navegadores a execução do Java Script. A tabela 1 demonstra, segundo o W3C de 2007, que a porcentagem de usuários que fazem isso ainda é pequena. 
Ano 				Java Script 				Java Script
 Habilitado 				Desabilitado 
2007 				 94% 			 6% 
2006 				 92%				 8% 
2005 				 90%				 10% 
2004 				 90%				 10% 
2003 				 89%				 11% 
2002 				 88%				 12%
TABELA 1 - Percentual de usuários que habilitam Java Script nos navegadores.
2. PLATAFORMA .NET
Antes de descrever e especificar o sistema que foi proposto, é necessário entender, de uma maneira geral, como funciona a plataforma .NET e o ambiente de desenvolvimento para a Internet.
Segundo Ryan (2006) a plataforma .NET pode ser definida como “o conjunto de componentes desenvolvidos pela Microsoft, com alvo em sistemas Windows, desenhados para suportar aplicações e serviços de última geração”.
A vantagem de utilizar a plataforma .NET e que faz com que ela se destaque é o desenvolvimento, com facilidade, de aplicações que podem ser utilizadas em diferentes tipos de dispositivos. Isso ocorre pois existem muitos recursos do Framework .NET, conforme demonstrado na Figura 7 e de seu ambiente de desenvolvimento produtivo, o Microsoft Visual Studio.
FIGURA 7 - Ambiente do Visual Studio 2005
FONTE: Microsoft Visual Studio 2005
2.1. Framework .NET
A base da plataforma utilizada é o Framework .NET, que também é comparado por muitos especialistas no assunto com a JVM (Java Virtual Machine).
O Framework .NET pode ser considerada uma máquina virtual pois representa uma camada adicional entre o sistema operacional e código das aplicações desenvolvidas para a plataforma. Mas, além disso ele é responsável por automatizar uma grande quantidade de tarefas pois internamente apresenta um conjunto completo de bibliotecas. O código escrito é o mesmo que o Java, não é compilado em linguagem de máquina, utiliza uma linguagem intermediária, a MSIL (Microsoft Intermediate Language) que, no momento em que é executada é interpretada pelo Framework, da mesma maneira que acontece com o código intermediário do Java, o chamado byte-code, que é interpretado pela JVM. 
A instalação do .NET Framework em uma máquina é relativamente simples pois não é necessário realizar a distribuição de outros componentes, pois os mesmos já estão instalados, o que torna mais fácil a distribuição e o desenvolvimento das aplicações utilizadas. O .NET Framework tem a capacidade de abranger a estrutura dos objetos, classes e ferramentas para integrar-se a um sistema operacional como uma maneira de fornecer suporte ao desenvolvimento (SINSIC, 2004).
O componente CLR (Common Language Runtime) é a base do Framework .NET. Ele é o responsável por realizar a comunicação direta com o sistema operacional, que gerencia a utilização da memória e requisita a execução de instruções na CPU, dentre outras coisas. Além disso, o CLR também tem a função de interpretar a MSIL que é produzida durante a compilação dos programas .NET e assim traduzir para a linguagem utilizada pela máquina. Se fizer uma comparação específica de sistemas, a CLR é a parte do Framework .NET que tem correspondência com a Java Virtual Machine.
Essa característica demonstra que a portabilidade da plataforma não se torne uma responsabilidade do compilador de cada linguagem, mas do CLR, todos os hardwares e sistemas operacionais de desenvolvimento da Microsoft são uma versão do Framework .NET e por isso tornam-se automaticamente capazes de executar qualquer aplicação desenvolvida em qualquer linguagem suportada. Ainda podemos citar alguns projetos de migração, o Mono por exemplo que são criados para sistemas que não são suportados pela Microsoft como Linux e Solaris, mas tem compatibilidade com o Framework .NET original (LEITÃO, 2007).
A Figura 8 demonstra que existem bibliotecas especializadas em diferentes tarefas e ambientes como ADO.NET e ASP.NET, que estão acima do Common Language Runtime. A demonstração dos blocos em cinza são os componentes existentes em todos os sistemas Windows, independentes do .NET Framework.
FIGURA 8 Componentes do .NET Framework
FONTE: Microsoft (http://www.microsoft.com)
Em relação ao suporte que podem existir para estas linguagens podem ser citados: Visual Basic .NET, C#, C++.NET, Perl.NET, J#, além de mais de 35 tipos de linguagens que podem ser utilizadas no desenvolvimento. Todas as linguagens com a capacidade de manipular objetos podem ser utilizadas com o Framework .NET, mesmo as mais antigas, mas que estão disponíveis em versões atualizadas e orientadas a objetos como COBOL, Mumps e Python. 
O Framework é considerado, na teoria, um repositório de componentes e objetos, onde qualquer linguagem se transforma na mesma MSIL durante o processo de compilação, todas as linguagens funcionam apenas como script, instanciando os objetos que precisam, alimentam suas propriedades e respondem aos eventos.
Segundo Petrucelli (2007), existe uma grande quantidade de linguagens, mas este trabalho dará maior ênfase no C#, “uma linguagem criada especificamente para a plataforma .NET e é a mais utilizada”.
2.2. Linguagem C#
A linguagem C# pode ser considerada uma linguagem de programação nova, que foi inspirada no C++, lançada com a plataforma .NET e orientada a objetos, com o foco principal no desenvolvimento para Web e dispositivos móveis. 
Uma característica do C# semelhante as linguagens utilizadas na plataforma .NET é compilar duas vezes o código antes de executar. A primeira compilação gera um executável I (arquivo com extensão dll com o código MSIL). Após esta criação, este código será interpretado pelo compilador JIT (Just in Time Compiler), componente do CLR (Common Language Runtime) que gera código nativo para a CPU que está executando a aplicação (RYAN, 2006).
O código produzido será arquivado na memória enquanto estiver sendo utilizado. Este arquivamento não afeta o desempenho do sistema operacional pois, quando não for mais utilizado, um item do CLR, o Garbage Collector (coletor de lixo), limpará a memória e excluirá estes objetos que não serão mais utilizados.
Leitão (2007) define a linguagem C# como “mais performática que outras linguagens orientadas a objeto clássicas”. Um exemplo pode ser o Smalltalk onde tudo que está instanciado na memória é tratado como um objeto e isto tem um alto custo na performance. O oposto é o Java onde os tipos primitivos (como números, textos, booleanos, etc.) não trabalham como objeto, atrapalha a codificação e dificulta conversões entre tipos de dados.
O C# trabalha de uma maneira diferente pois consegue unificar todos os tipos sem muito custo ou tempo de execução, através da divisão de tipos por valor e por referência quando for necessário. Sendo assim, alguns valores que estão na memória só se tornam objetos quando necessário (LEITÃO, 2007).
Existem muitas vantagens na utilização do C#, ele é uma linguagem robusta que serve para gerenciar a memória de maneira automática, através de um mecanismo único de tratamento de erros, verificação de todas as conversões entre tipos de dados, segurança contra overflow (estouro de tamanho de variáveis, tabelas, arrays, etc.), pois sempre valida qualquer atribuição de valor, impossibilidade de ambiguidade (não possui valores default) e facilidade de documentação do código. Esses processos evitam as falhas de codificação, execução e segurança, fazendo com que o desenvolvimento seja mais produtivo. A sintaxe do C# também pode ser considerado um atrativo dalinguagem, característica parecida com o Java, fazendo com que a codificação torne-se mais fácil e flexível, parecida com o C++ (mais atraente para os programadores com mais experiência).
Na plataforma .NET, a linguagem C# demonstra ser a mais eficiente pois foi criada especialmente para ela, seguindo os padrões ISSO e ECMA ( RYAN, 2006)
Abaixo, é descrita uma declaração de classe, por exemplo, segue a sintaxe:
<visibilidade> <tipo> <nome>
public class Mensagens
Através do exemplo acima, pode-se perceber que a visibilidade pode ser definida, a maneira como esta classe será visualizada durante a codificação, tendo a capacidade de assumir os valores private (invisível para outras partes do código), protected (visível apenas para classes que herdarem desta), internal (visível para todas as classes codificadas dentro do projeto desta) ou public (visível para todas as classes de todos os projetos, assim como as cl asses do Framework). Pós é necessário incluir o tipo class, caso haja a criação de outros tipos de estrutura como: structs, enums, etc., os quais não serão tratados neste trabalho. Posteriormente deve-se incluir o nome para a classe, não podendo existir espaços ou pontuações, apenas letras e números. 
As classes utilizadas no Framework .NET são customizadas e podem conter variáveis, constantes, métodos, atributos e propriedades. Uma maneira de garantir que exista a consistência entre as classes criadas é a utilização de herança (derivar uma nova classe de uma já existente, customizada ou nativa do próprio Framework) ou ainda uma interface (que especifica quais métodos e atributos são obrigatórios para deter minadas classes). Mas ainda pode-se utilizar eventos sem qualquer classe, mas que sejam capazes de responder a diferentes ações de usuários (RYAN, 2006).
Os tipos de dados em C# podem ser considerados completos e flexíveis, adaptando-se facilmente a outras tecnologias, como bancos de dados e Web Services (bibliotecas de componentes acessíveis pela Internet, com o protocolo HTTP), o que facilita a interoperabilidade. As classes são tipos customizados, um atributo ou propriedade pode assumir qualquer tipo, sendo este nativo do Framework ou customizado. 
FONTE: Microsoft Developers Network (http://www.msdn.com).
A Microsoft, com a atualização da versão para a 2.0 do Framework .NET teve como objetivo a inovação da linguagem, através de recursos existentes somente em linguagens experimentais e acadêmicas, pouco aplicados a linguagens comerciais. Conforme a Figura 9, pode-se perceber que a inovação busca uma evolução da linguagem C#.
FIGURA 9 - Evolução da linguagem C#
FONTE: Microsoft (http://www.microsoft.com)
O exemplo abaixo demonstra um caso de classe simples em C#, através de uma metodologia que realiza a somatória de dois números quaisquer recebidos como parâmetros do método:
A única diferença perceptível na sintaxe do código em relação ao Java, é a palavra namespace. Ela tem a função de organizar logicamente as classes, sendo parecido com os pacotes do Java.
No exemplo abaixo, percebe-se a utilização de recursos de herança e polimorfismo da orientação a objetos aplicados no C#:
A terceira linha demonstra a herança de uma classe: uma janela que herda as características de um formulário base do Windows (a classe Form, que existe no próprio .NET Framework). A seguir o polimorfismo: os dois métodos MostrarMensagem tem o mesmo objetivo (mostrar uma mensagem), porém trabalham de maneiras diferentes.
Existem alguns recursos específico e atualizados no C# 2.0 como as listas genéricas, em inglês Generics, uma melhoria capaz de tornar a linguagem “tipada”, ou seja, em uma classe customizada, se o usuário desejar criara uma coleção com diferentes classes (uma lista ou uma pilha), ele não precisa programar a estrutura especialmente para esta classe, a estrutura se adapta automaticamente, mesmo que a classe não seja nativa do Framework .NET.
Um recurso também considerado importante que foi acrescentado são os tipos nulos, Nullable Types, que permite que as estruturas que necessitam de algum valor, por padronização como datas ou números inteiros, aceitem valores nulos, o que facilitaria o mapeamento com o banco de dados, que já possuem essa característica. Essa diferenciação é mais uma característica que aumenta a produtividade de programar com o C# 2.0.
Para concluir, pode-se considerar o C# como uma linguagem mais adaptada para o desenvolvimento para a Internet, através do ASP.NET. A única outra linguagem do .NET que possui tal adaptação é o Visual Basic .NET (PETRUCELLI, 2007).
2.3. ASP.NET
É uma aplicação que utiliza os recursos existentes na máquina que o cliente possui, e baseada em formulários Windows, que deve ser 98 ou superior. Para ser utilizado, deve ser instalado o .NET Framework e a máquina ter um poder de processamento acima de Pentium II 300 e memória de 64 MB. Estas características limitam a distribuição e utilização da aplicação fora do ambiente corporativo (SINSIC, 2004). Com a atualização, os recursos existentes que foram adicionados aos navegadores Web e a utilização de servidores inteligentes, tornou-se possível a criação de um ambiente com aplicações ricas e funcionais. 
Até chegar a este ponto na área de aplicações para a Internet, houve duas fases anteriores. Na primeira fase, os servidores para a Internet eram apenas transmissores de texto em formato HTML (Hyper Text Markup Language, a linguagem de formatação de documentos para Internet). O início desta fase foi com o Windows NT 4.0 e o IIS 2.0, responsável apenas por realizar o transporte de dados recebendo uma solicitação de página e retornando o texto sem qualquer processamento prévio antes da resposta, conforme demonstra a Figura 10.
FIGURA 10 - Geração 1: servidor de páginas sem processamento.
FONTE: Sincic (2004).
A segunda fase tornou os servidores mais “inteligentes”, pois permitiam que houvesse o processamento das páginas antes do envio ao cliente. Os arquivos de processamentos, nesta época eram misturas de HTNL e códigos script, segundo Petrce Lli (2007). A tecnologia Microsoft utilizada era o ASP (Active Server Pages), cuja codificação pode ser verificada no esquema abaixo: 
<HTML>
<P>Bem Vindo!</P>
<P>Agora são <% Request.Write(Time()) %></P>
</HTML>
Nas linhas, a delimitação feita pelos sinais “<%” e “%>” eram denominadas de diretivas, ou seja, código era processado pelo servidor de aplicações Web (podendo ser IIS 4.0 ou 5.0), antes de retornar ao cliente e a resposta que chegava ao navegador do usuário era algo semelhante ao esquema abaixo:
<HTML>
<P>Bem Vindo</P>
<P>Agora são 09:41:30</P>
</HTML>
O modelo gráfico do esquema pode ser representado pela figura 11 abaixo:
FIGURA 11 - Geração 2: páginas passam por processamento prévio
FONTE: Sincic (2004)
Segundo Johnson (2007), existem diversas vantagens da utilização do modelo do ASP.NET, sendo algumas descritas abaixo:
Modelo de Desenvolvimento de Aplicação Avançado: permite que o trabalho seja executado com elementos HTML, sendo tratados como objetos, além disso o foco do ASP.NET é o Desenvolvimento Rápido de Aplicações (RAD) e criação de Programas Orientados a Objetos (OOP). 
 Gerenciamento Nativo de Estado: com a finalidade de simplificar e facilitar o modelo de programação, o ASP.NET automatiza durante o ciclo de vida, o estado e os controles da página, onde os dados que o usuário preenche são guardados de maneira automática as várias requisições do servidor. Isso parece ser realizado de maneira simples, mas não é um padrão para aplicações Web entre as outras tecnologias anteriores ao ASP.NET.
Suporte a uma Rica Biblioteca de Classes: no programa ASP.NET o acesso ocorre a todas as classes do Framework .NET, o que torna possível e semelhante o desenvolvimento em várias plataformas, por exemplo Windows, Web e Mobile.
Desempenho: as páginas, no ASP.NET são compiladas antes da execução e mantidas em cache na memória, isso é importante pois precisam ser processadas uma única vez. 
Escalabilidade:as aplicações ASP.NET tem a possibilidade de rodar em um único servidor ou em múltiplos servidores integrados.
Segurança: as tarefas de desenvolvimento de aplicações seguras são mais simples em ASP.NET pois nele existem diversas maneira automatizadas de autenticação para aplicações Web.
Gerenciamento: os arquivos de configuração do ASP.NET são gravados como texto simples, normalmente em formato XML, o que facilita o trabalho de administração das aplicações.
Extensibilidade: a funcionalidade do ASP.NET pode ser entendida através da descrição e execução dos componentes customizados, recebendo e melhorando as funcionalidades do Framework.
3 - CENTRAL DE GESTÃO ACADÊMICA
Após a realização do levantamento de processos e requisitos, análise das diferentes opções tecnológicas e escolha das mesmas, pode-se realizar o objetivo deste trabalho: o sistema acadêmico para a Unival, faculdade do interior de São Paulo.
No início do trabalho foi definida a sigla CGA para explicar o sistema que será utilizado. Mas tornou-se necessário o aprimoramento do sistema, complementando-o e alterando o nome para Central de Gestão Acadêmica, pois o projeto busca trabalhar com todas as funcionalidades e necessidades da instituição, apoiando os passos e auxiliando na gestão acadêmica. 
4. TESTES DE SOFTWARE (FASES)
3.1. Definição de Escopo
	Para a elaboração do sistema, foram definidos alguns pontos chave importantes:
· O sistema deve estar preparado para acesso pela internet. A instituição deve definir um servidor de hospedagem que tenha o suporte ASP.NET 2.0 e SQL Server 2005;
· Deve ser criado padrões de acesso que diferencie os usuários, customizando o que cada um for utilizar como Alunos, Professores e Funcionários de Secretaria, Tesouraria, entre outros;
· Deve implementar novas operações relativas à matricula, com diferencial para a possibilidade dos próprios alunos realizem sua matrícula pela Internet, sem a necessidade de comparecer a secretaria da instituição;
· Deve ser bem elaborado de maneira que contenha um código coeso e acoplável, de fácil manutenção e expansão pelos próprios usuários;
· Deve conter código-fonte aberto, permitindo que a própria instituição seja responsável pelas futuras manutenções.
3.2. Desenvolvimento Iterativo e Incremental
O próximo passo no processo de desenvolvimento do sistema é a definição da abordagem de gerenciamento de projetos que será utilizada, este é o processo de desenvolvimento interativo e incremental. 
Esta possibilidade torna extremamente flexível o ciclo de Análise e Desenvolvimento de Sistemas onde a elaboração da base do sistema é feita de maneira simples e rápida, seguindo a descrição deste trabalho e atingindo o objetivo que é facilitar a manutenção do sistema.
A primeira etapa para o desenvolvimento foi elaborada e concluída em parceria com a elaboração deste trabalho. Assim a elaboração e a implantação do sistema puderam ser realizadas com grande facilidade pois existia um ambiente controlado de homologação. Após a implantação os usuários puderam realizar os testes de performance, usabilidade e aderência 
Inicialmente, para evitar perda de dados, foi criando um ambiente de testes com alunos fictícios e situações com problemas planejados. Após um intenso treinamento, os dados foram migrados para o ambiente de produção e passaram a ser utilizados para o cadastro de alunos e matrículas, para que, se necessário, adequar o sistema a realidade da instituição.
Assim os resultados e os problemas são obtidos de maneira rápida e a análise de pontos críticos levantados e solucionados juntamente com sugestões dos usuários, além de opções de melhoria. Desta maneira a elaboração e interação do processo de análise e desenvolvimento do sistema seja voltado para os itens que precisam ser alterados ou melhorados. Com isso o novo sistema torna-se expansível e ilimitado, podendo criar novos processos interativos com funcionalidades diferentes e correção das existentes.
Assim que o sistema puder ser utilizado de maneira integral e minimizando os problemas, basta apenas migrá-lo para a base de dados da instituição no ambiente de produção já atualizada, abandonando as versões antigas e aproveitando todos os recursos disponíveis.
 3.3. Modelo de Banco de Dados
O modelo de banco de dados utilizado segue os preceitos de bancos objeto-relacionais. Isso quer dizer que mesmo ele tendo sido criado com uma ferramenta relacional, SQL Server 2005, ele ajuda a implementar o conceito de herança que existe nas linguagens orientadas a objetos em bancos relacionais.
Foi criada uma Tabela, a TPessoa que contem os dados cadastrais de todas as pessoas relacionadas a instituição, não importanto a função, são alunos, professores e funcionários.
	A partir daí são criadas as tabelas filhas, TAluno, Tprofessor, Tfuncionários, que diferencia os cadastros de cada perfil. Estas tabelas estão relacionadas entre si e com a TPessoa, que representa os dados de acesso e os padrões de cada um.
	Não é necessário que a pessoa seja cadastrada como aluno ou professor para acessar o sistema, apenas que esteja cadastrada na TPessoa, que é a mais genérica de todas. 
Este cadastro evita que existam dados desnecessários e não utilizados no sistema pois podem existir alunos ou professores que não fazem mais parte da instituição e por isso pode ocorrer o cancelamento ou exclusão do cadastro na TUsuário e assim não mais acessem o sistema.
Esta regra deve ser considerada pois constantemente existem alunos se formando e professores e funcionários sendo desligados e o sistema pode, de maneira automática remover os dados da TUsuario e assim não mais acessar o sistema.
3.4. Segurança de Acesso
	Deve-se criar diferentes padrões de acesso, com as funcionalidades necessárias para a utilização do sistema e para isso devem ser feitas diferentes associações entre as funcionalidades, usuários e perfis de acesso.
	Além disso, o sistema deve trabalhar não somente com o acesso de diferentes tipos de usuários (alunos, funcionários e professores), mas também criara grupos de usuários com acessos específicos e pontuais que contenham determinados recursos.
Como exemplo pode-se citar o acesso a determinados relatórios que devem estar acessíveis somente aos professores do curso de TI. Deve-se criar um padrão de acesso exclusivo para os professores deste curso, mesmo que eles mantenham o acesso dos professores de outros cursos também. Professores de outros cursos terão o mesmo acesso, mas não conseguirão acessar os conteúdos específicos. Isso é realizado de maneira simples pelo sistema.
 Pode-se também definir alguns professores coordenadores responsáveis por realizar a manutenção e inserção de conteúdos no sistema e ainda acessar conteúdos específicos de seus cursos. Para isso são criadas permissões personalizadas.
O sistema também deve oferecer a possibilidade de bloquear usuários que não estejam mais autorizados a acessar o sistema como ex-alunos ou ex-funcionários que não possuam mais vínculos com a instituição O bloqueio deve ser constante, em todas as tentativas. Ainda não deve manter a tentativa disponível por muito tempo, derrubando o acesso sem um tempo de uso, evitando que outra pessoa se utilize do acesso em um espaço de tempo. 
Existem recursos que tornam o acesso mais seguros como: criptografia de dados, autenticação e autorização e podem ser amplamente configurados com arquivos XML do próprio Framework .NET. Como exemplo pode-se citar a criptografia realizada com todas as senhas do sistema utilizado, teoricamente impossíveis de serem decifradas. Utilizando estas técnicas, nem mesmo usuários autorizados com acesso direto ao banco de dados conseguem entender e/ou decifrar as senhas de nenhum usuário do sistema.
Um recurso importante é a personalização das telas que podem ser flexíveis e extensíveis. A configuração das telas pode ser específica para os diferentes tipos de usuários e serem atualizadas conforme as características dos períodos da faculdade. Um exemplo é no período de matricula, pode-se realizar uma personalizaçãoque destaque os passos necessários para a realização da matrícula. 
Pode-se também incluir avisos diversos, como período de solicitação de serviços, período de provas, entre outros. Os avisos podem ser alimentados forma de feeds RSS (Really Simple Syndication , um conjunto de “dialetos” padronizados para distribuição de conteúdos agregados).
No decorrer do semestre, a instituição pode personalizar as telas conforme a sua real necessidade, tanto para alunos, quanto para professores e funcionários com a finalidade de aumentar a produtividade de cada um deles.
3.5. Cadastros
	No sistema existe a disponibilidade de diferentes telas de cadastro que permite a inclusão dos dados mais importantes para a instituição, que podem servir de apoio ou não. Como exemplo de cadastro de apoio pode-se citar as cidades e países. Como cadastros essenciais podem ser exemplos: alunos, disciplinas, professores, cursos, etc.
3.6. Matrícula
	O processo mais importante para o sistema é o serviço de matrículas dos alunos. Este não é apenas um requisito pois podem existir três tipos diferentes de matrícula. 
O primeiro tipo considerado é a matrícula automática que é a realizada quando o aluno ingressa na faculdade. Deve-se inicialmente realizar uma seleção do aluno na lista de aprovados no vestibular, que é disponibilizada para as secretarias antes do período de matrícula. Nesta lista encontram-se os aprovados e os candidatos da lista de espera.
Quando o aluno é selecionado, os dados cadastrais já estão preenchidos pelo candidato, assim o número de matrícula (o chamado RA ou registro acadêmico) é gerado para ele. Este número será sua chave de identificação utilizada durante todo o curso. Após a criação do RA, o curso é vinculado e assim as disciplinas cadastradas por semestre. Esta matrícula pode ser alterada caso o aluno realize a troca de curso ou solicite a dispensa de alguma disciplina.
Como maneira de facilitar a interação do aluno com o sistema disponível, a tela de matrícula se baseia em dois conceitos difundidos de interface: navegação estilo wizard e interatividade estilo chat. No momento em que o aluno acessa a primeira vez o sistema existe uma tela onde ele recebe as boas vindas e um vídeo ou texto informando os principais procedimentos serem seguidos. O chat estará disponível caso o aluno queira conversar instantaneamente com um funcionário. 
O aluno tem as orientações necessárias para executar os procedimentos de matrícula, passo a passo. Como confirmação de dados pessoais, visualização das disciplinas que serão cursadas e caso tenha alguma dependência, a possibilidade da escolha da que deseja cursar no semestre e finalmente o aceite de contrato e geração do boleto de matrícula.
Um funcionário estará disponível durante este processo, caso o aluno tenha alguma dúvida ou realize alguma alteração de dados cadastrais e clique no botão de envio. Os dados podem ser aprovados ou reprovados pelo funcionário.
Se for reprovado, ele terá que digitar um texto na tela explicando ao aluno o problema e orientando como deverá realizar a alteração. Quando todo o processo for executado a matricula será aceita e o aluno recebera na tela um comprovante de matrícula. Ele deverá imprimir o boleto e após efetuar o pagamento levr a documentação necessária até a instituição.
3.7. Arquitetura
	Para que os processos ocorram de maneira correta, deve-se definir as principais funcionalidades e criar os protótipos das telas abordadas para a interação inicial com o sistema e toda a arquitetura disponível para a aplicação necessita ser formulada.
	O componente inicial, CGAWeb é uma aplicação Web que representa a interface da aplicação é um site programa em ASP.NET e C#. Este componente apenas necessita de um servidor de hospedagem Windows Server com .NET Framework 2.0 e SQL Server 2005 para estar disponível pela Internet. 
Junto aos componentes estão o CGA.Negócios, que representa a lógica de negócios da aplicação. Elas devem fornecer um ponto de acesso único a todas as aplicações de interface que tenham necessidade de acessar as informações oferecidas por este sistema. Isto se torna simples não a penas pelo padrão do Facade, mas também por tal componente ser um Web Service. Segundo Sincício (2004), um pacote de classes acessíveis de forma remota através do protocolo de Internet, o HTTP.
A utilização de Web Services permite que outros sistemas da instituição realizem operações pelo sistema CGA de forma simples e eficiente, inclusive independente da tecnologia utilizada.
A camada seguinte à de negócio é a CGA Framework.Dados. Tal camada pequena, tem a responsabilidade apenas de executar comandos no banco de dados. Para este sistema em específico, adotou-se a utilização de Stored Procedures como forma de acesso padronizado ao banco. Tais Stored Procedures encontram-se armazenadas no pacote denominado SQL Objects. Sendo assim, a responsabilidade da camada de dados é simplesmente executar determinada Stored Procedure retornando dados do banco de dados e transformando os mesmos em objetos do .NET, para que a camada de negócio possa trabalhar de forma fácil.
O último componente da arquitetura é o CGA.Framework.Web Controls que prevê a abstração e automatização de tarefas repetitivas no sistema, principalmente voltadas à interface e às validações de dados.
A customização dos controles previstos no componente da customização para tornar os códigos HTML menos poluídos e desenvolvimento o mais produtivo possível. 
Se a arquitetura for utilizada de maneira correta, a previsão de tempo para o desenvolvimento de uma tela diminua, mesmo com uma complexidade média, normalmente de 8 para 3 horas.
CONCLUSÃO
Através da informatização e da utilização de sistemas específicos criados e executados em busca de melhoria dos processos, trabalhando em conjunto com a abrangência e a facilidade de acesso e distribuição oferecido pela internet, unidos podem oferecer as diferentes áreas de atuação um aumento na produtividade e eficiência na execução das tarefas. Estes processos estão inseridos no sistema oferecido para uma instituição e voltado para a melhoria dos três tipos de usuários.
Este trabalho foi elaborado com o objetivo de demonstrar a criação de um sistema que busca suprir as necessidades de uma instituição de ensino levantadas e as escolhas que visem possibilitar o desenvolvimento do mesmo. 
Conclui-se com base nos levantamentos necessários realizados neste trabalho que as escolhas tecnológicas foram satisfatórias e o sistema foi elaborado de maneira a suprir as necessidades e podendo suprir e ser expandido futuramente de acordo com as necessidades e possibilidades da instituição.
REFERÊNCIAS BIBLIOGRÁFICAS
MARQUES, P. Introdução ao C# 2.0. Microsoft Portugal, 2005. Disponível em: <http://www.microsoft.com/portugal/techdays/2005/conteudostematico s/ferramdesenv.mspx>. Acesso em: 26 out. 2017.
Aprenda a usar as Normas da ABNT em trabalhos acadêmicos, TecMundo, Disponível em: http://www.tecmundo.com.br/tutorial/59480-aprenda-usar-normas-abnt-trabalhos-academicos.htm. Acesso em: 28 out. 2017.
Planejamento de testes de sistema, Matera, Disponível em: http://www.matera.com/br/2013/07/29/planejamento-de-testes-de-sistema/. Acesso em: 30 out. 2017.
Como construir um Roteiro de Testes, alcidesluiz, Disponível em: http://www.alcidesluiz.com.br/como-construir-um-roteiro-de-testes/. Acesso em: 02 nov. 2017.
CARDOSO, C. Orientação a Objetos. Ciência Moderna. Visto em: 02 nov. 2017.
RYAN, B; NORTHRU P, T; W ILDERMUTH, T. Microsoft.NET 2.0 Application Development Foundation. Redmond, W ashington: Microsoft Press. Visto em: 03 nov. 2017.
CORREIA, C. H; TAFNER, M. A. Análise Orientada a Objetos. Visual Books. Visto em: 04 nov. 2017.
JOHNSON, G; NORTHRUP, T. Microsoft.NET 2.0 Web-Based Client Development. Redmond, Washington: Microsoft Press, Visto em: 06 nov. 2017
LEITÃO, B. Orientação a Objetos C# 2.0. Visto em: 07 nov. 2017.
MARQUES, P. Introdução ao C# 2.0. Disponível em: <http://www.microsoft.com/portugal/techdays/2005/conteudostematicos/ferramdesenv.mspx>Acessoem: 07 nov. 2017.
ORLANDINI, L. A Importância dos Sistemas de Informação. Visto em: 08 nov. 2017. 
ORLANDINI, L. Informatizar Para Que? Visto em:08 nov. 2017. Disponível em: <http://www.bonde.com.br/colunistas/colunistasd.php?id_artigo=1742>.
LIBERTY, J. Programando C#. Alta Books, Visto em: 09 nov. 2017.
RICHTER, J. Programação Aplicada com Microsoft.NET Framework. Bookman, Visto em:09 nov. 2017.
W3C. Browser Information. W3S chools. Disponível em: <http://www.w3schools.com/browsers/default.asp>. Acesso em: 10 nov. 2017.
SINSIC, M. Orientação a Objetos com C#. Visto em: 11 nov. 2017.
CAMARA, F. Orientação a Objeto com .NET. Visual Books, Visto em: 12 nov. 2017.
CEMBRANELLI, F. ASP.NET - Guia do Desenvolvedor. Visto em: 14 nov. 2017.

Outros materiais