Você está na página 1de 9

Estudo de viabilidade Técnica

Markup languages Forças Fraquezas Observações/ Escolha Frameworks relevantes


HTML (1) pode ser processada por uma grande variedade de ferramentas inclusive bloco de (1) é uma linguagem estática;
notas; (2) estrutura com base em tags, sem eles a sua
(2) é facilmente assimilado; visualização fica comprometida;
(3) suportado em todos os browsers; (3) linguagem que interage com outras (CSS), o que
Dadas as características da
(4) amplamente utilizado (presente em quase todos os Web sites); obriga a sua aprendizagem;
solução e o grau de
(5) muito parecido com a sintaxe XML, que é cada vez mais utilizada para (4) os recursos de segurança apresentados pelo HTML
interactividade que queremos
armazenamento de dados; são limitados;
implementar, será necessário
(6) é de utilização livre (não é necessário recorrer a nenhum software em específico);
integrar HTML com XML.
(7) permite a integração de outras linguagens, normalmente, para tornar o conteúdo das
páginas dinâmico;
Queremos que o conteúdo das
páginas, nomeadamente notícias,
XHTML (1) Extensible HyperText Markup Language é o futuro dos documentos (1) não é suportado em algumas versões de browsers
sejam actualizadas
(2) combina algumas características do XML e do HTML; (ex.: IE6);
dinamicamente, sem haver a
(3) é uma linguagem mais “limpa” que o HTML; (2) é extremamente rigoroso do ponto de vista de
necessidade de um refresh no
(4) todos os browsers suportam XHTML; escrita, já que requer o fecho de todos os tags;
browser por parte do utilizador e
(3) são poucos os browsers que oferecem benefícios à
nos menus de linguagem, para
recepção e processamento de documentos XHTML.
quando o utilizador alterar a
(4) um dos principais browsers - IE - não dá suporte a
linguagem, os conteúdos passíveis
XHTML
de tradução – e traduzidos –
sejam automaticamente
substituídos.
XML (1) é a base para vários formatos, incluindo HTML, WML, XHTML, etc; (1) depende do HTML para ser reconhecido pelos
(2) facilita a transferência de dados entre programas muito diferentes; browsers;
O XML será também utilizado na
(3) compatível com diversos formatos de dados; (2) é mais exigente e mais preciso quando comparado
comunicação feita pela
(4) é compatível com aplicativos como Java; com o HTML;
framework AJAX.
(5) é uma linguagem extensível (pode criar as suas próprias marcas ou usar tags já (3) tem um requisito de plataforma neutra o que pode
criadas); ser tornar-se numa desvantagem em determinadas
circunstâncias;

Server-Side Scripting Forças Fraquezas


ASP.NET (1) permite a redução de código para a construção de grandes aplicações; (1) não é open source;
(2) flexibilidade na manutenção do estado de uma aplicação (facilita o uso de várias (2) só corre em Windows;
cessões em simultâneo); (3) é lento a processar informação;
(3) configuração da aplicação é feita através de arquivos XML (facilidade em alterar (4) a sua integração em páginas web é complexa A nossa escola para server-
dados sem interferência do administrador) (5) mesmo na execução de tarefas simples existe scripting recai sobre o php, não só
(4) possibilidade de fazer cache de toda a pagina ou só de algumas partes (aumento de alguma complexidade (ex.: ler um arquivo de outro pelas vantagens aqui
desempenho); site); enumeradas, como pela
(5) permite utilizar DLLs para ocultar o código; (6) existe pouca informação disponível online quando qualidade do suporte e dos
(7) existem inúmeras bibliotecas open source; comparado com o PHP; recursos disponíveis online.
(9) pode ser programado em qualquer linguagem .NET (as mais comuns são C# e (7) o número de ferramentas de depuração e (...)
VB.NET); desenvolvimento no mercado são limitadas;
(10) os ficheiros de código e de interface ficam separados, o que permite ao webdesigner (8) os utilizadores estão sujeitos às mudanças decididas
e o webdeveloper trabalharem separadamente e alterar o conteúdos dos arquivos pela Microsoft
livremente, o que agiliza muito o desenvolvimento; (9) requer compilação;

Convém também referir que a


