Softwaretechnik Folge 2 Prinzipien und Modelle der Softwaretechnik



Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Woche 1: Was ist NLP? Die Geschichte des NLP.

Anleitung über den Umgang mit Schildern

Zwischenablage (Bilder, Texte,...)

Informationsblatt Induktionsbeweis

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Kreativ visualisieren

Speicher in der Cloud

Wie Sie mit Mastern arbeiten

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

Mobile Intranet in Unternehmen

AutoCAD Dienstprogramm zur Lizenzübertragung

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Programme im Griff Was bringt Ihnen dieses Kapitel?

1 topologisches Sortieren

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Was ist das Budget für Arbeit?

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor!

Projektmanagement in der Spieleentwicklung

Wir machen neue Politik für Baden-Württemberg

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Einführung und Motivation

Autoformat während der Eingabe

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Was ist Sozial-Raum-Orientierung?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Produktionsplanung und steuerung (SS 2011)

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Grundlagen der Theoretischen Informatik, SoSe 2008

Versetzungsgefahr als ultimative Chance. ein vortrag für versetzungsgefährdete

Was meinen die Leute eigentlich mit: Grexit?

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Der Klassenrat entscheidet

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

Kulturelle Evolution 12

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Gutes Leben was ist das?

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Verband der TÜV e. V. STUDIE ZUM IMAGE DER MPU

Primzahlen und RSA-Verschlüsselung

Evangelisieren warum eigentlich?

Nina. bei der Hörgeräte-Akustikerin. Musterexemplar

1 Mathematische Grundlagen

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Installation OMNIKEY 3121 USB

Mediator 9 - Lernprogramm

Professionelle Seminare im Bereich MS-Office

GEVITAS Farben-Reaktionstest

Springer bringt Scoop-Titel auf den Weg

Erfahrungen mit Hartz IV- Empfängern

Statuten in leichter Sprache

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Alle gehören dazu. Vorwort

Leseprobe. Bruno Augustoni. Professionell präsentieren. ISBN (Buch): ISBN (E-Book):

Einrichtung einer eduroam Verbindung unter dem Betriebssystem Android

2.1 Präsentieren wozu eigentlich?

Einführung in. Logische Schaltungen

Geld Verdienen im Internet leicht gemacht

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer :00 Uhr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Verjährungsfalle Gewährleistungsbürgschaft. -Unterschiedliche Verjährungsfristen für Mängelansprüche und Ansprüche aus der Gewährleistungsbürgschaft

Arbeiten mit UMLed und Delphi

Der kleine große Unterschied

Stepperfocuser 2.0 mit Bootloader

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Gruppenrichtlinien und Softwareverteilung

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

iphone- und ipad-praxis: Kalender optimal synchronisieren

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

Einstellungen der Deutschen gegenüber dem Beruf der Putzfrau

Säuglingsanfangsnahrung und Folgenahrung Was ändert sich? Was bleibt?

Mt 22, Leichte Sprache

Kreatives Occhi. - V o r s p a n n - Alle Knoten und Knüpfelemente sowie ihre Verwendbarkeit. Die Knoten

Sparen in Deutschland - mit Blick über die Ländergrenzen

Bekommen durch Ansteckung. H Human Beim Menschen. Acquired I D. Schwäche des Immunsystems. Schwäche des Immunsystems.

Informationen zum neuen Studmail häufige Fragen

Bernadette Büsgen HR-Consulting

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

Animationen erstellen

Anwendertreffen 20./21. Juni

1. TEIL (3 5 Fragen) Freizeit, Unterhaltung 2,5 Min.

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Modellbildungssysteme: Pädagogische und didaktische Ziele

Nutzung von GiS BasePac 8 im Netzwerk

Das Leitbild vom Verein WIR

Zulassung nach MID (Measurement Instruments Directive)

Warum Projektmanagement?

Professionelle Seminare im Bereich MS-Office

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Papa - was ist American Dream?

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Transkript:

