Base para uma Metodologia de Desenvolvimento em ambiente Cliente / Servidor
Escrito por Lislane Gracinda Dias - GPT - Ramal 338 e Tânia Mara Vostoupal - GPS - Ramal 367
Palestra apresentada na Fenasoft/96 por Wilson Caldeira da Silva - Gerente de negócios de treinamento da MSA-Infor / Belo horizonte - MG.
Quando adota-se uma solução de arquitetura cliente/servidor é necessário encontrar métodos de desenvolvimento que contemplem os conceitos fundamentais dessa filosofia. Para tanto é necessário deflagrar um conjunto de ações para gerar um embrião da metodologia a ser implantada na empresa.
Composto por etapas formais e sucessivas, envolve análise, projeto, desenvolvimento e implantação. É usado pelas grandes companhias e a sua principal desvantagem é a dificuldade em se adequar à construção de sistemas por ciclos de prototipagem.
Revela a essência da prototipagem evolutiva, válida para todo o ciclo de vida dos sistemas. O grande risco desse modelo é nunca chegar-se ao ponto de satisfação dos usuários, ou seja, entra-se numa espiral sem fim. Ainda não se tem cultura suficiente para avaliar corretamente seus defeitos e virtudes.
Modelo utilizado pela Microsoft Corp. para desenvolvimento de seus aplicativos. Representa uma intermediação entre os dois modelos anteriores, onde a seqüência e a necessidade de cada estágio dependem das características próprias de cada sistema.
Estes três modelos podem servir de base para a elaboração de uma metodologia adequada a cada organização.
Pode-se pensar a arquitetura cliente/servidor como composta por apenas três elementos fundamentais: interfaces, dados e processos. Assim sendo, encontram-se respostas para questões como:
- o papel exercido por cada um desses elementos em função da natureza de cada sistema;
a criação de modelos que os representem corretamente; e
a identificação da interação entre esses elementos.
A = Análise | P = Próxima | D = Desenvolvimento | E = Estágio |
Quem projeta sistemas, precisa entender a natureza do trabalho realizado pelos usuários e as aplicações que o servirão. Pode-se classificar os usuários e suas aplicações em dois grandes grupos: os encarregados de alimentar o sistema e os que usufruirão das informações fornecidas pelo primeiro grupo.
As aplicações que se encaixam no primeiro grupo de usuários são conhecidas como TPS (Transaction Processing Systems) e as do segundo grupo são definidas como DSS (Decision Support Systems).
Aplicações TPS possuem como características principais o alto volume de dados muito semelhantes, vários usuários agindo individualmente, processos repetitivos, seqüência de operações claramente definidas e, invariavelmente, as ações estão ligadas à atualização atômica da base de dados.
Aplicações DSS são marcadas pela diversidade de tipos de dados com que lidam simultaneamente, por processos altamente dinâmicos e tão imprevisíveis quanto sua seqüência de execução, tendo como ações principais a exibição de informações consolidadas de várias formas e a necessidade de simulações variadas.
As interfaces do aplicativo devem ser elaboradas em parceria com o usuário final. A técnica de desenvolvimento rápido de aplicações (RAD) é um bom ponto de partida para a elaboração do projeto de interfaces. Usando de forma embutida a orientação a objetos, essa técnica fundamenta-se nos seguintes conceitos: projeto centrado no usuário, prototipação rápida, particionamento de processos em clientes e servidores e modelagem de objetos.
Dois aspectos fundamentais balizam a fase de modelagem de objetos. Um diz respeito aos objetos de apresentação, que no caso de interfaces gráficas são as janelas, listas de consulta, listas de verificação, etc. Outro, aos objetos próprios ao sistema em estudo, isto é: pessoa, fornecedor e características afins. A fusão dos modelos indicará como os objetos do negócio serão tratados pelos objetos de apresentação.
A modelagem nos conduzirá de maneira natural aos dados que compõem uma interface, bem como a seus processos associados, que já poderão ser classificados, em primeira instância, sob a ótica de cliente ou servidor.
Para viabilizar o desenvolvimento em parceria com o usuário, que validará o produto final, é essencial usar técnicas específicas para esse fim. Desta forma, o uso das sessões de JAD (Join Application Development) tem propiciado a otimização de resultados.
MODELO DE DADOS
A principal preocupação para a implantação do modelo de dados refere-se à centralização ou distribuição da base de dados. No caso de se distribuir a base, deve-se considerar que apesar da tecnologia atual suportar alguns aspectos desta distribuição, as técnicas para construção do modelo distribuído ainda não são de conhecimento geral.
A atualização centralizada da base de dados elimina esse problema. Alguns cuidados, porém, deverão ser tomados no que se refere à utilização do modelo de objetos elaborado durante o projeto de interfaces. Seu mapeamento direto para o modelo relacional, tendo como premissa a utilização de um banco de dados relacional, pode causar problemas no que se refere a conceitos de orientação a objeto, tais como herança e encapsulamento.
Uma análise dos processos é resultado do projeto de interfaces. Porém, ela não é suficientemente abrangente para que se compreenda todas as regras de negócio de um sistema. É necessário obter um modelo que represente toda a interação dos processos do sistema, a forma que estes processos reagem a estímulos do usuário e como interagem entre si aos estímulos recebidos.
Conclui-se, então, que a fórmula mágica não existe. Por isso, os desenvolvedores devem lançar mão do conhecimento de vários modelos para construir, da forma mais adequada para a empresa, os sistemas de informação no ambiente cliente/servidor.