Metodologias de desenvolvimento de aplicações Web – Parte 01

Este artigo visa descrever três metodologias para o desenvolvimento de aplicações que utilizam a Web como plataforma de execução.


Guia do artigo:

Parte - 1

O constante crescimento da Internet e a necessidade de serviços rápidos e instantâneos têm ocasionado uma demanda significativa no desenvolvimento de aplicações que utilizam a Web como ambiente operacional.

Além disto, as aplicações desenvolvidas para Web estão se tornando cada vez mais complexas devido às características de negócio da aplicação a ser desenvolvida, acrescida dos vários aspectos específicos que devem ser considerados para o desenvolvimento destas aplicações.

Tendo em vista essas informações sobre aplicações Web, diversas metodologias específicas para o desenvolvimento dessas aplicações têm sido utilizadas. Baseando-se neste cenário, este artigo visa descrever três metodologias para o desenvolvimento de aplicações que utilizam a Web como plataforma de execução e os passos para a modelagem de uma aplicação Web real com cada metodologia apresentada através de um estudo de caso.

Características de Aplicações Web

A Internet tornou-se um grande mecanismo para realização de negócios. As características da Internet que influenciaram esse crescimento são: simplicidade aos usuários; informações dinâmicas; facilidade de utilização independente do local que o usuário se encontra. Essas características resultam no crescimento do desenvolvimento de sistemas que utilizam este ambiente para execução, tornando esses sistemas cada vez mais complexos.

Aplicações Web possuem características específicas comparadas a outros tipos de aplicações. Observamos, principalmente, duas formas pontuais de diferenciarmos aplicações Web: aplicações Web x sistemas convencionais e aplicações Web x Web sites.

Aplicações Web x Sistemas Tradicionais

A primeira forma consiste nas diferenças entre aplicações Web e sistemas convencionais. A engenharia de um sistema para Web envolve, além dos aspectos definidos na Engenharia de sistemas convencionais, aspectos que são relevantes apenas para esse tipo de sistema, como o ambiente exploratório baseado em navegação e navegação personalizada entre usuários, ou seja, o acesso às informações independente de outras pessoas. A Figura 1 expressa que a Engenharia de aplicação Web envolve outras características além da Engenharia de software para sistemas convencionais.

Figura 1. Engenharia de aplicações Web

Aplicações Web x Web site

Em outra perspectiva, podemos diferenciar aplicações Web de Web sites. Uma aplicação Web consiste em Web sites que permitem ao usuário interagir com a aplicação, ou seja, aplicação Web seria a composição de Web sites que disponibilizam um determinado serviço aos seus usuários.

Uma aplicação Web enfatiza principalmente os aspectos relacionados à aplicabilidade e funcionalidade enquanto um Web Site tem ênfase na apresentação, aparência e navegação.

Dimensões de Projeto de uma aplicação Web

Uma aplicação Web pode ser caracterizada por três dimensões do projeto: estrutural (ou conceitual), navegacional e de apresentação. A dimensão estrutural define a organização das informações a serem tratadas pela aplicação e os seus relacionamentos, a dimensão navegacional define como as informações serão acessadas através da aplicação e a dimensão de apresentação define como as informações e o acesso a essas informações serão apresentados ao usuário da aplicação.

Tendo em vista essas informações e características de aplicações Web, torna-se necessária a utilização de metodologias que auxilie no desenvolvimento da aplicação, evitando-se o desenvolvimento de maneira “ad hoc”, ou seja, implementar e testar.

Parte - 2

Metodologias de desenvolvimento de software buscam guiar os desenvolvedores nas suas atividades e facilitam a construção de sistema através de alguns aspectos:

Existem diversas metodologias disponíveis para a utilização em um desenvolvimento de aplicações Web, dentre eles serão discutidas três. Para cada uma a ser apresentada, serão separados os conceitos de acordo com as dimensões de projeto definidas anteriormente para uma aplicação Web: projeto conceitual, projeto navegacional e projeto de apresentação, e ao final da cada uma será apresentado a sua aplicação em um estudo de caso real.

A seguir, serão apresentadas três metodologias de desenvolvimento para aplicações Web e sua aplicação em um estudo de caso real.

Estudo de Caso

Nosso estudo de caso é um sistema de consulta a veículos denominado AutoLopes Multimarca. Esta aplicação deve apresentar informações sobre carros usados, divididos em quatro categorias: vans, off-roads, motos e carros. Para cada categoria é apresentada a lista de veículos associados, e para cada veículo, há a possibilidade de visualizar suas informações específicas. A aplicações permite também o contato com os responsáveis pela empresa através do envio de um e-mail pela aplicação.

