Computersoftware, auch Software genannt, ist eine Sammlung von Anweisungen und deren Dokumentationen, die einem Computer sagt, was er tun oder wie er eine Aufgabe ausführen soll. Software umfasst alle verschiedenen Softwareprogramme auf einem Computer, wie zum Beispiel Anwendungen und das Betriebssystem. Anwendungen sind Programme, die dazu bestimmt sind, eine bestimmte Operation auszuführen, wie z.B. ein Spiel oder ein Textverarbeitungsprogramm. Das Betriebssystem (z.B. Mac OS, Microsoft Windows, Android und verschiedene Linux-Distributionen) ist eine Softwareschicht, die als Plattform für die Ausführung der Anwendungen verwendet wird und alle Werkzeuge der Benutzerschnittstelle einschließlich Bildschirm und Tastatur steuert.
Das Wort Software wurde erstmals in den späten 1960er Jahren verwendet, um den Unterschied zur Computer-Hardware hervorzuheben, die vom Benutzer physisch beobachtet werden kann. Software ist eine Reihe von Anweisungen, denen der Computer folgt. Vor den Compact Discs (CDs) oder der Entwicklung des Internet-Zeitalters wurde Software auf verschiedenen Computer-Datenspeichermedien wie Papierlochkarten, Magnetplatten oder Magnetbändern verwendet.
Das Wort Firmware wird manchmal verwendet, um eine Art von Software zu beschreiben, die speziell für einen bestimmten Computertyp oder ein elektronisches Gerät hergestellt wird und normalerweise auf einem Flash-Speicher oder ROM-Chip im Computer gespeichert ist. Firmware bezieht sich normalerweise auf ein Stück Software, das ein Stück Hardware direkt steuert. Die Firmware für ein CD-Laufwerk oder die Firmware für ein Modem sind Beispiele für die Implementierung von Firmware.
Heute ist Software zu einem wichtigen Teil unseres Lebens geworden. Ohne Software können die Menschen nicht entwickelt werden. Wir verwenden Software überall. Software-Ingenieure sind für die Herstellung fehlerfreier Software verantwortlich, die buchstäblich zu einem wesentlichen Bestandteil unseres täglichen Lebens geworden ist. Änderbarkeit und Konformität sind zwei der Haupteigenschaften des Software-Designs. Es gibt auch verschiedene Verarbeitungsmodelle für den Entwurf von Software, einschließlich der Entwurfsmethoden Build and Fix, Waterfall und Agile Softwareverarbeitung.

