Imagem de Boa Prática: Utilizar Arquiteturas de Componentes

../../process/glossary.htm#architecture -- This hyperlink in not present in this generated websiteArquitetura ../../process/glossary.htm#component-based_development_(CBD) -- This hyperlink in not present in this generated websitebaseada em componentes com ../../process/glossary.htm#layer -- This hyperlink in not present in this generated websitecamadas

Tópicos

O que Significa Arquitetura de Componentes? Para o início da página

Uma Arquitetura de Componentes é uma arquitetura baseada em componentes substituíveis, conforme descrito em Conceitos: Componente. Como as Arquiteturas de Componentes baseiam-se em componentes independentes, substituíveis e modulares, elas ajudam a gerenciar a complexidade e encorajam a reutilização.

Ênfase Arquitetural Para o início da página

Os casos de uso orientam o RUP (Rational Unified Process) de ponta a ponta durante todo o ciclo de vida, mas as atividades de design são centralizadas na noção de ../../process/glossary.htm#architecture -- This hyperlink in not present in this generated websitearquitetura de sistema e, em sistemas de software intensivo, na arquitetura de software. O foco principal das iterações iniciais do processo, principalmente na fase de elaboração, é produzir e validar uma ../../process/glossary.htm#software_architecture -- This hyperlink in not present in this generated websitearquitetura de software, que no ciclo de desenvolvimento inicial tem a forma de um protótipo arquitetural executável que evolui gradualmente até tornar-se o sistema final em iterações posteriores.

Arquitetura executável significa uma implementação parcial do sistema criada para demonstrar funções e propriedades selecionadas do sistema, em particular aquelas que satisfazem requisitos não funcionais. A finalidade da arquitetura executável é diminuir os riscos relacionados a desempenho, rendimento do processamento, capacidade, confiabilidade e "etc", para que a capacidade funcional completa do sistema possa ser incluída na ../../process/glossary.htm#construction -- This hyperlink in not present in this generated websitefase de construção em uma base sólida, sem receio de interrupção.

Para obter uma introdução à noção de arquitetura, mais especificamente a arquitetura de software, e uma explicação da razão pela qual essa noção é crucial, consulte Conceitos: Arquitetura de Software.

O RUP fornece uma maneira metódica e sistemática de projetar, desenvolver e validar uma arquitetura. Oferecemos gabaritos para descrição da arquitetura, com os conceitos de várias visões arquiteturais, e para a captura de estilo de arquitetura, regras de design e restrições. A disciplina Análise e Design contém atividades específicas que visam identificar restrições arquiteturais e elementos arquiteturalmente significativos, bem como orientações específicas sobre como fazer escolhas arquiteturais. O processo de gerenciamento mostra como o planejamento das iterações iniciais considera o design de uma arquitetura e a resolução dos principais riscos técnicos. Consulte a disciplina ../../process/workflow/ovu_mgm.htm -- This hyperlink in not present in this generated websiteGerenciamento de Projeto e todas as atividades associadas à Função: Arquiteto de Software para obter informações adicionais.

A arquitetura é importante por vários motivos:

  • Ela permite obter e manter controle intelectual do projeto, gerenciar sua complexidade e manter a integridade do sistema.

Um sistema complexo é mais que a soma de suas partes; mais que uma sucessão de pequenas decisões táticas independentes. Ele precisa ter alguma estrutura unificada e coerente para organizar essas partes de modo sistemático e fornecer regras precisas sobre como fazer o sistema se desenvolver sem que sua complexidade "cresça" além da compreensão humana.

A arquitetura determina os meios para se obter melhor comunicação e entendimento em todo o projeto, estabelecendo um conjunto de referências e um vocabulário comuns, com os quais se discutem questões de design.

  • É uma base efetiva para reutilização em larga escala.

Articulando claramente os principais componentes e as interfaces críticas entre eles, uma arquitetura permite raciocinar sobre a reutilização, tanto interna, que é a identificação de partes comuns, como externa, que é a incorporação de componentes prontos para uso. No entanto, ela também permite a reutilização em uma escala maior: a reutilização da própria arquitetura no contexto de uma linha de produtos que trata de funcionalidades diferentes em um domínio comum.

  • Ela fornece uma base para gerenciamento de projeto.

Planejamento e formação de equipe estão organizados de acordo com os principais componentes. Decisões estruturais fundamentais são tomadas por uma equipe pequena e coesa de arquitetura. Elas não são distribuídas. O desenvolvimento é dividido entre um conjunto de equipes pequenas, cada uma sendo responsável por uma ou várias partes do sistema.

Desenvolvimento com Base em Componentes Para o início da página

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

  • O aplicativo é construído a partir de componentes executáveis separados que são desenvolvidos de modo relativo e independentemente um do outro, possivelmente por equipes diferentes. Eles são chamados no RUP de "componentes de montagem". Consulte Conceitos: Componente para obter informações mais detalhadas.
  • O upgrade do aplicativo pode ser feito em incrementos menores, fazendo upgrade apenas de alguns componentes de montagem que formam o aplicativo.
  • Os componentes de montagem 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.

Os componentes de montagem resultam do seguinte:

  • Ao definir uma arquitetura muito modular, você identifica, isola, projeta, desenvolve e testa componentes bem formados. Esses componentes podem ser testados individualmente e gradualmente integrados para formar o sistema inteiro.
  • Além disso, alguns desses componentes podem ser desenvolvidos para serem reutilizáveis, especialmente os componentes que fornecem soluções comuns para uma ampla variedade de problemas comuns. Esses componentes reutilizáveis, que podem ser maiores que apenas conjuntos de utilitários ou de bibliotecas de classes, formam a base de reutilização dentro de uma organização, aumentando a produtividade e a qualidade geral do software.
  • Mais recentemente, o advento de infra-estruturas de componentes comercialmente bem-sucedidas, como CORBA, Internet, ActiveX, JavaBeans, .NET e J2EE, alavancou todo um segmento de mercado de componentes prontos para uso em vários domínios, permitindo comprar e integrar componentes em vez de desenvolvê-los internamente.

O primeiro ponto na lista precedente explora os conceitos antigos de modularidade e de encapsulamento, tornando ainda mais importantes os conceitos subjacentes à tecnologia orientada a objetos. Os dois últimos pontos na lista deslocam o desenvolvimento de software da programação, uma linha por vez, para compor o software por meio da montagem de componentes.

O RUP suporta o desenvolvimento com base em componentes destas maneiras:

  • A abordagem iterativa permite identificar componentes progressivamente e decidir quais desenvolver, quais reutilizar e quais comprar.
  • O foco na arquitetura de software permite articular a estrutura, os componentes e os modos de integração, que incluem os mecanismos e padrões fundamentais por meio dos quais eles interagem. Isso, por sua vez, suporta os aspectos de planejamento do gerenciamento de projeto, em que as dependências de componentes podem ajudar a determinar quais componentes podem ser desenvolvidos simultaneamente e quais seqüencialmente.
  • Os conceitos, como pacotes, subsistemas e camadas, são utilizados durante a Análise e Design para organizar componentes e para especificar interfaces.
  • Os testes são primeiramente organizados em componentes e, em seguida, em conjuntos maiores de componentes integrados.

Para obter informações adicionais sobre componentes, consulte Conceitos: Componente.



Rational Unified Process   2003.06.15