O texto a seguir foi extraído de uma consulta feita
por um dos interessados nesta formação, sendo que levanta algumas
questões que são de interesse de todos. Assim, resolvemos publicar
a resposta em forma de blog, pois desta forma estará disponível
para qualquer consulta posterior:
"A Engenharia de Requisitos é uma área de conhecimento da
Engenharia de Software. Você tem razão quando coloca que essa é uma
área que menos envolve a execução do desenvolvimento de um
software. Ela pode ser adaptada para a captura de Requisitos de
Negócio de qualquer projeto empresarial. Porém, quando falamos de
Engenharia de Requisitos voltada para ambientes de desenvolvimento
de software, ela requer que o Analista de Requisitos, possua
conhecimentos de desenvolvimento de sistemas. Ela necessita para
esse fim, o conhecimento de diagramas em UML, especificação
detalhada para a construção de um software, pois é a entrada para a
execução, para o planejamento e para as estimativas de esforço e
prazo. No caso de ponto de função, é preciso separar as funções de
dados das funções transacionais, é preciso da mesma forma
identificar ALI(Arquivos Lógicos Internos), AIE(Arquivos de
Interfaces Externas), EE(Entradas Externas), CE(Consultas
Externas), SE(Saídas Externas), assim como DER (Dados Elementares
Relacionados) e RLR (Registros Lógicos Relacionados). É necessário
contar os pontos de função e e transformar em esforço, de acordo
com a produtividade da linguagem de desenvolvimento (
Programação).
Nesse sentido poderia lhe dizer que a Engenharia de Requisitos é
um processo composto, onde possuo uma parte relacionada com a
Especificação de Requisitos de Negócio, na qual
prevalece a concepção, levantamento, elaboração e negociação.
Na segunda parte e, está é bastante técnica eu ainda teria a
Especificação e Validação, as quais tratam do detalhamento com a
utilização de vários diagramas e técnicas, tais como DER, DHS, DBD,
os quais transformam o requisitos de negócio em especificações
detalhadas para a construção do software.
A Programação somente ocorrerá após a Especificação técnica
estar validada.
Como você pode notar, a maioria dos profissionais atua mais na
Especificação de Requisitos de Negócio do que na Especificação
Técnica de Requisitos de Negócio. Além do mais, temos ainda a
questão de gerar produtos intermediários que seguem para análise de
ponto de função e planejamento do projeto de software.
O treinamento que ministro olha o processo integralmente, define
o que é Requisitos Funcionais e Não Funcionais, que tem a mesma
importância na construção de um software. Seria impossível no prazo
que temos para esse treinamento, entrarmos em técnicas de apoio,
tais como UML, DER, DHS, DBD, Function Point, Planejamento e
Desenvolvimento. O treinamento procura estabelecer e ensinar como
se faz uma Especificação de Requisitos de Negócio consistente.
Afinal, se não soubermos caracterizar corretamente a necessidade do
usuário, construiremos softwares sem nenhuma aderência ao requisito
do usuário, o que remeterá a manutenções pós entrega e aumento de
custo dos projetos, além de impactarmos nos prazos do negócio.
Por onde começar?
Por uma questão lógica você deve começar pelo fundamento da
Engenharia de Requisitos, pois os produtos gerados dessa área de
conhecimento vão subsidiar a Análise por Pontos de Função e
posteriormente o Planejamento do Projeto de Software. Na Engenharia
de Requisitos, aprendemos o quão importante é a caracterização
do escopo de desenvolvimento, de acordo e compromissado com as
partes interessadas, ou seja, o usuário solicitante. O escopo
permitirá que se analise a complexidade, riscos, recursos
tecnológicos e humanos, custos envolvidos, alinhamentos com as
estratégias de negócio, inclusive para decidir sobre desenvolver ou
adquirir soluções prontas do mercado.
Assim, resumindo, faça um bom curso de Engenharia de Requisitos,
depois faça um bom curso de Análise de Ponto de Função, se possível
busque uma certificação pelo IFPUG ( Internacional Function
Point Users Group). Finalmente faça um curso de Gestão de Projetos
baseado no PMI - PMBoK. Você terá cumprido um ciclo completo
que lhe habilitará a ser um bom Gerente de Projetos.
Quais são as diferenças entre Engenharia de Requisitos e Análise
de Requisitos?
Bem, nessa pergunta a minha resposta é: A Engenharia de
Requisitos engloba a Análise de Requisitos. Se, conforme citado
anteriormente, em uma primeira fase você captura a necessidade do
usuário e levanta informações, elabora desenhos de simulação
funcional e valida o escopo, em seguida, você utiliza uma série de
técnicas para desdobrar o escopo em suas funções e regras de
negócio, para obter a melhor solução para a construção do
software. Na análise você vai identificar como as informações de
entrada são processadas por uma função ou funcionalidade do
software para gerar as saídas requeridas pelo negócio ou partes
interessadas. Dependendo da profundidade da análise, você poderá
definir funções, atributos, funções de transação e função de
atualização de banco de dados poderá identificar as hierarquias
internas do software e até mesmo gerar Especificações de Programas
e Português Estruturado. Ainda poderá definir o Programa de testes
funcionais ou de negócio, que ajudará ao usuário chave homologar a
solução.
Espero que eu tenha lhe ajudado na decisão de fazer o curso do
Grupo treinar."
Autor: Sergio Richter Ayres
A seguir referencio dois vídeos sobre o assunto:
1) A importância da Engenharia de Requisitos
2) Lecture - 5 Requirements Engineering / Specification