Softwaretechnik Folge 8 Methoden für Entwurf und Realisierung



Ähnliche Dokumente
Abschnitt 16: Objektorientiertes Design

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

1 Mathematische Grundlagen

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Zeichen bei Zahlen entschlüsseln

Reporting Services und SharePoint 2010 Teil 1

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Softwaretechnik (Allgemeine Informatik) Überblick

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Kapitel 2: Der Software-Entwicklungsprozess

Softwaretechnik Folge 5 Analyse und Definition: Basiskonzepte I

VBA-Programmierung: Zusammenfassung

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Klausur Software-Engineering SS 2005 Iwanowski

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

Task: Nmap Skripte ausführen

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Grundbegriffe der Informatik

Skript Pilotphase für Arbeitsgelegenheiten

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

16 Architekturentwurf Einführung und Überblick

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Projektmanagement in der Spieleentwicklung

Konzepte der Informatik

Professionelle Seminare im Bereich MS-Office

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Updatehinweise für die Version forma 5.5.5

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

VB.net Programmierung und Beispielprogramm für GSV

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Kapiteltests zum Leitprogramm Binäre Suchbäume

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

1. Einführung. 2. Weitere Konten anlegen

6. Programmentwicklung

Adobe Encore Einfaches Erstellen einer DVD

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Symbole und Schnittvorlagen aus

8. Berechnung der kalkulatorischen Zinsen

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

AutoTexte und AutoKorrektur unter Outlook verwenden

Text-Zahlen-Formatieren

Lizenzierung von StarMoney 8.0 bzw. StarMoney Business 5.0 durchführen

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

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Hinweise zur Benutzung des Programms zur Berechnung der Abiturendnote

Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen!

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Java Kurs für Anfänger Einheit 5 Methoden

Software-Engineering Grundlagen des Software-Engineering

Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.

Guide DynDNS und Portforwarding

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Ideation-Day Fit für Innovation

Leseprobe - Seite 5 - Kapitel 5 Fragetechniken - Einfürung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Gimp Kurzanleitung. Offizielle Gimp Seite:

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Primzahlen und RSA-Verschlüsselung

Eine Einführung in die Installation und Nutzung von cygwin

Einführung in die Algebra

Internet Explorer Version 6

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

Was ist Sozial-Raum-Orientierung?

Neuerungen PRIMUS 2014

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Klausur Informationsmanagement

Anwendungsbeispiele Buchhaltung

Schritt 1: Schulung vorbereiten

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Bauteilattribute als Sachdaten anzeigen

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Die Softwareentwicklungsphasen!

LEITFADEN zur Einstellung von Reverse Charge bei Metall und Schrott

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Content Management System mit INTREXX 2002.

Software-Engineering

LSF-Anleitung für Studierende

Lizenzierung von System Center 2012

Subpostfächer und Vertretungen für Unternehmen

agitat Werkzeuge kann man brauchen und missbrauchen - vom Einsatz von NLP in der Führung

BIA-Wissensreihe Teil 4. Mind Mapping Methode. Bildungsakademie Sigmaringen

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Marketing Funnel INSIDERWISSEN INSIDERWISSEN: MARKETING FUNNEL

Zusatzmodul Lagerverwaltung

Bitte geben Sie hier den Benutzer cubusadmin und das gleichnamige Passwort ein.

Transkript:

Skript zur Vorlesung Softwaretechnik Folge 8 Methoden für Entwurf und Realisierung IT Kompaktkurs Sommersemester 2001 Prof. Dr. Herbert Fischer Fachhochschule Deggendorf

