Uso de cenários para especificação de requisitos de qualidade e avaliação de arquitetura

Este artigo fornece uma visão geral da engenharia de requisitos, requisitos de qualidade e cenários, e atua como introdução à avaliação de arquitetura de software utilizando cenários.

De que se trata o artigo: Este artigo fornece uma visão geral da engenharia de requisitos, requisitos de qualidade e cenários, e atua como introdução à avaliação de arquitetura de software utilizando cenários. Para isso, este artigo apresenta conceitos da engenharia de requisitos, a utilização de cenários para a definição e priorização de requisitos de qualidade e como o atendimento desses cenários pelo sistema pode ser avaliado.

Em que situação o tema é útil: Durante a identificação de requisitos, início do desenvolvimento e/ou validação de software.

Resumo DevMan: Este artigo apresenta os conceitos e classificações de requisitos e o relacionamento destes com os atributos de qualidade para a modelagem de cenários. Também serão vistas a importância e a influência de tais atributos para a arquitetura de um sistema. Há diversos métodos de avaliação de arquitetura baseados em cenários e, dentre eles, destaca-se o ATAM, que também será analisado neste artigo.

A Engenharia de Software está divida em fases comuns a todos os processos de software. Durante a especificação do sistema, as necessidades do cliente são identificadas e classificadas por meio de requisitos. Os requisitos não funcionais - ou de qualidade - estão relacionados diretamente aos atributos de qualidade, os quais possuem diversas classificações e definições e, também, impactam diretamente na arquitetura do sistema. Uma poderosa ferramenta para descrição de requisitos de qualidade é por meio de cenários - que são sequências de eventos que ocorrem durante uma utilização particular do sistema. A partir dos cenários, há diversos métodos utilizados para avaliar o atendimento dos requisitos pelo sistema. Dentre eles, destaca-se o ATAM (Architecture Tradeoff Analysis Method), que realiza avaliações arquiteturais de sistemas já existentes ou auxilia na definição arquitetural de um novo sistema. O ATAM é utilizado quando há tradeoff entre atributos de qualidade conflitantes como, por exemplo, segurança e usabilidade.

Neste contexto, este artigo apresenta conceitos e classificações de requisitos e mostra o relacionamento destes com a arquitetura de um sistema. Ainda, mostra a utilização de cenários para a definição e priorização de requisitos de qualidade e como o atendimento desses cenários pelo sistema pode ser avaliado utilizando o ATAM.

Classificação de Requisitos

O SWEBOK (Software Engineering Body of Knowledge) define requisito de software como uma propriedade que deve ser exibida com o propósito de solucionar algum problema no mundo real. Assim, cabe à Engenharia de Requisitos identificar, verificar e avaliar as necessidades do cliente, resultando no conjunto de requisitos do software. O desafio básico desta atividade é encontrar, comunicar e registrar o que é realmente necessário, explicitando de forma clara para o cliente e os membros da equipe de desenvolvimento. Vale salientar que falhas durante a elicitação de requisitos, geralmente, serão refletidas em todo o projeto, podendo causar desde pequenos atrasos no cronograma até o cancelamento do projeto.

Uma discussão levantada por Davis (1993) revela dois níveis de abstração para o documento de requisitos. No primeiro nível, segundo o autor, “o cliente define suas necessidades de maneira suficientemente abstrata para que uma solução não seja predefinida”. Desta forma, os possíveis fornecedores podem propor soluções diferentes com base na especificação fornecida. Uma vez selecionado o fornecedor, este definirá, de forma detalhada, o sistema para que seja possível a avaliação por parte do cliente - constituindo assim, o segundo nível. Essas duas especificações definem dois tipos de requisitos:

  1. requisitos de usuário, quando definidos pelo cliente;
  2. requisitos de sistema, quando definidos pelo fornecedor.

Os requisitos de usuário descrevem, em linguagem natural e com o auxílio de diagramas, quais serviços e funcionalidades são esperados do sistema e quais as restrições em que ele deve operar. Já os requisitos de sistema definem, detalhadamente, as funcionalidades, os serviços providos e as restrições do sistema."

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados