Diretriz: Abstrair da Complexidade
Relacionamentos
Descrição Principal

O desenvolvimento de software é uma perseguição caracterizada pela complexidade. Pode ter várias formas, tais como a acomodação de requisitos complexos, tecnologia ou dinâmica de equipe. Elevar o nível da abstração ajuda a controlar esta complexidade com um progresso mensurável, apesar da dificuldade inerente da tarefa.

Seguem abaixo sugestões de diversas estratégias que ajudam a abstrair da complexidade

Alavancar Padrões

Os padrões ajudam a obter vantagens de técnicas comprovadas para a solução de problemas comuns. Você pode se beneficiar do conhecimento de profissionais experientes e evitar a "reinvenção da roda", como se costuma dizer. O uso dos padrões é um aspecto crucial em uma abordagem de desenvolvimento centrada em arquitetura, porque ajuda a reduzir as incertezas e as diversidades de uma solução, melhorando assim a qualidade.

Veja Concept: Padrão, para mais informações.

Projete a arquitetura com componentes e serviços

Esta estratégia ajuda a controlar a complexidade do software pela divisão do sistema em um grupo de subsistemas fracamente acoplados e altamente coesivos. Esta abordagem tem como benefícios a habilidade de organizar a equipe em torno de um grupo de objetivos menores e mais controláveis, e a habilidade de substituir partes do sistema sem perturbar sua coesão geral. A exposição dos serviços incentiva a reutilização tornando a funcionalidade do sistema mais fácil de ser compreendida. Focar nos serviços torna possível compreender o que o sistema faz de uma perspectiva técnica sem necessariamente ter que compreender os detalhes de como o sistema funciona.

Veja Concept: Componente para mais informações.

Promova ativamente a reutilização

A incorporação de software existente em uma arquitetura global ajuda a reduzir o custo e melhorar a qualidade devido à reutilização de software que comprovadamente funciona, ao invés do desenvolvimento a partir do zero. Também ajuda a reduzir a sobrecarga de manutenção eliminando a duplicidade no software. Embora seja normalmente difícil de controlar, um projeto ou uma empresa podem obter benefícios significativos de uma estratégia de reutilização bem executada.

Principais perspectivas do modelo

A modelagem ajuda a aumentar o nível de abstração porque simplifica idéias complexas e representa-as visualmente, como ilustrações. Bons modelos podem transmitir informações que ajudem a equipe a visualizar, especificar, construir e documentar o software. A Linguagem Unificada de Modelagem (UML) fornece uma abordagem com padrão industrial para modelagem de software.

Ao aplicar esta estratégia, você pode usar as seguintes técnicas:

  • Identificar as principais perspectivas: Foco na modelagem daquilo que importa. Poucos (ou nenhum) projetos se beneficiam da modelagem de todo o design com um grande nível de detalhe. Certifique-se de que você compreende porque está modelando algo e quem se beneficiará com isso.
  • Comunicar as principais perspectivas arquiteturais: Mesmo que você escolha modelar muito pouco do seu design, normalmente é vantajoso produzir os diagramas que comunicam os principais aspectos arquiteturais do sistema. Transmitir a panorâmica do design a toda a equipe ajuda-lhes a compreender a abordagem geral e a desenvolver um software coesivo.
  • Esboçar o Design: Nem todos os modelos necessitam ser detalhados completamente e apresentados em uma ferramenta de modelagem de software. É perfeitamente aceitável (se não desejável) produzir esboços desenhados a mão em papel ou em um quadro branco quando você está explorando e comunicando a arquitetura e o design com sua equipe. Você pode usar uma câmera digital ou um quadro branco eletrônico para capturar estes diagramas e compartilha-los. Para muitos projetos pequenos, isto é normalmente tudo o que você precisa. Veja http://www.agilemodeling.com/, Para mais informações.
  • Usar uma ferramenta de modelagem se necessário: Se os membros da equipe estiverem alterando modelos durante todo o projeto, compartilhando padrões e estruturas, depurando o design, descrevendo o comportamento, etc., então será difícil trabalhar com fotos estáticas ou papel. A equipe pode querer capturar o design em uma ferramenta de modelagem de software. Além de comunicar o design à equipe, um outro benefício desta ferramenta é a geração do código estrutural dos modelos. Muitas ferramentas de desenvolvimento de software permitem que você veja o código na forma de modelos, tornando mais fácil o entendimento dos aspectos estáticos e dinâmicos de um código complexo.
  • Acordar uma notação padrão: Em um ambiente de equipe, é importante que os outros possam compreender seus diagramas sem muita explicação. Escolher uma notação padrão permite que os outros compreendam rapidamente seus diagramas sem ambigüidade. A Linguagem Unificada de Modelagem é um exemplo de uma notação largamente conhecida.
Informações Adicionais