Engenharia de requisitos
Uma das maiores dificuldades para a Engenharia de Requisitos é o controle e a agregação de novos requisitos ao sistema. Isso ocorre devido ao impacto das propostas de mudanças, a inflexibilidade dos processos e a dificuldade de assessorar essas mudanças. O processo de gerência de requisitos tem por objetivo resolver tais problemas tendo como principais objetivos o gerenciamento das mudanças, o gerenciamento entre requisitos relacionados e o gerenciamento das dependências entre a documentação de requisitos e outros documentos originados durante outros processos da engenharia de software. Os requisitos só podem ser gerenciados efetivamente se existir uma forma de rastrear esses requisitos. Um requisito é rastreável se existe alguma forma de descobrir quem sugeriu o requisito, por que o requisito existe, com quem o requisito está relacionado e como o requisito relaciona outras informações como implementação e documentação de usuário. Um bom gerenciamento de requisitos deve manter informações entre qual a relação dos requisitos levantados e os benefícios deste requisito ao usuário. A mudança dos requisitos durante o desenvolvimento do produto gera diversos problemas, mas admite-se a mudança dos requisitos como algo natural dentro do processo de requisitos, tanto que diversas técnicas dentro do paradigma orientado a objetos surgiram para suportar a mudança desses requisitos, essa mudança dentro da análise orientada a objetos, especificamente no uso da UML, pode ser chamada de evolução de cenários. Observa-se também a necessidade de ferramentas automatizadas para dar suporte ao processo de gerência de requisitos, isso se dá ao grande volume de informações levantadas e a dificuldade de relacionar essas informações. Um modelo descreve as atividades existentes em um processo. Não existe um único modelo de processo para a Engenharia de Requisitos, pelo contrário, cada organização pode implantar um processo específico que atenda as suas