Le génie logiciel et le génie des systèmes sont deux de ces sous-disciplines. L'ingénierie logicielle traite de la conception et du développement de logiciels de la plus haute qualité, tandis que l'ingénierie des systèmes est la sous-discipline de l'ingénierie, qui traite de la gestion globale des projets d'ingénierie au cours de leur cycle de vie.