mencionada em seções anteriores, entretanto é importante que seja delimitado o que esses processos devem abranger para que seja possível a construção de sistemas Web de alta qualidade.
Com a popularização da Web no final dos anos 90 as empresas passaram a usar a Web para fazer negócios e oferecer serviços. A demanda pela construção de aplicações Web de forma rápida, visando ganho de vantagens competitivas, não foi apoiado por uma devida adequação nos processos de software em grande parte dessas empresas acarretando alguns problemas.
Diversos problemas se devem ao fato de que as novas características das aplicações Web como interfaces gráficas mais complexas, equipes de desenvolvimento
mais multidisciplinares, restrições no ambiente de operação do Web Site (escalabilidade, carga na rede, concorrência) e requisitos mal definidos pelos clientes [4,8,9,39,45] impõem novos desafios a serem analisados e tratados pelas atuais práticas e processos existentes. Um resumo desses problemas é apresentado na Tabela 2.2 abaixo.
Tabela 2.2 - Problemas relativos ao desenvolvimento de aplicações Web
PROBLEMA DESCRIÇÃO
Interfaces gráficas mais
complexas As tecnologias para construção de interfaces gráficas de sistemas Web envolvem diversos tipos de mídias (áudio, vídeo, gráficos, animações, etc...).
Usabilidade A navegação dentro da aplicação Web deve ser simplificada e de fácil uso por parte dos usuários, caso contrário eles optam por Web sites de concorrentes.
Restrições do ambiente
operacional O ambiente onde o Web site está instalado deve ser capaz de atender à demanda de acesso dos seus usuários, abrangendo questões como: escalabilidade, concorrência, balanceamento de carga, segurança e outros.
Riscos para o negócio Os sistemas Web têm uma audiência a nível mundial, de forma que um Web site mal construído pode “ manchar” o nome da organização e fazer com que ela tenha prejuízos e perca mercado para concorrentes. Equipes mais multidisciplinares A construção de aplicações Web envolve novos papéis
como, por exemplo, artistas gráficos (designers) e especialistas em Marketing que têm uma formação diferente dos desenvolvedores.
Manutenção contínua O conteúdo de um Web site pode mudar constantemente como, por exemplo, em sites de jornais, revistas e portais, portanto precisa de mecanismos eficientes para incorporar essas mudanças.
Alguns trabalhos [4,11,39,46] desenvolvidos por diferentes pesquisadores já começaram a tratar estas questões. Estes trabalhos são brevemente discutidos aqui nas
___________________________________________________________________ 23
seções 2.6.1, 2.6.2 e 2.6.3. Na Seção 2.7 é mostrado um processo de referência para o desenvolvimento de aplicações Web.
2.6.1 Agile Web Engineering (AWE) Process
O trabalho de McDonald [4,49] consiste da elaboração de um processo ágil chamado AWE (Agile Web Engineering Process) que foi feito com base em uma pesquisa realizada junto a empresas de desenvolvimento de aplicações Web do Reino Unido. Esta pesquisa procurou identificar quais eram as principais características das aplicações Web e que atividades eram necessárias a um processo de desenvolvimento Web.
Alguns dos problemas apontados anteriormente na Tabela 2.2 são mencionados nessa pesquisa onde também são apontadas algumas características comuns a muitos projetos Web que são: equipes pequenas e multidisciplinares, ciclos curtos de desenvolvimento e importância estratégica do projeto.
Com base nos problemas descobertos, McDonald definiu os principais papéis (roles), atividades e disciplinas necessários para o processo AWE. Um exemplo de papel muito importante para projetos Web, citado em [4], é o papel de “ designer” criativo (Creative designer), que é responsável por criar o projeto das interfaces gráficas da aplicação Web.
O processo AWE não se baseia em nenhum processo ágil e basicamente considera o que deve ser feito em cada disciplina de desenvolvimento (requisitos, análise e projeto, implementação e testes). O processo é todo descrito de forma textual e não existe uma definição clara de como funciona sua estrutura e dinâmica, ou seja, não se tem uma idéia clara de quais papéis são responsáveis por quais atividades e nem quando uma determinada atividade começa ou termina. AWE consiste basicamente de um conjunto de disciplinas e papéis com suas respectivas descrições e que está ainda sob processo de validação através de estudos de caso.
2.6.2 Extensões do RUP para a engenharia de software para a
Web
No trabalho de Souza [11] o processo Rational Unified Process (RUP) foi estendido no seu fluxo de análise e projeto para englobar um novo fluxo chamado de “ Projetar Camada de Apresentação” . Esse fluxo foi adaptado para utilizar técnicas de projeto de aplicações Web baseadas principalmente na técnica de Connalen [12]. Além disso, novos subfluxos como, por exemplo, “ Projetar Navegação” surgiram. Nota-se que este trabalho é um pouco diferente do anterior, pois se preocupa apenas com a disciplina de análise e projeto e não com o processo como um todo. A definição das extensões fica clara tanto do ponto de vista estrutural quanto dinâmico. Um estudo de caso foi realizado para validar o processo.
O trabalho realizado em [46] é fruto da integração do RUP com o processo de “ design” criativo da empresa Context, fornecedora de aplicações e serviços Web. O trabalho se preocupa principalmente com as questões de navegação e interfaces gráficas e sugere a criação de mapas navegacionais usando-se técnicas semelhantes às apresentadas na Seção 2.4. Além da criação de mapas navegacionais, outras atividades são sugeridas, como criação de um protótipo Web junto ao cliente para que ele decida sobre questões como aparência, requisitos, etc.
2.6.3 Extensão OPEN Web
O trabalho de Henderson-Sellers e Lowe [39,50] também identificou características de aplicações e projetos Web, fazendo em seguida modificações no processo OPEN. Surgiram novas atividades, tarefas, técnicas e papéis na extensão feita no processo original.
Esse trabalho é bem abrangente e aborda em que partes do processo, diversas questões importantes como gerência de conteúdo, personalização e técnicas de prototipagem para Web sites devem ser tratadas.
___________________________________________________________________ 25
Neste processo existe uma definição mais clara da estrutura do processo, ou seja, de quais elementos (artefatos, disciplinas, atividades) foram modificados e aonde isso se insere no processo OPEN original. No entanto, a dinâmica do processo também é de difícil compreensão para equipes que queiram aplicá-lo em um projeto real. O processo também é descrito de forma textual e também está sendo validado através de estudos de caso. A Tabela 2.3 apresenta um quadro comparativo dos processos discutidos na Seção 2.6.
Tabela 2.3 - Quadro comparativo de processos para a Web
Característica PROCESSO
AWE OPEN-Web Extensões RUP Descrição do
processo
Textual Textual Textual e Modelada
Escopo Abordado Disciplinas de desenvolvimento Disciplinas de desenvolvimento Disciplina de análise e projeto Facilidade de entendimento Difícil entender estrutura e dinâmica Fácil de entender a estrutura e difícil a dinâmica Fácil de entender a estrutura e a dinâmica Forma de validação
Estudo de caso ainda sendo conduzido
Estudo de caso ainda sendo conduzido
Estudo de caso já conduzido
É importante mencionar que o processo XWebProcess é descrito de forma textual e modelada usando SPEM (Capítulo 5) e seu escopo aborda as disciplinas de desenvolvimento. A modelagem facilita a compreensão tanto da sua estrutura, quanto da sua dinâmica, conforme descrito no Capítulo 6 que mostra o experimento realizado com este processo.