Angenommen, ich habe die Spezifikationen für ein Projekt von einem Kunden erhalten, und jetzt ist es an der Zeit, mit der Entwicklung zu beginnen. Normalerweise beginne ich einfach mit dem ersten Modul (normalerweise Benutzerregistrierung) und gehe dann von einem Modul zum nächsten. Ich plane erst in meinem Kopf, bevor ich mit einem Modul beginne, wie es funktionieren soll, aber vorher gibt es keine Planung.
Ich denke jedoch, es wäre besser, wenn ich die Spezifikationen durchgehen und planen würde, wie das System funktionieren soll, bevor ich es codiere, z. B. was die Hauptkomponenten sind, wie sie interagieren sollen usw. Ich weiß nicht genau, was ich planen soll.
Um eine bessere Vorstellung davon zu bekommen, wonach ich frage, wie soll ich-
a) Teilen Sie das Projekt in Komponenten auf,
b) Planen Sie ihre Interaktionen, z. B. sollte ich Klassendiagramme erstellen, Komponententests schreiben usw.?
Irgendwelche Ideen?
quelle
Antworten:
Wenn Sie das Privileg haben, mit einem neuen Projekt zu beginnen, haben Sie eine leere Leinwand - was gleichzeitig aufregend und entmutigend ist. Ich arbeite in Iterationen, und so teile ich die Arbeit auf:
Im Wesentlichen hat mir dieser Ansatz, ein Projekt schrittweise von einem sehr hohen Niveau zu einem detaillierteren Design zu definieren, gut getan. Sogar die Interaktionen zwischen Subsystemen werden verfeinert, wenn Sie tatsächlich versuchen, sie zu implementieren. Das ist gut.
quelle
Richtig. Gute Idee.
Gut. Mach mehr davon.
Ausgezeichnet.
Richtig.
Wie können Sie nicht sicher sein, ob Sie bereits ein paar Sachen aufgelistet haben? Wenn das die Dinge sind, die dich betreffen, warum konzentrierst du dich dann nicht einfach auf diese Dinge?
Lesen Sie mehr zum 4 + 1-Ansichtsmodell: http://en.wikipedia.org/wiki/4%2B1_Architectural_View_Model
Lesen Sie mehr über das Zachman-Framework: http://en.wikipedia.org/wiki/Zachman_Framework
Das ist es, was Sie planen müssen.
Verwenden Sie gängige Entwurfsmuster für andere, ähnliche Projekte.
Im Zweifelsfall lesen Sie die J2EE-Pläne für Ideen.
http://www.oracle.com/technetwork/java/javaee/blueprints/index.html
Ja. Gute Ideen, alle.
quelle
Das Wichtigste: Überprüfen Sie die Spezifikationen, interagieren Sie mit dem Kunden, um genauere Spezifikationen zu erhalten.
Die Anforderungen sind zweifellos unvollständig, vage oder falsch. Die größte Zeitverschwendung ist das Falsche. Kunden sind keine professionellen Softwareentwickler, und es kann nicht erwartet werden, dass sie gut darin sind, eine Reihe guter Anforderungen zu entwickeln.
Sie sollten also die technischen Daten überprüfen, den Kunden befragen und herausfinden, ob er / sie diese wirklich benötigt und möchte und sich diese leisten kann usw.
Entwickeln Sie Test- / Anwendungsfälle und überprüfen Sie diese mit dem Kunden. Wenn eine Anforderung nicht testbar ist, werfen Sie sie weg.
Entwickeln Sie das Design und stellen Sie sicher, dass alle Teile ordnungsgemäß funktionieren und theoretisch das tun, was Sie benötigen.
Entwickeln Sie einen Architekturprototyp, der die gesamte Technologie testet, die in jeder Ebene verwendet werden soll, ohne die Funktionalität zu berücksichtigen. Sie testen die Architektur, nicht die Funktionsspezifikation. Wenn Sie die falsche Architektur haben, müssen Sie alles neu schreiben. Daher ist es wichtig, die richtige Architektur zu finden. Stellen Sie sicher, dass es Ihre Anforderungen hinsichtlich Geschwindigkeit, Effizienz, Sicherheit usw. erfüllt.
quelle
Sie möchten auf jeden Fall ein Design haben, bevor Sie mit dem Codieren beginnen.
Sobald Sie das haben, bevorzuge ich normalerweise eine anfängliche Architekturphase, um zu definieren, wie Ihre App-Ebenen zusammenpassen. Dazu gehören Backbone-Dinge wie Sicherheit und Protokollierung.
Dann baue ich 1 Feature von oben nach unten, so dass Sie etwas vollständig implementiert haben.
Dann geh von dort aus.
quelle
Alles
Planen Sie alles, es ist einfacher, es auf Papier zu ändern, als wenn ein Teil davon bereits codiert ist. Sie erhalten eine hervorragende Grundlage für die Dokumentation und viele andere Vorteile.
quelle