GustavoHenrique.net

  • About
  • Contact
  • RSS Feed
  • Twitter

 

31
May

Qualidade de Software

By gustavohenrique|Sem categoria|Be the first to comment!

Recentemente estive analisando alguns projetos de softwares open source com o objetivo de colaborar no desenvolvimento. A grande maioria não possui rotinas de testes, comentários em código ou qualquer tipo de documentação útil aos novos desenvolvedores. Assim resolvi falar um pouco sobre qualidade de software do ponto de vista da construção.

Um software tem característica de qualidades internas e externas. As características externas são aquelas que os usuários tem conhecimento e se preocupam, por exemplo, se o software é fácil de usar. As características internas são mais preocupações dos programadores, por exemplo, se o software é fácil de modificar. Os usuários querem saber se o software é fácil de usar e não fácil de modificar. Querem saber se o software funciona corretamente e não se o código é legível.

São características de qualidade externas:

  • Adaptabilidade
    Capacidade de alterar o ambiente de maneira simples sem necessidade de modificação no software.
  • Confiabilidade
    Capacidade do software funcionar corretamente com o mínimo de falhas.
  • Eficiência
    Capacidade de funcionar corretamente e fornecer o desempenho adequado com o uso mínimo de recursos disponíveis.
  • Integridade
    Garante integridade dos dados acessados e restrição de acessos ao software.
  • Precisão
    Grau de precisão das informações geradas pelo software.
  • Robustez
    Capacidade do software continuar funcionando na presença de dados inválidos ou condições inesperadas.
  • Usabilidade
    Facilidade dos usuários aprenderem a utilizar o software.

São características de qualidade internas:

  • Capacidade de Teste
    Capacidade com que se pode fazer testes de unidades e de integração para verificar se o software satisfaz os requisitos.
  • Flexibilidade
    Facilidade de modificar o software para usos diferentes daquele para o qual foi projetado.
  • Inteligibilidade
    Facilidade de compreender a coerência de um software em um nível superior do que a legibilidade proporciona.
  • Legibilidade
    Facilidade de entender o código-fonte do software.
  • Manutenibilidade
    Facilidade para modificar um software ou corrigir problemas.
  • Portabilidade
    Capacidade de modificar o software para uso em ambientes diferentes daquele para o qual foi projetado.
  • Reusabilidade
    Facilidade de reutilizar partes do software em outros projetos.

Algumas dessas características têm diferentes variações de significados. As diferenças entre elas não são completamente claras e algumas vezes as características internas afetam as externas. Um software que não é flexível não pode ser aprimorado de acordo com as solicitações dos usuários, o que, por sua vez, afeta a característica externa de usabilidade.
A questão é que algumas características da qualidade de software são acentuadas para ajudar aos usuários enquanto outras tornam a vida do programador mais fácil. O que falta em muitos projetos de código aberto é uma atenção especial às características de qualidade internas.
Espero que esse cenário mude em breve.

Bookmark It

Add to Del.icio.us Add to Diigo Add to Facebook Add to Google Bookmarks Add to LinkedIn Add to Mister Wong Add to Twitter Add to Yahoo My Web
Tagged as: agile, qa, tdd
Add your comment →

0 Comments

Leave your comment below! Cancel Reply

View More Posts:
  • ←
  • →

Tags

admin Django extjs firewall grails jquery KingHost liberações Linux manual model modelform mod_wsgi moeda brasileira mudanças mysql nível de serviço oo PagSeguro pdf php PIL pisa problemas proxy python qa qos real relacionamento roteamento service desk shell script sites tdd tipsforlinux traducao ubicomp ubuntu urllib virtualhost Webservices wikipedia xsol __init__

Recent Posts

  • Configurando um servidor LDAP no CentOS 6.2
  • Introdução ao padrão MVC no Ext JS 4
  • Virtualização com KVM
  • Autenticação Facebook no Grails
  • Grails com Sqlite3 no Ubuntu 11.04
  • Deploy no tomcat usando django-jython
  • Deploy múltiplas versões do Django no Nginx com VirtualEnv
  • Comandos básicos do Git
  • Introdução ao Apache Wicket
  • Feliz 2011

Archives

Categories

My tweets

  • @tregismoreira Genesis 7200 com android 4 3 days ago
  • @marcomaciel blz! 1 week ago
  • @marcomaciel hack com qualquer linguagem em qualquer plataforma pra mim ta valendo! #soudev 1 week ago
  • Fui instalar o android 2.3 da lg e agora meu celular não liga. #ffuuu 1 week ago
  • Tentando gerar uma NFe e não consigo =/ #stacktrace Impressionante como todos os sites e apps do governo são ruins. 2 weeks ago
  • More updates...

Powered by the inLine Minimal WordPress Theme