Was ist Software Engineering?

Sowohl Softwareentwickler als auch Computerprogrammierer entwickeln Softwareanwendungen, die von funktionierenden Computern benötigt werden. Der Unterschied zwischen den beiden Positionen liegt in der Verantwortung und der Herangehensweise an den Job. Softwareentwickler verwenden genau definierte wissenschaftliche Prinzipien und Verfahren, um ein effizientes und zuverlässiges Softwareprodukt bereitzustellen.

Softwareentwicklung 

In der Softwareentwicklung wird der Ansatz zur Entwicklung von Software als ein formaler Prozess behandelt, der dem herkömmlichen Engineering ähnelt. Softwareentwickler analysieren zunächst die Bedürfnisse der Benutzer. Sie entwerfen Software, stellen sie bereit, testen sie auf Qualität und warten sie. Sie weisen Computerprogrammierer an, wie sie den Code schreiben, den sie benötigen. Softwareentwickler können den Code möglicherweise selbst schreiben oder nicht, benötigen jedoch starke Programmierkenntnisse für die Kommunikation mit den Programmierern und beherrschen häufig mehrere Programmiersprachen.

Softwareentwickler entwerfen und entwickeln Computerspiele, Geschäftsanwendungen, Netzwerksteuerungssysteme und Software-Betriebssysteme. Sie sind Experten in der Theorie der Computersoftware und den Einschränkungen der Hardware, für die sie entwickelt wurden. 

Computergestütztes Software-Engineering

Der gesamte Software-Design-Prozess muss lange vor dem Schreiben der ersten Codezeile formal verwaltet werden. Software-Ingenieure erstellen mit computergestützten Software-Engineering-Tools langwierige Designdokumente. Der Softwareentwickler konvertiert dann die Konstruktionsdokumente in Konstruktionsspezifikationsdokumente, die zum Konstruktionscode verwendet werden. Der Prozess ist organisiert und effizient. Es findet keine manuelle Programmierung statt.

Papierkram

Ein charakteristisches Merkmal des Software-Engineerings ist die von ihm erzeugte Papierspur. Entwürfe werden von Managern und technischen Behörden genehmigt, und die Aufgabe der Qualitätssicherung besteht darin, den Papierweg zu überprüfen. Viele Softwareentwickler geben zu, dass ihr Job zu 70% aus Papierkram und zu 30% aus Code besteht. Es ist eine kostspielige, aber verantwortungsvolle Art, Software zu schreiben. Dies ist ein Grund, warum Avionik in modernen Flugzeugen so teuer ist.

Software-Engineering-Herausforderungen

Hersteller können keine komplexen lebenskritischen Systeme wie Flugzeuge, Kernreaktorsteuerungen und medizinische Systeme bauen und erwarten, dass die Software zusammen geworfen wird. Sie erfordern, dass der gesamte Prozess von Software-Ingenieuren sorgfältig verwaltet wird, damit Budgets geschätzt, Personal eingestellt und das Risiko von Fehlern oder teuren Fehlern minimiert werden kann.

In sicherheitskritischen Bereichen wie Luftfahrt, Weltraum, Kernkraftwerken, Medizin, Brandmeldesystemen und Achterbahnfahrten können die Kosten für Softwarefehler enorm sein, da Menschenleben in Gefahr sind. Die Fähigkeit des Softwareentwicklers, Probleme vorherzusehen und zu beseitigen, bevor sie auftreten, ist von entscheidender Bedeutung.

Zertifizierung und Ausbildung

In einigen Teilen der Welt und in den meisten US-Bundesstaaten können Sie sich nicht als Softwareingenieur ohne formale Ausbildung oder Zertifizierung bezeichnen. Einige der großen Softwareunternehmen, darunter Microsoft, Oracle und Red Hat, bieten Kurse zu Zertifizierungen an. Viele Hochschulen und Universitäten bieten Studienabschlüsse im Bereich Software Engineering an. Aufstrebende Softwareingenieure können einen Schwerpunkt in Informatik, Softwaretechnik, Mathematik oder Computerinformationssystemen haben.

Computerprogrammierer

Programmierer schreiben Code gemäß den Spezifikationen, die ihnen von Software-Ingenieuren gegeben wurden. Sie sind Experten in den wichtigsten Computerprogrammiersprachen. Obwohl sie normalerweise nicht in den frühen Entwurfsphasen involviert sind, können sie beim Testen, Ändern, Aktualisieren und Reparieren des Codes involviert sein. Sie schreiben Code in einer oder mehreren der beliebten Programmiersprachen, darunter:

  • SQL
  • JavaScript
  • Java
  • C #
  • Python
  • PHP
  • Ruby on Rails
  • Schnell
  • Ziel c
  • PHP

Ingenieure gegen Programmierer

  • Software Engineering ist eine Teamaktivität. Programmieren ist in erster Linie eine Einzelaktivität. 
  • Ein Softwareentwickler ist in den gesamten Prozess involviert. Programmierung ist ein Aspekt der Softwareentwicklung. 
  • Ein Softwareentwickler arbeitet mit anderen Entwicklern an Komponenten, um ein System zu erstellen. Ein Programmierer schreibt ein vollständiges Programm.