Software Design Strategien



Software-Design ist ein Prozess, zu konzeptualisieren um die Software-Anforderungen in Software-Implementierung zu konzipieren. Software-Design nimmt die Anforderungen der Nutzer als Herausforderung und versucht, eine Optimum Lösung zu finden, Während die Software ist, konzeptualisieren ist, wird ein Plan ist aus angekreidet, um die bestmögliche Design für die Umsetzung der beabsichtigt Lösung zu finden.

Es gibt mehrere Varianten des Software-Designs. Lasst uns Studie sie kurz:

strukturiertes Design

Strukturierte Design ist eine konzeptualisierung von Problem in mehrere gut organisierte Elemente der Lösung. Es ist im Grunde besorgt mit der Lösung-Design. Nutzen der strukturierten Aufbau ist, es verleiht besseres Verständnis, wie das Problem ist sind gelöst. Strukturierte Design macht es auch einfacheren für Designer, zu um das Problem genauer zu konzentrieren.

Strukturierte Design ist meistens verwendeten auf "Teile und Herrsche" -Strategie, wo ein Problem ist gebrochen in mehrere kleine Probleme und jeder kleine Problem is individuell Gelöst bis das ganze Problem ist gelöst.

Die kleinen Stücke Probleme sind mittels Lösungsmodule gelöst. Strukturierte Design Betonung, dass diese Module gut auch, um eine präzise Lösung zu erreichen organisiert werden.

Diese Module sind in der Hierarchie angeordnet sind. Sie miteinander kommunizieren. Eine gute strukturierte Design folgt immer ein paar Regeln für die Kommunikation unter mehrere Modulen, nämlich -

Zusammenhalt - Gruppierung aller funktionell verwandte Elemente.

Kopplung - Kommunikation zwischen den anders Modulen.

Eine gute strukturierte Design hat eine hohe Kohäsion und geringe Kopplung Arrangements.

Funktionsorientiertes Design

In funktionsorientierten Design das System ist umfasste von vielen kleineren Subsystemen bekannt als Funktionen. Diese Funktionen sind fähig ausführens signifikant Aufgabe im System. Das System ist als Draufsicht auf alle Funktionen berücksichtigt.

Funktionsorientierte Design erbt einige Eigenschaften von strukturierten Design, wo Teile und Herrsche Methodik verwendet wird.

Dieses Design mechanismus aufteilen das ganze System in kleinere Funktionen, welche die Mittel der Abstraktion bietet durch Verschleierung der Informationen und ihre Betriebs. Diese Funktionsmodule können Informationen teilen unter sich durch Mittel von Informationen Vorbeigehen und unter Verwendung Informationen Verfügbar global.

Ein weiteres Charakteristik der Funktionen ist, dass, wenn ein Programm eine Funktion aufruft, die Funktion Änderungen die den Zustand des Programms, die welche manchmal ist nicht von anderen Modulen akzeptabel. Funktionsorientierten Entwurf funktioniert gut, wo das System Zustand spielt keine Rolle, und das Programm / Funktionen Arbeiten auf Eingangs vielmehr als auf einen Zustand.

Design-Prozess

  • Das ganze System ist gesehen wie how Daten fließt in dem System mittels Datenflussdiagramm.

  • DFD zeigt, wie Funktionen ändert daten und Zustand des gesamte Systems.

  • Das gesamte System ist logisch gebrochen in kleinere Einheiten ist bekannt als Funktionen auf der Grundlage von deren Betrieb in dem System.

  • Jede Funktion wird dann bei groß beschrieben.

Objektorientiertes Design

Objektorientierten Design Werke rund um die Entitäten und ihre Charakteristik anstelle von Funktionen beteiligt in der Software-System. Dieses Design-Strategien konzentriert sich auf die Entitäten und seine Charakteristik. Das gesamte Konzept der Software-Lösung dreht sich um die Verlobt entitäten.

