Das Software-Engineering oder auch die Softwaretechnik beschäftigen sich mit der Entwicklung von Software, die in unterschiedlicher Form in der Hardware, also etwa PCs, Laptops oder Tablets sowie vielen weiteren Geräten verwendet wird, um mithilfe der Software bestimmte digitale Funktionen auszuführen. Im Software-Engineering kommen unterschiedliche Teilgebiete zur Anwendung, deren einzelnen Fachgebiete so zusammenarbeiten müssen, dass die Funktionalität der Software in der Anwendung gewährleistet ist. Das Herstellen sehr komplexer Software wie etwa einem Betriebssystem unterliegt aufgrund dessen einem Projektmanagement, das den planerischen und entwicklungstechnischen Ablauf vorgibt. In der Regel dreht es sich beim Software-Engineering um die Anfertigung einer Anwendungssoftware, die so aufgebaut ist, dass sie entweder einem speziell geschulten oder einem allgemeinen Nutzerkreis zugänglich ist und entweder intuitiv oder mittels Schulung verstanden wird. Im Weiteren befasst sich das Software-Engineering mit der notwendigen Datenstruktur, etwa Datenbanken und deren Verknüpfungen untereinander sowie den Abfragemöglichkeiten. Ein weiterer Punkt in der Erstellung von Software ist deren Kompatibilität mit der Hardware.