Objektorientierter Ansatz

Beim objektorientierten Ansatz liegt der Schwerpunkt auf der Erfassung der Struktur und des Verhaltens von Informationssystemen in kleinen Modulen, die sowohl Daten als auch Prozesse kombinieren. Das Hauptziel von Object Oriented Design (OOD) besteht darin, die Qualität und Produktivität der Systemanalyse und des Systemdesigns zu verbessern, indem es benutzerfreundlicher gemacht wird.

In der Analysephase werden OO-Modelle verwendet, um die Lücke zwischen Problem und Lösung zu schließen. Es funktioniert gut in Situationen, in denen Systeme kontinuierlich entworfen, angepasst und gewartet werden. Es identifiziert die Objekte in der Problemdomäne und klassifiziert sie nach Daten und Verhalten.

Das OO-Modell ist auf folgende Weise vorteilhaft:

  • Es erleichtert Änderungen im System zu geringen Kosten.

  • Es fördert die Wiederverwendung von Komponenten.

  • Dies vereinfacht das Problem der Integration von Komponenten zur Konfiguration eines großen Systems.

  • Es vereinfacht den Entwurf verteilter Systeme.

Elemente eines objektorientierten Systems

Lassen Sie uns die Eigenschaften des OO-Systems durchgehen -

  • Objects- Ein Objekt ist etwas, das innerhalb der Problemdomäne vorhanden ist und durch Daten (Attribut) oder Verhalten identifiziert werden kann. Alle materiellen Einheiten (Student, Patient) und einige immaterielle Einheiten (Bankkonto) werden als Objekt modelliert.

  • Attributes - Sie beschreiben Informationen über das Objekt.

  • Behavior- Es gibt an, was das Objekt tun kann. Es definiert die Operation, die an Objekten ausgeführt wird.

  • Class- Eine Klasse kapselt die Daten und ihr Verhalten. Objekte mit ähnlicher Bedeutung und ähnlichem Zweck werden als Klasse zusammengefasst.

  • Methods- Methoden bestimmen das Verhalten einer Klasse. Sie sind nichts weiter als eine Aktion, die ein Objekt ausführen kann.

  • Message- Eine Nachricht ist ein Funktions- oder Prozeduraufruf von einem Objekt zum anderen. Dies sind Informationen, die an Objekte gesendet werden, um Methoden auszulösen. Eine Nachricht ist im Wesentlichen ein Funktions- oder Prozeduraufruf von einem Objekt zum anderen.

Merkmale des objektorientierten Systems

Ein objektorientiertes System verfügt über mehrere großartige Funktionen, die im Folgenden erläutert werden.

Verkapselung

Die Kapselung ist ein Prozess des Versteckens von Informationen. Es ist einfach die Kombination von Prozess und Daten zu einer Einheit. Die Daten eines Objekts sind vor dem Rest des Systems verborgen und nur über die Dienste der Klasse verfügbar. Es ermöglicht die Verbesserung oder Änderung von Methoden, die von Objekten verwendet werden, ohne andere Teile eines Systems zu beeinflussen.

Abstraktion

Es ist ein Prozess, bei dem die erforderlichen Methoden und Attribute zur Angabe des Objekts verwendet oder ausgewählt werden. Es konzentriert sich auf wesentliche Merkmale eines Objekts in Bezug auf die Perspektive des Benutzers.

Beziehungen

Alle Klassen im System sind miteinander verbunden. Die Objekte existieren nicht isoliert, sie existieren in Beziehung zu anderen Objekten.

Es gibt drei Arten von Objektbeziehungen:

  • Aggregation - Es zeigt die Beziehung zwischen einem Ganzen und seinen Teilen an.

  • Association - Dabei werden zwei Klassen in irgendeiner Weise miteinander verbunden oder verbunden, z. B. wenn eine Klasse mit einer anderen zusammenarbeitet, um eine Aufgabe auszuführen, oder wenn eine Klasse auf eine andere Klasse einwirkt.

  • Generalization- Die untergeordnete Klasse basiert auf der übergeordneten Klasse. Es zeigt an, dass zwei Klassen ähnlich sind, aber einige Unterschiede aufweisen.

Erbe

Vererbung ist eine großartige Funktion, mit der Unterklassen aus einer vorhandenen Klasse erstellt werden können, indem die Attribute und / oder Operationen vorhandener Klassen geerbt werden.

Polymorphismus und dynamische Bindung

Polymorphismus ist die Fähigkeit, viele verschiedene Formen anzunehmen. Dies gilt sowohl für Objekte als auch für Operationen. Ein polymorphes Objekt ist eines, dessen wahrer Typ sich innerhalb einer Super- oder Elternklasse versteckt.

