<< Chapter < Page Chapter >> Page >

No SASF, se dividirmosos desenvolvedores em mais vários times, é comum que haja uma maiorinteração entre os membros de um mesmo time do que entre times diferentes.Vamos considerar que delegamos a um time a implementação do serviçoresponsável pelas funcionalidades do módulo Cadastro de Filmes , já apresentado no [link] , e a outro time o módulo Transmissor de Filmes . Para que a implementação dos dois módulospossa ser paralelizada e para que sejam evitadas suposições errôneasou desnecessárias por parte de cada time sobre outros módulos(e, portanto, seja menos custosa a integração), devemos definircuidadosamente as interfaces dos módulos, sejam os métodos disponíveis,a forma de comunicação e os tipos de dados usados como parâmetrosou retorno.

A integridade conceitual também se mostra necessária durantea inclusão de novos membros à equipe de desenvolvimento e ao longo da evoluçãoe manutenção do software. Novos membros precisam de uma descrição da arquiteturaporque normalmente são inseridos ao time sem qualquer conhecimento préviodo design. Já ao longo da evolução e manutenção do software, o conhecimentodas regras de design a serem seguidas se faz necessário para que os requisitosde qualidade permaneçam implementados, mesmo durante mudanças. O exemplo aseguir ilustra uma regra de design para que um software de manipulaçãode imagens continue exercendo alta portabilidade.

O software de manipulação de imagens ImageJ ImageJ - Image Processing andAnalysis in Java : (External Link) desempenha bem dois atributos de qualidade: a extensibilidadee a portabilidade. Sua extensibilidade é garantida por ter sua arquiteturaser baseada no uso de plugins . Com isso, ele é composto de umnúcleo de funcionalidades básicas e provê meios para que novas funcionalidadessejam adicionadas em tempo de execução. Já sua portabilidade é garantidapor ele ter seu núcleo e plugins implementados usando a linguagem de programação Java, permitindosua execução em qualquer ambiente que disponha da máquina virtualJava.

Como o código-fonte do ImageJ é de domínio público, qualquer programador pode baixá-lo, usá-loe escrever novos plugins para ele. Inclusive, é possível usar o mecanismo Java Native Interface (JNI) para realizar chamadas a bibliotecas escritas em outraslinguagens. No entanto, se o programador deseja manter o alto grau de portabilidadedo ImageJ , ele deve respeitar a regra de designdo software que é de nunca realizar chamadas nativas durante a implementaçãode novas funcionalidades.

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