Ich möchte ein großes Projekt entwickeln, aber ich weiß wirklich nicht, wie ich mein Projekt am besten modellieren kann. Muss ich mein Projekt überhaupt modellieren? Was sind die praktischsten OOP-Software-Modellierungsmethoden in realen Projekten? Was sind die besten und nützlichsten?Was sind die praktischsten objektorientierten Softwaremodellierungsmethoden in realen Projekten?
Antwort
Agile-Methode wird derzeit empfohlen. Wenn Sie ein Stück UML hinzufügen, dann wäre es besser :-)
Oft ist es erforderlich, um die komplexe Struktur der Klassen, die Sie in Ihrem OO-System haben, zu erfassen, so dass Klassendiagramme von UML für die Modellierung verwendet werden. Sie können auch Interaktionen von Klassen beschreiben, da diese Sequenzdiagramme nützlich sind. Es gibt auch andere UML-Diagramme und jedes hat seinen Zweck. Wenn Sie nach einem Ansatz für die Modellierung suchen, versuchen Sie, Unified Process zu betrachten, eine Entwicklungsmethode, die von UML-Autoren erstellt wird und UML ziemlich stark verwendet und auch beschreibt, wie UML verwendet werden kann.
Modellierung (Design) ist der wichtigste Teil eines jeden Projekts. Im Laufe der Zeit opfern wir die Leistung, um ein höheres Designniveau zu erreichen. Warum .NET Framework ist beliebt (im Vergleich zu alten Tools)? In den meisten Fällen handelt es sich bei den Bibliotheken um Wrappers über herkömmliche Win32-APIs, was eine Verschwendung von Performance darstellt, stattdessen bietet es ein besseres Design, was es einfach zu erlernen und zu verwenden macht. Wenn Ihr Projekt ein gutes Design hat, wäre es leicht zu verstehen, zu entwickeln, zu debuggen, zu warten und zu erweitern. Ein anderes Beispiel ist OOP selbst, das Klassen, Interfaces ... und eine Menge Konstruktor-/Destruktoraufrufe hat. OOP-Konzepte sind aus der Psychiatrie und der Art, wie der Mensch die Welt sieht, entlehnt.
Hier sind zwei unterschiedliche Konzepte: 1) Design-Methodik 2) Projektmanagement-Methodik
Es gibt viele und ich weiß nicht, gut oder schlecht nennen. Jeder von ihnen passt zu einem Szenario. Über Design-Methodik Ich bevorzuge DDD (Domain Driven Design), wie es die Industrie Domain Terminologie und Konzepte abbildet. Also, wenn Sie ein Entscheidungsproblem haben, was zu tun ist, wenn A-> B-> C passiert ist, können Sie einfach einen Domain-Profi fragen und er wird sagen, was sie in der realen Welt tun. DDD ist gut für alt genug Industrien, die kumulative Weisheit haben. Ich werde nicht mehr über Design schreiben, da wir nichts über das Projekt wissen.
Projektmanagement-Methoden (wie agil) sind die Art, wie Sie das Gebäude aus der Karte (Design) bauen. Ziel des Projektmanagements ist es, Ressourcen optimal zu nutzen (Zeit, Geld, Personal ...). Dies geschieht durch eine Arbeitsstruktur und ermöglicht eine möglichst parallele Arbeit. Die bekannteste Projektmanagementmethode ist die traditionelle, bei der wir alles in der Reihenfolge tun, wie es die Bauingenieure tun (Fundament, Struktur, Wände ...). Das war viele Jahrhunderte lang bis in die letzten Jahrzehnte (Softwareindustrie), denn im klassischen Projektmanagement wissen Sie, wo Sie sind, wohin Sie wollen und wie Sie dorthin gelangen. Auf diese Weise können Sie Ihre Möbel für ein Zuhause kaufen, das noch ein Land ist! Software-Industrie hat sehr schnelle Änderungen in Tools und Methoden, weil es neu war und keine Best Practices auf Tausende von gescheiterten Projekten gegründet wurden. Viele Male, wenn ein Projekt gestartet wurde, hat es Änderungen aufgrund von Änderungen in den Entwicklungswerkzeugen und Frameworks. Eine andere Quelle der Veränderung ist der Umfang des Projekts (wohin es geht). Software ist ein immaterielles Produkt, so dass Sie leicht in die Falle von Zeiteinschätzungen geraten. Für die Softwareentwicklung empfehlen sich iterative Methoden. Iterative Methoden schlagen vor, eine unvollständige Arbeitslösung, die Sie in der nächsten Iteration vollständiger machen, als eine unvollständige Arbeitseinheit. Dies hat einen Zeitaufwand, stattdessen können Sie sicher sein, dass die Lösung funktioniert und wenn Sie ein Problem haben, finden Sie es in einem frühen Stadium. Deshalb haben wir nächtliche Builds!
Die Frage dreht sich um "Software-Modellierungsmethoden". UML ist nur eine Sprache. Es sagt Ihnen nicht, wie Sie denken sollen, es hilft Ihnen, Ihre Gedanken auf eine Standardweise mit anderen zu teilen, die diese Sprache kennen. Danke für die negative Abstimmung! – Xaqron
Das Beste ist Visual Studio 2010 Ultimate andere sind zu umständlich. Ansonsten verwenden Sie leichte Werkzeuge wie yuml, siehe http://askuml.com für Proben.
- 1. Was sind die realen Anwendungen der Huffman-Codierung?
- 2. Was sind diese Dateien mit "~" in Java-Projekten?
- 3. Was sind die OSS .net/Java-Projekte, die die meisten SOLID Principles richtig genutzt haben?
- 4. Was sind die Zwecke von EXE-Dateien in den MVC5-Projekten?
- 5. Was sind Ansichten in MySQL?
- 6. Was sind die Konsolenfarbwerte
- 7. Was ist die * .VC.db-Datei in Visual Studio-Projekten?
- 8. Was sind die Werte?
- 9. Was sind die Nachteile beim Kompilieren von C++ - Projekten mit/clr: sicher, um Komponententests zu aktivieren?
- 10. Die saubere Programmiersprache in der realen Welt?
- 11. Histogramm der objektorientierten Gradientenerkennung
- 12. Was sind Threads (Was ist ein Thread)?
- 13. Was sind die typischen Anwendungsfälle für vi?
- 14. Sind Generics in D2009 in großen Projekten verwendbar?
- 15. Was ist der Unterschied zwischen objektorientierten und Dokumentendatenbanken?
- 16. Was sind einige Beispiele aus der realen Welt für abstrakte neue/virtuelle/override/abstrakte Keywords?
- 17. Was ist die beste Alternative zu Null in der objektorientierten Programmierung?
- 18. Was sind die praktischen Unterschiede zwischen Fliegengewicht und Singleton-Mustern?
- 19. ORM in der realen Welt
- 20. Was sind die Standard-Verschlüsselungsdateiformate?
- 21. Was sind die bekannten UIDs?
- 22. Was sind die japanischen Leerzeichen?
- 23. Was sind einige Techniken zum Einschränken der Kompilierungsabhängigkeiten in C++ - Projekten?
- 24. JavaScript-Eigenschaften mit Setter-Methoden sind keine realen Eigenschaften?
- 25. Was sind die verschiedenen Auslöser in WPF?
- 26. Was sind die Generationen in Garbage Collection?
- 27. Was sind die empfohlenen Optimierungstechniken in Hive?
- 28. Was sind die Teilzeichen in Silverlight's TextWrapping?
- 29. Was sind die Hauttypen in Android Studio?
- 30. Was sind die Headerdateien in C?
Agile ist ein Softwareentwicklungs-Lebenszyklusmodell, keine Softwaremodellierungsmethode. Ich denke, er fragt nach der Modellierung der Software selbst. –
@Ryan Haye um genauer zu sein, Agile ist Satz von Prinzipien oder Satz von Entwicklungsmethoden, die SDLC ist iterativ-inkrementell. –