Skript zur Vorlesung Folge 2 Prinzipien und Modelle der IT Kompaktkurs Sommersemester 2001 Prof. Dr. Georg Herde Fachhochschule Deggendorf

In dieser Folge werden wir uns mit den Grundprinzipien der oder man kann auch sagen dem Software Engineering beschäftigen. Sie sehen die englische Bezeichnung hat die ingenieurmäßige Ausrichtung bereits im Namen verankert und trifft damit den Sachverhalt m.e. einwenig besser. Lassen Sie uns zu Beginn noch einmal eine Definition von bzw. Software Engineering ansehen, die Helmut Balzert favorisiert. Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen. Zielorientiert bedeutet die Berücksichtigung z.b. von Kosten, Zeit, Qualität. Nun das erste wichtige was uns die Definition mitteilt, ist das die Software-Technik planerisch bzw. zielorientiert vorgeht und dazu entwickelte Prinzipien, Methoden und Werkzeuge zur Verfügung stellt. Das bedeutet, das die Software-Technik hauptsächlich auf umfangreiche Software-Systeme abstellt, die arbeitsteilig durchgeführt werden und sich somit also hauptsächlich an größere Entwicklungsteams richtet. Die Definition legt anscheinend nahe, das kleinere Softwareschmieden mit ein paar Mitarbeiter und überschaubaren Projekten nicht unbedingt die Zielgruppe der Software- Technik sind!? Ich glaube das alle Personen, die sich mit der professionellen Entwicklung von Software beschäftigen, Nutzen aus der Beschäftigung mit der Software-Technik besser dem Software Engineering ziehen können, denn die Entwicklung von Software ist ein industrieller Prozess und hat nichts mehr mit einem freischaffenden Künstlertum zu tun. Der Wettbewerb diktiert Kosten, Zeit und Qualität, so dass auch kleinere Softwareunternehmen moderne, effiziente und kostengünstige Verfahren zur Softwareentwicklung anwenden müssen. (Folie: Methodenkomponenten) Wissenschaftliche Prinzipien: Bei der Abstraktion versucht man z.b. Klassen oder Gruppen von Objekten zu bilden die sich bezüglich ausgewählter Eigenschaften zusammen fassen lassen. Z.B. in der Biologie spricht man von der Gruppe der Paarhufer, oder der Gruppe der Säugetiere, d.h. es wird nur auf ein paar kennzeichnende Merkmale bei der Klassifizierung abgestellt. (Folie: Wissenschaftliche Prinzipien) Methodenkomponenten: In der Software-Technik stellen die Prinzipien somit den theoretischen Rahmen dar. Die Software-Technik stellt aber gleichzeitig Methoden als Hilfsmittel zur Verfügung um die Prinzipien zu operationalisieren. (Folie: Methodenkomponenten) So können wir mit Hilfe von methodischen Vorgehensweisen, die uns konkrete Schritte, Regeln und Verfahren zur Verfügung stellen unsere Prinzipien umsetzten, d.h. die Prinzipien zeigen uns den Weg zu etwas hin. (Folie: Prinzip Vorgehensweise) Seite: 2 von 6

