Conceito: Desenvolvendo Soluções de Componentes
O desenvolvimento baseado em componentes é uma variação do desenvolvimento geral de aplicativos. Nessa diretriz, "componente" é utilizado para referir-se a esses componentes desenvolvidos e implementáveis de modo independente.
Descrição Principal
Atividades durante o ciclo de vida:
  1. Introdução
  2. Atividades da Fase de Iniciação
  3. Atividades da Fase de Elaboração
  4. Atividades da Fase de Construção
  5. Atividades da Fase de Transição
Tópicos adicionais:

Introdução

O desenvolvimento baseado em componentes é uma variação do desenvolvimento geral de aplicativos em que:

  • O aplicativo é montado a partir de componentes executáveis separados que são desenvolvidos e implementados de modo relativo e independente um do outro, possivelmente por equipes diferentes.
  • É possível fazer upgrade do aplicativo em incrementos menores, fazendo upgrade apenas de alguns componentes que constituem o aplicativo.
  • Os componentes podem ser compartilhados entre os aplicativos, criando oportunidades para reutilização, mas também criando dependências entre projetos.
  • Apesar de não haver uma relação estrita com o fato de serem baseados em componentes, os aplicativos baseados em componentes tendem a ser distribuídos.

Em toda esta página, "componente" é utilizado para referir-se a esses componentes desenvolvidos e implementáveis de modo independente. No entanto, em qualquer outra parte no RUP, utilizaremos o termo "componente" no sentido mais geral, descrito em Conceito: Componente e qualificaremos conforme necessário.

A adaptação do RUP (Rational Unified Process) para lidar com desafios de desenvolvimento com base em componentes é discutido a seguir.

Atividades da Fase de Iniciação

O fluxo de trabalho básico para a Fase de Iniciação é aplicável, com as seguintes extensões ou variações:

Gerenciamento de Projeto

  • Atividade: Conceber Novo Projeto
  • O foco da Tarefa: Desenvolver Caso de Negócio é ajustado para considerar que a utilização de componentes altera a estrutura do custo de desenvolvimento. Em especial, o custo de desenvolvimento de componentes diminui, mas há um esforço maior para identificar componentes e garantir que os componentes selecionados atendam aos requisitos.

  • Atividade: Avaliar o Risco e Escopo 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
  • Atividade: Planejar o Projeto
  • Na Tarefa: Planejar Fases e Iterações, o plano da fase de Construção pode potencialmente mostrar a divisão do projeto em duas trilhas diferentes, porém paralelas: uma que desenvolve os componentes específicos do aplicativo e específicos do domínio (organizados nas camadas superiores da arquitetura - consulte Conceito: Divisão em Camadas) e uma de componentes não específicos do aplicativo e não específicos 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 implementados.

Requisitos

Teste

Ambiente

  • Atividade: Preparar Ambiente para Projeto
  • Ao coletar e preparar diretrizes para o projeto, consulte Tarefa: Preparar Diretrizes para o Projeto para obter detalhes, considere a estrutura específica de componentes e as restrições impostas por ela. As diretrizes devem incluir como projetar e codificar utilizando a estrutura. Elas também devem fornecer orientação de teste sobre como verificar a conformidade com ambos, a própria estrutura do componente e as interfaces definidas entre os componentes.

Atividades da Fase de Elaboração

O fluxo de trabalho básico para a Fase de Elaboração é aplicável, com as seguintes extensões ou variações:

Requisitos

  • Atividade: Aperfeiçoar a Definição do Sistema
  • Tarefa: Detalhar os Requisitos de Software adicionalmente focaliza os requisitos técnicos e não-funcionais e as restrições impostas nos componentes que são construídos ou comprados. Os requisitos específicos não funcionais a serem considerados são: tamanho, desempenho, memória ou espaço usado no disco, questões de licença em tempo de execução e restrições semelhantes que influenciarão a seleção ou a criação do componente.

Análise & Design

  • Atividade: Componentes de Design
  • A Tarefa: Design do Subsistema refina ainda mais o design dos componentes, identificando classes dentro do componente que fornecem o comportamento real do componente. 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 aperfeiçoadas na Tarefa: Design de Classe.

  • Atividade: 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. Em conjunto com as Atividades de Teste, o mecanismo de persistência e o design do banco de dados são avaliados e validados.

Implementação

Teste

  • Atividades: Definir a Missão da Avaliação, Verificar a Abordagem do Teste, Testar e Avaliar, Alcançar Missão Aceitável, Melhorar os Ativos 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:

    • utilizar as interfaces entre componentes, para garantir que as fronteiras do componente sejam adequadas
    • 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 na estrutura 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.

Gerenciamento de Projeto

  • Atividade: Planejar Próxima Iteração

    Utilizando os subsistemas de implementação como 'unidades lógicas de responsabilidade', o trabalho de construção pode ser particionado em duas ou mais "trilhas" paralelas: uma com foco na funcionalidade específica do aplicativo e uma ou mais com foco em 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.

Atividades da Fase de Construção

O fluxo de trabalho básico para a Fase de Construção é aplicável, com as seguintes extensões ou variações:

Gerenciamento de Projeto

  • Atividade: Planejar Próxima Iteração

    O planejamento da primeira iteração de construção foi descrito anteriormente, uma vez que ocorre no final da elaboração. O planejamento de iteração contínua e a capacidade de dividir as equipes de desenvolvimento e de trabalhar em paralelo dependem inteiramente da estabilidade da arquitetura e da qualidade e estabilidade das interfaces entre componentes.

Análise & Design

  • Atividade: Aperfeiçoar a Arquitetura e Atividade: Componentes de Design

    O foco da construção é a análise do restante dos casos de uso e a identificação de componentes apropriados e colaborações de componentes que realizam os casos de uso. A arquitetura existente é expandida e concluída, e os 'comportamentos internos' do componente são totalmente projetados e implementados.

  • Atividade: Projetar o Banco de Dados

    O foco da construção é a conclusão do design do banco de dados, garantindo que todas as classes persistentes sejam suportadas pelo banco de dados e pelo mecanismo de persistência. Este trabalho é executado em paralelo e iterativamente com o trabalho feito em Atividade: Aperfeiçoar a Arquitetura e Atividade: Componentes de Design. A organização ideal é a integração das equipes de componentes, com coordenação entre as equipes sobre problemas de persistência, para garantir um bom design do banco de dados.

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.

Atividades da Fase de Transição

  • A liberação do produto no ambiente da web tende a ser incremental e contínua e com menos foco na distribuição tradicional da mídia. O planejamento de release deve ser ajustado de acordo.
  • O suporte à produção é, cada vez mais, o foco da fase.
  • As atividades de conversão de dados são desempenhadas.