Pular para o conteúdo principal

FURPS

Olá!

Nesse post, pretendo falar um pouco sobre o modelo FURPS para ilustrar atributos que estão envolvidos em Qualidade de Software:

Vamos começar pela sigla FURPS: o que significa cada uma dessas letras?

Do F temos Functionality, traduzimos como Funcionalidade: Representa basicamente os requisitos funcionais do sistema.
Do U temos Usability, traduzimos como Usabilidade: Representa basicamente a interface sistema-usuário.
Do R temos Reliability, traduzimos como Confiabilidade: Representa basicamente a eficiência e o índice de falhas do sistema.
Do P temos Performance, traduzimos como Desempenho: Representa basicamente tempos de resposta e capacidade de processamento do sistema.
Do S temos Supportability, traduzimos como Suportabilidade: Representa basicamente esforços necessários para manutenção e configuração do sistema.

As definições acima representam o básico de cada uma das letras que compõem a sigla FURPS. A seguir entraremos em detalhes sobre cada uma das categorias, não antes de elucidarmos alguns conceitos:
____________________________________________________________

O que é um Requisito Funcional?

Em Engenharia de Software, um requerimento funcional define uma função do software. Uma função é descrita como um conjunto de entradas, comportamento e saídas.
Requisito Funcional pode ser um cálculo, detalhes técnicos, manipulação de dados, processamento e outras funcionalidades que definem o que um sistema deve fazer.

O que é um Requisito Não-Funcional?

Requisito não-funcional, por sua vez, é um requerimento que especifica critérios que podem ser usados no modo em que um sistema opera, e não em comportamentos específicos do mesmo.

De maneira geral, requisitos funcionais especificam O QUE um sistema deve FAZER. Enquanto requisistos não-funcionais especificam COMO um sistema deve SER.
____________________________________________________________

FURPS em detalhes

Functionality

Com os conceitos acima assimilados, podemos dizer que o F representa todos os requisitos funcionais de um sistema os quais, teoricamente, deveriam estar documentados.

É a parte que mais está ligada com as regras de negócio – conjunto de diretrizes que determinam como determinado negócio deve funcionar – de um produto, pois representam a implementação das mesmas.

Usability

Usabilidade inclui a parte visual de um sistema, a facilidade de interagir com o mesmo, a intuitividade. A parte de acessibilidade também está presente no conceito de Usabilidade, assim como a parte estética e cosmética da aplicação em questão. Uma imagem que não é carregada corretamente em um website, pode ser definida como uma erro de usabilidade.

Reliability

A Confiabilidade de um sistema reside em aspectos como disponibilidade (dependendo do sistema a disponibilidade deve ser 24x7), exatidão e poder de recuperação após falhas, talvez a mais importante, pois todo o sistema, mesmo aqueles mais próximos de serem inertes a falhas, devem ter poder de recuperação imediato após uma falha crítica. De outra forma, o sistema ficaria indisponível por tempo indeterminado, causando transtorno aos seus usuários finais.

Performance

Esse assunto vai permear muito de nossos posts. Performance está diretamente ligada a tempos de respostas de um sistema e quanto tal sistema suporta de carga de dados e também de usuários e suas ações. É um assunto muito vasto e amplamente discutido em testes. Testes de performance avaliam diversas capacidades de um sistema, dentre elas avalia se um sistema está lento ou está respondendo satisfatoriamente os usuários finais.

Supportability

Como o nome já diz, suportabilidade consiste em quão prático é o processo de suporte de um sistema. Por exemplo, possibilidade de testes no sistema, adaptabilidade, facilidade de manutenção do sistema, compatibilidade e portabilidade, facilidade de configuração e customização, entre outros.

Podemos que ressaltar que o F é a única letra que representa requisitos funcionais. As demais letras representam requisitos não-funcionais.

Lembramos também que existe um conceito ainda mais complexo que ilustra atributos de qualidade de um software. Tal conceito denomina-se FURPS+. Vamos deixar o + para um próximo post.

Até a próxima!

PS.: Listei duas leituras bem interessantes nas quais me inspirei pra escrever o artigo. Ambas estão em inglês:

Capturing Architectural Requirements
What, no supplementary specification?

Comentários

Postar um comentário

Postagens mais visitadas deste blog

O + do FURPS+

Segue a continuação do assunto FURPS: Posteriormente à definição do modelo FURPS, notou-se a necessidade da inclusão de mais atributos para encorpar e aumentar a cobertura do modelo. A partir dessa extensão, o acrônimo passou a ser mais comumente chamado de FURPS+ . Quais são os atributos do “+”? O + do FURPS refere-se a especificação de restrições que definirão determinados limites que deverão ser atendidos quando construímos um sistema. O + é composto dos seguintes requisitos não-funcionais: Design constraints – restrições de design: design nesse caso refere-se ao projeto, diretrizes e não a layout. A definição da utilização um banco de dados relacional no projeto é uma restrição de design, por exemplo. Implementation constraints – restrições de implementação: relacionado a limites impostos a código e construções. Como exemplo podemos citar a linguagem de programação que será utilizada para a codificação de um sistema. Interface constraints – restrições de interface: diretamente l...

Níveis de Testes - Parte 3: Testes de Sistema

Seguindo com os quatro principais níveis de testes do ciclo de vida de um software, abordaremos agora o terceiro nível, Testes de Sistema: 1. Testes Unitários 2. Testes de Integração 3. Testes de Sistema 4. Testes de Aceitação Nos próximos posts abordaremos os itens seguintes. Testes de Sistema Teste de sistema de um software, ou hardware, é todo teste conduzido em um sistema completo e integrado com o objetivo de avaliar se o sistema está em conformidade com os requerimentos especificados. Como comparação podemos ilustrar uma comparação entre os Testes de Integração e os Testes de Sistema: Pode-se dizer, de forma geral, que o propósito dos Testes de Integração é detectar qualquer inconsistência entre as unidades de software que funcionam em conjunto ou entre qualquer inconsistência entre essas unidades e o hardware. No caso dos Testes de Sistema, trata-se de um nível de teste mais limitado; o propósito dos Testes de Sistema é procurar defeitos tanto nas unidades integradas quanto no...