Lassen Sie uns sehen wichtige Konzepte der objektorientierten Design:

  • Objekte - Alle in der Lösung Design beteiligten Entitäten werden als Objekte bekannt. So werden beispielsweise Person, Banken, Firma und Kunden als Objekte behandelt. Jede Entität hat einige Attribute, verbunden zu es und hat einige Methoden, um auf den Attributen durchzuführen.

  • Klassen - Eine Klasse ist eine generali Beschreibung eines Objekts. Ein Objekt ist eine Instanz einer Klasse. Klasse definiert alle Attribute, welche ein objekt können und Methoden,welche definies die Funktionalität von die objekt.

    In der Lösung Design, sind Attribute als Variablen gespeichert und Funktionalitäten werden durch Mittel von Methoden oder Verfahren definiert.

  • Verkapselung - In OOD, werden die Attribute (Daten-Variablen) und Methoden (Operation an den Daten) sind gebündelt zusammen Kapselung genannt. Kapselung nicht nur Bundles wichtige Informationen von einem Objekt zusammen, aber auch beschränkt den Zugriff der Daten und Methoden aus der Außenwelt. Dies wird als Information Hiding.

  • Erbschaft - OOD ermöglicht ähnliche Klassen zu Stapel bis in hierarchischen Weise, wo die unteren oder Unterklassen können zu importieren, implementieren und Wiederverwendung erlaubt Variablen und Methoden von ihren unmittelbaren Superklassen. Diese Eigenschaft der OOD ist als Erbe bekannt. Dies macht es einfacher zu definieren, spezifisch Klasse und zu erstellen generali Klassen von spezifischen Einsen.

  • Polymorphismus - OOD Sprachen bieten einen Mechanismus, wo Methoden ausführens die ähnliche Aufgaben, sondern variieren sich in Argumente, zugeordnet werden können denselben Namen. es ist namens als Polymorphie, die ermöglicht eine einzige Schnittstelle ausführens Aufgaben für die verschiedenen typen. Je nachdem, wie die Funktion aufgerufen wird, jeweiligen portion des Codes bekommt ausgeführt.

Design-Prozess

Softwareentwurfsprozess kann als Reihe von gut definierten Schritte wahrgenommen werden. Obwohl es variiert nach zu Design-Ansatz (funktionsorientiert oder objektorientiert, noch es können die folgenden Schritte beteiligt:

  • Eine Lösung Entwurf wird von Anforderung oder vorherigen verbreitete System und / oder Systemsequenzdiagramm erstellt.

  • Die Objekte werden identifiziert gruppiert in Klassen im Namen der Ähnlichkeit im Attribut Charakteristik.

  • Klassenhierarchie und die Beziehung unter ihnen ist definiert.

  • Anwendungs-Framework definiert ist.

Software Design Approaches

Hier sind zwei generische Ansätze für Software-Design:

Top Down Design

Wir wissen, dass ein System ist komponiert von mehr als eine Teilsystemen besteht und es eine Anzahl von Komponenten enthält. Ferner, diese Untersysteme und Komponenten können haben ihren Satz von Untersystem und Komponenten und schafft hierarchische Struktur in Systems.

Top-Down-Design nimmt die ganze Softwaresystem als eine Entität, und dann zersetzt es sich zu erzielt mehr als einem Untersystem oder die Komponente auf basierend einige Charakteristik. Jedes Untersystem oder die Komponente wird dann behandelt als System und zerlegt weiter. Dieser Prozess behalt auf Laufen, bis die unterste Ebene der Systems in der Top-Down-Hierarchie ist erzielen.

Top-Down-Design beginnt mit einem generali Modell der System und hält auf definiere spezifisch Teil davon zu. Wenn alle Komponenten sind komponiert das ganze System kommt in Existenz.

Top-Down-Design ist mehr geeignet, wenn die Software-Lösung muss von Grund auf neu konzipiert werden, und spezifische Details bekannt sind.

Bottom-up Design

Die Bottom-up-Design-Modell startet mit den meisten spezifischen und Grundkomponenten. Es Erlös mit dem Komponieren höhere Ebene auf Komponenten mithilfe Grund-oder niedriger ebene Komponenten. Es hält Schaffung von höher Level-Komponenten, bis gewünschte System ist nicht als eine einzige Komponente gewachsen. Mit Wobei jede höhere Ebene, wird die Menge der Abstraktion ist erhöhte zu.

Bottom-up-Strategie ist besser geeignet, wenn ein System muss erstellt werden aus einige bestehenden System, wo die Basisprimitiven können in der neueren System verwendet werden.

Sowohl Top-down-und Bottom-up-Ansätze sind nicht einzeln praktisch. Stattdessen wird eine gute Kombination des beiden verwendet wird.

Advertisements