Die Kontrollstruktur der Wiederholung, d.h. ein Programm soll eine bestimmte Anweisung oder eine Gruppe von Anweisungen einige Male wiederholen, kann als ein solches Konzept bezeichnet werden, denn dieses Konzept kommt in den verschiedensten Programmiersprachen vor. Auf Kontrollstrukturen und Algorithmen gehen wir aber noch genauer in der nächsten Folge ein. Konzepte Notationen: Die einzelnen Konzepte werden durch verschiedene Notationen dargestellt und vermittelt. Die verschiedenen Notationsformen reichen von einer kaum formalisierten bis zu sehr formalisierten Arten. So finden wir als mögliche Formen der Notation Klartexte, Struktogramme, Programmablaufpläne, Entity-Relationship-Diagramme, Petrinetze oder den Pseudocode einer konkreten Programmiersprache. (Folie: Konzepte -> Notation) Verfahren Werkzeuge: Wie der Name schon sagt, Werkzeuge helfen uns bei der praktischen Umsetzung unserer Verfahren. So wie ein Autofahrer weiß das er auf bestimmten Streckenabschnitten der Autobahn nur 130 km/h fahren darf, so sehr hilft ihn ein Tempomat der ihm automatisch bei der Umsetzung unterstützt. Ein Softwareentwickler möchte strukturiert programmieren und nur bestimmte Kontrollstrukturen anwenden und nun gibt es Werkzeuge die seinen Quellcode überprüfen das z.b. keine Labelvereinbarungen oder Sprungbefehle verwendet wurden, d.h. ein sogenannter Spagetticode wird dadurch vermieden. (Folie: Verfahren -> Werkzeuge) Nachdem wir uns mit Prinzipien und Methoden beschäftigt haben wollen wir uns jetzt mit Modellen beschäftigen. Nun es werden keine räumlichen Modelle gebaut sondern man modelliert die Vorgehensweise, d.h. man überlegt in welcher Reihenfolge läuft ein typischer Softwareentwicklungsprozess ab. Gibt es bestimmte Stationen oder bedeutende Schritte die man erreichen oder ausführen sollte? (Folie: Softwarelebenszyklus) Es wird davon ausgegangen das Software nicht unbegrenzt im Einsatz ist und vom Zeitpunkt ihrer Entwicklung bis zur Ablösung durch eine andere Software bestimmte Stationen erreicht. Man spricht vom sogenannten Softwarelebenszyklus. (Folie: Lebenszyklusphasen) Für diese einzelnen Phasen, deren Übergänge teils fließend andere wiederum auf einen definierten Zeitpunkt fixiert werden können, werden die einzelnen Tätigkeiten und die Rollen und Aufgaben der beteiligten Personen (Entwickler, Kunde und Anwender) genau festgelegt. Ferner wird vereinbart welche Dokumente nach welchem Muster zu erstellen sind und ob bestimmte Werkzeuge eingesetzt werden sollen. (Folie: Die Planungsphase) In einem ersten Schritt (der Planungsphase) wird hier durch Voruntersuchungen getestet ob das Entwicklungsprojekt überhaupt durchführbar und realisierbar ist. Als greifbares Ergebnis erhält man ein Pflichtenheft, das zu diesem Zeitpunkt noch recht allgemein formuliert ist und als Lastenheft bezeichnet wird. Hier werden auch die Begrifflichkeiten festgelegt und definiert, so dass alle Projektbeteiligten die gleiche Sprache sprechen und die gleichen Termini verwenden. Seite: 3 von 6

