Professional Documents
Culture Documents
Requisitos
Engenharia de
Requisitos
[Ano]
Conteúdo
Conteúdo.................................................................................................................................. 2
Engenharia de Requisitos......................................................................................................... 3
Técnicas de elicitação de requisitos......................................................................................3
[editar] Os princípios.......................................................................................................... 8
[editar] Directrizes.................................................................................................................9
[editar] Preparação............................................................................................................9
[editar] Estudo.................................................................................................................... 9
[editar] Análise................................................................................................................... 9
[editar] Especificação......................................................................................................... 9
Técnicas de validação de requisitos....................................................................................12
Prototipação........................................................................................................................ 13
Engenharia de Requisitos
A engenharia de requisitos é a primeira etapa dentro de todo o processo da engenharia de
software, a qual estuda como coletar, entender, armazenar, verificar e gerenciar os requisitos. A
principal preocupação na engenharia de requisitos é entender quais são os reais requisitos do
sistema, bem como a documentação dos mesmos.
As fases da Engenharia de Requisitos são: elicitação, análise, especificação, verificação e
gerenciamento. Elicitação: é o processo através do qual clientes e usuários são questionados por um
desenvolvedor para falarem “o quê” o software deve fazer (ou seja, os requisitos). Análise: é o
processo onde são analisadas as necessidades dos clientes e usuários para se chegar na definição dos
requisitos de software. Especificação: é o processo de criação de um documento no qual estão
definidos todos os requisitos analisados. Verificação: é o processo que busca assegurar que a
especificação de requisitos de software está em concordância com os requisitos elicitados e
analisados nas fases anteriores, ou seja, estão de acordo com o desejo do cliente. Gerenciamento: é o
planejamento e controle da atividade de elicitação, especificação, análise e verificação dos
requisitos.
Etnografia
Os estudos etnográficos são uma técnica, proveniente das disciplinas de Antropologia Social, que consiste
no estudo de um objecto por vivência directa da realidade onde este se insere. Permitindo analisar a
componente social das tarefas desempenhadas numa dada organização tornam-se, no âmbito da Engenharia
de Requisitos, extremamente uteis para ultrapassar a dificuldade que existe na recolha dos requisitos
derivados de formas rotineiras e tácitas de trabalhar:
• modo como realmente as pessoas executam as suas funções que muitas vezes difere
da forma como as definições dos processos sugerem que elas devem fazer;
• cooperação e conhecimento das actividades de outras pessoas
A abordagem etnográfica e a identificação de requisitos têm muito em comum. Ambas têm o objectivo de
entender uma cultura não familiar, todo o conhecimento, técnicas e práticas que a constituem, de forma a
traduzi-las de maneira a que possa ser entendida e usada por outros. Tal como o etnógrafo, o engenheiro de
requisitos tem a necessidade de documentar o domínio do sistema e a sua relação com a actividade de cada
pessoa envolvida no seu funcionamento. Para que se consiga extrair o máximo de conhecimento possível
das pessoas, deve-se comunicar com estas utilizando a sua própria linguagem e não uma linguagem técnica
de engenharia de software que é incompreensível e intimadora para a maioria delas. Posteriormente, a
equipa de desenvolvimento deve ser capaz de usar todos os dados obtidos para que possa desenvolver o
produto realmente apropriado, correspondente com a informação recolhida, que se adapte completamente
às necessidades dos utilizadores e seja perfeitamente integrado no seu ambiente.
As pesquisas que se efectuam com o objectivo de realizar estes estudos resultam numa grande quantidade
de informação, através de apontamentos, gravações de áudio e vídeo e um conjunto de objectos que fazem
parte das culturas, que deverá ser gerida com toda a atenção para que a sua análise e processamento não se
prolongue excessivamente. Um estudo etnográfico requer muito mais tempo do que as técnicas de
identificação de requisitos mais comuns, como as entrevistas, logo todos os recursos financeiros e
temporais, muitas vezes difíceis de obter, que o suportam devem ser utilizados da forma mais optimizada
possível.
[editar] Os princípios
Desta forma, para orientar a actividade etnográfica apresentou os seguintes quatro princípios:
Estes princípios implicam que os engenheiros de requisitos devem capturar toda a estrutura social que
constitui a actividade e não devem predefinir qualquer estrutura conceptual. O trabalho é uma actividade
socialmente organizada, onde muitas vezes o comportamento real difere da forma como é descrito por
quem o faz, e dessa forma é importante confiar tanto nas entrevistas quanto nas observações diárias das
pessoas no próprio local de trabalho onde a tecnologia deverá ser inserida.
[editar] Directrizes
[editar] Preparação
Uma preparação adequada do processo é fundamental para o sucesso do mesmo. Assim sendo, a directriz
para esta fase inclui os seguintes pontos:
[editar] Estudo
É a principal fase do processo, onde se realiza o contacto directo com os stakeholders do sistema a
desenvolver. Esta directriz é constituída por:
[editar] Análise
Esta fase permite extrair conclusões do estudo já efectuado e, dessa forma, realizar melhoramentos durante
todo o processo. Aqui pode incluir-se:
[editar] Especificação
Por fim, há que documentar a informação recolhida e para esta directriz podemos considerar os seguintes
dois itens:
• Ter em conta os diversos públicos alvo e objectivos existentes;
• Elaborar um relatório e apresentar as conclusões do estudo.
Por fim, apesar de não ter sido mencionada pelos autores, é uma boa prática realizar, ao longo de todo o
processo, sessões de crítica por parte de elementos externos ao projecto.
Levantamento
Orientado
a
Ponto de Vista
Análise da
Tarefa
Cenários
gerenciamento de requisitos
Especificação de requisitos
Os requisitos de um sistema são descrições dos serviços fornecidos pelo sistema e as suas restrições
operacionais. Esses requisitos refletem as necessidades dos clientes de um sistema.
o Requisitos de usuário: são declarações, em uma linguagem natural com diagramas, de quais serviços são
esperados do sistema e as restrições sob as quais ele deve operar.
o Requisitos de sistema: define detalhadamente as funções, os serviços e as restrições operacionais do
sistema. O documento de requisitos do sistema deve ser preciso. Ele deve definir exatamente o que
será implementado.
Pontos importantes:
° Um requisito de usuário pode ser dividido em vários requisitos de sistema;
° O requisito de usuário é mais abstrato e os requisitos de sistema acrescentam
detalhes, explicando os serviços e as funções que devem ser fornecidos pelo
sistema;
° Os leitores dos requisitos de usuário geralmente não estão preocupados como o
sistema será implementado;
° Os leitores dos requisitos de sistema necessitam conhecer mais precisamente o
que o sistema fará.
° Os requisitos de sistema são uma especificação completa e consistente de todo
o sistema
° Requisitos de sistema são versões expandidas dos requisitos de usuário.
Há ainda uma subclassificação dos requisitos de sistema, que se dividem em três tipos:
o Requisitos Funcionais: São as declarações de serviços que o sistema deve fornecer, como o sistema
deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações.
Pontos importantes:
° Depende do tipo de software que está sendo desenvolvido, dos usuários a que o
software se destina e da abordagem geral considerada pela organização ao
redigir os requisitos.
° Podem ser expressos de várias formas e em níveis diferentes de detalhes
° Deve ser completo e consistente. Completeza significa que todos os serviços
exigidos pelos usuários devem ser definidos. Consistência significa que os
requisitos não devem ter definições contraditórias.
o Requisitos Não-Funcionais: São restrições sobre os serviços ou as funções oferecidos pelo sistema.
Os requisitos não funcionais estão raramente associados às características individuais do sistema. Pelo
contrário, esses requisitos especificam ou restringe as propriedades emergentes de sistema, como
confiabilidade, tempo de resposta e espaço de armazenamento.
Pontos importantes:
° Geralmente são mais importantes que os requisitos funcionais. Pois a falha em
um requisito não-funcional pode inutilizar todo o sistema.
° Os requisitos não-funcionais podem vir de características necessárias do
software(requisitos de produto), da organização que desenvolve o
software(requisitos organizacionais) ou de fontes externas:
o Requisitos de produto: Requisitos que especificam o comportamento do
produto. Ex: velocidade de execução, confiabilidade, portabilidade,
facilidade de uso, etc..
o Requisitos organizacionais: Requisitos que são conseqüência de políticas
de procedimentos nas organizações do cliente e do desenvolvedor. Ex:
padrões de processos que devem ser utilizados, requisitos de
implementação, etc.
o Requisitos externos: Requisitos procedentes de fatores externos ao
sistema e a seu processo de desenvolvimento. Ex: requisitos de
interoperabilidade, requisitos legais e os requisitos éticos.
o Requisitos de Domínio: São derivados do domínio da aplicação do sistema, em vez das necessidades
específicas dos usuários do sistema. Geralmente incluem terminologia específica do domínio ou fazem
referência a conceitos do domínio. Podem ser novos requisitos funcionais em si mesmos, podem
restringir os requisitos funcionais existentes ou estabelecer como cálculos específicos devem ser
realizados.
Pontos importantes:
• São importantes porque com freqüência, refletem os fundamentos do domínio
da aplicação. Se esses requisitos não forem satisfeitos, pode ser impossível
fazer o sistema funcionar satisfatoriamente.
• Geralmente os engenheiros de software tem dificuldade em compreendê-los.
• Os especialistas de domínio podem deixar informações fora de um requisitos,
simplesmente por serem muito obvia para eles.
Prototipação
Prototipação - benefícios
• reduções dos riscos
na construção do sistema;
• O uso de protótipo
auxilia na elicitação e validação dos
requisitos de sistema;
Protótipo é a primeira versão desenvolvida do software, a qual tem a finalidade de abordar a questão de
interface com o usuário, validar requisitos e apresentar a viabilidade do sistema.
Durante a criação do protótipo, clientes e desenvolvedores ficam em constante interação, facilitando assim
o levantamento de requisitos e funcionalidades do sistema.
Alguns desenvolvedores utilizam prototipações que são descartadas, ou seja, o desenvolvimento do sistema
somente será iniciado após o término do desenvolvimento do protótipo. Esses métodos de prototipações
geralmente elevam o custo do sistema, pois são feitos dois projetos separados, um do protótipo e outro do
sistema final.
Essa separação entre o desenvolvimento do protótipo e do sistema final vem diminuindo a cada dia, com o
uso da prototipação evolutiva, a qual será o objeto de estudo deste artigo que terá como objetivo mostrar as
vantagens e desvantagens da utilização deste método no desenvolvimento de sistemas de informação.
Protótipos de alta fidelidade são semelhantes ao produto final. Este tipo de prototipação utiliza à mesma
técnica que o sistema final e é indicado quando o objetivo é a venda do sistema ou o teste de problemas
técnicos.
No entanto, háalgumas desvantagens como, por exemplo: elevado custo e tempo de desenvolvimento,
ineficiente para testes de opções de design e levantamento de requisitos.
A prototipação de alta fidelidade poderá ser implementada seguindo um dos métodos: (Figura 1)
3. PROTOTIPAÇÃO THROW-AWAY
Este método de prototipação é utilizado para encontrar problemas de requisitos em protótipos, e tem como
objetivo consistir uma maior qualidade, por meio da validação e definição no documento de requisitos do
software.
Ele tem como base os requisitos que não estão bem definidos, e os que já estão bem definidos dificilmente
são utilizados no protótipo. Ao construir um protótipo pelo método Throw-Away, os seguintes passos são
seguidos: desenvolve-se um documento de requisitos provisório, obtêm-se opiniões dos usuários e
reformula-se o documento de requisitos, repetem-se estes passos, até a obtenção de satisfação dos usuários
e, consequentemente, a finalização do documento de requisitos.
4. PROTOTIPAÇÃO EVOLUTIVA
A prototipação evolutiva é utilizada em protótipos que evoluirão até tornarem-se sistemas finais.
Neste método, rapidamente é desenvolvido um protótipo que será modificado até que se obtenha o sistema
final. Para que sejam feitas as modificações e o protótipo transforme-se em software, começa-se a
construção deste protótipo com os requisitos fundamentais e que estejam bem definidos e é necessário o
acompanhamento do usuário, para que juntamente com ele o desenvolvedor possa definir os requisitos do
sistema.
Contrastando com a prototipação Throw-Away, um documento de requisitos detalhado não é elaborado,
visto que a prototipação evolutiva é um método redutor de custo e de tempo.
Há algumas vantagens e desvantagem ao usar a prototipação evolutiva, que precisam ser conhecidas pelos
desenvolvedores antes de adotar este método.
·Vantagens: Rápida entrega do sistema; compromisso do usuário com o sistema; especificação, desenho e
implementação interligados; sistema desenvolvido como uma série de incrementos ao usuário;
·Desvantagens: Alguns requisitos não aparecem na especificação; requisitos não funcionais não são
testados de forma adequada; documento de requisitos inexistente ou não detalhado; difícil manutenção; em
alguns casos difícil gestão;
A longo prazo, podem ocorrer problemas de manutenção e evolução do sistema, por falta de uma estrutura
sólida no seu desenvolvimento, isto pode causar o curto tempo de vida do sistema, visto que só os
especialistas que o desenvolveram poderão efetuar a manutenção ou a evolução com facilidade.
Para a obtenção de um bom sistema não se deve basear em protótipos feitos para responder questões
especificas, mas desenvolver um protótipo com a finalidade de futuramente transformá-lo em um sistema.
O protótipo evolutivo pode se transformar em um sistema robusto, desde que, seja elaborado um
planejamento e um desenvolvimento bem estruturado, com muito cuidado desde o início do projeto.