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.
|