Abrangência funcional e profundidade de software

Abrangência funcional e profundidade de software

Na atividade profissional de produção de software existem metodologias que tem por objetivo avaliar e medir diversos aspectos da engenharia de software. Tais metodologias também são chamadas de métricas com diversas abordagens propostas por igualmente inúmeros autores.

Alguns aspectos da construção de qualquer software podem ser facilmente mensurados. A quantidade de esforço de horas/homem empregado; a quantidade de linhas de código produzidas e quantidade de erros encontrados são alguns desses exemplos. No entanto, a qualidade e a funcionalidade do software, ou ainda, a sua dificuldade de manutenção são mais difíceis de serem avaliadas.

Tomemos inicialmente a questão da qualidade. De maneira bem simples, tem qualidade um aplicativo que “entrega” aquilo que foi solicitado pelo usuário. Existe uma métrica, denominada APF que significa Análise de Ponto por Função, que tem por objetivo medir o tamanho funcional de um software do ponto de vista do usuário. Assim, ao medirmos o software, a partir da quantificação das funcionalidades providas para o Usuário tendo como base primária sua lógica sobre o seu negócio, teremos uma forma de avaliarmos sua abrangência funcional.

Para darmos um exemplo desse conceito, consideremos em um sistema de Administração de Pessoal, como o nosso Rhevolution, a tarefa de Admissão de Empregado. Se todas as possíveis operações relacionadas a essa tarefa estivessem atendidas, essa parte do sistema teria uma abrangência funcional muito grande, talvez beirando o definitivo.

O conceito de profundidade de software, dentro da engenharia de software, vai ajudar a definir o grau de complexidade dos componentes do produto em desenvolvimento. Sua definição formal é bastante técnica, mas para o nosso pequeno texto é suficiente que associemos a esse termo à ideia de que quantos mais elementos em níveis sucessivos e interligados tenha o software, ele é mais robusto e bem estruturado.

Para também termos um exemplo, na mesma tarefa do exemplo anterior, a da Admissão, o termo profundidade estaria associado ao grau de automação de cada atividade ou operação realizada pelo programa, com diversas sub-rotinas e menus secundários que são acessados à medida em que a complexidade da operação aumenta.

Em uma certa visão, a abrangência funcional e a profundidade de software estão diretamente interligadas, pois, quanto maior for a quantidade de objetos de software que o aplicativo possuir, é razoável supor que maior será o seu número APF. E, por outro lado, maiores desafios serão apresentados à tarefa de manutenção.

Na prática, no processo de produção de software de rh, a busca por um bom equilíbrio entre a qualidade, a funcionalidade e as características de facilidade na manutenção, é uma arte do produtor do software.

Para finalizar, Abrangência Funcional e Profundidade de Software são características positivas de qualidade de aplicativos que só são obtidas ao longo dos anos de utilização do aplicativo, em diversos ramos de negócios por empresas dos mais variados tamanhos de seus empreendimentos. É uma espécie de processo de estabilização e maturidade do software de rh. Este último termo, é um conceito muito interessante, que iremos abordar em uma outra oportunidade.