QUALIDADE DE SOFTWARE

USUARIO.EXCLUIDOS 03/05/2005 20:40:46
#81502
TESTANDO A QUALIDADE DE UM SOFTWARE
Por Luís Oliveira

Longe de ser uma orientação inequívoca e perfeita, o artigo que se segue tem por objetivo ser um auxiliar para profissionais com poder decisão e/ou avaliação, ligados á informática, na nunca fácil tarefa de avaliar qualitativamente uma aplicação proposta.

Há diversos critérios de avaliação, incluindo desde os subjetivos e imediatos até os requisitos da padronização e qualidade ISO específicos para esse fim, que sem dúvida são os mais eficientes, porém, não tão simples de serem analisados e demandam bom tempo.

Ao profissional, então, cabe uma tarefa de escolha/avaliação que acabará trazendo consigo todo o estigma do desempenho dessa aplicação. Uma escolha/avaliação mal feita pode encerrar prematuramente (e de fato encerra) uma carreira promissora.

Para auxiliar nesta tarefa, os critérios expostos pelo presente artigo conseguem não apenas uma avaliação mais próxima do que a simples avaliação subjetiva, mas também dividir a responsabilidade e o à'nus político inerente.

Também útil aos desenvolvedores e empresas de desenvolvimento, esse artigo é mais um balizador para identificar a conclusão de um bom projeto, mesmo que simples e pequeno.

Avaliação operacional:

São necessários três diferentes usuários relacionados a cada uma das funcionalidades do software.

Por se tratar de uma avaliação operacional, o fornecedor do software não tem como contrapor essa avaliação, ou seja, ela acaba sendo uma avaliação subjetiva, aquela que normalmente norteia as customizações (a adaptação do software ao cliente).

O fato de o fornecedor do software não poder argumentar costuma gerar certa celeuma, como toda avaliação subjetiva. Desta forma, o número três para os avaliadores, bem como sua isenção dos processos se tornam na medida mais equilibrada para minimizar as tendências de pré-julgamento.

Os usuários selecionados deverão atribuir uma nota válida, entre 0 e 10 para cada um dos itens listados abaixo.

1. Confiabilidade: O software desempenha todas as funcionalidades propostas, sem erros, independentemente de variantes lógicas ou funcionais (problemas físicos como equipamentos devem ser descartados aqui)?

2. Engenharia humana (ou usabilidade): As operações e funcionalidades do software podem ser realizadas com conforto, desempenho e de forma intuitiva (não é preciso "adivinhar" o quê fazer depois) pelos usuários?

3. Resposta á testes: é fácil testar a precisão dos resultados das funcionalidades do software?


Avaliação Técnica:

Para esta avaliação, são necessários dois técnicos com bons conhecimentos relacionados á normatização (ou normalização) de dados, lógica e metodologia de desenvolvimento, sendo recomendável o conhecimento dos serviços (dados, redes, componentes, sistema operacional) utilizados e disponíveis. é comum o uso de consultores e auditores independentes para estas avaliações. Altamente produtivo é o acesso aos códigos fontes, respeitado o direito do fornecedor em preservar seus componentes e módulos lógicos .

Este passo é realizado por dois avaliadores, escolhidos em comum acordo com o fornecedor do software, pois servirão de baliza em contraponto aos argumentos técnicos do próprio fornecedor.

Novamente, devem ser atribuídas notas entre 0 e 10 para os itens abaixo.

1. Eficiência: O software otimiza os tempos de execução e os consumos de espaço e recursos.

2. Legibilidade: O software é de fácil compreensão e manutenção nas lógicas de suas funcionalidades e estruturas.

3. Flexibilidade: O software é um produto que aceita facilmente a alteração de parà¢metros de configuração e a inclusão de novas funcionalidades.

4. Portabilidade: Após a criação, o conjunto de procedimentos pode ser transportado para outra plataforma (i.e. Banco de dados, linguagem de desenvolvimento, sistema operacional, idioma) de forma rápida.

5. Independência: O software consegue funcionar perfeitamente sem que outros softwares (ex. Editores, compactadores, formatadores, geradores de relatórios, arquivos de lote, scripts etc.) ou hardwares não-específicos (ex.: imprime apenas com matriciais) sejam instalados?

6. Compatibilidade usual: A compatibilidade usual é a capacidade de uma aplicação ser absorvida em um parque instalado, sem representar um volume considerável de adaptações nem implicar em aquisição de recursos. Para este item: Avalie qual a menor configuração requisitada pelo software para que ele funcione de forma aceitável (ex.: Em nenhuma hipótese, uma tela pode demorar mais de 2 segundos até ser visualizada, nem pode deixar controles (ou partes de controles) para "fora" da área útil do monitor ou da janela de trabalho). Avalie agora qual configuração apresenta os melhores resultados de desempenho com a aplicação. Com base na média das configurações anteriores, pontue: O parque instalado atual possui x% de seus equipamentos dentro da média entre o mínimo e o recomendável. Dez por cento desse percentual é a nota que deve ser atribuída á este item.


Avaliação Administrativa:

Gerentes, supervisores e diretores de CPD, Redes, TI, DBA, DBM e Telemática (profissionais com algum poder de decisão, escolha ou veto, estritamente áreas ligadas á informática e á informação) deverão pontuar, entre 0 e 10, os seguintes itens:

1. Relação entre o uso da aplicação e a perda de desempenho dos demais recursos do ambiente das estações de trabalho.

2. Relação entre o uso da aplicação e a perda de desempenho dos recursos dos serviços de dados.

