CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE - PDF Free Download
Download "CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE"
Jonathan Assunção Mirandela
1 CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma especificação de uma arquitetura que utiliza vários conceitos novos que, até então, não foram utilizados projetos passados, como o trabalho cooperativo, a capacidade de forçar o fluxo de trabalho, o conhecimento sobre os projetos, a integração pela WEB/Internet e a gestão de processos. O conceito de trabalho cooperativo conforme apresentado no capítulo 2, refere-se à capacidade dos indivíduos participantes da construção de produtos de software de trabalharem de forma integrada e a colaborarem com uma grande equipe na realização dos processos do projeto. Obviamente que esta colaboração é realizada de forma eficiente e rápida para suportar as tomadas de decisões que são necessárias ao longo do projeto. O conceito de ambiente ativo ou a capacidade de forçar o fluxo de trabalho reflete a capacidade do ambiente de participar efetivamente dos processos utilizados, ou seja, há elementos dentro do ambiente que executam ações efetivas para o desenvolvimento, gerenciamento e controle dos produtos de software. Estes elementos que pertencem ao ambiente e que promovem determinadas atividades são chamados neste trabalho, de agentes autônomos. O terceiro conceito refere-se ao ambiente com conhecimento, ou seja, o ambiente deve conhecer os elementos por ele tratados, como por exemplo, os processos e os projetos no quais apóia, a própria organização e suas características, os históricos do desenvolvimento em geral e os indivíduos que interagem com ele. O advento e a utilização da WEB/Internet proporcionaram uma série de mudanças nos hábitos de trabalho das pessoas. É possível identificar várias 99
2 características intrínsecas desta tecnologia que, quando bem empregada, são consideradas como fator determinante para o ambiente apresentada nesta proposta. Primeiro é possível através da WEB/Internet ganhar acesso de qualquer computador instalado na rede mundial de computadores, o que permite alto grau de acessibilidade. Segundo, a padronização da interface permite que uma pessoa comum que conheça apenas um navegador possa interagir com o ambiente, o que promove a facilidade do uso. Terceiro, a facilidade do desdobramento das aplicações para o usuário final através de plataformas computacionais heterogêneas, faz com que se tenha alto grau de portabilidade. Por fim, a Web/Internet permite concentrar um conjunto de facilidades através da criação de um SITE onde pessoas com o mesmo objetivo possam se comunicar, trocar informações e conteúdos realizando em conjunto, uma série de tarefas (integração). A última característica essencial que é considerada para elaboração desta arquitetura é a gestão de processos. A grande maioria dos modelos como o CMM e SPICE, possuem como seu elemento central o processo. Adota-se neste trabalho, também como elemento central, o processo e esperase que o ambiente proposto seja capaz de atender todos os requisitos para a sua gestão. Para a gestão de processo espera-se criar elementos que possibilitem a modelagem, o estabelecimento de um processo padrão, o acompanhamento da execução dos processos e melhorias diversas. A arquitetura do ambiente para atender as necessidades expostas no capítulo anterior e as características necessárias, podem ser agrupadas em três classes de elementos: Elementos responsáveis pelo armazenamento e acesso às informações dos projetos, promovendo o ambiente integrado. Elementos responsáveis pela prestação dos serviços. Elementos responsáveis pela interação do usuário com o ambiente. 100
3 Estes elementos são organizados de modo a refletir esta classificação em três camadas, conforme é apresentado na Figura 4.1. São elas: a camada de armazenamento e acesso às informações de projeto, a camada de serviços e a camada de interação com o usuário. 4.1 A camada de Armazenamento e Acesso Os elementos que compõem esta camada são os elementos responsáveis pelo armazenamento e acesso às informações de projeto. É através do gerenciamento disciplinado que estes elementos permitem a integração do ambiente. Em termos de implementação da arquitetura, estes elementos podem estar em plataformas distribuídas ou centralizadas, mas devem, de qualquer forma, integrar e gerenciar as informações dos projetos. Vários outros fatores devem ser levados em consideração para esta camada: A eficiência de armazenamento e de recuperação da informação seja ela informação de acesso imediato ( on line ) ou informação histórica ( off line ) Permitir que vários usuários possam acessar ao mesmo tempo uma determinada informação do projeto Permitir que uma quantidade grande de informações trafegue simultaneamente pelo ambiente. Garantir a segurança da informação de projeto, permitindo que apenas pessoas autorizadas acessem as informações, sejam elas para simples consulta ou para alteração. Permitir aos usuários acessar às informações de locais diversos, sejam estes acessos realizados no mesmo departamento onde se encontra instalado o ambiente, na organização, ou através de computação móvel. 101
4 Efetivar uma alta disponibilidade das informações de projeto, garantindo seu acesso e manipulação em qualquer instante no tempo. Podendo também esta disponibilidade ser controlada. Permitir a manipulação das informações de forma distribuída no ambiente computacional Recuperação das informações de forma consistente após uma falha do ambiente seja ele de hardware, software uma infra-estrutura física. Aplicativos Aplicativos Navegador ( Browser ) Navegador ( Browser ) Camada de Interação com Usuário - Execução Coordenação Serviço comunicação Assíncrona: Mensagens e Listas Comunicação Síncrona: Quadros de Discussão Agenda compartilhamento temporário Biblioteca Lembrança (Agenda Pessoal) Dicionário (Enciclopédia) Documentação de Escritório Atendimento Usuário Segurança Camada de Serviços Repositório Camada de Armazenamento/Acesso Fig. 4.1 A Arquitetura do Ambiente 4.2 A camada de Serviços Vários elementos são importantes para que os indivíduos trabalhem de forma cooperativa, conforme apresentado no capítulo 2 e na seção anterior. Para o desenvolvimento de software para controle de satélites, vários serviços podem ser prestados pelo ambiente para que possa atender os requisitos especificados. Estes serviços, para cumprirem seus objetivos, utilizam os 102
5 elementos da camada de armazenamento e acesso para obtenção das informações de projeto. São os serviços relacionados ao trabalho cooperativo: coordenação de processos O ambiente de engenharia de software deve apoiar o processo de engenharia de software e seus processos componentes, para tal, deve permitir que os processos sejam modelados, configurados, instanciados, acompanhados e terminados. O serviço de coordenação dispõe dos meios pelos quais os processos são tratados pelo ambiente. Como principal aspecto, este serviço deve garantir que, um processo siga seu fluxo normal de execução dentro do ambiente. O serviço deve, pois, avisar e relatar os participantes do processo em questão sobre o posicionamento do processo ou de ocorrências que o impossibilitam de terminar. comunicação assíncrona: mensagens eletrônicas e Listas de discussão - Para a comunicação assíncrona o ambiente deve prover serviços de trocas de mensagens. As trocas de mensagens devem sempre ter a participação de um remetente e um destinatário. Deve também conter o assunto a ser tratado pelos participantes. Como forma de comunicação básica, as mensagens eletrônicas podem ser utilizadas por todos os participantes do projeto quando habilitados para tal. Um gerente de comunicação é responsabilizado por manter os meios para que os integrantes do projeto possam utilizar o serviço de forma eficiente. Listas de discussão devem também ser criadas para que as equipes possam debater assuntos de interesse geral. Estas listas devem ser preparadas para incluir em seu conteúdo, apenas os indivíduos realmente designados para debater o assunto. Listas podem ser criadas para tratar de assuntos diversos, envolvendo equipes específicas ou todos os indivíduos de um projeto. As listas podem ser criadas, configuradas e destruídas à medida do necessário. Cabe ao 103
6 gerente de comunicação, através dos recursos disponibilizados pelo ambiente, a responsabilidade por manter as listas. comunicação síncrona: quadros de discussão - Para a forma síncrona de comunicação, o ambiente deve propiciar serviços como tele-conferência, vídeo conferência e quadros de discussão. Neste trabalho é adotada como principal elemento da comunicação síncrona o quadro de discussão, pela simplicidade e facilidade de implementação. agenda - Durante as discussões importantes ao projeto, sejam nas reuniões comuns ou nas reuniões de revisões, normalmente são criadas agendas para as reuniões e disseminado o material necessário para que as reuniões possam ser executadas com eficiência. As agendas são importantes, pois mantêm os indivíduos informados sobre o andamento das discussões ao longo do tempo. Os serviços de agenda juntamente com os serviços de comunicação (mensagens e listas de discussão) devem atender os requisitos de reunião. O agendamento eletrônico das reuniões permite a todos os participantes das reuniões acompanharem a programação da reunião consultando o Scheduler. A preparação e as modificações no cronograma devem ser feitas por um gerente responsável por tais tarefas. O serviço de agendamento eletrônico deve também avisar (serviço de comunicação-mensagens) os participantes dos últimos eventos ocorridos ou a acontecer. compartilhamento temporário A autoria cooperativa refere-se à possibilidade de mais de um indivíduo trabalhar na confecção de um mesmo produto de forma simultânea. Para que isto seja efetivado, o ambiente deve ser o meio pelo qual estes produtos possam ser tramitados. Independente do local do armazenamento ou plataforma computacional, o produto deve ser colocado em uma 104
7 determinada área (temporária) para que possa ser acessado. Todas as referências sobre o produto são também disponibilizadas para os participantes da autoria do produto. A palavra chave que descreve este serviço é compartilhamento, o que significa, que em determinado momento, pessoas estarão compartilhando dados ou informações. Algumas soluções de mercado como ferramentas CASE ( Computer Assisted Software Engineering ), permitem a autoria cooperativa através de servidores de bancos de dados. Apesar de produtos de mercado já estarem prontos para utilização, sua integração ao ambiente não é tarefa trivial e acredita-se que na maioria dos casos em que a autoria cooperativa seja necessária, uma solução de integração possa ser adotada, utilizando-se por exemplo produtos para interfaceamento aberto como ODBC ( Open DataBase Conectivity ) ou JDBC ( Open DataBase Conectivity para JAVA ). Serviço de biblioteca Durante a execução de um projeto, muitos documentos técnicos são utilizados. O ambiente deve manter sobre sua responsabilidade estes documentos utilizados como livros, relatórios técnicos, teses, artigos técnicos e anais de eventos. O serviço de Biblioteca deve manter e garantir o acesso às informações das publicações utilizadas no projeto de forma concorrente e consistente. lembrança (agenda pessoal) Muitas vezes os participantes podem solicitar ao ambiente, lembrá-los ou informá-los sobre determinadas ocorrências, seja no tempo ou acontecimento provido pelo serviço de coordenação. Cabe aos serviços de lembrança, permitir que os participantes do projeto possam registrar algo para ser lembrado, e manter seus registros. Este mecanismo pode ser muito útil para a gerência de processo pessoal como 105
8 proposto pelo Personal Software Process - PSP (Humphrey 1995 e1996). segurança Para ter acesso aos serviços prestados pelo ambiente, o participante de um projeto deve possuir uma identificação para o ambiente, ou seja, um controle de acesso deve ser estabelecido para garantir apenas a interação do ambiente com pessoas autorizadas. Além disto, o ambiente deve garantir que informações e produtos não públicos sejam vistas apenas por pessoas autorizadas. Paralelamente ao controle de acesso toda a segurança referente à rede deve ser também oferecida, mas depende da implementação específica, caso da utilização de filtros de rede ( firewall ) e detetores de intrusão. O Serviço de dicionário (Enciclopédia) O serviço de dicionário permite que todos os participantes do projeto possam manter e consultar os termos e conceitos adotados no projeto. Além dos conceitos relacionados diretamente ao projeto, os conceitos e termos relacionados ao próprio ambiente devem também ser descritos. Por exemplo, conceitos como modelo de processo, processos, ambiente de engenharia de software, agentes autônomos devem estar presente na base de dados do dicionário. As definições dos conceitos e termos serão portanto de responsabilidade da instituição (definições globais a todos os projetos) e dos projetos (definições de projeto). Serviço de documentação de escritório Este serviço permite aos participantes do projeto manter e recuperar documentação administrativa do dia a dia. São elementos como, por exemplo, memorandos, circulares internas, solicitações de viagens. Através de uma base de dados de documentos de escritório os projetos podem ter uma forma segura e rápida de tramitarem documentos. O serviço 106
9 de mensagens eletrônicas pode ser utilizado em conjunto com este serviço para avisar um participante de um novo documento disponível. Serviço de atendimento ao usuário - Ombudsman O participante do projeto pode via este serviço, colocar suas críticas, sugestões e dúvidas com relação a qualquer tópico relacionado ao ambiente e ao projeto. Estas críticas devem ser vistas de forma construtiva e de forma a permitir uma melhor adaptação do ambiente às necessidades dos indivíduos participantes do projeto. A Tabela 4.1 apresenta um mapeamento dos requisitos cooperativos para os serviços prestados pelo ambiente. Os outros requisitos apresentados no capítulo 3 (organizacionais, metodologias, etc) não são diretamente atendidos apenas pelos serviços, mas por todos os elementos que compõem a arquitetura lógica e física, por esta razão será apresentada uma discussão no capítulo conclusivo. TABELA 4.1 RELAÇÃO REQUISITO X SERVIÇO PRESTADO (CONTINUA) REQUISITOS COOPERATIVOS Comunicação assíncrona Comunicação síncrona PRINCIPAIS SERVIÇOS DO AMBIENTE Serviço de mensagens eletrônicas e de listas de discussão Serviço de quadros de discussão Apoio à autoria cooperativa coordenação de processos, Serviço de mensagens e Serviço de compartilhamento 107
10 TABELA 4.1 RELAÇÃO REQUISITO X SERVIÇO PRESTADO (CONCLUSÃO) Suporte a Reuniões Serviço de agenda, Serviço de mensagens e de lista, Serviço de compartilhamento, Serviço de coordenação de processos. Suporte a geração de idéias Construção de um vocabulário comum de Projeto Banco de documentos oficiais de projeto Banco de publicações técnicas atendimento ao usuário, Serviço de mensagens, Serviço de compartilhamento dicionário, Serviço de mensagens e listas. biblioteca. biblioteca Suporte a documentação de escritório documentação de escritório, Serviço de mensagens e de lista Apoio ao estabelecimento de um cronograma global Apoio à editoração de sugestões e reclamações Serviço de coordenação, listas, Serviço de compartilhamento, Serviço de atendimento ao usuário 108
11 4.3 A camada de Interação com o Usuário Conforme especificado anteriormente na seção de requisitos, o usuário deverá interagir com o ambiente a partir de qualquer ponto de uma rede de computadores, permitindo seu trabalho remoto e cooperativo. A camada de interação com o usuário ou camada de execução permite que os aplicativos que implementam os serviços sejam executados. Estes aplicativos para executarem em um ambiente de rede distribuído devem possuir recursos locais para isto. Atualmente os navegadores ( browsers ) proporcionam tal facilidade e são capazes de executarem em modo gráfico e ambiente de janelas, permitindo uma forma de interação simples e eficaz. Os navegadores são construídos para diversas plataformas, permitindo que as aplicações sejam executadas em qualquer tipo de plataforma. 109