Grundlagen


Sira Gorba
Diese Lernkarten bieten einen umfassenden Überblick über die Konzeption von Informationssystemen, wobei der Fokus auf Anforderungen, Systemen, Software-Entwurf und Qualitätsmanagement liegt. Sie behandeln Themen wie die Spezifikation von Komponenten, die Durchführung von Tests und die Kosten von Qualitätsmaßnahmen. Die Karteikarten richten sich an IT-Professionals und Studenten, die sich mit der Planung, Entwicklung und Wartung von Softwareprojekten befassen, und bieten praktische Einblicke in die verschiedenen Phasen und Techniken des Software-Entwurfs.
Flashcards
55
Students
1
Language
German
Category
Computer Science
Level
Other
Created / Updated
27.01.2014 / 23.07.2018

Flashcards

Klassifikation von Zielen

 

> Geschäftsziele: Übergeordnete Ziele einer Organisation (z.B. Aktienkurs)

> Prozessziele: Geschäftsprozesse (z.B. Entwicklung der Forschungslandkarte); technische Prozesse (z.B. Durchführung einer Lehrveranstaltung)

> Projektziele: Kosten, Termine, Sachziele, Projektattribute

> Produktziele: Spezifikation, Randbedingungen

Zielverfolgung

Nach dem Festlegen, Ermittlung ob Richtung und Geschwindigkeit des Fortschrittes den Erwartungen entspricht. > Weiche Ziele: allmähliche Erfüllung, bis zu Prozentsatz erreicht > Harte Ziele: Erreicht oder nicht

Messung der Eigenschaften von SW : Masse

Über ein Messverfahren werden Messwerte einer Skala zugeordnet. Diese Messwerte machen Aussagen über die gemessene Sache. Solche für SW verwendete Masse werden oft als Metriken bezeichnet. Beispiele für solche Metriken sind z.B. die Codegrösse oder die durchschnittliche Grösse von Funktionen. Wichtig ist die genaue Definition des Masses. Was z.B. ist Codegrösse? Zählel Leerzeilen oder Zeilen, die ausschliesslich Kommentar halten dazu oder nicht?

Messung der Eigenschaften von SW : Skalentypen

Die Skala, in der eine Metrik dargestellt ird, bestimmt, welche Aussagen mit einer Metrik gemacht werden können.

Messung der Eigenschaften von SW : Direkte und indirekte Masse

Manche Masse können direkt in Werten ausgedrückt werden. Diese Masse werden als direkte Masse bezeichnet. Andere Eigenschaften von SW wiederum können nur mit immensem Aufwand oder gar nicht in Werten angegeben werden. Ein Beispiel ist die Codegrösse. Für manche solcher Masse kann amn Indikatoren angeben. Solche Masse heissen indirekte Masse. Die Portabilität einer SW kann hier als Beispiel dienen. Die Anzahl an Codezeilen mit Betriebssystemaufrufen, die Anzahl HW- oder betriebssystemabhängiger Module oder die Anzahl an Codezeilen, die nicht dem Standard entsprechen, sind hier Indikatoren (z.B. Masse in % ausgedrückt)

Wichtige Masse : Produktziele

Hier interessieren vor allem Masse, die die Funktion betreffen wie die Erfüllung der Spezifikation, Zuverlässigkeit, Benutzerfreundlichkeit und Wartbarkeit. DIe meisten dieser Masse können nur indirekt gemessen werden.

Wichtige Masse : Projektziele

Wichtig sind Aufwand, Projektdauer, Fortschritt und Kosten für Entwicklung und Fehler. Das direkte Messen ist bei diesen Merkmalen meist einfacher.

Spezifikation Grundlagen : Definition Anforderung

> Eine Bedingung oder Fähigkeit, die von einer Person zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt wird. 

> Eine Bedingung oder Fähigkeit, die eine Software erfüllen oder besitzen muss, um einen Vertrag, eine Norm oder ein anderes, formell bestimmtes Dokument zu erfüllen.

Spezifikation Grundlagen : Definition Anforderungsspezifikation

> Die Zusammenstellung aller Anforderungen an eine Software. Synonyme: Anforderungsdokument, Software Requirements Specification.

> Der Prozess, der mit dem Gewinnen von Anforderungen verbunden ist, heisst Requirements Engineering

Spezifikation Grundlagen : Definition Requirements Engineering

> Das systematische, disziplinierte und quantitativ erfassbare Vorgehen beim Spezifizieren, d.h. Erfassen, Beschreiben und Prüfen von Anforderungen an Software.

> Verstehen und Beschreiben, was die Kunden wünschen oder brauchen

> Spezifikation und Verwaltung von Anforderungen mit dem Ziel, das Risiko zu minimieren, dass Software entwickelt wird, welche den Kunden nicht nützt oder gefällt

