Apresentamos o trabalho da última semana que se concentra na listagem dos requisitos funcionais e identificação das soluções técnicas possíveis.
Para conseguir elaborar a lista dos requisitos funcionais da aplicação Web, colocamo-nos na pele dos futuros utilizadores e pensamos no que queríamos que a aplicação fizesse. Assim surgiu a tabela que se segue, onde os requisitos estão agrupados por temas, assim como por Front-End e Back-End.
Foram também analisadas as dependências entre requisitos e a prioridade com que devem ser implementados. Além disso, ainda é possível verificar as diferenças entre um utilizador registado e um administrador da plataforma.
(clicar na imagem, para fazer o download do ficheiro Excel)
Viabilidade Técnica
Uma vez definidos os requisitos funcionais, procedeu-se à realização do estudo de viabilidade técnica, procurando decidir quais as tecnologias a utilizar na plataforma Web.
Realizou-se uma pequena pesquisa das tecnologias já existentes que melhor responderiam às necessidades dos nossos futuros utilizadores, ponderando mais tarde as vantagens e desvantagens de cada uma.
TECNOLOGIAS SERVER-SIDE:
1. PHP
PHP é uma linguagem de script open source, que é processada no servidor (server side) e está normalmente embebida em páginas HTML. Para o browser (client-side), é apenas enviada uma página com html. Esta linguagem é normalmente utilizada para criar conteúdos dinâmicos na Web.
Vantagens: A grande vantagem desta tecnologia é o conhecimento e experiencia que o nosso grupo ja detém na utilização desta, uma vez que foi abordada na disciplina de laboratório multimédia 5. Como foi acima mencionado, é uma tecnologia gratuita, independente de plataforma (tanto funciona em servidores Windows como em servidores Linux). É fácil de usar (a maior parte das funções está disponível por defeito) e poderosa, tendo mais de 180 livrarias para consulta e com mais funções prestes a ser utilizadas.
Desvantagens: Por vezes existe algumas incompatibilidades entre versões ( um comando que se comporta de uma determinada forma numa versão, pode não se comportar de igual modo noutra); alguma documentação encontra-se incompleta uma vez que em tecnologias open Source, surgem primeiro os recursos e só depois a documentação.
Fontes: http://pt.php.net/manual/en/faq.general.p
http://www.designersplayground.com/pr/th
2. ASP.NET
ASP.NET é uma plataforma da Microsoft para o desenvolvimento de aplicações Web, criada para funcionar no seu servidor, o Internet Information Server (IIS).
Vantagens: A informação de configuração é armazenada em arquivos XML, assim é possivel fazer alterações em qualquer lugar e enviar as mudanças via FTP. O suporte de datas funciona melhor em ASP.net do que em PHP.
Desvantagens: É necessário um servidor Windows para que os scripts em ASP funcionem, assim como é necessária a utilização do MS-SQL (as licenças são caras); tende também a deixar o servidor mais lento, em comparação com o PHP. Como só funciona em servidores Microsoft, caso fosse necessário mudar de servidor, todos os scripts teriam de ser reescritos, ao contrário do PHP que é multiplataforma.
Fontes: http://en.wikipedia.org/wiki/ASP.NET;
http://ezinearticles.com/?What-is-ASP.NE
3. Adobe ColdFusion
Coldfusion é uma linguaguem utilizada para desenvolvimento de páginas Web e aplicações dinâmicas.
Vantagens: Pode ser desenvolvida rapidamente porque apenas são necessárias tags do estilo HTML e não é necessário um elevado conhecimento de código; São fáceis de testar e implementar; Fornece todas as ferramentas necessárias para fazer o debug;
Desvantagens: Não é gratuito; Pode ser lento porque corre numa framework de Java;
Fontes: http://www.adobepress.com/articles/artic
4. Java Server Pages
É uma tecnologia utilizada no desenvolvimento de aplicações para Web, similar às tecnologias Active Server Pages (ASP) da Microsoft ou PHP.
Vantagens: Execução em diversos sistemas operativos; Portabilidade de plataforma;
Desvantagens: Não é compatível com todos os servidores;
Fontes: http://pt.wikipedia.org/wiki/JavaServer_
Assim, analisando todas as hipóteses que estavam disponíveis optou-se pelo uso da linguagem PHP, uma vez que é open source e funciona bem com MySql (instalado nos servidores da Universidade). O facto de já estarmos familiarizados com esta linguagem também foi um ponto a ter em conta na tomada desta decisão.
TECNOLOGIAS CLIENT-SIDE:
1. XML
É um conjunto de regras para codificar documentos num formato legível pelas máquinas, produzido pelo W3C e com foco na simplicidade de uso e utilização pela internet.
Vantagens: Simplicidade e legibilidade tanto para o humano como para a máquina; é baseada em texto; Não há limitação quanto ao nome das tags, visto que são criadas por nós;
Desvantagens: Falta de aplicações de processamento adequadas;
Fontes: http://pt.wikipedia.org/wiki/XML;
http://www.theukwebdesigncompany.com/art
2. HTML5
HTML5 é uma linguagem para estruturação e apresentação de conteúdo para a Web. Em relação às versões anteriores, o html5 adiciona novas tags, tais como, <video> ou <audio>, que facilitam a inclusão e manipulação de conteúdo multimédia na web sem que seja necessário recorrer a plug ins ou APIs.
CSS3
CSS3 é a versão mais recente das Cascate Style Sheets, que permitem manipular a parte visual das páginas Web. Com esta nova versão é possível fazer animações (tando em 2D como 3D) , transições, bordas arredondadas, entre outros.
Vantagens: Estas duas tecnologias juntas vêm substituir o uso do flash no desenvolvimento de aplicações Web, uma vez que já é possivel criar efeitos e transições nos elementos gráficos. Com o html5, as aplicações Web poderão ser acessadas offline via cache, e há a possibilidade de aceder a geolocalização sem recorrer a APIs. É também capaz de executar em dispositivos de baixa potência como smartphones ou tablets.
Desvantagens: Uma vez que são tecnologias muito recentes, ainda nao há compatilibilidade total entre os diferentes browsers.
Fontes: http://www.tecmundo.com.br/navegador/225
http://pt.wikipedia.org/wiki/HTML5
3. JavaScript
Javascript é uma linguagem de programação client-side, orientada a objectos. Com esta tecnologia é possível, por exemplo, abrir uma nova janela manipulando tamanho, posição e os seus atributos, validar a informação de um formulário para garantir que cumprem todos os requisitos antes de serem enviadas para o servidor.
Vantagens: Como é uma tecnologia que é processada no lado do cliente, o processamento é mais rápido, poupando tempo e tráfego de dados. Tal como php, também já temos alguns conhecimentos e experiência com esta tecnologia.
Desvantagens: Como é uma tecnologia client-side, pode não ser totalmente segura, havendo a possibilidade de inclusão de código malicioso para explorar o sistema do utilizador. Pode ser interpretado de diferentes formas em diferentes browsers.
Fontes: http://www.jscripters.com/javascript-adv
http://www.mediacollege.com/internet/jav
4. AJAX
Não é uma nova linguagem de programação, mas é uma nova forma de utilizar as normas já existentes. É a arte de trocar dados com o servidor e actualizar partes de uma página Web sem recarregar a página toda.
Vantagens: Não precisa de instalação, apenas que o browser esteja habilitado; Sobrecarrega menos o servidor, uma vez que não é feito o reload completo da página;
Desvantagens: Está dependente do Javascript; É difícil fazer o debug; Código complexo;
Fontes: http://www.w3schools.com/ajax/default.as
http://www.javabeat.net/qna/431-advantag
5. Jquery
É um Framework para javascript constituído por um conjunto de bibliotecas já pronto a usar.
Vantagens: É cross-browser; aumenta a dinâmica das páginas Web; fácil de implementar; as bibliotecas ocupam pouco espaço em disco; Grande comunidade open-source; Existe muita documentação e tutoriais;
Desvantagens: É necessário o Javascript estar activado nos browsers.
Fontes: http://www.jscripters.com/jquery-disadva
6. API's
É um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.
Vantagens: é possível acelerar o processo de desenvolvimento de aplicativos e a sua integração nas aplicações;
Desvantagens: deixar de funcionar ou ser descontinuada;
Fontes:http://money.howstuffworks.com/business-c
http://pt.wikipedia.org/wiki/API
Analisando as tecnologias existentes, optámos por usar todas as mencionadas. Embora nao haja conhecimentos por parte do grupo em HTML5 e CSS3 achou-se que seria benéfico tanto a nível de experiência como de qualidade de trabalho usar-se estas duas tecnologias, uma vez que são uma aposta cada vez mais popular entre as empresas.
Quanto ao uso das restantes, o grupo considerou que seria uma mais valia agregar as potencialidades de cada uma na nossa aplicação para melhorar a experiencia para os nossos futuros utilizadores.
REQUISITOS NÃO FUNCIONAIS
Os requisitos não-funcionais servem para verificar se o sistema está ou não a satisfazer os diferentes requisitos funcionais, uma vez que representam características mínimas de um software de qualidade.
O grupo definiu os seguintes requisitos não funcionais:
Requisitos de segurança: Só os utilizadores registados é que podem aceder a informação disposta na aplicação Web.
Requisitos de Desempenho: O tempo de resposta da aplicação não deve exceder os 30 segundos. A base de dados deve ser actualizada em tempo real.
Requisitos operacionais: A aplicação Web deverá ser capaz de importar conteúdo gráfico Gif e Jpeg. O sistema será funcional em sistema Windows e Macintosh.
Requisitos de Usabilidade: O utilizador não deve precisar de mais de três cliques para aceder à informação que pretende. A ajuda online deve estar sempre presente em qualquer página da aplicação Web. O sistema terá uma interface amigável ao utilizadores primário sem se tornar cansativa aos utilizadores mais experientes.
Requisitos de Compatibilidade: Garantia de compatibilidade com diferentes browsers e resoluções.