Bei einer polymorphen Operation kann die Operation von verschiedenen Klassen von Objekten unterschiedlich ausgeführt werden. Es ermöglicht uns, Objekte verschiedener Klassen zu manipulieren, indem wir nur ihre gemeinsamen Eigenschaften kennen.

Strukturierter Ansatz Vs. Objektorientierter Ansatz

In der folgenden Tabelle wird erläutert, wie sich der objektorientierte Ansatz vom traditionellen strukturierten Ansatz unterscheidet.

Strukturierter Ansatz Objektorientierter Ansatz
Es funktioniert mit Top-Down-Ansatz. Es funktioniert mit Bottom-up-Ansatz.
Das Programm ist in verschiedene Submodule oder Funktionen unterteilt. Das Programm ist nach Anzahl der Klassen und Objekte organisiert.
Funktionsaufruf wird verwendet. Das Weiterleiten von Nachrichten wird verwendet.
Eine Wiederverwendung von Software ist nicht möglich. Wiederverwendbarkeit ist möglich.
Die strukturierte Entwurfsprogrammierung bleibt normalerweise bis zur Endphase bestehen. Objektorientierte Designprogrammierung gleichzeitig mit anderen Phasen.
Strukturiertes Design eignet sich eher für Offshoring. Es ist für die Eigenentwicklung geeignet.
Es zeigt einen klaren Übergang vom Design zur Implementierung. Nicht so klarer Übergang vom Design zur Implementierung.
Es eignet sich für Echtzeitsysteme, eingebettete Systeme und Projekte, bei denen Objekte nicht die nützlichste Abstraktionsebene sind. Es eignet sich für die meisten Geschäftsanwendungen und Spieleentwicklungsprojekte, deren Anpassung oder Erweiterung erwartet wird.
DFD & ER-Diagramm modellieren die Daten. Klassendiagramm, Sequenzdiagramm, Zustandsdiagramm und Anwendungsfälle tragen alle dazu bei.
Auf diese Weise können Projekte aufgrund klar identifizierbarer Phasen einfach verwaltet werden. Bei diesem Ansatz kann es aufgrund unsicherer Phasenübergänge schwierig sein, Projekte zu verwalten.

Unified Modeling Language (UML)

UML ist eine visuelle Sprache, mit der Sie Prozesse, Software und Systeme modellieren können, um das Design der Systemarchitektur auszudrücken. Es ist eine Standardsprache zum objektorientierten Entwerfen und Dokumentieren eines Systems, mit der technische Architekten mit Entwicklern kommunizieren können.

Es ist definiert als eine Reihe von Spezifikationen, die von der Object Management Group erstellt und verteilt werden. UML ist erweiterbar und skalierbar.

Das Ziel von UML ist es, ein gemeinsames Vokabular objektorientierter Begriffe und Diagrammtechniken bereitzustellen, das reich genug ist, um jedes Systementwicklungsprojekt von der Analyse bis zur Implementierung zu modellieren.

UML besteht aus -

  • Diagrams - Es ist eine bildliche Darstellung des Prozesses, des Systems oder eines Teils davon.

  • Notations - Es besteht aus Elementen, die in einem Diagramm zusammenarbeiten, wie z. B. Anschlüsse, Symbole, Notizen usw.

Beispiel für die UML-Notation für die Klasse

Instanzdiagramm-UML-Notation

Operationen, die an Objekten ausgeführt werden

Die folgenden Operationen werden an den Objekten ausgeführt:

  • Constructor/Destructor- Erstellen neuer Instanzen einer Klasse und Löschen vorhandener Instanzen einer Klasse. Zum Beispiel Hinzufügen eines neuen Mitarbeiters.

  • Query- Der Zugriff auf den Status ohne Änderung des Werts hat keine Nebenwirkungen. Zum Beispiel die Adresse eines bestimmten Mitarbeiters finden.

  • Update - Ändert den Wert eines oder mehrerer Attribute und wirkt sich auf den Status des Objekts aus. Ändern Sie beispielsweise die Adresse eines Mitarbeiters.

Verwendung von UML

UML ist für die folgenden Zwecke sehr nützlich:

  • Modellierung des Geschäftsprozesses
  • Beschreibung der Systemarchitektur
  • Anwendungsstruktur anzeigen
  • Erfassen des Systemverhaltens
  • Modellierung der Datenstruktur
  • Erstellen der detaillierten Spezifikationen des Systems
  • Ideen skizzieren
  • Programmcode generieren

Statische Modelle