1 Methoden für Entwurf und Realisierung 1.1 Überblick Wir werden in diesem Kapitel das methodische Vorgehen in der Phase Entwurf und Realisierung der Softwareentwicklung genauer ansehen. Das Strukturierte Design (Structured Design =SD)! Wir werden uns zunächst mit den Zielen und Aufgaben des Softwareentwurfs beschäftigen. Dabei werden wir den Begriff Software-Architektur klären. Die Kenntnis der funktionalen Abstraktion ist Voraussetzung für das Verständnisse der in der Entwurfsphase verwendeten Strukturdiagramme. Wir werden am Beispiel einer Bibliotheksverwaltung die Entwurfsphase mit Unterstützung eines SE-Tools durchführen. Am Ende werden wir besprechen, wir man einen vorliegenden Entwurf für die Realisierung der Software verwenden kann. Strukturierter Entwurf (und Realisierung) Structured Design (SD) Software-Architektur Funktionale Abstraktion Strukturdiagramme Realisierung Abbildung 1: Strukturierter Entwurf und Realisierung Prof. Dr. Herbert Fischer Seite: 2 Stand: 03.05.01, Datei: skript8.doc

Wir sehen uns nochmals den Gesamtüberblick der Softwareentwicklung an, quasi als Standortbestimmung. Wir befinden uns in der Entwurfs-Phase, also kurz vor der Realisierung! Phasen der Softwareentwicklung Entwicklungsrichtung Anforderungen & Planung Analyse & Definition Entwurf Entwicklungsrichtung Realisierung & Modultest Integrations- & Systemtest Auslieferung & Installation Wartung Abbildung 2: Phasen der Softwareentwicklung Prof. Dr. Herbert Fischer Seite: 3 Stand: 03.05.01, Datei: skript8.doc

1.2 Zielsetzung des Software-Entwurfs Zielsetzung des Software-Entwurfs ist eine Software-Architektur. Dabei geht es um die Design-Entscheidung, welche Teile der Strukturierten Analyse in Software umgesetzt werden sollen und wie die Struktur des künftigen Software-Systems aussehen soll Üblicherweise spricht man dabei von Systemkomponenten und deren Beziehungen untereinander. Eine Systemkomponente ist ein abgegrenzter Teil eines Software-Systems und dient als Baustein für die physikalische Struktur einer Software-Anwendung. Ziele und Aufgaben des Software-Entwurfs Entwurf einer Software-Architektur Beschreibung der Struktur des Software- Systems mit Systemkomponenten und Beziehungen Beispiele prozedural: Funktionen objektorientiert: Klassen Abbildung 3: Ziele und Aufgaben des Software-Entwurfs Beispiele für Systemkomponenten sind beispielsweise: Funktionen für prozedurale Entwürfe Klassen für objektorientierte Entwürfe Prof. Dr. Herbert Fischer Seite: 4 Stand: 03.05.01, Datei: skript8.doc

1.3 Grundlagen 1.3.1 Software-Architektur Wir sehen uns zu Beginn dieses Abschnitts ein einfaches Beispiel für die Software-Architektur einer betriebswirtschaftlichen Software-Anwendung im folg. Ausschnitt an: Stammdatenverwaltung Einkauf Verkauf Beispiel: Software-Architektur Stammdatenverwaltung Systemkomponenten Einkauf Verkauf Abbildung 4: Beispiel einer Software-Architektur Besteht nun eine Software-Architektur aus vielen Komponenten, dann ist Strukturierung notwendig. Prof. Dr. Herbert Fischer Seite: 5 Stand: 03.05.01, Datei: skript8.doc

1.3.2 Schichtenarchitektur Hierzu wird der Entwurf in verschiedenen Schichten dargestellt, es entsteht eine Schichtenarchitektur. Ein Entwurf in Schichtenarchitektur hat folgende Eigenschaften: Komponenten innerhalb einer Schicht können beliebig aufeinander zugreifen Zwischen den Schichten gelten strengere Kommunikationsregeln Man könnte einen komplexen Entwurf einer betriebswirtschaftlichen Anwendungen in die Schichten Benutzeroberfläche Anwendungskomponenten Datenhaltung strukturieren. Schichten-Architektur Komponenten der Benutzeroberfläche Anwendungskomponenten Komponenten der Datenhaltung Abbildung 5: Schichten-Architektur Prof. Dr. Herbert Fischer Seite: 6 Stand: 03.05.01, Datei: skript8.doc

