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:
- requisitos de usuário, quando definidos pelo cliente;
- 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.
Além desta, há diversas outras classificações de requisitos. Aquela cujo conceito é mais abrangente, relaciona os requisitos em: funcionais (RFs) e não funcionais (RNFs) - também chamados de requisitos de qualidade. Enquanto os RFs descrevem as funcionalidades do sistema – ou seja, os serviços que o sistema deve fornecer, como deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações –, os RNFs descrevem os aspectos subjetivos do sistema, como, por exemplo, segurança, usabilidade ou disponibilidade. Os requisitos de qualidade são classificados e descritos de acordo com atributos de qualidade correspondentes. Tomando como exemplo o atributo usabilidade, o fato de o sistema ser utilizável por pessoas com baixo grau de instrução é um possível requisito de qualidade. São esses requisitos que atuam como guia para a definição da arquitetura do sistema.
...Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.