3. Relação entre o uso da aplicação e a perda de desempenho dos recursos dos serviços de aplicações e componentes web.

4. Após seis meses de implantação, três chamadas mensais para correções em funcionalidades da aplicação equivale á um ponto, seis chamadas são dois pontos. Após um ano de uso, cada chamada trimestral equivale á um ponto. Nesta perspectiva, qual a pontuação para chamadas de correção?

5. O número de chamadas de manutenção para os serviços de dados (bases danificadas, reinício de serviços necessários, clusters em disco criados por falhas de acesso, blocos de consulta acessam conjuntos de registros sem uso de índices etc.) é alto.

6. O custo mensal total das chamadas de manutenção tem sido grande (3% ou mais) em proporção ao custo do software.

7. A implantação do software traz custos adicionais, tais como mudanças de plataformas, estações, serviços de dados, necessidade de manutenção mais freqà¼ente em outros recursos (não relacionados á manutenção da aplicação propriamente dita) etc.

8. O ganho em tempo e precisão proporcionado pelo software não compensa seu custo de manutenção á longo prazo.

9. Há outros softwares no mercado com maior estabilidade.

10. No caso de uma situação crítica, os serviços de suporte do fornecedor não reagem com a velocidade necessária ao negócio.

PONDERANDO OS RESULTADOS:

Encontre as médias ponderadas dos pontos entre os obtidos pelas duas avaliações iniciais (operacional e técnica). Deste total, subtraia a média ponderada dos pontos obtidos pela avaliação administrativa. O valor encontrado é o orientador para obter a classificação geral de qualidade do software.

O quadro apresenta os qualificadores das avaliações.

Pontos Qualidade Comentários
-10 á 02 Não há. Não é aceitável. Recuse ou refaça o software desde sua lógica de processos até a codificação final.
03 á 04 Baixa. Re-avalie as opções. Adote apenas provisoriamente, de forma consciente e deixe clara sua posição e seus motivos.
05 á 06 Aceitável. Pondere sobre evoluir o software em suas falhas, em parceria com o fornecedor. Pode servir á empresa nos objetivos propostos e ainda representar uma redução significativa de custos. Negocie a possibilidade de adquirir os códigos-fonte.
07 á 08 Mediana. Opção saudável. A vida útil da aplicação será razoavelmente tranqà¼ila e suas falhas estarão longe de afeta-lo como profissional. Provavelmente o software já esteja homologado por algum concorrente de sua empresa.
09 á 10 Alta. A escolha/avaliação não poderia ser melhor. Ainda assim, não espere que nunca ocorram erros e falhas. Os custos mais altos serão compensados com o desempenho e o baixo índice de reflexos negativos e de manutenção.

Lembre-se de que esta é apenas uma avaliação superficial, um dos vários métodos disponíveis. Porém, é razoavelmente simples e apresenta resultados eficientes para a adoção (ou negociação) de um software do qual se espera uma vida útil mediana (até 5 anos), poupando custos e otimizando recursos com boa margem de segurança.

Espero que seja útil.
GABRIEL.LOGAN 03/05/2005 20:58:52
#81504
Achei este Tópico muito útil para quem pretende construir softwares de grande porte e até para nós que desenvolvemos pequenos softwares. Por isso estou colocando este Tópico em Destaque.
LCSD 03/05/2005 21:53:23
#81516
Professor

Eu ainda não li, mas amanhã sem falta terei o prazer de mais este artigo bem elaborado, mas uma dúvida me vem a mente:

Você pediu autorização ao Luis Oliveira para Publicar?
[s41]

Eu estou querendo preservar os Direitos Autorais dele, sabe como é não é?
[s92]

Boa noite
[s50]
USUARIO.EXCLUIDOS 04/05/2005 08:49:51
#81533
De fato.
Por esse motivo citei o nome do autor do artigo.
Mas não creio que ele vá cobrar os direitos autorais por eu disponibilizar aqui no site. Esse Luís Oliveira tá bem de vida, não liga mais para os pobres.
USUARIO.EXCLUIDOS 04/05/2005 15:35:42
#81612
Professor
Muito bom o artigo onde foi publicado?
THIAGO.CESAR 04/05/2005 23:31:01
#81653
Realmente, cada passo deste processo de avaliação é simples, embora achei um pouco longo e complicado como um todo, visto que se dá em etapas e exige uma participação de várias pessoas de diversas áreas do conhecimento, o que aplicaria somente a sistemas de grande porte, como o Gabriel falou.

O que atrapalha muito desenvolvedor, principalmente (ou somente) os iniciantes (dos quais faço parte), é a falta de critérios de avaliação do aplicativo e a falta de uma prévia elaboração sistemática do software, ou seja, o cliente diz mais ou menos o que quer e depois que você termina é que ele fala realmente o que deseja, geralmente você deve refazer tudo. Por causa do meu amadorismo como desenvolvedor deixei de programar. Talvez mais tarde eu tenha mais maturidade e entro nesse ramo, por enquanto, só hobbie,. até porque não quero com meus projetos apressados "queimar o filme" de quem desenvolve com responsabilidade, dedicação e profissionalismo.

Apóio qualquer tipo de avaliação de software, embora, repito, ache que deva ser um pouco mais sumária do que a proposta do Luis, porque na minha opinião, achei essa comissão de avaliação justa, mas a gente sabe que a probabilidade de algo ser realizado é inversamente proporcional à  quantidade de pessoas envolvidas.

Mais algum tipo de informação sobre os critérios dos processos vigentes de avaliação de softwares (ISO, etc) ?
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas