2013-06-30 5 views

Antwort

8

Die Antwort liegt in Ihrer Frage selbst. Wie denken Sie, ist eine Software entworfen und eine Software implementiert?

Im Design entwickeln wir Blueprint für die Gestaltung praktikabler Software. Dieser blaue Ausdruck beinhaltet ein Modell, das in Software übersetzt werden kann, während die Implementierung die Umwandlung dieses Modells in tatsächliche Software, d. H. Code, beinhaltet.

Ähnlich, Eine Komponente ist in der Regel größer und abstrakter als eine Klasse.Während eine Klasse ein relativ Low-Level-Plan (Design) für eine Objektinstanz ist, könnte ein Komponente eine Reihe von Klassen, die zusammen ein gekapseltes Modul bildet (Implementierung) Sie dann Schnittstelle mit. Eine Komponente könnte sogar überhaupt keine Klassen enthalten!

Nun Komponentendiagramme zeigen nicht den tatsächlichen Code aber die Abhängigkeiten zwischen den tatsächlichen implementiert Softwarekomponenten (diese Komponenten wie zum Beispiel etwas wie ausführbaren Dateien, Dateien, Ordner usw. sein: -

enter image description here

Wie bereits diskutiert, ist Klassendiagramm der UML-Strukturdiagramm, das auf der Ebene der Klassen und Schnittstellen Struktur des entworfenen Systems zeigt, zeigt ihre Eigenschaften, Einschränkungen und Beziehungen - Assoziationen, Generalisierungen, Abhängigkeiten, etc. Beispiel eines Klassendiagramm:

enter image description here

Ich hoffe, dass ich mich klar gemacht.

+0

In beiden Fällen spreche ich über Design Ich möchte ein Beispiel sehen in: \t 1) Wie können Klassen- und Paketdiagramme logisches Design von Software modellieren? 2) Wie kann die Implementierung von Komponentendiagrammmodellen aussehen? – user2019510

+0

Wie Sie sehen können, zeigt Ihre Implementierungsansicht (über das Komponentendiagramm) keine Implementierungsdetails? – user2019510

+1

Logisches Design nach Klassenperspektive ist eine Organisation von Klassen und deren Assoziationen, wie Sie in meinem 'Klassendiagramm' sehen können. Komponentendiagramme Modellimplementierungsansicht, indem nur die implementierten Softwarekomponenten angezeigt werden. Wie in anderen Antworten erwähnt, zeigt es weniger detaillierte Sicht auf die gleiche Klasse, wie sie als Softwarekomponenten implementiert sind. – 0decimal0

2

Normalerweise kann es als ein detaillierteres Diagramm gesehen werden. Das Klassendiagramm sollte Eigenschaften haben, die mit implementierungsspezifischen Typen wie z.

Box 
- cats: list<Cat> 
+ getCat: Cat 
+ addCat: void 

Die Komponente ist eine weniger detaillierte Ansicht der gleichen Sache. Ich kann mich nicht erinnern, wie viel Detail sichtbar ist. Soweit ich mich erinnere, könnte es dasselbe wie das Klassendiagramm ohne Typen sein.

Das Komponentendiagramm sollte verwendet werden, um die allgemeine Idee von dem, was Sie erstellen möchten, zu entwerfen. Das Klassendiagramm könnte verschiedene Klassen haben, da die Implementierung Klassen benötigt, die nicht mit dem Komponentendiagramm vorhanden sein müssen.

Meine Worte müssen mit einem Körnchen Salz genommen werden, da ich zugegebenermaßen für eine Weile keine Diagramme gezeichnet habe.

+0

danke @ Loïc Faure-Lacroix .Ich habe meine Frage aktualisiert. Macht das Sinn? – user2019510

4

In UML-Komponente kann das gleiche wie Klassendiagramme tun.

Aber der Hauptunterschied ist, dass Komponenten größer Verantwortlichkeiten als Klasse


Kruchten die 4+1 view model verschiedenen Teilen der system.Simply setzen zu erfassen entwickelt haben, hilft es Ihnen, Modell verschiedene Ansichten (logische, physikalische , devlopment, Prozess, Anwendungsfall) des Systems

Jede Ansicht fängt einen spezifischen Aspekt des Systems

  • Logische Ansicht beschreibt welche ein System aus und gemacht wird, wie die Teile

  • Implementierung Ansicht auch bekannt als Developement Ansicht beschreibt, wie die Systemkomponenten sind organisiert in Module und Komponenten

  • interagieren
+0

danke @Anirudh zur Klarstellung.Ich habe meine Frage aktualisiert. Macht das Sinn? – user2019510

+0

@ user2019510 hoffe, die Bearbeitung hilft – Anirudha

+0

Vielen Dank für Klarstellungen @Anirudh, Up Abstimmung für Sie :) Nun möchte ich ein Beispiel (letzter Teil meiner Frage) in einer Klasse und Komponente zu sehen, in der Lage zu bemerken Die korrekte Anwendung des Unterschieds – user2019510