Forex Trading Systems Ein Forex Trading System ist eine Handelsmethode, die objektive Einstiegs - und Ausstiegskriterien verwendet, basierend auf Parametern, die durch historische Tests auf quantifizierbaren Daten validiert wurden. Obwohl es keine harte und schnelle Regel für die Gestaltung der besten Forex-Handelssysteme (verschiedene Experten haben unterschiedliche Meinungen) die Essenz bleibt die gleiche. Im Allgemeinen bietet das Forex-Handelssystem die Disziplin, die Angst und Gier zu überwinden, die in vielen Fällen ein Händler lahmlegen und verhindert, dass er oder sie rechtzeitige Entscheidungen zu treffen. Jede bestellte Bestellung wird durch einen vorgegebenen Satz von Regeln geregelt, die nicht auf der Grundlage einer anderen als der Markthandlung abweichen. Wir wissen, dass Forex-Handel kann überwältigend sein Thats, warum wir eine Forex-Training-Klasse für Anfänger, die Ihnen helfen, lernen können Forex Trading-Strategien, die ARBEITEN Der Kurs heißt Forex 1, 2, 3 und seine kostenlos Klicken Sie hier, um mehr zu erfahren. Wie jedes andere Trading-System und Methode, Forex Trading-Systeme kochen bis hin zu Risiko versus Belohnung. Wie viel Kapital Sie bereit sind, ein Risiko für eine gegebene Rendite zu setzen, sollte Ihre oberste Erwägung sein. Darüber hinaus müssen die Kosten, die Handelsaktivitäten und die Märkte, die vor der Anlage gehandelt werden, berücksichtigt werden. In der Tat sind die besten Forex-Handelssysteme eine gute Mischung aus Kunst und Wissenschaft 8211 Kunst, weil es durch die Praxis und Wissenschaft kommt, weil es bestimmte Regeln, Vorschriften und Grundsätze zu beachten. Wissen und Technologie spielen bei jeder Entscheidung eine sehr wichtige Rolle. Im Bereich der Handelssysteme, sind automatisierte Forex-Handelssysteme Techniken, die Handelsentscheidungen für Sie treffen. Sie geben die Handelsdaten ein und das System erzeugt eine Antwort, die die entsprechende Aktion anzeigt. Sie kaufen, verkaufen oder nichts tun, abhängig von den Formeln dieses System verwendet und betreibt. Die neuesten Computer-Versionen dieser mechanischen Systeme sind komplette 8220black box8221 Operationen (Sie können nicht alle Emotionen beteiligt, wenn Sie ein bestimmtes System folgen). Vielleicht ist das einer der Gründe, warum diese Systeme als mechanische Systeme bezeichnet werden. Aber das bedeutet nicht, dass sie arent intelligent genug. Schalten Sie den Computer ein, starten Sie das System, und es aktualisiert Ihre Datenbank und generiert Trading-Empfehlungen, und legt Ihre Aufträge direkt an die Broker. Sehen Sie unsere Forex Trading Video Swingtrading Forex Dancing mit dem Markt mit Trend Jumper Unbestreitbar, in Forex Trading-Systeme, ist die Geschwindigkeit der Essenz in diesen hektischen Zeiten. Jede Nanosekunde zählt, wenn Sie mit fünf Minuten Charts handeln. Die grundlegendsten Forex Trading-Strategien beruhen auf gleitenden Durchschnitten. Die 8220sophisticated8221 Systeme verwenden Kombinationen von gleitenden Durchschnitten von Preis und Volumen. Die meisten 8220expensive8221 Systeme enthalten Stochastik, die die mathematischen Techniken für eine nicht-lineare Wissenschaft sind. Die meisten dieser Forex-Handelssysteme sind reaktiv (nicht proaktiv) durch Design. Wie, wenn eine Aktie oder eine Ware in einer bestimmten Weise handelt, geht das System davon aus, dass die Aktie oder eine Ware weiterhin so handeln wird. Es erzeugt diese Schlussfolgerung, die auf den in das System programmierten Formeln basiert. Einige Black Boxes8221 berechnen auch eine große Anzahl von Indikatoren, um das Vertrauen einer Handlungsempfehlung zu erhöhen. Die meisten mechanischen Handelssysteme kaufen oder verkaufen Ausbrüche. Der Aktienmarkt nennt diese Trader Momentum Spieler. Ihre Formeln nehmen eine Fortsetzung dieser Bewegung an. Sollte diese Bewegung nicht fortsetzen, wird das Forex-System einen Verlust zuzüglich der Provisionskosten generieren. Die Bedeutung eines guten Forex Trading System kann nicht übertrieben werden Jeder, der verpflichtet ist, so viel Geld wie möglich mit Fremdwährungen muss die Bedeutung der mit dem besten Forex Trading System zu verstehen. Der wirkliche Vorteil, dass ein System auf Handelsentscheidungen angewiesen ist, ergibt sich weitgehend aus der Tatsache, dass wir nicht wirklich die bestmöglichen Entscheidungen treffen können, ohne einen Rahmen zu haben. Während seine sicherlich wahr, dass dies einschüchtern kann, um Menschen, die brandneu zu Forex Devisenhandel sind. Ist dies ein Konzept, das wirklich muss verstanden werden, wenn eine Person ist, sich die beste Chance möglich, erfolgreich zu sein. Es gibt viele Vorteile und Nachteile zu Forex Trading. In vielerlei Hinsicht ist dies viel wie ein Strategiespiel. Während seine sicherlich wahr, dass Sie das Spiel spielen können, ohne tatsächlich eine Strategie im Ort, Ihre Chancen auf Erfolg sind viel niedriger. Es ist die gleiche Weise mit Handelswährungen. Sie müssen eine grundlegende Strategie oder Rahmen an Ort und Stelle, die alle handelnden Entscheidungen, die Sie regeln zu haben. Glücklicherweise müssen Sie nicht Ihre eigenen Forex Trading System erfinden. Es gibt eine Vielzahl von verschiedenen Systemen, die Sie betrachten können, um so in der Lage, eine auswählen, die am besten geeignet für Sie und Ihre Ziele ist. Was youll entdecken, nachdem Sie mit Forex Devisenhandel für einen Zeitraum von Zeit beteiligt waren, ist, dass Sie beginnen, Elemente der verschiedenen Strategien zu leihen, um die besten Forex Trading System für Sie zu schaffen. Sie können entdecken, dass es bestimmte Aspekte eines bestimmten Systems, die Sie finden sehr ansprechend. Nicht nur das, können Sie auch feststellen, dass diese Aspekte unglaublich profitabel sein können, wenn in Verbindung mit Elementen eines anderen Forex Trading System verwendet. Davon abgesehen, ist dies in der Regel nur etwas, das Menschen, die mit Devisenhandel für einen Zeitraum von Zeit gewesen sind, wirklich bestimmen können. Was Sie tun sollten, wenn Sie nagelneu in der Welt des Devisenhandels sind vertraut machen Sie sich mit einigen der verschiedenen Devisenhandel Ansätze, die es gibt. Nicht nur wird dies Ihnen den Standpunkt in der Lage zu sehen, wie andere über den Prozess des Handels mit Währungen gehen, wird es auch dazu beitragen, Ihnen einige der verschiedenen Forex Trading Systemvariablen, die (in einigen Fällen) sind universell unter allen Verschiedenen Währungshandelsrahmen. Vor allem ist es wichtig zu erkennen, dass der einzige Weg, um wirklich eine Entscheidung, welche Forex Trading-System für Sie am besten ist, um tatsächlich mit einer Vielzahl von verschiedenen Systemen zu experimentieren, um zu sehen, welche Art von Ergebnissen erhalten Sie. Sein nicht genug, um einfach die Resultate zu betrachten, die durch jemand anderes erhalten werden. Am Ende des Tages sind die einzigen Ergebnisse, die wirklich wichtig sind diejenigen, die Sie waren in der Lage, für sich selbst durch die Verwendung eines bestimmten Systems zu erhalten. Daher müssen Sie aufgeschlossen sein, um verschiedene Ansätze zu versuchen, um zu sehen, welche Art von Ergebnissen Sie erhalten. Unabhängig von der spezifischen Forex Trading-System, das Sie letztlich entscheiden, ist es von entscheidender Bedeutung, dass Sie verstehen, dass Sie müssen einige grundlegende Rahmenbedingungen vor dem Beginn des Handels mit Währungen in ernsthaft. Trading Systems: Designing Your System - Teil 1 Der vorangehende Abschnitt Tutorial betrachtet die Elemente, aus denen sich ein Handelssystem und diskutiert die Vor-und Nachteile der Verwendung eines solchen Systems in einem Live-Trading-Umfeld. In diesem Abschnitt bauen wir dieses Wissen auf, indem wir untersuchen, welche Märkte für den Systemhandel besonders gut geeignet sind. Wir werden dann einen tieferen Einblick in die verschiedenen Gattungen der Handelssysteme nehmen. Handel auf verschiedenen Märkten Aktienmärkte Der Aktienmarkt ist wahrscheinlich der häufigste Markt für den Handel, vor allem bei Anfängern. In dieser Arena, große Spieler wie Warren Buffett und Merrill Lynch dominieren, und traditionelle Wert und Wachstum investierende Strategien sind bei weitem die häufigste. Dennoch haben viele Institutionen erheblich in die Konzeption, Entwicklung und Umsetzung von Handelssystemen investiert. Einzelne Investoren treten diesem Trend, wenn auch langsam, bei. Hier sind einige wesentliche Faktoren zu berücksichtigen, wenn Handelssysteme in Aktienmärkten: 13 Die große Menge an verfügbaren Aktien ermöglicht es Händlern, Systeme auf vielen verschiedenen Arten von Aktien - alles von extrem volatilen over-the-counter (OTC) Aktien zu testen Nicht-flüchtigen blauen Chips. Die Wirksamkeit der Handelssysteme kann durch die geringe Liquidität einiger Aktien, insbesondere OTC - und Pink Sheet-Probleme, begrenzt werden. Provisionen können in Gewinne von erfolgreichen Trades zu essen, und können Verluste zu erhöhen. OTC - und Pink Sheet Equities verursachen oft zusätzliche Provisionsgebühren. Die wichtigsten Handelssysteme sind diejenigen, die Wert suchen - das heißt, Systeme, die verschiedene Parameter verwenden, um festzustellen, ob ein Wert unterbewertet ist im Vergleich zu seiner bisherigen Leistung, seine Kollegen oder den Markt im Allgemeinen. Devisenmarkt Der Devisenmarkt oder Forex. Ist der größte und liquideste Markt der Welt. Die Weltregierungen, Banken und andere große Institutionen Handel Trillionen von Dollar auf dem Forex-Markt jeden Tag. Die Mehrheit der institutionellen Händler auf der Forex beruht auf Handelssystemen. Das gleiche gilt für Einzelpersonen auf dem Forex, aber einige Handel auf Wirtschaftsberichte oder Zinsauszahlungen basiert. Hier sind einige wichtige Faktoren im Auge zu behalten, wenn Handelssysteme im Forex-Markt: Die Liquidität in diesem Markt - aufgrund der riesigen Menge - Macht Handelssysteme genauer und effektiver. Es gibt keine Provisionen in diesem Markt, nur Spreads. Daher ist es viel einfacher, viele Transaktionen ohne Erhöhung der Kosten zu machen. Im Vergleich zur Menge der verfügbaren Aktien oder Rohstoffe ist die Anzahl der Währungen zum Handel begrenzt. Aufgrund der Verfügbarkeit von exotischen Währungspaaren - also Währungen aus kleineren Ländern - ist das Spektrum der Volatilität nicht unbedingt begrenzt. Die wichtigsten Handelssysteme in Forex verwendet werden, die folgen Trends (ein beliebtes Sprichwort auf dem Markt ist der Trend ist Ihr Freund), oder Systeme, die kaufen oder verkaufen auf Breakouts. Dies liegt daran, wirtschaftliche Indikatoren oft große Preisbewegungen auf einmal verursachen. Futures Equity, Forex und Rohstoffmärkte alle bieten Futures-Handel. Dies ist ein beliebtes Fahrzeug für den Systemhandel aufgrund der höheren Menge an Leverage zur Verfügung und die erhöhte Liquidität und Volatilität. Allerdings können diese Faktoren schneiden in beide Richtungen: sie können entweder verstärken Sie Ihre Gewinne oder verstärken Sie Ihre Verluste. Aus diesem Grund ist der Einsatz von Futures in der Regel für fortgeschrittene individuelle und institutionelle Systemhändler vorbehalten. Dies liegt daran, Trading-Systeme in der Lage, Kapitalisierung auf dem Futures-Markt erfordern viel mehr Anpassung, Verwendung fortgeschrittener Indikatoren und viel länger dauern, um zu entwickeln. Also, Welches Bestes ist es bis zu den einzelnen Investoren zu entscheiden, welcher Markt am besten für den Systemhandel geeignet ist - jeder hat seine eigenen Vor-und Nachteile. Die meisten Menschen sind mehr vertraut mit den Aktienmärkten, und diese Vertrautheit macht die Entwicklung eines Handelssystems einfacher. Allerdings ist Forex häufig als die überlegene Plattform, um Handelssysteme laufen - vor allem unter erfahrenen Händlern. Darüber hinaus, wenn ein Händler beschließt, auf erhöhte Hebelwirkung und Volatilität zu nutzen, ist die Futures-Alternative immer offen. Letztlich liegt die Wahl in den Händen des Systementwicklers. Typen von Trading-Systemen Trend-Following Systems Die häufigste Methode des System-Trading ist die Trend-folgendes System. In seiner grundlegendsten Form, wartet dieses System einfach für eine signifikante Preisbewegung, dann kauft oder verkauft in diese Richtung. Diese Art von Systembanken auf die Hoffnung, dass diese Preisbewegungen den Trend beibehalten werden. Moving Average Systems Häufig in der technischen Analyse verwendet. Ein gleitender Durchschnitt ist ein Indikator, der einfach den Durchschnittspreis einer Aktie über einen bestimmten Zeitraum anzeigt. Das Wesen der Trends wird aus dieser Messung abgeleitet. Der häufigste Weg, um Ein-und Ausfahrt zu bestimmen, ist ein Crossover. Die Logik dahinter ist einfach: Ein neuer Trend wird festgestellt, wenn der Preis unter oder über dem historischen Durchschnittspreis liegt (Trend). Hier ist ein Diagramm, das sowohl den Preis (blaue Linie) als auch die 20-Tage-MA (rote Linie) von IBM darstellt: Breakout Systems Das grundlegende Konzept hinter dieser Art von System ist ähnlich dem eines gleitenden Durchschnittssystems. Die Idee ist, dass, wenn ein neues hoch oder niedrig ist, die Preisbewegung höchstwahrscheinlich in Richtung des Ausbruchs fortsetzen wird. Ein Indikator, der bei der Bestimmung von Ausbrüchen verwendet werden kann, ist ein einfaches Bollinger-Band-Overlay. Bollinger Bands zeigen Mittelwerte von hohen und niedrigen Preisen, und Breakouts auftreten, wenn der Preis die Kanten der Bands. Hier ist ein Diagramm, das Preis (blaue Linie) und Bollinger Bands (graue Linien) von Microsoft: Nachteile von Trendfolgesystemen: Empirische Entscheidungsfindung erforderlich - Bei der Bestimmung von Trends gibt es immer ein empirisches Element zu beachten: die Dauer von Der historische Trend. Zum Beispiel könnte der gleitende Durchschnitt für die letzten 20 Tage oder für die letzten fünf Jahre sein, so muss der Entwickler bestimmen, welche am besten für das System ist. Weitere Faktoren, die zu bestimmen sind, sind die durchschnittlichen Höhen und Tiefs in Breakout-Systemen. Lagging Nature - Gleitende Mittelwerte und Breakout-Systeme werden immer rückläufig sein. Mit anderen Worten, sie können nie den genauen oberen oder unteren Rand eines Trends. Dies führt zwangsläufig zu einem Verlust der potenziellen Gewinne, die manchmal erheblich sein kann. Whipsaw Effect - Unter den Marktkräften, die für den Erfolg der Trendfolgesysteme schädlich sind, ist dies einer der häufigsten. Der Peitscheneffekt tritt auf, wenn der gleitende Durchschnitt ein falsches Signal erzeugt, dh wenn der Mittelwert nur in den Bereich fällt, kehrt die Richtung plötzlich um. Dies kann zu massiven Verlusten führen, sofern nicht wirksame Stop-Loss - und Risikomanagementtechniken eingesetzt werden. Sideways Markets - Trendfolgesysteme sind naturgemäß in der Lage, nur in Märkten Geld zu verdienen, die tatsächlich Trend treiben. Aber auch die Märkte bewegen sich seitwärts. Innerhalb eines bestimmten Bereichs für einen längeren Zeitraum. Extreme Volatilität kann auftreten - Gelegentlich können Trendfolgesysteme eine extreme Volatilität aufweisen, aber der Trader muss mit seinem System bleiben. Die Unfähigkeit, dies zu tun, wird zu einem versicherten Ausfall führen. Countertrend Systems Grundsätzlich ist das Ziel mit dem countertrend-System, auf dem niedrigsten Tief zu kaufen und an der höchsten Höhe zu verkaufen. Der Hauptunterschied zwischen diesem und dem Trendfolgesystem besteht darin, dass das Gegenströmungssystem nicht selbstkorrigiert wird. Mit anderen Worten, es gibt keine festgelegte Zeit, um Positionen zu verlassen, und dies ergibt ein unbegrenztes Abwärtspotenzial. Arten von Countertrend-Systemen Viele verschiedene Arten von Systemen werden als Countertrend-Systeme betrachtet. Die Idee hier ist zu kaufen, wenn Schwung in eine Richtung beginnt zu verblassen. Dies wird am häufigsten mit Oszillatoren berechnet. Zum Beispiel kann ein Signal erzeugt werden, wenn Stochastik oder andere relative Stärkeindikatoren unter bestimmte Punkte fallen. Es gibt andere Arten von Countertrend Handelssysteme, aber alle von ihnen teilen das gleiche grundlegende Ziel - zu kaufen niedrig und hoch verkaufen. Nachteile von Countertrend Folgende Systeme: E mpirische Entscheidungsfindung erforderlich - Einer der Faktoren, über die der Systementwickler entscheiden muss, sind die Punkte, an denen die relativen Stärkeindikatoren verblassen. Extreme Volatilität kann auftreten - Diese Systeme können auch eine extreme Volatilität aufweisen, und eine Unfähigkeit, mit dem System trotz dieser Volatilität zu bleiben, wird zu einem gesicherten Ausfall führen. Unlimited Downside - Wie bereits erwähnt, gibt es unbegrenztes Downside-Potential, da das System nicht selbstkorrigiert (es gibt keine eingestellte Zeit, um Positionen zu verlassen). Fazit Die wichtigsten Märkte, für die Handelssysteme geeignet sind, sind die Aktien-, Devisen - und Futures-Märkte. Jeder dieser Märkte hat seine Vor - und Nachteile. Die beiden wichtigsten Gattungen der Handelssysteme sind die Trendfolger und die Gegen-Trendsysteme. Trotz ihrer Unterschiede bedürfen beide Arten von Systemen in ihren Entwicklungsstadien einer empirischen Entscheidungsfindung seitens des Entwicklers. Auch diese Systeme unterliegen extremer Volatilität und dies kann verlangen, einige Ausdauer - es ist wichtig, dass der System-Trader mit seinem System während dieser Zeiten bleiben. In der folgenden Tranche nehmen Sie einen genaueren Blick auf, wie man ein Handelssystem entwerfen und etwas von der Software sprechen, die Systemhändler verwenden, um ihr Leben zu erleichtern. Trading Systems: Design Ihres Systems - Teil 2Objektorientiertes Design Nach der Analysephase wird das Konzeptmodell mit objektorientiertem Design (OOD) zu einem objektorientierten Modell weiterentwickelt. In OOD werden die technologieunabhängigen Konzepte im Analysemodell auf implementierende Klassen abgebildet, Einschränkungen identifiziert und Schnittstellen entworfen, die zu einem Modell für die Lösungsdomäne führen. In Kürze wird eine detaillierte Beschreibung erstellt, wie das System auf konkreten Technologien aufgebaut werden soll. Die Stufen für objektorientiertes Design können identifiziert werden: Definition des Kontextes des Systems Entwurf der Systemarchitektur Identifizierung der Objekte im System Konstruktion des Designs Modelle Spezifikation von Objektschnittstellen Objektorientiertes Systemdesign Systemdesign Objektorientiertes Systemdesign beinhaltet die Definition des Kontextes eines Systems, gefolgt von der Gestaltung der Architektur des Systems. Kontext. Der Kontext eines Systems hat einen statischen und einen dynamischen Teil. Der statische Kontext des Systems wird mit einem einfachen Blockdiagramm des Gesamtsystems entworfen, das in eine Hierarchie von Subsystemen erweitert wird. Das Subsystemmodell wird durch UML-Pakete dargestellt. Der dynamische Kontext beschreibt, wie das System mit seiner Umgebung interagiert. Sie wird anhand von Anwendungsfalldiagrammen modelliert. Systemarchitektur . Die Systemarchitektur ist auf der Grundlage des Kontextes des Systems nach den Prinzipien der architektonischen Gestaltung sowie Domain-Wissen entwickelt. Typischerweise wird ein System in Schichten unterteilt, und jede Schicht wird zersetzt, um die Subsysteme zu bilden. Objektorientierte Zersetzung Zerlegung bedeutet, dass ein komplexes System in eine Hierarchie kleinerer Komponenten mit geringerer Komplexität, nach den Prinzipien von divideandconquer, geteilt wird. Jede Hauptkomponente des Systems wird als Subsystem bezeichnet. Objektorientierte Zerlegung identifiziert einzelne autonome Objekte in einem System und die Kommunikation zwischen diesen Objekten. Die Vorteile der Zersetzung sind: Die einzelnen Komponenten sind von geringerer Komplexität und damit verständlicher und überschaubarer. Es ermöglicht die Teilung der Belegschaft mit speziellen Fähigkeiten. Sie ermöglicht es, Subsysteme zu ersetzen oder zu modifizieren, ohne andere Subsysteme zu beeinträchtigen. Gleichzeitigkeit identifizieren Gleichzeitigkeit ermöglicht, dass mehr als ein Objekt gleichzeitig Ereignisse empfängt und mehrere Aktivitäten gleichzeitig ausgeführt werden. Gleichzeitigkeit wird im dynamischen Modell identifiziert und dargestellt. Um Gleichzeitigkeit zu ermöglichen, wird jedem gleichzeitigen Element ein separater Thread des Steuerelements zugewiesen. Wenn die Parallelität auf Objektebene ist, werden zwei gleichzeitigen Objekten zwei verschiedene Threads der Steuerung zugewiesen. Wenn zwei Operationen eines einzelnen Objekts gleichzeitig in der Natur sind, dann wird dieses Objekt unter verschiedenen Threads aufgeteilt. Gleichzeitigkeit ist mit den Problemen der Datenintegrität, Deadlock und Hunger verbunden. Daher muss eine klare Strategie gemacht werden, wann immer Parallelität erforderlich ist. Außerdem muss Parallelität in der Entwurfsphase selbst identifiziert werden und kann nicht für die Implementierungsphase überlassen werden. Identifizieren von Patterns Beim Entwerfen von Anwendungen werden für einige Kategorien von Problemen einige allgemein akzeptierte Lösungen verwendet. Dies sind die Muster des Designs. Ein Muster kann als ein dokumentierter Satz von Bausteinen definiert werden, der bei bestimmten Arten von Anwendungsentwicklungsproblemen verwendet werden kann. Einige häufig verwendete Entwurfsmuster sind: Fadenmuster Modellansicht Trennmuster Beobachtermuster Modellansicht Steuerungsmuster Veröffentlichen Abonnementmuster Proxymuster Steuern von Ereignissen Während des Entwurfs des Systems müssen die Ereignisse, die in den Objekten des Systems auftreten können, identifiziert und entsprechend behandelt werden. Ein Ereignis ist eine Spezifikation eines bedeutenden Ereignisses, das einen Ort in Zeit und Raum hat. Es gibt vier Arten von Ereignissen, die modelliert werden können, nämlich: Signal Event. Ein benanntes Objekt, das von einem Objekt geworfen und von einem anderen Objekt gefangen wird. Ereignis anrufen. Synchrones Ereignis, das den Versand einer Operation darstellt. Zeit-Ereignis. Ein Ereignis, das den Ablauf der Zeit darstellt. Ereignis ändern. Ein Ereignis, das eine Zustandsänderung darstellt. Handhabung von Randbedingungen Die Systemdesignphase muss die Initialisierung und die Beendigung des Systems als Ganzes sowie jedes Subsystem adressieren. Die verschiedenen Aspekte, die dokumentiert werden, sind wie folgt: Die Inbetriebnahme des Systems, d. h. der Übergang des Systems vom nicht initialisierten Zustand in den stationären Zustand. Die Beendigung des Systems, d. h. das Schließen aller laufenden Threads, das Aufräumen der Ressourcen und die zu sendenden Nachrichten. Die Erstkonfiguration des Systems und die Rekonfiguration des Systems bei Bedarf. Vorhersehen von Fehlern oder unerwünschter Beendigung des Systems. Randbedingungen werden unter Verwendung von Grenznutzungsfällen modelliert. Objektdesign Nachdem die Hierarchie der Subsysteme entwickelt wurde, werden die Objekte im System identifiziert und deren Details entworfen. Hier beschreibt der Designer die Strategie, die während des Systemdesigns gewählt wurde. Der Schwerpunkt wechselt von Anwendungsdomänenkonzepten hin zu Computerkonzepten. Die während der Analyse identifizierten Objekte werden zur Implementierung herausgeätzt, um die Ausführungszeit, den Speicherverbrauch und die Gesamtkosten zu minimieren. Das Objektdesign umfasst die folgenden Phasen: Objektidentifizierung Objektdarstellung, d. h. Konstruktion von Entwurfsmodellen Klassifizierung von Operationen Algorithmendesign Entwurf von Beziehungen Implementierung der Steuerung für externe Interaktionen Paketklassen und Assoziationen in Module Objektidentifizierung Der erste Schritt des Objektdesigns ist die Objektidentifizierung. Die in den objektorientierten Analysephasen identifizierten Objekte werden in Klassen gruppiert und verfeinert, so dass sie für die eigentliche Umsetzung geeignet sind. Die Funktionen dieser Stufe sind: Identifizieren und Verfeinern der Klassen in jedem Subsystem oder Paket Definieren der Links und Assoziationen zwischen den Klassen Entwerfen der hierarchischen Assoziationen zwischen den Klassen, dh die Generalisierungen und Vererbung Object Representation Sobald die Klassen identifiziert sind, müssen sie sein Dargestellt unter Verwendung von Objektmodellierungstechniken. Diese Stufe beinhaltet im Wesentlichen die Konstruktion von UML-Diagrammen. Es gibt zwei Arten von Designmodellen, die hergestellt werden müssen: Statische Modelle. Um die statische Struktur eines Systems anhand von Klassendiagrammen und Objektdiagrammen zu beschreiben. Dynamische Modelle. Um die dynamische Struktur eines Systems zu beschreiben und die Interaktion zwischen Klassen anhand von Interaktionsdiagrammen und Zustandsdiagrammen darzustellen. Klassifizierung von Operationen In diesem Schritt werden die Operationen, die an Objekten durchgeführt werden sollen, durch Kombination der drei in der OOA-Phase entwickelten Modelle, nämlich Objektmodell, dynamisches Modell und Funktionsmodell, definiert. Ein Vorgang legt fest, was zu tun ist und nicht wie es durchgeführt werden soll. Für Operationen werden folgende Aufgaben ausgeführt: Das Zustandsübergangsdiagramm jedes Objekts im System wird entwickelt. Operationen werden für die Ereignisse definiert, die von den Objekten empfangen werden. Fälle, in denen ein Ereignis andere Ereignisse in gleichen oder verschiedenen Objekten auslöst, werden identifiziert. Die Teiloperationen innerhalb der Maßnahmen werden identifiziert. Die Hauptaktionen werden auf Datenflussdiagramme erweitert. Algorithm Design Die Operationen in den Objekten werden mittels Algorithmen definiert. Ein Algorithmus ist eine schrittweise Prozedur, die das in einer Operation festgelegte Problem löst. Algorithmen konzentrieren sich darauf, wie es zu tun ist. Es kann mehr als einen Algorithmus geben, der einer gegebenen Operation entspricht. Sobald die alternativen Algorithmen identifiziert sind, wird der optimale Algorithmus für die gegebene Problemdomäne ausgewählt. Die Metriken für die Auswahl des optimalen Algorithmus sind: Computational Complexity. Komplexität bestimmt die Effizienz eines Algorithmus hinsichtlich Rechenzeit und Speicherbedarf. Flexibilität. Flexibilität bestimmt, ob der gewählte Algorithmus in geeigneter Weise ohne Verlust der Angemessenheit in verschiedenen Umgebungen implementiert werden kann. Verständlichkeit. Dies bestimmt, ob der gewählte Algorithmus einfach zu verstehen und zu implementieren ist. Design von Beziehungen Die Strategie zur Umsetzung der Beziehungen muss während der Objektentwurfsphase ausgeklammert werden. Die Hauptbeziehungen, die angesprochen werden, umfassen Assoziationen, Aggregationen und Erbschaften. Der Designer sollte in Bezug auf Assoziationen Folgendes tun: Ermitteln Sie, ob eine Assoziation unidirektional oder bidirektional ist. Analysieren Sie den Pfad der Zuordnungen und aktualisieren Sie sie, wenn nötig. Implementieren Sie die Assoziationen als ein eigenständiges Objekt, im Falle von vielen zu vielen Beziehungen oder als Verknüpfung zu anderen Objekten im Falle von oneto-one oder oneto-many Beziehungen. Bei Erbschaften sollte der Designer folgende Schritte durchführen: Passen Sie die Klassen und ihre Zuordnungen an. Identifizieren Sie abstrakte Klassen. Machen Sie Vorkehrungen, so dass Verhaltensweisen gemeinsam genutzt werden, wenn nötig. Implementierung der Steuerung Der Objektdesigner kann Verfeinerungen in die Strategie des Statechart-Modells einfließen lassen. Im Systementwurf wird eine Basisstrategie zur Realisierung des dynamischen Modells erstellt. Während des Objektentwurfs ist diese Strategie für eine angemessene Implementierung treffend verschönert. Die Ansätze für die Umsetzung des dynamischen Modells sind: Represent State als Standort innerhalb eines Programms. Dies ist der traditionelle, prozessorientierte Ansatz, bei dem der Standort der Steuerung den Programmzustand definiert. Eine Finite-State-Maschine kann als Programm implementiert werden. Ein Übergang bildet eine Eingangsbehauptung, der Hauptsteuerpfad bildet die Folge von Anweisungen, die Zweige bilden die Bedingungen und die Rückwärtspfade bilden die Schleifen oder Iterationen. Maschine. Dieser Ansatz stellt direkt eine Zustandsmaschine durch eine Zustandsmaschinenmotorklasse dar. Diese Klasse führt die Zustandsmaschine durch einen Satz von Übergängen und Aktionen durch, die von der Anwendung bereitgestellt werden. Steuerung als gleichzeitige Aufgaben. Bei diesem Ansatz wird ein Objekt als Aufgabe in der Programmiersprache oder dem Betriebssystem implementiert. Dabei wird ein Ereignis als Inter-Task-Aufruf implementiert. Es bewahrt inhärente Gleichzeitigkeit von realen Objekten. Verpackungsklassen In jedem größeren Projekt ist eine sorgfältige Partitionierung einer Implementierung in Module oder Pakete wichtig. Beim Objektentwurf werden Klassen und Objekte in Pakete zusammengefasst, so dass mehrere Gruppen kooperativ an einem Projekt arbeiten können. Die verschiedenen Aspekte der Verpackung sind: Ausblenden von internen Informationen aus der Außenansicht. Sie ermöglicht es, dass eine Klasse als Blackbox betrachtet wird und die Klassenimplementierung geändert werden kann, ohne dass Clients der Klasse Code modifizieren müssen. Kohärenz der Elemente. Ein Element, wie eine Klasse, eine Operation oder ein Modul, ist kohärent, wenn es auf einem konsistenten Plan organisiert ist und alle seine Teile intrinsisch verwandt sind, so dass sie ein gemeinsames Ziel erfüllen. Aufbau von Physical Modules. Die folgenden Richtlinien helfen beim Erstellen physikalischer Module: Klassen in einem Modul sollten ähnliche Dinge oder Komponenten in demselben zusammengesetzten Objekt darstellen. Eng verbundene Klassen sollten sich im selben Modul befinden. Unverbundene oder schwach verbundene Klassen sollten in separaten Modulen platziert werden. Module sollten eine gute Kohäsion aufweisen, d. h. eine hohe Kooperation unter ihren Komponenten. Ein Modul sollte eine niedrige Kopplung mit anderen Modulen aufweisen, d. h. Interaktion oder Interdependenz zwischen Modulen sollte minimal sein. Design-Optimierung Das Analysemodell erfasst die logischen Informationen über das System, während das Designmodell Details zur Unterstützung eines effizienten Informationszugriffs hinzufügt. Bevor ein Entwurf implementiert wird, sollte es optimiert werden, um die Implementierung effizienter zu gestalten. Das Ziel der Optimierung ist es, die Kosten in Bezug auf Zeit, Raum und andere Metriken zu minimieren. Designoptimierung sollte jedoch nicht übertrieben sein, da einfache Implementierung, Wartbarkeit und Erweiterbarkeit ebenfalls wichtige Belange sind. Es wird oft gesehen, dass ein perfekt optimiertes Design effizienter, aber weniger lesbar und wiederverwendbar ist. So muss der Designer ein Gleichgewicht zwischen den beiden schlagen. Die verschiedenen Dinge, die für die Design-Optimierung getan werden können, sind: Hinzufügen redundanter Assoziationen Weglassen nicht verwendbarer Assoziationen Optimierung von Algorithmen Speichern von abgeleiteten Attributen zur Vermeidung von Re-Berechnungen komplexer Ausdrücke Hinzufügen redundanter Assoziationen Bei der Designoptimierung wird überprüft, ob neue Assoziationen abgeleitet werden können Reduzieren. Obwohl diese redundanten Assoziationen keine Informationen hinzufügen können, können sie die Effizienz des Gesamtmodells erhöhen. Unterlassung von nicht verwendbaren Verbänden Das Vorhandensein zu vieler Assoziationen kann ein System unentzifferbar machen und damit die Gesamteffizienz des Systems reduzieren. Während der Optimierung werden also alle nicht verwendbaren Zuordnungen entfernt. Optimierung von Algorithmen In objektorientierten Systemen erfolgt die Optimierung von Datenstrukturen und Algorithmen kollaborativ. Sobald das Klassen-Design vorhanden ist, müssen die Operationen und die Algorithmen optimiert werden. Die Optimierung der Algorithmen erhält man durch: Umordnen der Reihenfolge der Rechenaufgaben Umkehrung der Ausführungsreihenfolge der Schleifen von der im Funktionsmodell festgelegten Entfernung von Totpfaden im Algorithmus Speichern und Speichern abgeleiteter Attribute Abgeleitete Attribute sind diejenigen Attribute, deren Werte berechnet werden Als Funktion von anderen Attributen (Basisattributen). Eine Neuberechnung der Werte von abgeleiteten Attributen wird jedes Mal, wenn sie benötigt werden, ein Zeitkonsumierungsverfahren. Um dies zu vermeiden, können die Werte berechnet und in ihren berechneten Formen gespeichert werden. Dies kann jedoch Aktualisierungsanomalien darstellen, d. H. Eine Änderung der Werte von Basisattributen ohne entsprechende Änderung der Werte der abgeleiteten Attribute. Um dies zu vermeiden, werden folgende Schritte unternommen: Bei jeder Aktualisierung des Basisattributwerts wird das abgeleitete Attribut ebenfalls neu berechnet. Alle abgeleiteten Attribute werden in einer Gruppe und nicht nach jeder Aktualisierung neu berechnet und aktualisiert. Entwurfsdokumentation Dokumentation ist ein wesentlicher Bestandteil eines jeden Softwareentwicklungsprozesses, der das Verfahren zur Herstellung der Software aufzeichnet. Die Designentscheidungen müssen für jedes nicht-triviale Software-System dokumentiert werden, um das Design an andere weiterzugeben. Anwendungsgebiete Obwohl es sich um ein sekundäres Produkt handelt, ist eine gute Dokumentation unabdingbar, insbesondere in den folgenden Bereichen: Bei der Entwicklung von Software, die von einer Anzahl von Entwicklern entwickelt wird In iterativen Softwareentwicklungsstrategien Bei der Entwicklung nachfolgender Versionen eines Softwareprojekts Zur Auswertung einer Software Für die Suche Bedingungen und Prüfbereiche Für die Wartung der Software. Eine nützliche Dokumentation sollte im Wesentlichen die folgenden Inhalte enthalten: Highlevel-Systemarchitektur. Prozessdiagramme und Moduldiagramme Schlüsselentwürfe und - mechanismen. Klassendiagramme und Objektdiagramme. Szenarien, die das Verhalten der Hauptaspekte illustrieren. Verhaltensdiagramme Die Merkmale einer guten Dokumentation sind: Prägnant und gleichzeitig eindeutig, konsistent und vollständig Nachvollziehbar auf die Systemanforderungsspezifikationen Gut strukturiert schematisch statt beschreibend
No comments:
Post a Comment