• Nenhum resultado encontrado

5 DESENVOLVIMENTO DO SISTEMA

5.1.6 Java

Segundo Deitel (2001), Java é uma linguagem que atrai pelo fato de ser totalmente orientada a objeto, tem evoluído muito nestes últimos tempos pois está em constante atualização e vem sendo muito utilizada para criação de páginas web de forma dinâmica e interativa. O mesmo autor afirma ainda que, é recomendado utilizar a biblioteca de classes e métodos ao invés de escrever as próprias versões obtendo um ganho em desempenho significativo.

A linguagem Java possui funcionalidades significativas. Por ser orientada a objetos permite a reutilização de código, como por exemplo, partes do código do cadastro do usuário foram reutilizados no código do cadastro de projetos. Possui tratamento de exceções, possibilitando a manipulação de erros de execução de forma organizada, por exemplo, validação do usuário antes de realizar o login. O Garbage Collector é executado automaticamente, recuperando recursos de memória de objetos que não estão mais sendo utilizados. Estas e outras funcionalidades facilitam o desenvolvimento de sistemas robustos com Java (O’ NEIL, 1999).

A aplicação foi baseada em Controllers que são uma tecnologia que insere recursos no servidor web, permitindo ao programador Java utilizá-los como uma camada de controle entre o servidor e o navegador.

Estes Controllers permitem desenvolver uma aplicação robusta e ao mesmo tempo leve em desempenho. Com a utilização da metodologia modelo e visualização, do inglês model and view, os usuários tem contato apenas com a interface. O trabalho pesado que

é buscar a informação ou leva-la até a base de dados fica por trás da visualização por conta do modelo.

Java é uma linguagem de programação, e com ela é possível desenvolver sistemas que são independentes de plataforma ou sistema operacional, e que são executados em uma grande variedade de ambientes de hardware e software (O’ NEIL, 1999).

5.1.7 Balsamiq Mockups

Balsamiq Mockups é um software proprietário de prototipação de tela criado pela Balsamiq Studios. Trata-se de uma aplicação robusta que contém vários elementos de

interface de usuário “desenhados a mão”, tanto para modelagem de interfaces de aplicativos Desktop, Web, até aplicativos para smartphone. Isso permite que protótipos de tela sejam produzidos de forma limpa e profissional, mantendo a aparência de como se tivessem sidas desenhadas a mão (WOOLDRIDGE, 2010).

O Balsamiq Mockups possui 75 componentes de tela prontos para desenhar os mais variados tipos de tela, sendo que os mesmos têm a aparência de terem sido desenhados à mão de forma proposital, para que o usuário não fique preso a algum tipo de tema ou cor em específico, e também para evitar que este pense que existe código desenvolvido por trás da tela e que o sistema está praticamente pronto (BALSAMQ STUDIOS, 2010).

Além da licença que é desktop com todas as funcionalidades, o Balsamiq

Mockups pode ser utilizado na forma de demonstração diretamente no site do produto, a qual

atendeu as necessidades do presente projeto, sendo que as interfaces projetadas podem ser exportadas em formato PNG ou XML para futuras alterações.

5.2 HISTÓRICO DE DESENVOLVIMENTO

Um grande desafio encontrado durante a fase de desenvolvimento refere-se a busca e configuração das tecnologias adotadas na implementação da ferramenta. Com a escolha da criação do projeto com Maven trouxe a configuração do Project Object Model (POM), tarefa na qual dificuldades fizeram-se presentes, não só pela organização, mas também pela preocupação com a escolha das propriedades e características do projeto. A partir da realização de pesquisas em fóruns, comunidades e sites relacionados a área de

desenvolvimento de aplicações web, e pelo contato com profissionais que já atuam na área e detêm forte conhecimento, houve a possibilidade de superar a dificuldade e seguir adiante na construção.

Aspectos relacionados a atualidade do recurso, seu desempenho ser mais eficiente e a flexibilidade de seu uso foram fundamentais na escolha das melhores formas (tecnologias) para chegar ao resultado esperado sem que houvesse a necessidade de replicar muitas vezes as mesmas linhas de código.

Durante o período de desenvolvimento a busca por melhores tecnologias para chegar ao resultado esperado, considerando aspectos importantes como a atualidade do recurso, seu desempenho ser mais favorável e a possível flexibilidade de seu uso, para que não houvesse a necessidade de replicar muitas vezes as mesmas linhas de códigos.

O uso do Bootstrap para a aplicação foi referente a parte estética, com a utilização de Controllers com o jQuery Ajax para a comunicação da camada de interface com a servidora e com o JPA para persistir objetos. No momento da comunicação entre UI e camada de controle foi necessário a busca de conteúdos que auxiliassem, principalmente para resolução do envio e o recebimento das informações. Neste momento a solução adotada tornou-se clara, passou a ser o envio e recebimento através de JavaScript Object Notation.

Gerar uma aplicação rápida, com o código fonte estruturado e com visual moderno foi base para nortear a progressão da ferramenta permitindo seu crescimento sem maiores impactos.

O compartilhamento de projetos, ou seja, o controle de permissões não estava funcionando de maneira correta, não sendo possível determinar os usuários e suas permissões naquele projeto. Para solucionar este problema, foi necessário alterar na interface o modo que são habilitadas ou desabilitadas as permissões e as entidades e seus relacionamentos na parte servidora resultando em uma reestruturação da base de dados.

Próximo da finalização da ferramenta, o gerenciamento de arquivos mostrou-se mais complicado do que o esperado, levando um tempo considerável do desenvolvimento. Para solucionar os problemas com o upload e download de arquivos fez-se necessário utilizar tecnologias direcionadas para a manipulação de arquivos, como a classe Commons Multi part

Resolver, provendo métodos necessários para o upload e o download de arquivos.

Todos os problemas encontrados de certa forma contribuíram para o resultado final, aumentando assim o conhecimento nas tecnologias utilizadas e possibilitando a construção de uma ferramenta acima do que imaginava-se possível de ser elaborada pelos autores.

5.3 APRESENTAÇÃO DO SISTEMA

O sistema proposto foi desenvolvido com base na modelagem elaborada. Nos itens elencados a seguir, é possível visualizar as principais telas da interface e o fluxo de funcionamento do sistema.

5.3.1 Meus Projetos

A tela possibilita o usuário visualizar a lista com todos os projetos criados por ele, bem como os projetos que foi convidado a fazer parte.

De acordo com o UC 05 - Meus Projetos apresenta-se um conteúdo específico fazendo que o usuário localize-se de maneira mais eficiente ao utilizar a ferramenta.

Figura 21 – Meus projetos

Fonte: Elaboração dos Autores (2014).

5.3.2 Projeto

A tela de visualização do projeto possibilita uma visão panorâmica do projeto, com o intuito de mostrar o projeto como um todo. De acordo com o UC 06 - Projeto permite- se aos usuários visualizar de maneira intuitiva a evolução da construção do conhecimento mostrando os arquivos anexados ao projeto e a possibilidade de leitura dos comentários elaborados pelos utilizadores.

Figura 22 - Projeto

Fonte: Elaboração dos Autores (2014).

5.3.3 Permissões

Na interface de controle de permissões do projeto, o sistema exibe uma lista com todos os usuários cadastrados no sistema. Possibilita a seleção do usuário e suas permissões para o projeto em questão.

Buscou-se de várias maneiras a implementação na parte relacionada as permissões dos projetos e esta foi uma preocupação emergente, pois não havia sido bem definida no escopo inicial do projeto.

Figura 23 – Permissões

Fonte: Elaboração dos Autores (2014).

Documentos relacionados