Man könnte sich eine Schichtenarchitektur für den Entwurf eines Warenwirtschaftssystems vorstellen. Auf der Schicht der Benutzeroberfläche sind die Komponenten Dialog und Batch Die Anwendungsschicht befinden sich die Komponenten Auftragsverwaltung, etc. Die Datenkomponenten wären beispielsweise Kunden, Aufträge und Lieferanten Beispiel Warenwirtschaftssystem (Ausschnitt) Dialog Hintergrund Auftragsverwaltung Kunden Aufträge Lieferanten Abbildung 6: Beispiel einer Schichtenarchitektur (Ausschnitt eines Warenwirtschaftssystems) Prof. Dr. Herbert Fischer Seite: 7 Stand: 03.05.01, Datei: skript8.doc

1.4 Hauptaufgaben des Software-Entwurfs Die Hauptaufgaben des Software-Entwurfs lassen sich zusammenfassen: Es wird eine Software-Architektur entworfen, welche die Zerlegung des definierten System (aus Systemanalyse und definition) der Systemkomponeten die Strukturierung durch Anordnung der Systemkomponenten (Schichtenarchitketur) und die Beschreibung der Beziehungen zwischen den Systemkomponenten zum Ziel hat. Hauptaufgaben des Software-Entwurfs Entwerfen einer Software-Architektur Zerlegung Strukturierung Beziehungen zwischen den Systemkomponenten Ergebnisse: Software-Architektur Spezifikation jeder Systemkomponente Abbildung 7: Hauptaufgaben des Software-Entwurfs Für die Komposition geeigneter Systemkomponenten ist die Kreativität und Erfahrung eines bzw einer Software-Designers/in gefragt. Prof. Dr. Herbert Fischer Seite: 8 Stand: 03.05.01, Datei: skript8.doc

1.5 Funktionale Abstraktion 1.5.1 Schema der funktionalen Abstraktion Um die Systemkomplexität zu reduzieren nutzen wir das Prinzip der Abstraktion. Wichtig dabei ist, dass eine Funktion erklärt, was sie leisten kann. Wie die Dienstleistung erbracht wird ist dabei uninteressant. Die Anwendung der Funktion liefert stets ein korrektes Ergebnis! Eine schematische Darstellung der funktionalen Abstraktion sehen Sie in der folgenden Abbildung. Funktionalen Abstraktion Schema Eingabe Ausgabe WAS WIE Abbildung 8: Schema der funktionalen Abstraktion Prof. Dr. Herbert Fischer Seite: 9 Stand: 03.05.01, Datei: skript8.doc

Erläuterung anhand eines praktischen Beispiels: Funktionale Abstraktion Beispiel Kapital Zinssatz Zeit Zinsberechnung Zins C++ Funktionsaufruf Abbildung 9: Beispiel eines funktionalen Abstraktion Zur Zinsberechnung ist es wichtig die Voraussetzungen zur Berechnung und das erwartete Ergebnis zu beschreiben. Es ist uninteressant, wie die Zinsberechnung ausgeführt wird. Kurz gesagt: Wichtig ist, dass das Ergebnis stimmt! Prof. Dr. Herbert Fischer Seite: 10 Stand: 03.05.01, Datei: skript8.doc

1.5.2 Schritte der funktionalen Abstraktion Für eine vollständige Spezifikation einer funktionalen Abstraktion sind folgenden Schritte erforderlich: Aufgabenbeschreibung (WIE) Eingabeparameter mit Datentyp Ausgabeparameter mit Datentyp und Abhängigkeiten von den Eingabeparametern Voraussetzungen und Vorbedingungen Bedingungen nach der Abstraktion Verhalten bei Fehlern Leistungsmerkmale Spezifikation der funktionalen Abstraktion Aufgabenbeschreibung (WIE) Eingabeparameter mit Datentyp Ausgabeparameter mit Datentyp und Abhängigkeiten von den Eingabeparametern Voraussetzungen und Vorbedingungen Bedingungen nach der Abstraktion Verhalten bei Fehlern Leistungsmerkmale Abbildung 10: Spezifikation der funktionalen Abstraktion Prof. Dr. Herbert Fischer Seite: 11 Stand: 03.05.01, Datei: skript8.doc