Durch genau abgegrenzte Begriffe sollen Missverständnisse zwischen Auftraggeber, Entwickler und Anwender vermieden werden, so dass die Software sich nachher möglichst so verhält wie von allen Beteiligten erwartet. Dieser Punkt bekommt in der nächsten Phase noch größere Bedeutung. In dieser ersten Phase werden darüber hinaus aber noch wirtschaftliche Aspekte betrachtet, z.b. zu welchen Kosten ist so eine Entwicklung zu bewerkstelligen, mit anderen Worten wie viele Mitarbeiter sollen wie lange für das Projekt eingesetzt werden. Das wichtigste Ergebnis dieser Phase heißt Stop or Go! Wird das Projekt durchgeführt werden oder sprechen zu viele Argumente gegen eine Realisierung, d.h. das Projekt wird eingestellt. Das können viele Argumente sein, sie reichen von fehlendem Personal in der Entwicklung, der zeitliche Rahmen kann zu eng gesteckt sein, dass Budget ist zu knapp bemessen oder eine Kombination mehrerer dieser Gründe. (Folie: Definitionsphase) Heißt jedoch die Entscheidung Go nach der ersten Phase werden in der Definitionsphase grundsätzliche Weichen für die spätere Zufriedenheit aller Beteiligten gestellt. Hier sollte klar und unmissverständlich dargelegt werden was man sich von dem System verspricht, was es können muss und welche features nice to have sind. Das Begriffslexikon wird erweitert, das Lastenheft wird zu einem konkreten Pflichtenheft und das bindet schließlich den Entwickler aber auch den Auftraggeber. Eventuell gibt es bereits einen kleine Prototyp oder aber die Benutzeroberfläche wird schon mal programmiert so dass man sich die zukünftige Funktionalität des Programms schon einmal anschauen kann. Manche Entwickler legen schon zu diesem Zeitpunkt die erste Version des zukünftigen Benutzerhandbuches vor, dass natürlich im Laufe des Entwicklungsprozesses vervollständigt wird. (Folie: Die Designphase) Ziel der Entwurfsphase ist es aufbauend auf der Produktdefinition gemäß der Anforderungsund Definitionsphase ein Produktentwurf zu erstellen. Hier werden die Rand- und Umweltbedingungen in denen das System funktionieren soll spezifiziert. Es ist die Arbeit eines Architekten der die Systemkomponenten beschreibt. Ähnlich wie beim Hausbau fragt sich der Architekt in dieser Phase wo kommen die Anschlüsse des Hauses für die Energie-, Wasser- und Abwasserversorgung her? Wie soll die Hausfront gestaltet werden um sich möglichst harmonisch in die Umgebung einzupassen? In der Softwareentwicklung nennt man die Planungsphase Programmieren im Großen, d.h. es werden Fragen der Systemsoftware (Betriebssystem), der Datenbank, der grafischen Benutzeroberfläche geklärt. Wie soll das System eingesetzt werden, handelt es sich um ein Echtzeitsystem, um Single- oder Multiusersystem. Wie wird die Vernetzung aussehen, und zu welche anderen Systeme müssen Verbindungen aufgebaut werden. (Folie: Implementierungsphase) In der Implementierungsphase findet schließlich die Programmierung im Kleinen statt, d.h. die eigentliche Softwaresystem entsteht. Seite: 4 von 6

Um in unserem Hausbaubeispiel zu bleiben wird jetzt Beton gemischt, der Keller gegossen, gemauert und Decken und Dachstühle werden hochgezogen. Bei der Softwareerstellung werden nun die Datenstrukturen und Algorithmen festgelegt und es wird in einer Programmiersprache codiert. Die gewählten Problemlösungen werden dokumentiert. Es wird ausgiebig getestet und geprüft und man versucht eine möglichst hohe Korrektheit und Zuverlässigkeit des Programms zu erreichen. Es werden Aussagen über die Leistungsfähigkeit und das Laufzeitverhalten bei bestimmten Beanspruchungen gemacht. Als greifbares Ergebnis liegen der Quell- und Objektcode mit seiner Dokumentation sowie Test- und Prüfberichte vor. (Folie: Abnahmephase) In der Abnahmephase wird nun die Software an den Auftraggeber übergeben und es wird ein Abnahmetest durchgeführt. Die Software wird beim Auftraggeber installiert und die Endanwender werden geschult. Es erfolgt letztendlich die offizielle Inbetriebnahme, d.h. der Produktivbetrieb wird gestartet. Als greifbares Ergebnis liegen jetzt die gesamte Dokumentation des Produktes, ein Abnahmeprotokoll und ein Einführungsprotokoll, dass den Übergang vom Test- zum Produktivsystem dokumentiert, vor. (Folie: Wartungsphase) Die Wartungsphase kann in der Regel als die längste Phase angesehen werden, sie läuft bis das System letztendlich komplett durch ein anderes System ausgetauscht wird. In dieser Phase werden vier Hauptaktivitäten unterschieden. Das System wird stabilisiert und es werden Korrekturen vorgenommen. Das System wird getuned um z.b. einer gestiegenen Benutzeranzahl oder einer stärkeren Auslastung gerecht zu werden (Optimierung und Leistungsverbesserung). Es werden die ersten Anpassungen und Änderungen vorgenommen Das System wir erweitert und den gestiegenen Anforderungen angepasst. Auch hier sind wieder Parallelen zu unserem Hausbaubeispiel zu erkennen. Pflege und Wartung des Hauses ist unerlässlich und dauert eigentlich so lange wie das Haus genutzt wird. Die Fassade wird neu angestrichen, die alte Isolierung wird durch eine bessere ausgetauscht und ein plötzlicher Kindersegen macht den Dachausbau notwendig. die einzelnen Phasen des Softwarelebenszyklus haben wiederum zu Vorgehensmodellen bei der Softwareentwicklung geführt. Ein bekanntes aber in der Literatur stark kritisiertes Modell ist das sogenannte Wasserfallmodell. (Folie: Wasserfallmodell) Hier finden sich die einzelnen Phasen wieder und so wie ein Wasserfall über mehrere Stufen fließt, kann hier erst mit der nächsten Stufe begonnen werden, wenn die vorhergehende beendet ist. Vorteil ist hier das die Aktivitäten logisch gegliedert sind und die einzelnen Gruppen definierte Vor- und Nachbedingungen erhalten und das jede Phase kosten- und terminmäßig besser überschaubar ist. Seite: 5 von 6

