Modellbasierte Softwareentwicklung
Modul aus dem Masterstudium
Modul aus dem Masterstudium
Kartei Details
Karten | 51 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 03.03.2014 / 25.02.2015 |
Weblink |
https://card2brain.ch/cards/modellbasierte_softwareentwicklung
|
Einbinden |
<iframe src="https://card2brain.ch/box/modellbasierte_softwareentwicklung/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Erläutern Sie, welche Aspekte für Security (Zuverlässigkeit, Zeitverhalten) modelliert werden müssen und warum!
Ziel Security: • InformaRons--‐/Datenflüsse prüfen • Ursache--‐Wirkung von Angriffen prüfen • Abhängigkeiten zwischen Komponenten prüfen
- Integrationsrahmen eines iterativ, inkrementellen Projekts
- Grundlage der Projektplanung und Management: Organisation, aktive Führung, Einblick, Verhandlungsbasis
- unabhängige, verteilte Implementierung
Qualitätsmerkmale nach ISO 25020, 25022
- Wartbarkeit
- Übertragbarkeit
- und Zeitverhalten, Robustheit Sicherheit
Ziele
- Effizientere Entwicklung
- Risiken minimieren
- verständnis schaffen
- Kernwissen des Systems konservieren
- hoher Formalisierungsgrad
- Detailgrad
- Einfachheit, Übersicht wegen der hohen Komplexität
- Abstraktion
- Bewertung (Validierung & Verifikation)
- max. notwendige Details
- Redundanz
- Beherrschbarkeit der Komplexität
- Verstehen von Zusammenhägen durch verbinden von Sichten
Geben Sie die Definition eines Modells nach Stachowiak an
beschränktes Abbild der Wirklichkeit mit drei Hauptmerkmalen:
- Abbildungsmerkmal
- Verkürzungsmerkmal
- Pragmatisches Merkmal
Nennen Sie Stärken und Schwächen des Objektorientierten Paradigmas der Softwareentwicklung!
Schächen:
- semantische Lücke zwischen Anforderungen und Entwurf
- Objekt/Nachricht Metapher gilt nur für kleine Elemente
- versteckt wesentliche Elemente Steuer und Datenfluss
- Starke Abhängigkeit zwischen den Elementen
Stärken
- Objekte zur Modularisierung
- Abstraktion im Problemraum
- Abstraktionsebene (Vererbung)
- Logische Gliederung
- Nachrichtenaustausch als Metapher
Nennen Sie wichtige Quellen von Veränderungen mit Auswirkungen auf Softwaresysteme!
- Optimierung von Prozessen
- Öffnung von Systemen für das Web
- Kopplung mit externen Systemen: Für viele Dinge gibt es schon Systeme, aber manchmal müssen die Daten gekoppelt werden. Dadurch muss es Schnittstellen geben
- Organisationsänderung Wenn sich ein Unternehmen ändert muss auch die Software geändert werden. Bsp: Eine Firma kauft eine Andere und die Lagerhaltung soll zusammengelegt werden.
- Änderung gesetzlicher Grundlagen Z.B Steuerrecht ändert sich jährlich. Maschinenbauer haben bei schlechter Konjunktur mehr Probleme als Informatiker. Für eine Bank ändern sich die gesetzlichen Bedingungen immer
- Änderung der technischen Plattform Neue Version einer Datenbank (Oracle 6 und 7)
- Fehlerbehebung
- technischer Fortschritt
Welche Herausforderungen muss Softwareentwicklung heute erfüllen, bei denen Modelle hilfreich sein können?
- Komplexität
- Workflows, Hardwareersetzung, heterogene Systeme
- Agilität und Veränderungen
- Prozessoptimierung, Organisationsveränderungen, gesetzliche Grundlagen..
- Langlebigkeit
- hohe investitionen, ungern veränderte Workflows
- Kosten und Aufwandsreduzierungen
Welche Informationen sind in einem Modell darzustellen, mit dem für den Ablauf eines Produktionsprozesses mit mehreren Schritten, die maximal mögliche Zeitdauer ermittelt werden soll?
- Schritte des Produktionsprozesses
- maximale Zeitdauer
- Abhängigkeiten um eventuelle Warteschlangen mit zu modellieren
- Kapazitäten
Geben Sie die Gliederung für Use-Case-Beschreibungen an!
- Anwendungsfall-Nr. Name des Anwendungsfalls
- Akteure
- Vor- und Nachbedingungen
- Invarianten
- Qualitätsmerkmale
- Ablaufbeschreibung / Durchführung
- Ausnahmen, Fehlersituation
- Alternativabläufe
Welche Elemente eines Use-Case-Diagramms stehen in Beziehung zu einem Aktivitätsdiagramm, wie erscheinen Informationen in den jeweiligen Diagrammen?
Beispiel Termin erfassen:
Das Use-case Diagramm enthält use cases. Diese use-cases können feiner beschrieben werden in der Use-caseBeschreibung oder anhand eines Aktivitätsdiagrammes.
im Use case diagramm sind lediglich die Systeme und use cases und interaktionen aus sicht des Akteurs vorhanden. Bei einem Aktivitätsdiagramm ist eine detallierte Beschreibung des Ablaufs der Fokus.
Nennen Sie Kriterien für die Prüfung einer Anforderungsbeschreibung!
- Eindeutigkeit - nur eine einzige Interpretation möglich?
- Vollständigkeit - alle notwendigen Funktionen berücksichtigt?
- Überprüfbarkeit - Erfüllung der Anforderungen überprüfbar?
- Widerspruchsfreiheit - Konflikte zwischen den Anforderungen?
- Verständlichkeit - für alle Beteiligten?
- Herkunft - Herkunft/Begründung der Anforderung klar beschrieben?
- Flexibilität und Abhängigkeiten - ohne Auswirkung auf andere
- Anforderungen änderbar?
- Rückverfolgbarkeit - eindeutig zu identifizieren?
- Abstrahierbarkeit - Ist die Anforderung implementierungsunabhängig?
- Klassifizierbarkeit bezüglich Bedeutung - Risiken bezüglich
- Realisierbarkeit; Stabilität über gesamten Lebenszyklus?
Angemessenheit - Wünsche und Bedürfnisse des Benutzers abgedeckt?
Der Problemraum ist die konzeptionellen Beschreibung („was“) statt Darstellung der Realisierung („wie“)
Fachliche sicht vs. technische Konzeption:
Modelle für Problemraum:
Struktur: Klassendiagramm (Komponentendiagramm)
Verhalten: Zustands-, Kommunikations-, Aktivitätsdiagramm
Elemente der Strukturmodelle: Klasse, Objekt, Attribut, Methode, Paket, (Komponente)
Beziehungen: Generalisierung (Vererbung), Assoziation, Rolle, Aggregation, Komposition, Abhängigkeit
Auf welchen Kontext bezieht sich die Verhaltensmodellierung des Zustandsdiagramms?
Dem Zustand können drei Verhaltensspezifikationen, zum Beispiel in Form einer Aktivität oder einer Interaktion, zugeordnet werden:
- ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat in den Zustand eintritt (engl. entry behaviour)
- ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat den Zustand verlässt (engl. exit behaviour)
- ein Verhalten, das ausgeführt wird, während sich der Zustandsautomat im Zustand befindet (engl.doActivity)
ein Verhalten, das ausgeführt wird, wenn ein bestimmtes Event eintritt. (eng. event behaviour)
Im Gegensatz zu den ersten drei Verhalten wird beim Event Verhalten ein tatsächliches Event im Zustand angegeben. (z.B.: mouseOver / peep)
. Zu welchen Elementen von UML-Modellen kann ein Zustandsdiagramm zugeordnet werden?
gehört zu den verhaltensdiagrammen
Geben Sie die Notation für Aktionen bei Betreten und Verlassen eines Zustands an!
Welche Notation hat eine Transition mit Trigger und Guard?
Ereignis kann mit Guard kombiniert werden. Die Transition feuert nur dann, wenn man im entsprechenden Zustand ist und das zugehörende Ereignis eintritt und die im Wächter spezifizierte Bedingung erfüllt ist. Bei einem impliziten Ereignis wird die Transition ausgeführt, wenn die mit dem Zustand verbundene Verarbeitung (Aktivität) beendet ist.
Erläutern Sie, wie Zusicherungen das Vorgehen des „Design by Contract“ unterstützen können!
Das reibungslose Zusammenspiel der Programmmodule wird durch einen „Vertrag“ erreicht, der beispielsweise bei der Verwendung einer Methode einzuhalten ist. Dieser besteht aus
- Vorbedingungen (englisch precondition), also den Zusicherungen, die der Aufrufer einzuhalten hat
- Nachbedingungen (englisch postcondition), also den Zusicherungen, die der Aufgerufene einhalten wird, sowie den
- Invarianten (englisch class invariants), quasi dem Gesundheitszustand einer Klasse.
Der Vertrag kann sich auf die gesamte verfügbare Information beziehen, also auf Variablen- und Parameter-Inhalte ebenso wie auf Objektzustände des betroffenen Objekts oder anderer zugreifbarer Objekte. Sofern sich der Aufrufende an Vorbedingungen und Invarianten hält, können keine Fehler auftreten und die Methode liefert garantiert keine unerwarteten Ergebnisse.
--> OCL ermöglicht genau diese Definition von vor-und nachbedingungen sowie invarianten
Wodurch unterscheidet sich OCL von einer imperativen Programmiersprache?OCL
Imperative Programmierung ist ein Programmierparadigma. Danach werden Programme so entwickelt, dass „ein Programm (Anm.: der Quellcode) aus einer Folge vonAnweisungen besteht, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll “
OCL dagegen schränkt Modellelemente ein. kann z.B. bei Aktivitätsdiagrammen oder anderen benutzt werden.
Nennen Sie die Bestandteile einer OCL-Regel!
Ein OCL-Constraint besteht aus einem Kopf und einem Rumpf. Der Kopf besteht aus einem Kontext, meist eine Klasse, optionaler Variablendeklaration, einem Namen und einem Typ. Der Rumpf ist ein boolscher Ausdruck. (OCLExpression)
Pre- und Postconditions sind Constraints, die die Anwendbarkeit und die Auswirkung von Operationen spezifizieren, ohne dass dafür ein Algorithmus oder eine Implementation angegeben wird. Eine Vor-/Nachbedingung wird verwendet um eine Zusicherung welche vor bzw. nach einem Aufruf einer Operation gelten muss zu formulieren
Geben Sie Arten von Zusicherungen mit OCL an!
- Bedingung, Integritätsregel
- Wertemenge eines Attributs
- Vor-oder Nachbedingungen
- Regeln f. strukturelle Eigenschaften, Ordnungen und zeitliche reihenfolge
Wie stehen die Definitionen von UML und SysML in Bezug zueinander?
Die SysML ist eine standardisierte Erweiterung der UML. Die Systems Modelling Language ist eine Sprache zur Modell-basierten Spezifikation von Systemen und seit 2006 auch ein offizieller Standard der Object Management Group. SysML basiert auf UML2. Modellierer, die bereits mit den Sprachkonzepten von UML und im Umgang mit UML-Werkzeugen vertraut sind, können dadurch in relativ kurzer Zeit auch SysML erlernen und anwenden SysML benutzt nur eine Untermenge des Sprachumfangs von UML2 und erweitert diese Untermenge noch um eigene Modellelemente und Diagrammarten, die in dieser Form nicht Teil der UML2 sind. An dieser Stelle geht die SysML-Definition über den reinen Profilmechanismus hinaus, der es - zumindest in der aktuellen Version - noch nicht vorsieht, Teile des Metamodells auszublenden bzw. neue Diagrammarten zu definieren. SysML ist als Profil der UML bereits eine domänenspezifische Modellierungssprache für die Domäne der Systemmodellierung bzw. Systemtechnik. Darüber hinaus übernimmt die SysML explizit den Profilmechanismus der UML und ermöglicht damit weitere domänenspezifische Erweiterungen und Anpassung der Sprache zur Modellierung von speziellen Systemen.
Für welche Inhalte eignet sich SysML besser als UML?
SysML wurde von Experten verschiedener Industrieunternehmen deshalb entwickelt, da sich UML2 nur begrenzt eignet, um in der Systemtechnik eingesetzt zu werden und beliebige Systeme zu modellieren. Dies liegt daran, dass UML ihre Ursprünge in der Modellierung von objektorientierter Software hat und daher spezielle Elemente besitzt, die auf diesen Zweck hin ausgerichtet sind. Beispiele dafür sind das Klassen- und Objektdiagramm, welche genau auf die objektorientierte Softwaremodellierung zugeschnitten sind. SysML ist als UML-Profil definiert und basiert somit auf der UML2. Dies hat den Vorteil, dass zum einen kein komplett neues Metamodell für die Sprachdefinition erstellt werden muss, und zum anderen Diagramme der UML2 modifiziert oder unverändert in die SysML übernommen werden können.
Erweiterungen gegenüber der UML:
- Blöcke
- Flüsse
- Eigenschaften von Werten
- Zuordnungen – allocations
- Anforderungen
- Parametrisierung
- Kontinuierliche Abläufe: Signale, Medien, Ströme
Wie wird in SysML eine Verfolgung von Anforderungen ermöglicht?
Anforderungsdiagramm. Mit dem Anforderungsdiagramm (engl. requirement diagram) schließt SysML eine Lücke der UML, nämlich die fehlende Möglichkeit, Systemanforderungen explizit zu modellieren. Viele UML-Werkzeuge brachten bisher eigene Erweiterungen mit, um diese Schwäche zu kompensieren. Mit der Definition innerhalb des SysML-Standards wird nun eine einheitliche Darstellungsform für Anforderungen festgelegt und damit die Austauschbarkeit der Modelle über verschiedene Werkzeuge hinweg sichergestellt.