>> Häufig heissen die Anforderungsspezifikationen auch Pflichtenhet. Dieser Begruff ist jedoch nicht allgemein definiert und wird häufig von verschiedenen Partnern verschieden interpretiert.

Spezifikation : Abgrenzung

Ein SW-System muss gegenüber seiner Umgebung zuerst abgegrenzt werden. Eine SW ist eine spezielle Lösung, die durch Schnittstellen mit der Umgebung kommuniziert. Die Aspekte ausserhalb der Schnittstellen sind die Umgebung oder der Kontext eines Systems. Der Kontext, der betrachtet wird, besteht jedoch nicht aus der gesamten Systemumgebung, sondern nur aus Komponenten, die von Bedeutung für das zu entwickelnde System sind. Die Systemspezifikation beinhaltet folglich die Bestimmung der Grenzen und das gewünschte Verhalten des Systems innerhalb der Schnittstellen. Ausserdem müssen die Randbedingungen gefunden werden, unter denen das System seine Funktion zu erfüllen hat

Spezifikation : Requirements Engineering als Vorgang

RE gliedert sich in zwei Hauptteile: 

> Spezifikation

> Verwaltung

Spezifikation gliedert sich in: 

> Gewinnung

> Analyse

> Dokumentation

> Prüfung

Kein formalisierter, genormter Prozess. Individueller Zuschnitt für jedes Projekt.

Achten auf: 

> brauchen wir einen linearen oder einen inkrementellen Prozess?

> Soll die Spezifikation ein Vertrag mit dem Partner sein?

> Sind die Kunden und/ oder Nutzer bekannt?

> Gibt es einen Kundenauftrag?

> Kann Standardsoftware das Problem lösen?

Dokumentation : Klassifikation

Die Hauptunterscheidung liegt zwischen den Projekt- und den Produktanforderungen.

> Produktanforderungen: funktionale Anforderungen (bestimmen das "was" ) und nicht-funktionale Anforderungen (bestimmen das "wie")

