La ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software. Existen varios modelos de procesos de software como el modelo de cascada, modelo evolutivo y modelo de espiral. Los ingenieros de software deben considerar aspectos técnicos así como también responsabilidades éticas, sociales y profesionales durante el desarrollo de sistemas.