Escolar Documentos
Profissional Documentos
Cultura Documentos
Inserir TítulodeAqui
Inserir Título Aqui
Requisitos
Tipos de Requisitos e sua Elicitação
Revisão Textual:
Prof. Esp. Claudio Pereira do Nascimento
Tipos de Requisitos e sua Elicitação
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o
último momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.
Bons Estudos!
UNIDADE
Tipos de Requisitos e sua Elicitação
Contextualização
O processo de desenvolvimento de software por si só exige grande atenção e res-
ponsabilidade dos engenheiros e arquitetos, pois envolve diversas técnicas e conceitos,
alguns bastante genéricos e outros muito específicos.
Quanto aos usuários, estes podem ter vasto conhecimento e experiência nos
processos em que são especialistas. Podem inclusive ter participado por experi-
ências em desenvolvimento de projeto de software – e mais – na mesma empresa
onde atuam e com os mesmos profissionais desenvolvedores. Mas, isso não é
sinônimo nem garantia de que terá sucesso em um novo projeto.
Igualmente, não se pode pensar que a tecnologia já utilizada com sucesso também
seja garantia de bons resultados. Pode ser um sinalizador, não uma garantia de fato.
Para isso, nesta unidade, vamos conhecer e explorar os diversos tipos de requisitos e
as técnicas para sua obtenção.
6
Tipos de Requisitos e sua Elicitação
A engenharia de requisitos se destaca pelas técnicas de fazer uma coleta de dados
visando conhecer as necessidades dos usuários e pelas atividades relacionadas com sua
especificação e gestão.
Como está relacionada com a definição do que o sistema deverá fazer e suas
propriedades essenciais e desejáveis, as restrições para a sua operação e também com
o processo de desenvolvimento do software podem até ser confundidas como sendo um
processo de comunicação. Mas isso é apenas a base para a coleta de dados.
Sommerville (2011) afirma que requisitos de sistema são descrições do que o sistema
irá fazer, quais serviços serão oferecidos a seus usuários e qual será seu funcionamento.
Desta forma, o autor define que requisitos de sistema é um conjunto de necessidades
que devem ser atendidas.
Esta separação, proposta pelo autor, objetiva tentar facilitar o entendimento de qual
especificação é mais aplicável a um software ou a uma de suas rotinas. Em outras pa-
lavras, os diferentes níveis de especificação de um sistema contribuem para que seja
fornecido o máximo de informações sobre o sistema e sob as diferentes óticas de leitores
e usuários.
7
7
UNIDADE
Tipos de Requisitos e sua Elicitação
Zultner (1992) apud Pressman (2011), em seu texto sobre quality function
deployment – QFD (técnica de gestão de qualidade que transforma as necessidades do
cliente em requisitos técnicos do software), cita a existência de três tipos de requisitos:
os normais, os esperados e os fascinantes.
Para ele, os normais refletem objetivos e metas determinados para um produto durante
as reuniões com o cliente. Se estiverem presentes no software o cliente ficará satisfeito.
Já os requisitos fascinantes são aqueles que trazem consigo outras facilidades que
sequer haviam sido pensadas e, portanto, não são esperadas.
Conforme Pleeger (2004), há 3 categorias de requisitos: aqueles que devem ser total-
mente satisfeitos, os que são altamente desejáveis - mas não necessários e aqueles que
são possíveis, mas que poderiam ser eliminados.
Mas Sommerville (2011), assim como Pressman (2011), ainda os classifica como
sendo funcionais ou não funcionais. Aquele ainda acrescenta os requisitos de domínio.
Eles descrevem uma interação entre o sistema e o ambiente, como o sistema deve
funcionar conforme determinada situação, declara quais serviços o sistema deve forne-
cer, como deve reagir a entradas específicas e como deve se comportar em alguns casos.
Descrevem, assim, as interações entre o sistema e seu ambiente.
Estes requisitos funcionais podem ainda ser evidentes, caso efetuados com
o conhecimento do usuário, ou serem ocultos, se efetuados pelo sistema sem o
conhecimento explícito do usuário.
Entretanto, quando se fala em requisitos, não podemos deixar de explicar que são os
requisitos não funcionais aqueles que acabam por trazer muitas dúvidas aos desenvolvedores.
Aliás, a clara definição sobre requisitos de software ainda não está adequadamente
assimilada entre os autores, principalmente, quando o cenário apresentado pode trazer
ainda mais dúvidas.
8
Mas se analisarmos friamente e pontualmente, veremos que requisitos não funcio-
nais, em vez de informar o que o sistema fará, colocam restrições sobre os serviços ou
funções oferecidas pelo sistema, tais como restrições de timing sobre o processo de
desenvolvimento, sobre padrões, dentre outras, e limitam nossas opções para criar uma
solução para o problema. Estão vinculados à ISO - The International Organization for
Standardizatized e à IEC - The International Electrotechnical Commition.
Temos, então, a separação dos requisitos não funcionais em nove tipos distintos:
ambiente físico, interfaces, dados, usuários e fatores humanos, funcionalidade,
documentação, recursos, segurança e garantia de qualidade.
Os requisitos não funcionais podem afetar a estrutura do sistema, assim como, pode
gerar inúmeros outros requisitos funcionais, como é o caso de um requisito de proteção
que definirá, por exemplo, os serviços necessários ao sistema (SOMMERVILLE, 2011).
São esses requisitos que expressam as condições que o software deve atender
ou as qualidades específicas que este deve ter, como por exemplo, propriedades,
comportamento, restrição etc.
9
9
UNIDADE
Tipos de Requisitos e sua Elicitação
Uma das formas para essa classificação é conhecida como FURPS+, um acrônimo
de Functionality, Usability, Reliability, Performance e Supportability. O Plus (+) se
refere a outras circunstâncias, como design, implementação, interface, aspectos físicos,
dentre outros.
10
A categoria performance (desempenho) refere-se ao tempo de resposta requerido
para uma transação, em segundos (o troughput). Pode ser também a medição de tran-
sações por segundo ou a capacidade das transações concorrentes, uma operação parcial
(exceção) ou, ainda, o uso de recursos como memória, espaço em disco ou comunica-
ção, dentre outros.
Os requisitos não funcionais ainda podem ser obrigatórios - caso necessitem existir de
fato ou desejáveis - caso possam estar presentes na aplicação.
Os requisitos não funcionais são tão importantes quanto os requisitos funcionais. Estes
restringem as possíveis soluções dos engenheiros de software e ajudam na determinação
da qualidade do software.
Apresento, na tabela 2, alguns exemplos de regras de negócio que não irão interfe-
rir na identificação de requisitos funcionais, como as RN 01 a 04. Note que estas são
pontuais e caso não se vinculem a um software muito específico, em nada irão afetar a
especificação de requisitos.
11
11
UNIDADE
Tipos de Requisitos e sua Elicitação
Um outro aspecto que gera confusão quanto aos requisitos não funcionais é o fato
de que às vezes estes não são derivados de requisitos funcionais, mas originam-se dire-
tamente das regras de negócio.
12
Uma das formas de se representar os requisitos funcionais e os requisitos não funcio-
nais deles derivados é apresentada na Tabela 4.
13
13
UNIDADE
Tipos de Requisitos e sua Elicitação
Outra técnica utilizada é a de Casos de Uso (ou Cenários), onde a elaboração deste
diagrama da UML facilita o trabalho de identificação das necessidades dos usuários, com
respectivos processos e subprocessos.
São situações descritas que explicam como um sistema poderá ser usado. Nas sessões
de interação é demonstrado como o usuário irá interagir. O termo caso de uso ou use
case pode ser usado nessas reuniões. Pode-se, inclusive, descrever o caso de uso em
detalhes, identificando os atores envolvidos, as principais funcionalidades e a interação
entre atores.
Detalhando-se o caso de uso, podem-se incluir informações diversas, tais como nome
do cenário, ator(es), pré-condição, fluxo normal, fluxos alternativos e pós-condição.
Uma técnica que muitos desenvolvedores esquecem que existe e acabam por não
utilizar é a de documentos. As comunicações internas das empresas são uma fonte
fantástica de informação sobre um processo que será automatizado, assim como os
documentos gerados ou utilizados, como gráficos, listas, tabelas ou relatórios.
A entrevista, por outro lado, é uma das técnicas mais utilizadas e permite o contato
visual e maior envolvimento dos usuários. Essa técnica faz o questionamento dos
stakeholders sobre o funcionamento do processo e podem ser fechadas, caso já se tenha
perguntas pré-definidas ou abertas quando as respostas às perguntas básicas geram
novas perguntas, visando assim, explorar ao máximo o conhecimento do stakeholder.
A técnica conhecida como etnografia deve ser utilizada quando se quer ter uma
visão qualitativa ou quantitativa sobre o funcionamento de um processo. É a técnica
de observação direta ou indireta utilizada para a compreensão do funcionamento do
processo na prática e melhor entendimento sobre os requisitos sociais e organizacionais.
Visa observar suas atividades, entender os conceitos envolvidos, escrevê-los e analisá-los
para novas proposições ou complementos da coleta de dados.
14
AGENDA
Overview Flip Chart Janela de
Lousa Magnética Despesas
Gerais
Scanner
Impressora
Flip Chart
(Gráficos)
Projetor
Name Tents
Outra técnica que vem sendo utilizada e bastante comum nos processos ágeis é a
técnica de prototipação, onde as situações são apresentadas, discutidas e representadas
em diagramas que permitem rápido e fácil entendimento. Os diagramas mais utilizados
são o diagrama de classe da UML ou de caso de uso e, nas aplicações mais antigas, os
(ainda) usados diagramas de fluxo de dados e de contexto.
15
15
UNIDADE
Tipos de Requisitos e sua Elicitação
16
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Introduction – wath is UML
Introduction – wath is UML. Acesso em: 06/04/2018.
https://goo.gl/s8TT6V
Quality Function Deployment
Quality Function Deployment. Acesso em: 06/04/2018.
https://goo.gl/rQgrWh
Livros
Gerenciamento de requisitos
KERR, Eduardo Santos. Gerenciamento de requisitos. São Paulo, Pearson, 2015.
(e-book)
Leitura
Especificação de Requisitos no Domínio de Sistemas de Informação com o Uso de Padrões
BARCELOS, Leonardo e PENTEADO, Rosângela Penteado. Especificação de Requi-
sitos no Domínio de Sistemas de Informação com o Uso de Padrões. Acesso em:
06/04/2018.
https://goo.gl/ejviJ4
Requirements Engineering Practices in Global Software Engineering Organizations
REZA, Ahmad Yandriansyah. Requirements Engineering Practices in Global Softwa-
re Engineering Organizations. Acesso em: 06/04/2018.
https://goo.gl/XLkDu1
A contribuição do JAD para o levantamento de Requisitos
A contribuição do JAD para o levantamento de Requisitos. Acesso em: 06/04/2018.
https://goo.gl/md3a99
Fundamentos básicos de UML
Fundamentos básicos de UML. Acesso em: 06/04/2018.
https://goo.gl/WGwC6X
17
17
UNIDADE
Tipos de Requisitos e sua Elicitação
Referências
FOGGETTI Cristiano, ORG. Gestão ágil de projetos. São Paulo, Pearson, 2015. (e-book).
18