Lista de funções

Parte - 3

WAE – Web Application Extension

Web Application Extension consiste em uma extensão da notação UML proposta a partir de 1998. É uma forma de usar a especificação padrão UML, que estende estereótipos (Nota 1) para mapear estruturas típicas da arquitetura Web, como páginas, applets, componentes servlets, etc.

Esta extensão busca solucionar o problema da semântica de representação dos elementos presentes na modelagem de aplicações Web através da modelagem conceitual (dados do sistema) e arquitetural (composição física). Estes estereótipos representam a composição física da aplicação a ser desenvolvida e o relacionamento dos seus componentes (modelo navegacional).

Uma metodologia proposta para aplicação de WAE no desenvolvimento de um sistema é na seguinte: inicialmente desenvolve-se um modelo conceitual representado pelo diagrama de classes da UML; após isto é desenvolvido um modelo navegacional utilizando os estereótipos de classes estendidas pela notação WAE através do relacionamento entre essas classes para representação navegacional e arquitetural da aplicação. Eventualmente, para a representação da iteratividade entre as classes do modelo navegacional pode ser utilizado o diagrama de sequência da UML.

Os elementos de WAE são: estereótipos de páginas, relacionamentos entre páginas, forms e framset.

Figura 2. Estereótipos na notação WAE

Nota 1 – Estereótipo da UML

Estereótipo consiste em um mecanismo de extensão da UML que permite a classificação de seus elementos originais de uma outra forma a partir da definição de restrições a esses elementos. Ex: Página cliente é um estereótipo do elemento Classe da UML, pois é um tipo de classe restrita ao domínio de aplicações Web.

Aplicação de WAE no estudo de caso AutoLopes Multmarca

A modelagem de uma aplicação seguindo a metodologia apresentada para WAE resultou em dois modelos: modelo conceitual (Figura 3) e modelo navegacional (Figura 4).

O modelo conceitual (diagrama de classes) representa a estrutura dos dados do sistema, onde temos informações sobre a loja, contato (e-mails), veículo e categorias representados através de classes e seus relacionamentos.

Figura 3. Modelo conceitual para AutoLopes Multimarca

O modelo navegacional gerado a partir da notação WAE representa a estrutura da aplicação através das páginas da aplicação e seus relacionamentos. A página principal da aplicação é composta um menu com links para as páginas de cada de categoria de veículos (Figura 4 -[marca azul]: pgVans, pgOff-roads, pgCarro e pgMoto) e um link para envio de e-mails através da aplicação (pgContato).

Para cada página de uma categoria é carregada a lista de veículos. Caso o usuário escolha um veículo específico, o sistema construirá (build) a página específica do veículo (pgVeiculo) com as suas informações através de um processamento feito na página servidora IdentificarVeiculo (Figura 4 – [marca amarela]). Para o envio e e-mail, o sistema apresenta um formulário (frmContato) para preenchimento dos dados do e-mail (Email, TipoContato e CorpoEmail) e após confirmação, envia o e-mail aos responsáveis pelo sistema através da página servidora GravarContato (Figura 4 – [marca vermelha]).

Figura 4. Modelo navegacional para AutoLopes Multimarca

Confira também

Parte - 4

WebML – Web Modeling Language

A WebML é uma notação para especificação de Web sites em nível conceitual e permite a descrição alto nível de um Web site sobre distintas dimensões ortogonais: seu conteúdo de dados (modelo estrutural), a páginas que compõe o site (modelo de composição), a topologia de links entre as páginas (modelo navegacional) e a customização das características de conteúdo de acordo com o perfil do usuário (modelo de personalização).

A especificação da WebML é feita com a definição de modelos, sendo que cada um deles já tem uma sintaxe XML definida, facilitando dessa forma a manipulação dos resultados da modelagem para a geração automática de páginas. Sendo esses modelos: Modelo Estrutural, Modelo de Hipertexto (formado pelos modelos de Composição e Modelo Navegacional), Modelo de Personalização.

Modelo Estrutural

O Modelo Estrutural consiste no conteúdo de dados da aplicação Web. A WebML não propõe uma nova notação de modelagem para essa estrutura, permitindo a utilização de notações como a Modelo de Entidade e Relacionamento ou Diagrama de Classes UML.

Os elementos fundamentais para a Definição do Modelo Estrutural são entidades que contêm os dados armazenados, e relacionamentos que permitem a ligação semântica de entidades. As entidades são formadas por um nome e atributos associados a um tipo de dado. Os relacionamentos são definidos através do nome e da cardinalidade das entidades que o compõem.

O modelo conceitual para o estudo de caso AutoLopes Multimarca é idêntico ao apresentado na Figura 3.

Modelo de Composição

O Modelo de Composição permite a definição de unidades de conteúdo e das páginas. As unidades de conteúdo determinam a forma pelo quais os dados de uma determinada entidade vão ser exibidos, customizando os atributos desejados. As principais unidades de conteúdo disponíveis na WebML são as seguintes (Figura 5):

Figura 5. Principais elementos da WebML

Ainda no modelo de composição, a WebML apresenta um suporte à entrada de dados e operações. Para a inclusão dos mesmos, o modelo de composição apresenta links com propriedades de ativar a operações. As unidades de entrada de dados são formadas por campos que fornecem parâmetros para as operações a serem processadas. As unidades de operação recebem informações por meios um ou mais links, sendo que um deles tem que ser declarado como ativador da operação para quando a navegação pelo link ocorrer, este possa executar a operação. A WebML apresenta algumas unidades de operações definidas, sendo elas responsável por criar, atualizar e remover uma entidade e de criar e remover um relacionamento.

Modelo Navegacional

As unidades de conteúdo e as páginas formadas nos modelo de composição não podem existir isoladamente, devem estar conectadas para formar o modelo de hipertexto. Esse é o propósito do modelo navegacional, especificar a maneira pela qual as unidades de conteúdo e as páginas estão relacionadas, definindo os seus links que podem ser de duas formas:

Modelo de personalização

Define características individuais do conteúdo de cada usuário ou grupo de usuário. WebML fornece o conceito de entidades de Usuários e Grupo de Usuários, permitindo modelar esquemas personalizados de conteúdo e apresentação, regras de acesso, segurança, atualização do conteúdo.

A separação entre o modelo estrutural e o de hipertexto permite que a WebML forneça meios de especificar várias visões de um mesmo site, possibilitando o atendimento de requisitos mais complexos. Essas diferentes visões do site podem estar associadas ao dispositivo pelo qual se está acessando o site ou por grupos de usuários.

Aplicação de WebML no estudo de caso

A modelagem de uma aplicação seguindo a metodologia apresentada por WebML para o estudo de caso consiste na definição do modelo de Hipertexto (Figura 7).

Figura 7. Modelo de Hipertexto para AutoLopes Multimarca

O modelo representa a existência de uma página principal (AutoLopes Multimarca) com uma lista de opções com links para as páginas das categorias (Motos, Vans, carros, Off-roads) que contêm, cada uma, a lista de veículos (Index Unit Veículos). Essa lista possui um link contextual para a página de detalhe de um veículo (AutoLopes – Detalhes), indicando que o veículo escolhido é passado como parâmetro para a página de detalhe.

O envio de e-mail é feito através da página Contatos que possuem um formulário a ser preenchido e enviado para a criação de um novo objeto do tipo Contato.

Parte - 5

UWE – UML-based Web Engineering

Esta metodologia foi desenvolvida na Universidade de Munique – Alemanha e aborda as três dimensões de um projeto de aplicações Web: conteúdo, navegação e apresentação, utilizando elementos padrões da UML juntamente com a notação UWE e define uma seqüência de passos para a modelagem de uma aplicação Web.

A modelagem para desenvolvimento de aplicações Web pode ser realizada usando técnicas propiciadas pela UML junto com a sua notação UWE. Desenvolvedores de aplicações Web normalmente fazem uma separação do contexto em conteúdo, navegação e apresentação, ou seja, dividem, mesmo que involuntariamente, o desenvolvimento nos seguintes passos: projeto conceitual, de navegação e de apresentação.

Parte das atividades do projeto conceitual, de navegação e de apresentação é a construção de modelos e sua representação gráfica. Esses modelos consistem de elementos de modelagem da UML padrão ou elementos de modelagem especificados – estereótipos – definidos através do mecanismo de extensão da UML (Nota 1).

Projeto Conceitual

O Projeto Conceitual produz um Modelo Conceitual que descreve o domínio do problema através de classes e suas associações entre essas classes. É representado através de um Diagrama de Classe da UML.

Projeto Navegacional

