<< Chapter < Page Chapter >> Page >

É difícil validar soluções de design. A complexidade inerente ao problema faz surgir diversos pontos de possível validação em relação aos objetivos de design. No entanto, o problema reside na precisão da descrição dos objetivos. Normalmente, para problemas complexos, objetivos são descritos num alto-nível de abstração que dificulta ou impossibilita bastante a avaliação das soluções.

E, por fim, a maioria dos problemas de design aceita diversas soluções. Isso é algo natural a problemas de design: uma vez que diversas alternativas podem ser geradas a partir de um único problema de design, diversas soluções podem ser obtidas.

Níveis de design de software

O produto do processo de design é sempre uma solução de design. Apesar de ser a descrição que permite a construção do sistema, nada foi dito sobre o nível de detalhe contido nessa solução. Acontece que, na verdade, o design pode ocorrer em diversos níveis de detalhe.

De acordo com o Guia para o Corpo de Conhecimento em Engenharia de Software, o processo de design de software consiste em duas atividades: design de alto nível e design detalhado .

O design de alto nível, também conhecido como design arquitetural, trata de descrever a organização fundamental do sistema, identificando seus diversos módulos (e sua relações entre si e com o ambiente) para que se alcancem os objetivos propostos pelo cliente.

design arquitetural
Descreve a arquitetura do software ou, em poucas palavras, como o software é decomposto e organizado em módulos e suas relações.

Ao contrário do design de alto nível, o design detalhado se preocupa com a descrição detalhada de cada módulo possibilitando a construção e se adequando ao design de alto nível.

design detalhado
Descreve o comportamento específico e em detalhes dos módulos que compõem o design arquitetural.

Apesar dessa divisão conceitual de design em duas atividades, essa divisão pode não acontecer durante o processo de desenvolvimento do software. Algumas vezes, o designer – ou quem assume seu papel – realiza ambas as atividades em paralelo, concebendo assim um produto de design que permitirá tanto o alcance dos requisitos de qualidade (que normalmente é tarefa da arquitetura), quanto a construção precisa do sistema por meio de seus detalhes. No entanto, adotaremos a separação conceitual das duas atividades de forma que possamos nos focar no design arquitetural, que é o principal assunto desse livro e que será discutido nos próximos capítulos.

Princípios e técnicas de design de software

Antes de iniciarmos nossos estudos em Arquitetura de Software, gostaríamos de lembrar alguns princípios e técnicas que são essenciais ao design de software.

Há diversos princípios, técnicas, e abordagens nessa área que geralmente resultam em bons produtos de design de software. Uma vez que há muitos livros e artigos sobre esse assunto, gostaríamos apenas de fazer uma breve exposição do assunto nessa seção, fazendo com que o leitor relembre os princípios e técnicas – caso já os conheça – e indicando referências para um maior aprofundamento sobre o assunto. Os princípios, técnicas e abordagens essenciais para um designer que apresentaremos são as seguintes:

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?

Ask