<< Chapter < Page Chapter >> Page >

Manutenibilidade

A manutenibilidade é uma qualidade, às vezes, negligenciadapelos usuários, mas muito importante aos desenvolvedores. Ela é a capacidadede o software ser modificado em seu processo de evolução. Podemoscitar as seguintes características do atributo de manutenibilidade:a analisabilidade, a modificabilidade e a testabilidade.

  • analisabilidade : é o grau de facilidade comque podemos procurar por deficiências no software ou por partes quedevem ser modificadas para algum fim. Os níveis de modularidade,de separação de preocupações e de acomplamento do softwarese relacionam a essa característica.
  • modificabilidade : é a capacidade de realizarmudanças de implementação no sistema. Essa característicatambém está relacionada às métricas clássicas de software,como níveis de coesão e acoplamento e complexidade ciclomática.Quanto mais modificável o software, menor o impacto da mudançaem áreas – teoricamente – não relacionadas às mudanças.

    No SASF, por termos o módulo de transmissão de vídeosseparado do gestor de usuários, qualquer mudança ou adiçãonos formatos suportados para transmissão não deveafetar ao módulo de usuários. Outra separação comum emsistemas web que também foi adotada no SASF é aaplicação do padrão Model-View-Controller (MVC) Falamos mais do padrão arquiteturalMVC quando apresentamos as ferramentas de designde software no capítulo sobre técnicas de design. , que separa as interfaces de usuário de lógica denegócio. Isso permite modificações na lógica de negócio quenão afetam as interfaces de usuário e vice-versa.

  • testabilidade : é a capacidade de o softwareter suas mudanças validadas. Para um software ser testável,antes de tudo, devemos conhecer seus objetivos. Mas, além disso,precisamos que o sistema seja capaz de executar de formacontrolada a fim de podermos medir os resultados obtidosa partir de entradas conhecidas. Sistemas pouco testáveis sãoaqueles os quais sua execução é muito cara, pode custar vidasou, simplesmente, não podemos medir seu comportamento deterministicamente.Vale observar que muitos sistemas distribuídos, se mal projetados,podem se encaixar nesse último tipo.

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