A ISO-29881 é uma norma internacional baseada na FiSMA 1.1 (Finnish Software Measurement Association), e tem como objetivo padronizar métodos de mensuração do tamanho de softwares e serviços prestados por softwares. O FiSMA faz estas medições com base nos requisitos funcionais dos usuários, deixando de lado os requisitos não-funcionais.
Saber o tamanho funcional de um software é importante para diversos aspectos, como planejamento do projeto, estabelecimento de custos de manutenção, preços e prazos, entre outros.
O cálculo é realizado utilizando os chamados BFC’s (base functional components), que podem ser de sete
classes:
- Navegação interativa do usuário final e serviços de consultas (Interactive end-user navigation and query services);
- Serviços interativos do usuário final para entrada de dados (Interactive end-user input services);
- Serviços de saídas não-interativos do usuário final (Non-interactive end-user output services);
- Interfaces para outras aplicações (Interface services to other application);
- Interfaces de outras aplicações (Interface services from other application);
- Serviços de armazenamento de dados (Data storage services);
- Serviços de manipulação e algoritmos (Algorithmic and manipulation services);
Cada classe ainda se decompôe em outros tipos, soamndo ao todo 28 tipos.
Em seguida, os requisitos funcionais do usuário (que podem ser casos de uso, manuais de uso, diagramas de entidade-relacionamento, diagramas de fluxo, gráficos, etc.) são mapeados para as sete classes e tipos de componentes básicos funcionais. Então, são realizados cálculos diversos em cada tipo e classe afim de obter um número que representa o tamanho do software (unidade Ffp – FiSMA function point).