equipa de desenvolvimento
PHP (1) é executado em diferentes plataformas (Windows, Linux, Unix, etc.); (1) para programadores com pouca experiência em
(2) trata-se de um linguagem facilmente escalável ; programação a linguagem PHP pode ser de difícil
(3) é compatível com quase todos os servidores usados (Apache, IIS, etc.); compreensão; Convém também referir que a
(4) permite a integração com outras linguagens de programação (Java, C, C++, etc.); (2) falta suporte a multi-threading; equipa de desenvolvimento
(5) está disponível gratuitamente para download; (3) muitas frameworks (aumento da curva de possui conhecimentos
(6) é de fácil aprendizagem; aprendizagem); consolidados nesta linguagem ao
(7) é executada de forma eficiente no lado do servidor; contrário das restantes pelo que
(8) a sua utilização é totalmente gratuita; não se justificaria investir tempo,
(9) não é Tag-Based. PHP é uma linguagem de programação real; que é um factor por si só escasso,
(10) é rico em frameworks; na aprendizagem de outras
(11) por ser open source a linguagem possui várias comunidades online que se dedicam à linguagens para o mesmo efeito.
partilha de experiências e ao suporte dos seus programadores

Ruby (Ruby On Rails) (1) framework de uma metaframework: Ruby (1) mais lento quando comparado com alguns dos seus
(2) o nível de dificuldade na aprendizagem é definido por muitos com sendo médio; principais oponentes de mercado
(3) a sua sintaxe é mais “limpa” quando comparado com outras linguagens no mercado (2) necessita de maior capacidade de memória
(4) linguagem nativa orientada a objectos; (3) não é suportado por todos os hosts;
(5) após aprendizagem é mais rápido programar com Ruby quando comparado com PHP; (4) pouco suporte na Web e poucos recursos (devido a
(6) ferramenta desenvolvida em código aberto ser uma linguagem relativamente recente);

Client-Side Scripting Forças Fraquezas


JavaScript (1) corre em todos os principais browsers (Internet Explorer, Firefox, Chrome, Opera, (1) nem sempre é interpretado da mesma forma pelos
Safari); diferentes versões de browsers, o que “obriga” à
(2) proporciona interactividade às páginas de HTML; utilização de diferentes versões de JavaScript;
A nossa escolha no que diz
(3) permite ler e escrever elementos HTML; (2) o código é executado no computador dos
respeito a client-side scripting
(4) pode ser usado para validar dados (formulário); utilizadores o pode colocar o computador vulnerável;
recai na utilização do javascript.
(5) pode ser usado para detectar o browser do utilizador, redireccionando-o para uma (3) é possível desactiva-lo o que influenciará a
Primeiro porque é a linguagem
página específica para esse browser; interacção da página; jquery
mais usada para criar
(6) permite a criação de cookies (permite armazenar e recuperar informação sobre o "write less do more"
interactividade.
computador do utilizador);
Existem muitas funcionalidades
(7) reage a eventos (ex.: ao clicar num elemento HTML o JavaScrip executa uma
disponíveis para reutilização na
operação);
internet tal como plugins,
(8) aumenta a experiência de interactivadade na página;
exemplos e guiais práticos.
(10) liberta o servidor para funções primordiais processando os dados no browser do
São inúmeras as comunidades de
cliente;
developers espalhadas pela
internet.
É uma linguagem já conhecida
pela equipa de desenvolvimento.
Por outro lado, o uso do flex não
se enquadra totalmente nos os
requisitos funcionais sendo que o
Js permite dar uma melhor
resposta as necessidades
projectuais.
disponíveis para reutilização na
internet tal como plugins,
exemplos e guiais práticos.
São inúmeras as comunidades de
developers espalhadas pela
Flex (ActionScript) (1) aplicações muti-plataforma (suporte para Windows, Mac e Linux); (1) suporte para apenas ActionScrip 3.0;
internet.
(2) linguagem XML para definir a interface; (2) algumas limitações de programação (falta de
É uma linguagem já conhecida
(3) integração de vídeo; suporte para VB, C++, Python);
pela equipa de desenvolvimento.
(4) linguagem orientada para objectos;
Por outro lado, o uso do flex não
(5) acesso facilitado a serviços Web XML;
se enquadra totalmente nos os
(6) ferramentas dedicadas à compilação;
requisitos funcionais sendo que o
(7) facilidade no desenvolvimento do design;
Js permite dar uma melhor
(8) forte integração com as restantes ferramentas da Adobe;
resposta as necessidades
(9) tecnologias de suporte já implementadas na maioria dos sistemas;
projectuais.
(10) existência de uma vasta colecção de plu-ins gratuitos para a plataforma;
(11) suporte directo com Java e AJAX;
(12) frameworks dedicadas para aplicações standalone (AIR);
(13) comunicação directa com todo o tipo de server-side;