Allerdings stecken in diesem Ansatz auch eine Menge von Probleme. So wird z.b. unterstellt das sich während des Projektes nichts ändert. (no change assumption). Modifizierte Verfahren erlauben jedoch Rückgriffe zwischen den Stufen. Nachteile sind das eine stark serialisierte Projektentwicklung unterstellt wird und das am Ende einer Phase alle Probleme vollständig erkannt (perfect understanding) und gelöst wurden. Dieses Modell bietet immerhin eine Dokumentationsvorschrift, wenn auch böse Zunge behaupten das zumindest der Misserfolg dokumentiert wird. Ich habe dieses Modell hier ausgewählt weil es u.a. den Entwicklungsprozess in der Wissenschaft der Softwareentwicklung einwenig zeigen kann. Zu Beginn der Softwareentwicklungszeit, ähnlich der damals vorherrschenden Technologie wurde sequentiell gedacht und programmiert. Ein Programm entwickelt sich Schritt für Schritt nach einander. Von diesem reinen sequentiellen Ansatz ist man weggegangen. Heute werden andere Modellansätze verfolgt. Objektorientierte Ansätze folgen einem inkrementellen bzw. evolutionären Modellansatz. Eine Gemeinsamkeit von Evolutionärem Modell und dem Wasserfallprinzip ist, dass die Entwicklung stufenweise erfolgt. Dies Stufen sind jedoch nicht identisch mit den Stufen des Wasserfallmodell, denn in diesen neuen Ansätzen werden z.b. innerhalb einer Stufe für alle Teilprodukte alle Phasen durchlaufen. Im inkrementellen Ansatz werden daher ausgehend von einem Teilprodukt stufenweise die anderen Teilprodukte in Ausbaustufen mit dem Kernprodukt zusammengesetzt, wobei für alle Teilprodukte die herkömmlichen Phasen der Softwareentwicklung durchlaufen werden. Die Wartung wird somit integrativer Bestandteil der Entwicklung. Das evolutionäre Modell liefert bereits nach einer kurzen Entwicklungsdauer eine sogenannte Nullversion. Aufbauend auf den Erfahrungen der Benutzer werden dann stufenweise neue Anforderungen ergänzt. Böse Zungen würden hier behaupten es handelt sich um sogenannte Bananensoftware die erst beim Kunden reifen würde. Der Unterschied zu einer Bananensoftware liegt dagegen darin, das der Reifeprozess mit dem Kunden von vornherein vereinbart wurde, er ist sozusagen Bestandteil des Entwicklungsprozesses. Der Anwender und Kunde wird mit in die Entwicklung mit einbezogen, man spricht auch von Pilotkunden. Seite: 6 von 6