1.6 Strukturdiagramme 1.6.1 Aufgabe und Verwendung von Strukturdiagrammen Zielsetzung des Software-Entwurfs ist ja eine Software-Architektur, welche uns als Vorlage für die anschließende Realisierung dienen soll. Strukturdiagramme werden zur grafischen Darstellung von funktionalen Systemkomponenten verwendet. Die funktionale Abstraktion hilft uns dabei, die Aufrufstruktur und die Datenflüsse zwischen den Systemkomponenten deutlich zu machen. Strukturdiagramme grafische Darstellung der Software-Architektur funktionale Abstraktion Aufrufstruktur der Systemkomponenten Datenflüsse zwischen Systemkomponenten Abbildung 11: Strukturdiagramme Prof. Dr. Herbert Fischer Seite: 12 Stand: 03.05.01, Datei: skript8.doc

1.6.2 Notation für Strukturdiagramme Die Basisnotation für Strukturdiagramme besteht aus Rechtecken (Funktionen), Sechsecken (Datenbereiche) und Pfeilen (Datenflüssen). Je nach Spezifikation der Parameter unterscheiden wir Einfach-Pfeile und Doppelpfeile als Datenflüsse (leerer Kreis) Kontrollflüsse (gefüllter Kreis) Hybridflüsse (Kreis mit Punkt) Für Funktionsrückgabepfeile werden mit Doppelpfeilen dargestellt und entsprechend der Parameterspezifikation unterschieden. Basisnotation für Strukturdiagramme Funktion (Rechteck) Datenbereich (Sechseck) Parameter für Funktionsübergabe (Pfeil) Parameter für Funktionsrückgabe (Doppelpfeil) Datenparameter (Pfeilbeginn: leerer Kreis) Kontrollparameter (Pfeilbeginn: gefüllter Kreis) Hybridparameter (Pfeilbeginn: Kreis mit Punkt) Abbildung 12: Basisnotation für Strukturdiagramme Prof. Dr. Herbert Fischer Seite: 13 Stand: 03.05.01, Datei: skript8.doc

1.6.3 Praktisches Beispiel Wie sieht nun ein Strukturdiagramm in der Praxis des Software-Entwurfs aus? Es ist sinnvoll, einen Ausschnitt aus der Bibliotheksverwaltung anzusehen. Dieses Beispiel hatten wir auch schon im Rahmen der Strukturierten Analyse verwendet. Einen kleinen Ausschnitt unserer Diskussion sehen wir in diesem Strukturdiagramm. Es wurde mit einem CASE-Tool namens INNOVATOR der Firma MID GmbH angefertigt. Strukturdiagramm eines Bibliotheksverwaltungssystems Abbildung 13: Strukturdiagramm eines Bibliotheksverwaltungssystems Prof. Dr. Herbert Fischer Seite: 14 Stand: 03.05.01, Datei: skript8.doc