Statische Modelle zeigen die strukturellen Eigenschaften eines Systems, beschreiben seine Systemstruktur und betonen die Teile, aus denen das System besteht.

  • Sie werden verwendet, um Klassennamen, Attribute, Methoden, Signaturen und Pakete zu definieren.

  • UML-Diagramme, die ein statisches Modell darstellen, umfassen Klassendiagramme, Objektdiagramme und Anwendungsfalldiagramme.

Dynamische Modelle

Dynamische Modelle zeigen die Verhaltensmerkmale eines Systems, dh wie sich das System als Reaktion auf externe Ereignisse verhält.

  • Dynamische Modelle identifizieren das benötigte Objekt und wie sie durch Methoden und Nachrichten zusammenarbeiten.

  • Sie werden verwendet, um die Logik und das Verhalten des Systems zu entwerfen.

  • UML-Diagramme stellen ein dynamisches Modell dar, einschließlich Sequenzdiagramm, Kommunikationsdiagramm, Zustandsdiagramm, Aktivitätsdiagramm.

Objektorientierter Lebenszyklus der Systementwicklung

Es besteht aus drei Makroprozessen -

  • Objektorientierte Analyse (OOA)
  • Objektorientiertes Design (OOD)
  • Objektorientierte Implementierung (OOI)

Objektorientierte Systementwicklungsaktivitäten

Die objektorientierte Systementwicklung umfasst folgende Phasen:

  • Objektorientierte Analyse
  • Objektorientiertes Design
  • Prototyping
  • Implementation
  • Inkrementelle Tests

Objektorientierte Analyse

Diese Phase befasst sich mit der Ermittlung der Systemanforderungen und dem Verständnis der Systemanforderungen use-case model. Ein Anwendungsfall ist ein Szenario zur Beschreibung der Interaktion zwischen Benutzer und Computersystem. Dieses Modell repräsentiert die Benutzeranforderungen oder die Benutzeransicht des Systems.

Dazu gehört auch das Identifizieren der Klassen und ihrer Beziehungen zu den anderen Klassen in der Problemdomäne, aus denen eine Anwendung besteht.

Objektorientiertes Design

Ziel dieser Phase ist es, die Klassen, Attribute, Methoden und Strukturen zu entwerfen und zu verfeinern, die während der Analysephase, der Benutzeroberfläche und des Datenzugriffs identifiziert werden. In dieser Phase werden auch die zusätzlichen Klassen oder Objekte identifiziert und definiert, die die Implementierung der Anforderung unterstützen.

Prototyp entwickeln

Das Prototyping ermöglicht es, vollständig zu verstehen, wie einfach oder schwierig es sein wird, einige der Funktionen des Systems zu implementieren.

Es kann Benutzern auch die Möglichkeit geben, Kommentare zur Benutzerfreundlichkeit und Nützlichkeit des Designs abzugeben. Es kann einen Anwendungsfall weiter definieren und die Anwendungsfallmodellierung erheblich vereinfachen.

Implementierung

Es verwendet entweder Component-Based Development (CBD) oder Rapid Application Development (RAD).

Komponentenbasierte Entwicklung (CBD)

CODD ist ein industrialisierter Ansatz für den Softwareentwicklungsprozess unter Verwendung verschiedener Technologien wie CASE-Tools. Die Anwendungsentwicklung geht von der benutzerdefinierten Entwicklung zur Montage vorgefertigter, vorab getesteter, wiederverwendbarer Softwarekomponenten über, die miteinander arbeiten. Ein CBD-Entwickler kann Komponenten zusammenstellen, um ein vollständiges Softwaresystem zu erstellen.

Schnelle Anwendungsentwicklung (RAD)

RAD ist eine Reihe von Tools und Techniken, mit denen eine Anwendung schneller erstellt werden kann, als dies mit herkömmlichen Methoden normalerweise möglich ist. Es ersetzt SDLC nicht, sondern ergänzt es, da es sich mehr auf die Prozessbeschreibung konzentriert und perfekt mit dem objektorientierten Ansatz kombiniert werden kann.

Seine Aufgabe ist es, die Anwendung schnell zu erstellen und das Design der Benutzeranforderungen schrittweise mithilfe von Tools wie Visual Basic, Power Builder usw. zu implementieren.

Inkrementelle Tests

Die Softwareentwicklung und alle ihre Aktivitäten einschließlich des Testens sind ein iterativer Prozess. Daher kann es eine kostspielige Angelegenheit sein, wenn wir darauf warten, ein Produkt erst nach seiner vollständigen Entwicklung zu testen. Hier kommt ein inkrementelles Testen ins Spiel, bei dem das Produkt in verschiedenen Phasen seiner Entwicklung getestet wird.