Roteiro: Desenvolvimento de Soluções de Componentes
Tópicos
O desenvolvimento baseado em componentes é uma variação do desenvolvimento geral de aplicativos em que:
- O aplicativo é criado a partir de componentes executáveis discretos que são desenvolvidos e implantados com relativa independência entre si, possivelmente por equipes distintas.
- O aplicativo pode ser atualizado em incrementos menores através da atualização de apenas alguns componentes que o compõem.
- Os componentes podem ser compartilhados entre aplicativos, criando oportunidades para reutilização, mas também criando dependências entre os projetos.
- Os aplicativos baseados em componentes tendem a ser distribuídos, apesar de não haver uma relação precisa com o fato de serem baseados em componentes.
A adaptação do Rational Unified Process (RUP) para lidar com esses desafios é discutida abaixo.
O fluxo de trabalho básico da Fase de Iniciação é aplicável, com as seguintes extensões ou variações:
Gerenciamento de Projeto
- Detalhamento do Fluxo de Trabalho: Avaliar Escopo e Risco do Projeto
A escolha de uma abordagem de componente altera a natureza de determinados riscos e introduz riscos novos. Especificamente:
- componentes externos aumentam o risco, pois introduzem elementos críticos fora do controle direto da equipe de projeto.
- componentes externos podem reduzir o tempo de desenvolvimento, reduzindo os riscos do recurso
- componentes externos podem distorcer a arquitetura do sistema se impuserem suas próprias restrições de arquitetura
- Detalhamento do Fluxo de Trabalho: Elaborar Plano de Desenvolvimento de Software
Na Atividade: Planejar Fases e Iterações, o plano para a fase de Construção pode mostrar a divisão do projeto em dois caminhos distintos, mas paralelos: um que desenvolve os componentes específicos do aplicativo e específicos do domínio (organizados nas camadas superiores da arquitetura. Consulte Conceitos: Divisão em camadas) e os componentes não específicos do aplicativo e do domínio, organizados em camadas inferiores. Em alguns casos, os componentes reutilizáveis serão desenvolvidos por equipes de desenvolvimento gerenciadas de modo independente. A decisão de introduzir caminhos paralelos é, em grande parte, uma questão de equipe e de recursos introduzida por um desejo de gerenciar componentes reutilizáveis como recursos valiosos, independentes dos aplicativos em que estiverem implantados.
Requisitos
Teste
Ambiente
O fluxo de trabalho básico da Fase de Elaboração é aplicável, com as seguintes extensões ou variações:
Requisitos
Análise e Design
- Detalhamento do Fluxo de Trabalho: Projetar Componentes
A Atividade: Design do Subsistema amplia o refinamento do design dos componentes, identificando classes dentro deles que fornecem o seu comportamento real. Nos primeiros estágios da fase de Elaboração, provavelmente há uma única classe, um tipo de 'proxy de subsistema/componente' que atua como um stub para simular o comportamento do componente com finalidades de criação de protótipo de arquitetura. Mais tarde, o comportamento dessa classe é distribuído para uma colaboração de classes contidas no subsistema. Essas classes contidas são refinadas na Atividade: Design da Classe.
- Detalhamento do Fluxo de Trabalho: Projetar o Banco de Dados
O foco na elaboração é garantir que a estratégia de persistência seja ajustável e que o design do banco de dados e o mecanismo de persistência suportem os requisitos de taxa de transferência do sistema. Classes persistentes são identificadas e mapeadas para o mecanismo de persistência. Os casos de uso intensivo de dados são analisados para garantir que os mecanismos sejam ajustáveis. O design do mecanismo de persistência e banco de dados é avaliado e validado em conjunto com os Detalhamentos do Fluxo de Trabalho de Teste.
Implementação
Teste
- Detalhamentos do Fluxo de Trabalho: Definir Missão de Avaliação, Verificar Abordagem do Teste, Testar e Avaliar, Realizar Missão Aceitável, Aprimorar Vantagens do Teste
O foco das atividades de teste na Elaboração é a validação da arquitetura. Para um sistema baseado em componente, esse foco traduz-se em:
- testar as interfaces entre componentes para garantir que as fronteiras do componente sejam adequadas e
- maior concentração no teste de desempenho, especialmente nos testes de escala de desempenho, para garantir que poderá suportar os volumes de transação previstos
É necessário avaliar também todas as suposições básicas existentes no framework do componente. Essas incluem, em geral, a capacidade de ajuste e a taxa de transferência dos mecanismos de gerenciamento de persistência e transação, em que suposições ocultas feitas pelo designer do mecanismo muitas vezes minam efetivamente a arquitetura do aplicativo, se ela não entender essas suposições. Um exemplo clássico é o Microsoft Transaction Server, cujo requisito para que os objetos de transação sejam 'sem estado' surpreendeu muitos arquitetos de software incautos.
O fluxo de trabalho básico da Fase de Construção é aplicável, com as seguintes extensões ou variações:
Gerenciamento de Projeto
- Detalhamento do Fluxo de Trabalho: Planejar Próxima Iteração
Com a utilização dos subsistemas de implementação como 'unidades lógicas de responsabilidade', o trabalho de construção pode ser dividido em dois ou mais "caminhos" paralelos: um destaca a funcionalidade específica do aplicativo, e um ou mais destacam componentes genéricos, reutilizáveis. Isso, é claro, depende da existência de recursos suficientes para obter esforços de desenvolvimento paralelos. A capacidade de dividir as equipes de desenvolvimento e de trabalhar em paralelo depende inteiramente da estabilidade da arquitetura e, mais especificamente, da qualidade e estabilidade das interfaces entre componentes. Um esforço concentrado na fase de Elaboração permitirá essa divisão.
Análise e Design
Implementação
Teste
O teste de desempenho continua sendo importante, mas há um foco crescente no teste funcional. A abrangência da funcionalidade, o teste de regressão da funcionalidade existente e a conformidade com as expectativas de desempenho precisam ser tratados.
- O release do produto tende a ser incremental e contínuo no ambiente da Web e menos concentrado na distribuição tradicional de mídia. O planejamento do release deve ser ajustado adequadamente.
- O suporte a produção é, cada vez mais, o foco da fase.
- As atividades de conversão de dados são realizadas.
Copyright
(c) 1987 - 2001 Rational Software Corporation
| |
|