A base no Projeto Navegacional é o Modelo Conceitual, e seu resultado é o Modelo Navegacional que pode ser visto como uma visão definida do modelo conceitual. O modelo navegacional é definido em dois passos. No primeiro passo o Modelo de espaço navegacional é definido mostrando quais as classes do modelo conceitual podem ser visitadas por navegação na aplicação Web. Um diagrama de classe da UML é utilizado para representar graficamente o modelo conceitual. Este modelo que é construído com estereótipos de classes – classe navegacional – e associação – navegabilidade direcionada.

O Modelo de estrutura navegacional define a navegação da aplicação, isto é, como os objetos navegacionais são visitados. Este modelo é baseado no modelo de espaço navegacional, mas elementos de modelagem adicionais são incluídos no diagrama de classe para representar a navegação entre objetos navegacionais: menus, guide tours e queries. Todos esses estereótipos serão definidos ao longo desta seção.

Projeto de apresentação

O projeto de apresentação suporta a modelagem de uma interface abstrata de usuário exibindo como a estrutura navegacional é apresentada ao usuário. Projeto de apresentação como os nós de navegação aparecerão, selecionando objetos de interface de usuário a serem exibidos e determinando as transformações que ocorrerão em cada interface definida. Esta notação propõe a construção de um modelo de apresentação.

O Modelo de apresentação é representado por um diagrama de composição da UML que descreve como as interfaces de usuários são construídas. Um objeto de interface de usuário pode ser um objeto de interface de usuário primitivo como texto, imagem e botão, ou uma composição de objetos de interface de usuários. Para a definição de objetos de interface de usuário foram definidos estereótipos de acordo com o mecanismo de extensão propiciado pela UML. Esses objetos são: âncora, texto, imagem, áudio, vídeo, botão, coleção, coleção ancorada.

Estereótipos para modelagem de aplicações Web

Esta extensão da UML define um conjunto de estereótipos que são usados na construção dos modelos definidos para o desenvolvimento de aplicações Web. A seguir serão apresentados os estereótipos definidos para a modelagem de aplicação Web segundo a notação UWE separados pelo modelo já definido anteriormente.

Modelo navegacional

Figura 8. Estereótipos para o modelo navegacional

Modelo de apresentação

Figura 9. Estereótipos que compõem o modelo de apresentação
Figura 10. Estereótipos de apresentação

A Figura 10 mostra os ícones escolhidos para os estereótipos de elementos de modelagem apresentados abaixo. Eles são usados no projeto de apresentação de aplicações Web em adição aos objetos de apresentação, janelas, frameset e frames.

Aplicação de UWE no estudo de caso

A modelagem de uma aplicação seguindo a metodologia apresentada por UWE para o estudo de caso consiste na definição de três modelos: Modelo conceitual (idêntico ao da Figura 3), Modelo navegacional (Figura 11) e Modelo de apresentação (A Figura 12 apresenta o modelo de apresentação para a página de veículos).

Figura 11. modelo navegacional

O modelo navegacional da Figura 11 indica que a classe navegacional Loja é composta por um item menu (Menu Principal) com 4 links para a classe Categoria, que apresenta a lista de veículos de acordo com a categoria (Index – Lista de Veículos). A partir desta lista pode ser acessada um veículos específicos (classe Veículo).

Figura 12. modelo de apresentação

O modelo de apresentação para a página de veículo apresenta os elementos desta página de acordo com o seu tipo. A página é composta pelas informações de Veículos (Classe de apresentação Veículo) que contem seus dados (fotos, ano, cor, etc) e por um menu principal (Classe de apresentação Menu Principal) com links para outras áreas do site.

Ferramentas de modelagem das metodologias

O desenvolvimento de uma aplicação Web através das metodologias apresentadas neste artigo requer a utilização de ferramentas CASE para facilitar a tarefa de modelagem através de cada uma das metodologias. Abaixo, apresento uma descrição sobre ferramentas existentes para as metodologias.

Conclusão

Este artigo tem como objetivo apresentar ao leitor as principais diferenças no desenvolvimento de uma aplicação que utiliza a Web como plataforma, destacando três metodologias de desenvolvimento dessas aplicações. A importância destas metodologias se dá devido à necessidade de definição de aspectos particulares destas aplicações e que não podem ser desenvolvidos como sistemas convencionais.

Atualmente, não há um padrão de modelagem de aplicação Web (como existe para aplicações tradicionais através da UML). Várias metodologias com características e notações distintas estão disponíveis e podem ser utilizadas no projeto dessas aplicações.

Confira também

Artigos relacionados