Ich habe in den letzten Semestern einige Software-Design-Kurse besucht, und obwohl ich den Nutzen in vielen Formalismen sehe, habe ich das Gefühl, dass sie mir nichts über das Programm selbst sagen:
- Sie können anhand der Anwendungsfallspezifikation nicht sagen, wie das Programm funktionieren soll, obwohl darin erläutert wird, was das Programm tun kann.
- Aus dem Anforderungsdokument können Sie nichts über die Benutzererfahrung ablesen, obwohl es Qualitätsanforderungen enthalten kann.
- Sequenzdiagramme sind eine gute Beschreibung der Funktionsweise der Software als Aufrufstapel, jedoch sehr begrenzt und geben einen sehr teilweisen Überblick über das Gesamtsystem.
- Klassendiagramme eignen sich hervorragend zur Beschreibung des Systemaufbaus, sind jedoch völlig nutzlos, um herauszufinden, wie die Software aussehen muss.
Wo in all diesem Formalismus steht das Fazit: Wie sieht das Programm aus, funktioniert es und welche Erfahrungen gibt es? Ist es nicht sinnvoller, daraus zu entwerfen? Ist es nicht besser, über einen Prototyp herauszufinden, wie das Programm funktionieren soll, und danach zu streben, es tatsächlich umzusetzen?
Ich weiß, dass ich wahrscheinlich darunter leide, von Theoretikern Ingenieurwissenschaften unterrichtet zu werden, aber ich muss fragen, ob sie dies in der Branche tun. Wie finden die Leute heraus, was das Programm eigentlich ist und nicht, was es erfüllen sollte? Machen die Leute viel Prototypen oder verwenden sie meistens formale Tools wie UML, und ich habe es einfach noch nicht verstanden, sie zu verwenden?