> Leistungsanforderungen (Rechenzeiten, Datenmengen, besondere Qualitätsanforederungen legen Zuverlässigkeiten oder auch Benutzeraspekte fest.

> Randbedingungen: Gesetze, andere Bestimmungen wie Normen, Schnittstellen

Priorisierung von Anforderungen:

> Muss-Anforderungen (def. zu erfüllen)

> Soll-Anforderungen (bei zu hohem Aufwand nicht verpflichtend)

> Wunsch-Anforderungen (nur bei entspr. niedrigen Kosten zu verwirklichen)

Spezifikation : Klassifikation : Aufbau

Funktionale Anforderungen:

> Daten, Funktionen, Verhalten, Fehlerreaktionen

Nicht-funktionale Anforderungen:

> Leistungsanforderungen: Datenmengen, Reaktionsgeschwindigkeiten, Durchlaufzeiten

> Qualität: geforderte Qualitäten

> Randbedinungen: Schnittstellen, Normen und Gesetze, Datenschutz/-Sichtung, spezielle Angaben des Kunden

>> kann sich je nach Unternehmen unterscheiden

 

Spezifikation : Klassifikation : Aufbau Hinweise

 

> Jede Anforderung braucht eine eindeutige Identifikation

> Anforderungen kurz halten. Nur eine Aussage pro Anforderung

> Funktion und Parameter für gewünschte Resultate angeben

> Aunahmen angeben

> implizierte Annahmen explizit formulieren

> wo immer möglich, Zahlen angeben. Erleichtert die Prüfung

> Skeptisch mit allgemeinen Angaben umgehen

> Redundanz vermeiden

> Präzision in den Formilierungen so weit, dass Missverständnisse vermieden werden

Die Spezifiaktionsmethoden

> Natürliche Sprache: Vollstädnige Sätze; Jedes element mit Potential z Missverstädnnissen muss im Glossar eine Definition erhalten; Nominalisierung (Berechnung) vermeiden; Anforderungen als Hauptsatz, Erläuterungen evtl als Nebensätze

> Algebraisch: deskriptive, formale Methode. Funktionen werden deklariert und beschrieben und dann das Verhalten in mathematischen Sätzen ausgefrückt

> Datenfluss orientiert: Strukturierte Analyse ist datenflussorientiert und eine konstruktive Beschreibung. Die Datenflüsse durch ein System werden analysiert, in kleinere Module zuerlegt und dies so lange fortgesetzt, bis die Einheiten klein genug sind, um sie als einzelne Anforderungen aufzufassen.

> Automaten: konstruktiv und teilformal

> Objektorientiert: Abbildung des Systems als Kollektion von Objekten; zusammenfassung der objekte in Klassen

Allgemeine Projektphasen

> Analyse

> Spezifikation

> Design

> Implementierung

> Test

> Nutzung

>Ablösung

Die Analyse

> Tätigkeit: Analyse der vorhandenen Informationen; Betimmung vorhandener Strukturen mittels definierter Techniken; Schriftliches Fixieren der gewonnen Einsichten

> Produkt: Diagramme; Text; andere mehr oder weniger formale Dokumente die die in der Analyse gewonnnen Einsichten darstellen

 

 

Die Spezifikation

> Tätigkeit: Ermittlung der vom Kunden gewünschten/gebrauchten Fähigkeiten des SW Produktes durch mehr oder weniger formalisierte, definierte Techniken wie Interview oder use cases

> Produkt: formale Spezifikation, je nach verwendetem Prozessmodell mehr oder weniger ausführlich und vollständig

Das Design

> Tätigkeit: Entwurf der Architektur; Design der Subsysteme/Units

> Produkt: Beschreibung der Architektur in möglichst formaler Art und Weise; Schnittstellenbeschreibung; Beschreibung von Algorithmen (z.B. mit Struktogrammen, Interaktionsdiagrammen oder Aktivitätsdiagrammen)

Die Implementation

> Tätigkeit: Schreiben des Codes

> Produkt: kommentierter Code

Der Test

> Tätigkeit: Durchführung von Tests nach Testvorschriften

> Produkt: Testprotokolle

Die Nutzung

> Tätigkeit: Betrieb des Systems durch den Kunden; Erweiterung des Systems; Bugfixes; Anpassung an geänderte Bedingungen; Wartung beim Kunden

> Produkt: Einträge im Fehlertracking; Änderungen an allen von Änderungen der SW betroffenen Dokumenten

Die Ablösung

> Tätigkeit: Archivieren aller am Produkt beteiligten Dokumente

Die Projekt-Phasen

> Spezifizierung der Geschäftsvorfälle

> Definition des Projektumfangs

> Kosten- und Risikoanalyse

> Meilenstein: Life Cycle Objective

Die Elaboration

> Spezifierung der Produkteigenschaften

> Design der Architektur

> Planung der Aktivitäten und Ressourcen

> Meilenstein: Life Cycle Architecture

Construction (Entwicklungsprozess)

> Entwicklung der Komponenten

> Test ind Integration

> Release-beschreibung

> Meilenstein: Initial Operational Capability

Transition (Entwicklungsprozess)

> Freigabe an die Kunden

> Qualitätsprüfung

> Auslieferung

> Training

> Wartung

> Meilenstein: Product Release

Die Extreme Programmierung > XP

XP ist ein sogenannter agiler Prozess, der speziell darauf ausgelegt ist, mit sich ständig ändernden Anforderungen fertig zu werden. Hier steht einzig und allein das aktuelle Produkt im Zentrum der Tätigkeiten. Notwendigkeit zum strukturierten Planen, Entwickeln, Testen und Dokumentieren. Diese Abfolge wier in einer feinen Granularität iterativ geführt. 

XP illustriert zentrale Aspekte > User Stories, welche den einzelanforderungen einer Spezifikation entsprechen. > ordnung nach Priorität

Ständige Anpassung der Anforderungen; eine nahezu lückenlos funktionsfähige Software mit aktuellen Features steht zur Verfügung. > rasches Feedback vom Auftragnehmer zun Auftraggeber.

Scrum

Orientiert sich als Prozess als XP. User Stories werden in zwei sogenannten Backlogs abgelegt, dies enthält die priorisierten Aufoderungen des Gesmatprojekts. Das Sprint Backlog enthät die priorisierten Anforderungen des aktuellen sogenannten Sprints (30 tägiger Umlauf). User Stories des täglichen Betriebs werden aus dem Sprint Backlog gewonnen. Nach Abschluss des Sprints entsteht ein neues Release > Wird als Zwischenprodukt dem Kunden gegeben.

Model-Driven SW-Entwicklung

Im Zentrum das Modell des Systems. Die Techniken, die modellgetrieben arbeiten benutzen meist Werkzeuge, die aus einem entworfenen Modell automatisch den lauffähigen Code erzeugen (bsp. Rhapsody). Modellierung geschieht mit Hilfe der UML als Beschreiungsprache.Diagramme werden benutzt um den entsprechenden Quellcode zu erzeugen.

Der Entwurf - Die Motivation

Grosse SW braucht einen systematischen Aufbau. Ansonsten ist es schwierig:

> die Lösung zu verstehen

> Resourcen zu planen

> Plattformkonzete und Integration zusammen mit off- the- shelf Lösungen zu verwirklichen

> ein pflegbares und erweiterbares System zu erhalten

Fehler um Konzept haben oft katastrophale Auswirkungen auf das Projekt. Ohne Konzept sind diese Fehler nahezu unvermeidbar

Der Entwurf : Die Termini

> Architektur: Organisationsstruktur eines Systems oder einer Komponente

> Entwurf: Vorgang zum Finden einer geeigneten Architektur, von Komponenten nund ihren Schnittstellen

> Lösungskonzept: Dokumentation der Architektur

Der Entwurf: Die Prinzipien

> Strukturierung und Abstraktion: Der Entwurf erzeugt Hierarchien von Komponenten mit unterschiedlichem Detaillierungsgrad. Komponenten höherer Verallgemeinerungen sollten nicht von den Details in Komponeten feinerer Detaillierung wissen müssen und auch nicht wissen können. Dies nennt man Abstraktion und dieser Vorgang ermöglicht es, sowohl einen Überblick über ein System zu halten als auch bis ins kleinste Detail zu strukturieren.

> Modularisierung: Das Erzeugen der obengenannten Komponenten wird Modularisierung genannt. Eine gute Modularisierung zeichnte sich dadurch aus, dass die Module nur eine geringe Kopplung untereinander aufweisen, aber eine hohe innere Kohäsion. Ein Modul, dass intern nur lose zusammenhängende Einzelelemente aufweist, deutet auf eine qualitativ inzureichende Modularisierung hin.

> Kapselung: Auch als Geheimnisprinzip bezeichnet, versteht man unter der Kapselung das Prinzip, dass eine Komponente einen Dienst nach aussen anbietet. Es ist klar, welcher Dienst das ist, also, was die Komponente leistet, aber nicht, wie die Komponente die Leistung erbringt. Das Verfogel dieses Prinzips hilft enorm dabei, zu einer guten Modularisierung zu kommen.

Der Entwurf : Die Prinzipien : Schnittstellen

Eine Schnittstelle ist das Fenster einer Komponente zur Aussenwelt. Sie stellt nach aussen Operationen und/ oder Datentypen bereit. Interne Daten der Komponente sollten nicht nach aussen zur Verfügung stehen. Eine Schnittstelle besteht aus der Definition von:

> Voraussetzungen der Bedingungen, die für die Durchführung einer Operation nötig sind

> Ergebniszusicherungen den zu liefernden Ergebnissen der Operation, welches auch Fehlerzustände umfassen muss

> Invarianten Zusischerungen über Systemeigenschaften, die von einer operation nicht verändert werden (dürfen)

Der Entwurf : Die Nebenläufigkeit

Wenn ein Entwurf zeigt, dass die SW mehrere Aufgaben gleichzeitig durchführen muss, kommt dier nebenläufigkeit ins SPiel. Je nach unterlegtem Betriebssystem wird hier von Multitasking und Multireading gesprochen.

Kommunikation und Synchronisierung über Standardkomponenten des Betriebssystem

Ein Prozess ist die Abbildung einer Aufgabe in SW > vom Betriebssystem erzeugt, endet wenn die Funktion beendet wird.

Je mehr Aufgaben aktiv sind, desto komplexer wird das Zusammenspiel der beteiligten Komponenten.

Kommunikation zwischen den Prozessoren erhöt die Komplexität der SW

Der Entwurf : Resourcenallokation

Entscheid, welche Aufgaben zu welchen Zeitpunkten zu erfüllen sind. Zuordnungen:

> Module bestimmten Prozessen zuordnen

> Prozesse zu Prozessoren zuordnen

> Daten Speicherbereichen zuordnen

> Kommunikationskanäle festlegen

(Abschätzung bezüglich des Verbrauchs der belegten Resourcen)

Der Entwurf: Aspektorientierung

Bei vielen Anwendungen gilt es, systemweit bestimmte Konsistenzen zu erzeugen. Solche Konsistenzen werden als Systemaspekte bezeichnet und müssen im Konzept berückisichtigt werden. Eine konsistente benutzerfürhung bei allen Komponenten kann ein solcher Aspekt sein

Der Entwurf: Die Plattformkonzepte

Folgende Fragen sind zu beachten:

> Können mittels Standardsoftware oder Komponetenzukauf Kosten gespart werden?

> Kann die Einbettung in ein Framework Vorteile bringen?

> Sind Bibliotheken sinnvoll zu verwenden?

> Können bewährte Architektu- oder SW-Muster verwendet werden?

> Kann das Konzept so angepasst werden, dass vorhandene SW benutzt werden kann?

Der Entwurf: Qualität

Die Aspekte:

> Effektivität: die Anforderungen des Auftraggebers erfüllen

> Wirtschaftlichkeit: tauglich, kostengünstig, wiederverwertbar

> SW-technische Qualität: leicht verständlich, robust, zuverlässig, änderungsfreundlich, performant

Study