Introdução a Engenharia de Requisitos
Atualmente, vivemos em uma sociedade onde tempo é dinheiro, em nossos projetos, não é diferente, cada minuto de atraso pode acarretar em grandes prejuízos ou pior, o fracasso do projeto. A Engenharia de Requisitos vem para nos auxiliar no melhor planejamento do nosso projeto, pois através do mesmo, podemos delimitar caminhos onde queremos e deveremos atingir com nosso projeto. Neste primeiro artigo, pretendo passar a todos, um pouco do que é a Engenharia de Requisitos, pra que ela serve, quais serão os benefícios da utilização desta engenharia em nossos projetos. Espero que o artigo possa agradar a todos, bom proveito.
Afinal, O que é Engenharia de Requisitos?
A engenharia de requisitos (no contexto da engenharia de software) é um processo que engloba todas as atividades que contribuem para a produção de um documento de requisitos e sua manutenção ao longo do tempo.
Este processo deve ser precedido de estudos de viabilidade que, a partir das restrições do projeto, determinam se este é ou não viável e se deve prosseguir para a identificação dos requisitos.
O processo de engenharia de requisitos é composto por quatro atividades de alto nível (Soares, 2005):
- Identificação.
- Análise e negociação.
- Especificação e documentação.
- Validação.
Podemos citar também, como uma quinta atividade, a gestão dos requisitos, que acontece na fase posterior a produção do documento (uma manutenção). Esta fase pode aparecer por diversos motivos, desde inovações tecnológicas até mudanças na natureza do negócio. Falaremos mais sobre os processos, nos próximos artigos.
Vamos entender o que é estudo de viabilidade?
Bom, para não ficarmos com buracos no meio do nosso estudo, vamos entender um pouquinho do que é, e para que serve o estudo de viabilidade.
Como o nome sugere, pretende-se com este estudo avaliar se, de um ponto de vista tecnológico e organizacional, se projeto é viável.
Uma forma de avaliar a viabilidade de um projeto é obter, através da interação com os “stakeholders” (partes interessadas) do projeto através de reuniões ou entrevistas, por exemplo, a resposta às seguintes questões:
- Será que o sistema contribui para os objetivos da organização?
- Dadas as restrições tecnológicas, organizacionais (econômicas, políticas, ambientais, recursos disponíveis) e temporais associadas ao projeto, será que o sistema pode ser implementado?
- Caso haja necessidade de integração entre diferentes sistemas, será que esta é possível?
A questão mais crítica é a primeira, já que um sistema que não contribua para os objetivos da organização não lhe traz qualquer valor acrescentado e como tal a sua existência não se justifica. Apesar de parecer óbvia, são frequentemente desenvolvidos sistemas que não contribuem para os objetivos das respectivas organizações, quer seja por interesses externos (políticos ou organizacionais) ou por falta de clareza na definição dos objetivos da organização.
Portanto, é importante identificar quais informações são necessárias para responder a estas questões e quem possui estas informações, recolhendo todos os dados possíveis para clarificar ao máximo o âmbito do projeto e avaliar a sua viabilidade.
Tipicamente, quem poderá fornecer esta informação serão os utilizadores dos sistemas atuais e do sistema a implementar, os responsáveis pelos departamentos nos quais o sistema será usado, técnicos que estejam familiarizados com as tecnologias envolvidas (do novo sistema e dos sistemas existentes), responsáveis pela manutenção futura do sistema a implementar e, de um modo geral, todos aqueles que terão qualquer tipo de interação com o novo sistema (ou que sejam por ele afetados).
Algumas das questões que podem ser postas nesta coleta de informações são, por exemplo:
- Se o novo sistema não fosse implementado, quais seriam as alternativas para a organização?
- Quais são os problemas que os sistemas atuais apresentam e como é que um sistema novo irá resolver estas falhas?
- De que forma é que o sistema irá contribuir diretamente para os objetivos da organização?
- É possível a integração com os outros sistemas da organização (de um ponto de vista tecnológico)? Com que facilidade é que se consegue partilhar informação entre estes sistemas?
O estudo de viabilidade deverá culminar com a produção de um relatório e deverá determinar a continuação do desenvolvimento do projeto, tornando mais claras as restrições (econômicas, temporais e organizacionais) do projeto e definindo mesmo alguns requisitos de alto nível.
No próximo artigo, veremos um pouco dos processos da engenharia de requisitos.