Stylesheet and Transform Languages Forças Fraquezas


CSS (1) economiza tempo (uma única página pode comportar toda a formatação de um site); (1) compatibilidade entre browsers (interpretação CSS permite uma grande
(2) possibilita rapidez no carregamento de páginas; difere consoante os browser e suas versões); flexiblidade na formatação das
(3) de fácil manutenção (a formatação está centrada num único local); (2) é suportado por todos os browsers à excepção da páginas. Quando utilizado
(4) maior diversidade de atributos que o HTML; versão mais recentes: css 3 segundo as melhores práticas,
(5) permite a inclusão de formatações especiais para browsers mais antigos; permite-nos de um modo rápido
criar estilos aplicaveís em diversas
páginas reaproveitando código.
Na internet existem diversas
comunidades de utilizadores e os
XSL (1) permite atribuir formatações a conteúdos XML (1) Apenas tem utilidade na formatação da página caso mais diversificados exemplos de
o contéudo mostrado seja proveniente de um utilização.
documento XML A internet encontra-se repleta de
documentação e normas que
auxiliam na sua utilização.
Mais uma vez trata-se de um
linguagem já conhecida pela
equipa o que permite

Sistemas de gestão de base de dados Forças Fraquezas


MS-SQL (1) É reconhecida por muitos DBA como sendo uma das linguagens mais acessíveis em (1) Não é open-source;
termos de complexidade de aprendizagem e utilização; (2) Requer utilização de ferramentes de coding
(2) É normalmente usado em conjunto com a linguagem server-scripting ASP.NET; específicas;
(3) Apenas corre em ambiente Windows;

Uma vez que a equipa de projecto


dá preferência à utilização de
mySQL (1) Possui grande parte da quota de mercado em sistema base de dados open source; (1) Para fins comerciais requer a aquisição de uma
(2) Têm a sua posição consolidada no mercado, integrando estabilidade, rapidez e licença específica;
funcionalidades; (2) A escalabilidade da linguagem para novas
(3) Integrada numa plataforma windows é visto por muitos como combinação perfeita funcionalidades diminui uma das suas principais
(4) Disponível em múltiplas plataformas características - a rapidez
(5) Possui mecanismos de armazenamento com suporte de conexão
(6) Possui um sistema único de cache para queries (armazena a query e o seu resultado)
(7) Suporte para optimização de segurança - GRANT; REVOKE
(8) GUI de gestão e desenvolvimento disponível e suportado em múltiplos sistemas
operativos
(9) É preferência dos grandes nomes mundiais: Facebook, Nokia, Flickr, Youtube
(10) É o componente central do LAMP, WAMP e XAMPP Uma vez que a equipa de projecto
dá preferência à utilização de
ferramentas open source exclui-
se à partida o Oracle e o MS SQL.

Visto que o servidor corre sobre o


OS Linux o MS-SQL fica mais uma
Oracle (1) existe muita informação disponível; (1) não é open source (considerado o mais caros do vez excluído.
(2) multi-plataforma; mercado);
(3) é rápido a processar informação; (2) é um Software que ocupa muito espaço em disco; Acabamos por nos confrontar
(4) oferece uma poderosa combinação de tecnologia (aplicações de negócios pré- (3) não é compatível com FreeBSD (SO livre); com uma difícil escolha,
integrada); (4) só a empresa detentora do Oracle (Oracle PostgreSQL ou MySQL.
(5) possui tecnologia Flashback (recuperação de dados perdidos); Corporation) tem permissões para dar apoio aos seus
(6) possuir ferramentas para gerar logs com grande nível de controlo; utilizadores; De entre as duas escolhemos o
(7) permite encaminhar um tablespace separado para um tablespace TEMP e UNDO MySQL. Além de ter sido o
(permite um melhor desempenho); modelo de base de dados que nos
(8) possui uma ferramenta “Fine - Grained Access” (permite o acesso a determinadas foi leccionado na licenciatura,
linhas de uma tabela); tem, no nosso ponto de vista uma
(9) maior flexibilidade na definição dos arquivos de log de transacção; maior comunidade e tutoriais
(10) permite facilidade na migração de dados de plataformas distintas; online, o que nos facilita a
(11) permite a “paralelização” de operações pesadas (backups lógicos, importações via resolução de problemas.
SQLLoader, consultas longas, etc.);
(12) tem tolerâncias a erros;
(13) permite o escalonamento horizontal (através de RAC – Real Aplication Cluster);
(14) possui parâmetros de inicialização que se ajustam aos limites de memória do Oracle
(permite a distribuição de dados entre as diversas áreas internas);
(15) tem o controle de transacções dentro de um bloco PL/SQL;
(16) através de uma ferramenta “Jobs Scheduler”, o Oracle permite o desencadeamento
de acções específicas a partir de um horário específico;

PostgreSQL (1) Gratuito e open source; (1) comunidade inferior à do MySQL


(2) boa performance; (2) nível de aprendizagem superior aos restantes
(3) multi-plataforma; (3) mais dificil de encontrar serviços com alojamento
(4) altamente escalável; que suportem postgresql em relação ao mysql
(5) integridade referencial e suporte a transacções nativas;
(6) optimizado para aplicações mais complexas;
Syndication Languages Caracteristicas
Atom (1) requer que ambos os feeds e campos incluam um titulo, que pode estar vazio, um elemento identificador, exemplo id e um campo para a data Para syndication language iremos
de última actualização - timestamp utilizar o sistema ATOM: além de
(2) escreve a informação de maneira mais detalhada ser mais recente do que o RSS é
(3) presume-se que venha a ser a preferência de grande parte dos utilizadores ainda mais completo no que
respeita à informação
armazenada.
O nosso principal objectivo é fazer
RSS (1) semelhante ao ATOM, e tal como ele escrito baseado em XML chegar aos utilizadores da
(2) mais antigo, e para quem procura algum detalhe na informação o ATOM assume-se como a melhor escolha plataforma as notícias mais
recentes dos festivais.

Sandboxed Languages Forças Fraquezas


ActiveX (1) tem acesso completo ao sistema operativo Windows; (1) actualmente, só é suportado por arquitecturas Intel;
(2) permite a criação de páginas Web com conteúdo dinâmico complexo; (2) só é compatível com o Internet Explorer (versão 3.0
(3) os seus componentes podem ser criados através de uma ampla variedade de ou superior);
linguagens de programação (Visual Basic, Visual C++, Java, etc.); (3) foi projectado apenas para Windows (versões para
(4) estão disponíveis bibliotecas de comandos open source; Mac e Unix estão a ser desenvolvidas);
(5) todos os componentes ActiveX são actualizados automaticamente a partir do servidor (4) tem graves problemas de segurança (não há
especificado quando a página é aberta; restrições à utilização dos recursos disponíveis nos
(6) todos os seus comandos podem ser utilizados noutras aplicações ou podem ser computadores dos utilizadores);
usados para criar novas extensões de funcionalidade;

Flash (1) uma aplicação/animação em Flash pode demorar


