A programação de N-versões utilizada em sistemas críticos caracteriza-se pela implementação de uma série de versões de código referentes a uma mesma especificação de software, as quais são executadas de forma paralela em computadores distintos.
No processo de software baseado em componentes, cada componente projetado para reuso é uma entidade executável independente, que deve manipular exceções.
Em sistemas grandes e complexos, a determinação das conexões entre os requisitos torna-se geralmente uma tarefa difícil, sendo que as Tabelas de Rastreamento constituem uma ferramenta que ajuda a minimizar essa dificuldade.
As Abordagens Evolucionárias de desenvolvimento de software permitem determinar, de forma precisa, o número de ciclos necessários para a construção do produto.