<< Chapter < Page Chapter >> Page >

Já a eleição da solução é simplesmente a escolha de uma dentre as alternativas geradas, desde que essa sirva para a solução do problema. A escolha da solução deve ser realizada baseada em avaliações e experiência.

De volta ao nosso programa de ordenação, consideremos apenas uma de suas características: o algoritmo de ordenação a ser usado. Vamosobservar quantas alternativas um designer poderia gerar só a partir dessa característica.

Uma rápida pesquisa na internet retorna nove algoritmos que respeitam o requisito imposto anteriormente de crescimento do tempo de execução ( O ( n log n ) ): binary tree sort , heapsort , in-place merge sort , introsort , library sort , merge sort , quicksort , smoothsort , strand sort . Assim, esses nove algoritmos poderiam ser transformados em nove alternativas de design. Adicionalmente, um designer mais experiente em ordenação saberia que os dados de entrada podem definir o desempenho real do algoritmo, uma vez que uma das alternativas pode ter um ótimo desempenho para uma determinada entrada, enquanto outra alternativa, ainda que respeitando o mesmo desempenho assintótico O ( n log n ) , pode ter um péssimo desempenho real para a mesma entrada. Neste caso, ele definiria que dois algoritmos serão usados no design, de forma que, de acordo com os dados de entrada, o algoritmo de melhor desempenho real para esses dados seja escolhido em tempo de execução. Assim, ainda mais alternativas de design são geradas.

Devemos observar que a geração de alternativas poderia continuar indefinidamente caso o designer considerasse outros aspectos do problema. Dessa maneira, quando parar a geração de alternativas é um problema também a ser resolvido pelo designer, uma vez que problemas de design geralmente têm um número infinito de soluções em potencial. Essa noção de quando parar o processo de geração de alternativas, certamente, é adquirida com a experiência.

Representações

A representação é a linguagem do design. Apesar do real produto do processo de design ser a representação de um sistema de software que possibilita sua construção, descrever o sistema não é o único propósito das representações. A representação também facilita o próprio processo de design, uma vez que ajuda na comunicação dos interessados e também serve como registro das decisões tomadas.

representação de design
A linguagem do processo de design que representa o produto do design para sua construção e também dá suporte ao processo de design como um todo.

A representação facilita a comunicação porque torna as alternativas em produtos manipuláveis, que podem ser comunicados, avaliados, e discutidos, não só por seus criadores, mas também por outros interessados.

É importante observar que existem diversas dimensões a serem representadas numa única alternativa de design. Essas dimensões abrangem comportamento, estrutura, relações entre entidades lógicas e entidades físicas, entre outros. Essas dimensões são normalmente descritas em diferentes tipos de representações, que, em outro momento, serão chamadas de visões .

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