(1) por ser baseado em gráficos vectoriais as animações podem ser redimensionadas sem imenso tempo a carregar, o que pode “afastar” A utilização de linguagens
perder a qualidade de imagem; possíveis utilizadores; sandboxed na plataforma não foi
(2) alta qualidade de imagem; (2) o conteúdo da sua animação não é visível para o planeada pelo grupo, no entanto,
(3) as animações podem ser incorporadas em páginas HTML (ex.: menus, filmes, etc.); motor de pesquisa; um projecto deve ser escalável e
(4) é escalável; (3) é mais caro alterar uma aplicação/página Web se como tal optámos por fazer um
(5) é de fácil controlo; estiver em flash do que se estiver em HTML; estudo de viabilidade das
(6) permite um alto nível de interactividade (ex: animação); tecnologias mais populares no
(7) permite velocidades de carregamento elevadas; mercado.
(8) é multi-plataforma;
Cada uma com as suas
Java (1) é mais fácil de escrever, compilar, depurar e aprender do que outras linguagens de (1) é mais lento que outras linguagens compiladas (C, características, o flash, de entre
programação (ex.: C++); C++, etc.); os requisitos funcionais e
(2) usa alocação de memoria automática; (2) o padrão look and feel de aplicações gráficas em necessidades do projecto,
(3) é independente da plataforma (facilita a passagem de um computador para outro); Java utilizando o toolkit Swing é muito diferente de pareceu-nos ser a melhor opção
(4) é multi-plataforma; aplicativos nativos; por diversos motivos:
(5) é seguro (foi uma das primeiras linguagens de programação a considerar a segurança (3) é difícil criar código não seja gerado pela VM;
como parte integrante do seu projecto); (4) disparidade de configuração dos pontos flutuantes É facilmente integrada, quando
(6) é robusto e fiável; com muitos processadores (torna-o mais lento quando comparada com os concorrentes
(7) é capaz de detectar problemas/erros de forma precoce; faz cálculos); directos, num ambiente
(8) é multi-tarefa; (5) não suporta heranças múltiplas; concebido por recurso a um
servidor MySQL e linguagem de
scripting PHP;

Existe documentação mais do que


suficiente, além de que o grupo já
se encontra familiarizado com a
tecnologia.
directos, num ambiente
concebido por recurso a um
servidor MySQL e linguagem de
scripting PHP;
Shockwave (1) integração de 3D; (1) requer plug-in instalado previamente;
(2) leitura de XML; (2) limitação ao código reutilizável; Existe documentação mais do que
(3) permite dimensionamento de imagem; (3) software Director é extremamente caro, quando suficiente, além de que o grupo já
(4) é mais versátil (permite a criação de plataformas mais complexas, interactividade comparado com Flash; se encontra familiarizado com a
mais elaborada e maiores detalhes nas animações); tecnologia.
(5) o Shockwave suporta arquivos Flash (este último não suporta arquivos Shockwave);

Silverlight (1) facilidade de integração com código; (1) incompatível com versões antigas do Windows,
(2) pode ser desenvolvido sobre XML (XAML); como o Windows 2000 e 98;
(3) suporte para Visual Basic e C#; (2) necessidade de software específico para suporte;
(4) facilidade de integração com ASP.NET; (3) fraca penetração no mercado a curto prazo;
(5) cross-browser; (4) tecnologia pouco desenvolvida (por ser recente);
(6) é possível a sobreposição de comandos Silverlight, pois cada componente é (5) o apoio do WPF é limitado;
processada por tags HTML DIV; (6) oferece problemas com alguns SO, nomeadamente
(7) suporta várias linguagens de programação; Mac;

Referências
http://www.w3.org
http://www.w3schools.com/

html
http://wiki.answers.com/Q/What_are_the_advantages_and_disadvantages_of_using_HTML&alreadyAsked=1&rtitle=Advantages_of_using_HTML

php
http://www.php.net/
http://wiki.answers.com/Q/What_are_the_advantages_of_using_PHP

Javascript
- http://ezinearticles.com/?JavaScript-for-Web-Design---Advantages-and-Disadvantages&id=645013

Css
http://www.quackit.com/css/tutorial/css_advantages.cfm

Xml
http://www.w3schools.com/xhtml/xhtml_intro.asp
http://e-articles.info/e/a/title/General-advantages-and-disadvantages-of-HTML-vs-XML-and-XHTML/
http://www.exforsys.com/tutorials/xml/xml-disadvantages.html

Flex
http://www.docstoc.com/docs/22463992/Vantagens-Desvantagens-Adobe-FLEX-vs-Microsoft-SILVERLIGHT

Oracle
http://www.learn.geekinterview.com/database/oracle/advantages-of-using-oracle.html
http://www.midstorm.org/~telles/2007/08/30/16-caracteristicas-do-oracle-que-fazem-falta-no-postgresql/
PostgreSQL
http://www.midstorm.org/~telles/2007/08/30/coisas-do-postgresql-que-fazem-falta-no-oracle/

activeX
http://webdocs.cs.ualberta.ca/~zaiane/courses/cmput499/work/presentations/activex.html