1.7 Übergangs von der Strukturierten Analyse zum Strukturierten Entwurf Wie können wir denn die Ergebnisse der Phase Analyse und Definition für den Softwareentwurf nutzen? Bei Vorlage von Kontext- und Datenflußdiagrammen mit Prozeßspezifikation aus der Structured Analysis kann man sich im Structured Design an diesen Vorgaben orientieren. Die funktionale Abstraktion muss mit Kreativität und Erfahrung erreicht werden. Mit Einsatz eines SE-Tools kann man jedoch beim Software-Design auf die Prozesse und Datenflüsse der Analyse referenzieren. Auch die Aufrufparameter können aus dem bereits existierenden Data Dictionary bezogen bzw. ergänzt werden. Eine andere Möglichkeit besteht darin, eine Transformation einer Strukturierten Analyse (SA) in ein Strukturiertes Design (SD) durchzuführen. Diese Vorgehensweise beinhaltet Handlungsempfehlungen, ersetzt jedoch keines Falls die bereits mehrfach erwähnte Kreativität und Erfahrung. Im übrigen wird hier auf die einschlägige Literatur, wie im Skript angegeben, verwiesen. Prof. Dr. Herbert Fischer Seite: 15 Stand: 03.05.01, Datei: skript8.doc

1.8 Realisierung 1.8.1 Einzelaufgaben Wie gehen davon aus, dass aus der Entwurfsphase eine Software-Architektur mit geeigneten Systemkomponenten vorliegt. Folgende Einzelaufgaben sind während der Realisierung von Systemkomponenten durchzuführen: Konzeption von Datenstrukturen und Algorithmen Strukturierung des Programms Dokumentation des Quellcodes Umsetzung der Entwurfskonzepte in Syntaxkonstrukte der verwendeten Programmiersprache Angaben zu Zeit- und Speicherbedarf des Programms in Abhängigkeit der Eingabegrößen Test der entwickelten Systemkomponenten einschließlich Testplanung und Testfallerstellung Software-Realisierung Aufgaben Konzeption von Datenstrukturen und Algorithmen Strukturierung des Programms Dokumentation des Quellcodes Umsetzung der Entwurfskonzepte in Syntaxkonstrukte Angaben zu Zeit- und Speicherbedarf des Programms Test der entwickelten Systemkomponenten (Testplanung und Testfallerstellung) Abbildung 14: Aufgaben der Software-Realisierung Je besser Analyse und Entwurf einer Softwarelösung durchdacht ist, desto weniger Probleme sind in der Realisierungphase zu erwarten. Prof. Dr. Herbert Fischer Seite: 16 Stand: 03.05.01, Datei: skript8.doc

1.8.2 Unterstützungsmöglichkeiten Der Übergang von der Strukturdiagrammen zur Realisierung ist ja doch noch ein großer Sprung. Aber auch hierfür gibt es Unterstützungsmöglichkeiten. Viele SE-Tools bieten hier rechnergestützte Basiskonzepte wie Struktogramme oder Programmablaufpläne an. Hier nochmals zur Erinnerung ein Struktogramm. Struktogramm (Mehrfachauswahl) Ausdruck Fall 1 Anw. 1 Fall 2 default Anw. 2 Fall 3 Ausnahme- Anw. 3 Anweisungen Anweisung(en) Abbildung 15: Struktogramme zur Realisierungsvorbereitung Mit diesem Basiskonzept in man in der Lage einen Softwarentwurf, beispielsweise als Strukturdiagramm, in ein Struktogramm zu konvertieren. Eingabe- und Ausgabeparameter der entworfenen Systemkomponenten und Funktionen werden in Struktogrammen angelegt. Funktionsspezifikationen aus der Entwurfsphase dienen als Kommentar für die nun anstehende Implementierung der Systemkomponenten in der Syntax der verwendeten Programmiersprache. Prof. Dr. Herbert Fischer Seite: 17 Stand: 03.05.01, Datei: skript8.doc

1.9 Aufgaben 1.9.1 Funktionale Abstraktion und Funktions-Prototypen Aus der Programmierung in C bzw. C++ kennen Sie den Begriff des Funktionsprototypen. Die Funktion MAX soll den größeren von zwei Werten bestimmen. Erläutern Sie das Prinzip der funktionalen Abstraktion anhand eines Schaubildes für die Funktion MAX. Formulieren Sie den zugehörigen Funktionsprototypen in C-Pseudocode. Prof. Dr. Herbert Fischer Seite: 18 Stand: 03.05.01, Datei: skript8.doc