Wie häufig ist Prototyping als erste Entwicklungsstufe?

10

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?

EpsilonVector
quelle
2
Nach meiner Lektüre scheinen Sie sich zu sehr auf den Teil der Benutzeroberfläche der Softwareentwicklung zu konzentrieren. Prototypen eignen sich hervorragend zum Entwickeln und Verfeinern von Benutzeroberflächen, nicht so sehr zum Ausarbeiten der Kernlogik (oder sogar zum genauen Herausfinden der Geschäftslogik, die Sie implementieren sollen)
Anon.
1
Wenn es einen menschlichen Benutzer gibt, gibt es normalerweise eine grafische Benutzeroberfläche. Wie die GUI aussehen und wie sie funktionieren muss, wirkt sich auf das Design des gesamten Systems aus.
Job

Antworten:

6

Wenn wir eine GUI-Anwendung erstellen, erstellen wir fast IMMER einen Prototyp oder POC (Proof-of-Concept). Wir werden das visuelle Vokabular der App festlegen. Normalerweise binden wir unsere Kunden auf halbem Weg durch den POC ein und stellen sicher, dass sie verstehen, was der Zweck ist und worauf sie sich konzentrieren sollten. Es hat mir nie leid getan, dass ich einen Prototyp hergestellt habe. Stellen Sie nur sicher, dass Sie nicht versuchen, den Prototypcode in den Produktionscode umzuwandeln. Starten Sie den Produktionscode von Grund auf neu, basierend auf dem, was Sie aus dem Prototyp gelernt haben.

Trotzdem erstellen wir fast nie Prototypen für serverseitige Anwendungen (Dienste, Middleware usw.). Ich sehe nicht wirklich den Return on Investment dafür (es sei denn, Sie machen eine neue Technologie und müssen andere Konzepte beweisen).

Walter
quelle
+1 Mein Firmenprototyp ziemlich oft, aber nur als Proof-of-Concept, hauptsächlich in GUIs, aber auch bei der Suche nach einem neuen Ansatz für ein Problem, auch serverseitig.
Orbling
6

In der Geschäftswelt ist das sehr wichtig

Auch ich denke das, bis du in die Geschäftswelt kommst. Dann ist es nicht mehr einfach genug, nur die Anforderungen zu erfüllen und zu bauen.

Im Geschäftsleben sind Flussdiagramme und Lo-Fi-Prototypen wirklich sinnvoll.

Wie das "Programm" funktioniert, ist wahrscheinlich der einfache Teil. In LOB-Apps (Line Of Business) ist das meiste nur CRUD. Die Herausforderung liegt in der Geschäftslogik und den Regeln . Hier werden Benutzerflussdiagramme und Geschäftsprozessabläufe äußerst wichtig, um effektiv zu verstehen und zu planen.

Dunkle Nacht
quelle
1

Was meinst du damit, wie das Programm "funktioniert"? Sie scheinen nach genauen Implementierungsdetails in etwas anderem als der spezifischen endgültigen Implementierung zu suchen, was keinen Sinn ergibt. Übergeordnete Elemente sollen die Implementierung leiten, nicht bestimmen.

Nach meiner Erfahrung ist Prototyping etwas ungewöhnlich. Mir wurde es sicherlich in Verbindung mit Spezifikationen, Anforderungen, Architektur usw. beigebracht, und es kann sehr nützlich sein.

Was "was die Software sein muss" betrifft, so sind dies die Anforderungen. Sie scheinen den ganzen Punkt zu verpassen.

Schnittstellen werden häufig im Voraus skizziert, und Anwendungsfälle können für den "Fluss" der Schnittstelle verwendet werden. Die Benutzererfahrung fehlt überhaupt nicht. Wenn Sie der Meinung sind, dass ein Element fehlt, tun Sie etwas anderes, das Ihre Professoren nicht erwähnt haben. Design besteht nicht aus klaren Regeln, die vom Himmel überliefert wurden.

Matthew Read
quelle
0

Meine persönliche Beobachtung ist, dass das Prototyping viel Lippenbekenntnis erhält, aber allzu oft wird der Prototyp, sobald er Lebenszeichen zeigt, einfach in "Beta" oder, noch schlimmer, in Version 1.0 umbenannt.

leed25d
quelle
+1 Sehr wahr, der Prototyp wird vom Marketing gesehen, das dazu neigt, den Abschluss des Projekts anzukündigen.
Orbling
1
Dies ist ein Argument, um Ihre Prototypen angesichts der Zeit so gut wie möglich zu machen, und nicht, um sich zu weigern, Prototypen herzustellen.
Inaimathi
0

Es gibt zwei Arten von Prototypen - drei tatsächlich:

  1. Wir bauen Prototypen, um das Design zu verfeinern und Risiken zu reduzieren, bevor wir mit der "echten" Codierung beginnen (Engineering).

  2. Wir bauen das Projekt als eine Reihe von raffinierten Prototypen (Agile)

  3. Wir bauen einen Prototyp und versenden ihn, sobald er funktioniert (Cowboy)

Steven A. Lowe
quelle
0

Ein Prototyp kann auch als "Iteration 0" dessen angesehen werden, was Sie tun müssen. Es erfüllt mehrere Dinge:

  • Es zeigt, dass das Konzept umgesetzt werden kann. Dies kann an Ihren Chef oder an einen zahlenden Kunden gehen.
  • Auf diese Weise können Sie Dinge identifizieren, bei denen es schwierig sein kann, die Produktionsstärke zu erreichen, und Sie erhalten eine allgemeine Vorstellung vom Arbeitsaufwand.
  • Sie haben tatsächlich Code, der etwas bewirkt . Das ist immens wichtig!

Alles in allem sollte der Prototyp mit hoher Wahrscheinlichkeit für die Erstellung des Endprodukts nützlich sein, es sei denn, Sie haben festgestellt, dass ein völlig anderer Ansatz erforderlich ist.


quelle