Flash
http://www.articlesbase.com/web-design-articles/advantages-and-disadvantages-of-flash-web-design-676382.html

Java
http://www.webdotdev.com/nvd/articles-reviews/java/java-advantages-and-disadvantages-1042.html

Shockwave
http://www.mcli.dist.maricopa.edu/show/interact/shock.html

Outras referências
http://en.wikipedia.org/wiki/Server-side_scripting
http://en.wikipedia.org/wiki/Client-side_scripting
http://www.w3.org/TR/WCAG20-SCRIPT-TECHS/
http://www.jsptut.com/Getfamiliar.jsp
http://sixrevisions.com/web-technology/web-languages-decoded/
http://cplus.about.com/od/introductiontoprogramming/a/comparelangs_3.htm
Markup language

Syndication lang.
Server-scripting
Frameworks
(javascript) API's

Database
client-scripting

Gestão de utilizadores
Funcionalidade HTML XML PHP MYSQL AJAX Jquery Atom Facebook Twitter Paypal
Registar utilizador
Activar conta
Efectuar Login
Manter sessão iniciada
Editar Perfil de utilizador
Fazer upload de foto para Avatar
Criar Festival
Ver feed de notícias do festival
Criar histórico de participações em festivais
Listar festivais inscritos na plataforma
Vídeos
Ver vídeos
Fazer upload de vídeos
Editar Informação do vídeo
Definir política de privacidade do vídeo
Inscrever filme em festival(ais)
Criar Playlist de vídeos
Pesquisar
Alterar a língua da página
Ver principais funcionalidades da plataforma - TOUR
Convidar contactos para se registarem na plataforma
Seguir a plataforma nas redes sociais
Denunciar conteúdo ou utilizador
Fazer report de erros
Contactar administrador do festival via mensagem
Subscrever newsletter da plataforma
Subscrever FEED da página
Ver mapa do site

Back end gestão festivais


Funcionalidade HTML XML PHP MYSQL AJAX Jquery Atom Facebook Twitter Paypal
Subscrever serviço gold
Criar evento do Festival
Gerir inscrições
Aprovar/Reprovar participações + Motivo
Definir política de privacidade do festival
Personalizar página perfil do festival
Administrar equipa do festival
Convidar utilizador júri
Convidar utilizador administrador
Criar guest list para o mercado do festival
Remover estatuto dos utilizadores
Administração do Evento
Definir data de início da edição do festival
Definir data limite para participação no festival
Definir limite de participações no festival
Criar categorias de concurso do festival
Listagem de informação
Listar últimas inscrições no festival
Listar últimos vídeos seleccionados
Listar últimos vídeos submetidos a concurso
Recolha de dados/ Gerar estatística
Definir critérios para recolha de informação/feedback
Visualizar elementos estatísticos: gráficos; tabelas, etc
Pesquisar
Pesquisar recursos associados ao festival
Notificações do festival
Enviar Spot mails
Enviar Mass mails
Publicar Notícia
Gestão das produções cinematográficas aprovadas e processo de selecção
Visualizar vídeos em concurso
Atribuir classificações
Efectuar comentário
Notificar/Contactar proprietário do vídeo
Adicionar observações ao vídeo

Back end do administrador da plataforma


Funcionalidade HTML XML PHP MYSQL AJAX Jquery Atom Facebook Twitter Paypal
Enviar spot mails e mass mails para utilizadores
Monitorizar dados de clientes e utilizadores
Rever denúncias de utilizadores e conteúdos
Rever reports de erros de outros utilizadores
Remover utilizadores da plataforma
Validar registo do festival
Cancelar subscrições do festival
Eliminar definitivamente os vídeos "ocultos" de outros utilizadores
Monitorizar informação na plataforma

Sistemas de Ajuda
Funcionalidade HTML XML PHP MYSQL AJAX Jquery Atom Facebook Twitter Paypal
Helpdesk
Pedir suporte por tickets
Fazer review da ajuda
Utilizar linha de apoio telefónica
FAQ
Aceder em qualquer momento
Pesquisar dentro do FAQ
Help contextual
Permite obter ajuda no contexto em que se insere

Aplicável à funcionalidade
Não aplicável à funcionalidade