Prinzipien des Software Engineering

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Datenbankdesign mit ACCESS.
Vorgehensmodell - Wasserfallmodell
Objektorientierung Auffassung der Software als eine Sammlung
Grundlagen der Systemtheorie
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Wissensanalyse von Aufgaben mit TKS Eine Methode zur Problemlösung
Datenmodellierung Externe Phase Informationsstruktur
Designing Software for Ease of Extension and Contraction
Das „Vorgehensmodell“
3. Kapitel: Komplexität und Komplexitätsklassen
Produktmodelle im Service Engineering
Das Entity-Relationship-Modell
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Systemanalyse In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiel 2: Iterative-Inkrementelle Vorgehensmodelle Annahmen: Anforderungen sind unvollständig.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
von Reaktionen und chemischen Suppen
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Abhängigkeitsbeziehung
DOM (Document Object Model)
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
AGXIS – Ein Konzept für eine generische Schnittstellenbeschreibung Dr.-Ing. Ulrich Hussels, RISA GmbH 07. Juni 2005 Workshop Umweltdatenbanken 2005.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Zusammenfassung Vorwoche
Inhalt Struktur Gestaltung
Prüfkriterien für objektorientierte Systeme
Access 2000 Datenbanken.
Theorie soziotechnischer Systeme – 12 Thomas Herrmann Informatik und Gesellschaft FB Informatik Universität Dortmund iundg.cs.uni-dortmund.de.
Datenbankentwurfsprozess
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
Wizards & Builders GmbH Modularisierung von SW Modularisierung von Anwendungen mit Microsoft Visual FoxPro.
Kontrollfragen zu Kapitel 1
Variationsformalismus für das freie Teilchen
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
grundlagen der Wirtschafts- informatik
EXCEL PROFESSIONAL KURS
Entwurf und Realisierung des Add-On’s Projektmanagement in SiSy
GIS - Seminar Wintersemester 2000/2001
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 9: Abstraktion.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Seminar Softwareentwicklung Programmierstil Helmut Schmidauer
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
PRO:CONTROL Ziel des Moduls Arbeitspakete
verstehen planen bearbeiten
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Das Traveling Salesman Problem (TSP)
Software Engineering Grundlagen
Software Engineering Strukturierte Analyse
Software Engineering Strukturierter Entwurf
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Seminar: Software-Architektur Einführender Vortrag
Präsentation Unternehmens- organisation.
Operatoren Ein Operator zeigt an, welchen Teilbereich und in welcher Tiefe der Sachverhalt dargestellt werden soll. Je nachdem, welcher Operator verwendet.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Objektorientierte Programmierung Was ist das eigentlich ?
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
 Präsentation transkript:

Prinzipien des Software Engineering Strukturierung Hierarchisierung Abstraktion Modularisierung Lokalität Mehrfachverwendbarkeit Standardisierung integrierte Dokumentation LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Abstraktion Abstraktion bedeutet die Verringerung der Komplexität durch Vernachlässigung von Nebenaspekten und Details synonym: Modellbildung Ziel der Abstraktion: Herleitung eines Modells des betrachteten Systems aus einer spezifischen Sicht Beispiele: - modellhafte Darstellung der Informations- beziehungen eines Systems - modellhafte Darstellung der Aufbauorganisation eines Systems (Unternehmens) - modellhafte Darstellung der Geschäftsprozesse LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Strukturierung Strukturieren bedeutet, für ein komplexes System eine reduzierte Darstellung zu finden, die den Charakter des Ganzen mit seinen spezifischen Merkmalen wiedergibt Strukturierung von Systemen erfolgt durch - Hierarchisierung und - Modularisierung Strukturierung von Programmen erfolgt durch die ausschließliche Verwendung der Grundstrukturen: - Sequenz, - Selektion und - Iteration LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Hierarchisierung Ein System besitzt eine Hierarchie, wenn seinen Elementen eine Rangordnung zugeordnet ist. Elemente gleicher Rang- ordnung bilden eine Hierarchieebene. Kriterien für die Bildung von Rangordnungen: - organisatorische Zusammenhänge - vergleichbare Eigenschaften der Elemente - zeitliche Zusammenhänge Hierarchisierung bildet die Grundlage für die Strukturierung von Systemen LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Modularisierung Modularisieren bedeutet, ein (Software-) Produkt aus einzelnen Bausteinen (Modulen) zusammen- zusetzen, die die folgenden Eigenschaften besitzen: - eine feste Bindung, d.h. in einem Modul werden Dinge realisiert, die einen unmittelbaren Zusammenhang besitzen - Kontextunabhängigkeit, d.h. ein Modul ist unab- hängig von seiner Umgebung entwickelbar, übersetzbar, prüfbar, wartbar und verständlich - es existiert eine Schnittstellenbeschreibung in Form einer Spezifikation; diese Beschreibung muss die Parameter bzw. alle importierten und exportierten Größen enthalten - alle Internas des Moduls sind dem Anwender verborgen, d.h. es weiß nicht, wie ein Modul seine Aufgabe erledigt, er weiß nur, welche Aufgabe durch ein Modul gelöst wird - alle für die Anwendung eines Moduls relevanten Informationen befinden sich an einer Stelle (Lokalitätsprinzip) - eine geringe Datenkopplung, d.h. die Menge und die Vielfalt der Daten, die zwischen den Modulen eines Systems ausgetauscht werden, ist auf ein Minimum zu reduzieren LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Modulbildung 1 Ein Modul ist eine softwaretechnische Einheit, die eine funktionale und/oder eine Datenabstraktion realisiert: Ein Modul besitzt einen eigenen Namen. Von einem Modul ist (nach 'außen') bekannt, was es ausführt (nicht wie es ausgeführt wird). Ein Modul ist unter seinem Namen aufrufbar, d.h. die im Modul enthaltenen Anweisungen werden zur Ausführung gebracht. Ein Modul besitzt eine Eingabeschnittstelle, d.h. dem Modul werden vom rufenden Programm Daten (Inputs) übergeben. Ein Modul besitzt eine Ausgabeschnittstelle, d.h. es werden i.d.R. Daten (Outputs) an das rufende Programm zurückgegeben. LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Modulbildung 2 Abgeschlossenheit Jeder Modul verkörpert eine Entwurfsentscheidung, d.h. eine in sich geschlossene Aufgabe Wohldefinierte Schnittstellen Vollständige und eindeutige Spezifikation der Schnittstellen Geheimnisprinzip Jeder Modul kennt eine saubere Trennung von Spezifikation und Konstruktion, d.h. eine Trennung von 'was' und 'wie' Gegenseitige Nicht-Beeinflussung Änderungen in der Konstruktion eines Moduls ziehen keine Änderungen in den anderen Modulen nach sich Handhabbarkeit Jeder Modul ist gut überschaubar, also nicht zu groß und kann von einer Person bearbeitet und verstanden werden Prüfbarkeit Jeder Modul ist so beschaffen, dass sein korrektes Funktionieren unter Beachtung der Schnittstellenspezifikation geprüft werden kann Integrierbarkeit Module müssen zu einem Ganzen - ohne Schaffung neuer Probleme - integrierbar sein Planbarkeit Ein Modul muss planbar und kontrollierbar sein. Bei der Konstruktion müssen sich Meilensteine festlegen lassen LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Modulare Struktur Bindung Kopplung Kopplung Kopplung Bindung Bindung Bindung Kopplung Kopplung Kopplung Kopplung Bindung Bindung Bindung := intramodulare Beziehung Kopplung := intermodulare Beziehung LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Überblick über die internen Bindungsarten a) zufällig b) logisch c) zeitlich d) prozedural e) kommunikativ f) sequentiell g) funktional schwache Bindung starke Bindung Modul führt genau eine problem- bezogene Funktion aus ja nein Wodurch hängen die Aktivitäten des Moduls zusammen ? Daten Kontrollfluß weder noch Reihenfolge Reihenfolge alle Aktivitäten wesentlich wesentlich derselben Kategorie ja nein ja nein ja nein funk- tional sequen- kommuni- tiell kativ prozdural zeitlich logisch zufällig LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Kopplung Die Kopplung von Modulen ist der Grad der Abhängigkeit zwischen den Modulen eines Systems: Kopplungsmechanismus Auf welche Art und Weise werden die Module aufgerufen ? Schnittstellenbreite In welchem Umfang werden Daten zwischen den Modulen übergeben und wie sind sie strukturiert ? Kommunikationsart In welcher Art und Weise beeinflussen die übergebenen Daten den Ablauf eines Moduls ? LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Prinzip der Lokalität Optimale Lokalität liegt vor, wenn alle zur Lösung eines Problems oder zur Einarbeitung in einen Bereich benötigten Informationen an einer Stelle zu finden sind Nicht benötigte Informationen sind an dieser Stelle nicht vorhanden ! Für den Bereich der Implementierung gilt der Grundsatz, dass rund 30 Anweisungen (Befehle) die obere Grenze dessen darstellen, was beim Lesen eines Listings, einer Modulbeschreibung, etc. ohne größere Probleme bewältigt werden kann LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Mehrfachverwendbarkeit Um Zeit und Kosten bei der Systementwicklung zu sparen, ist es sinnvoll und wirtschaftlich, erstellte Softwarekomponenten nicht nur in einem Produkt zu verwenden, sondern mehrfach einzusetzen! Gründe, die für die Wiederverwendbarkeit sprechen: - Zeiterparnis - Kostenersparnis - Fehlerreduktion - Erhöhung der Stabilität LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der Standardisierung Standardisierung erfolgt durch die Anwendung von Richtlinien, Normen, Regeln etc. und betrifft die unterschiedlichsten Bereiche: - Namensvergabe - Pflichtenheftgestaltung - Verwendung von Standardgliederungen bei der Dokumenterstellung - Einhaltung von Programmierstandards - Oberflächenstandards (Masken, Listen, etc.) - einheitliches Fehlermanagement - einheitliche Help - Gestaltung - einheitliche Verwendung von Funktionstasten etc. LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzip der integrierten Dokumentation Ein Softwareprodukt besteht aus Programmcode + Dokumentation These: Ein Softwareprodukt ist höchstens so gut wie seine Dokumentation Dokumentation Produktdokumentation Projektdokumentation Zielgruppen: Entwickler und Benutzer LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering

Prinzipien der Software Engineering Zusammenfassung Abstraktion Strukturierung Hierarchisierung Modularisierung Lokalität Mehrfachverwendbarkeit Standardisierung integr. Dokumentation a b: a entsteht aus b; b ergibt a a b: a steht in Wechselwirkung mit b a b: a setzt b voraus LV: SE 2001/2002 Zilahi Prinzipien der Software Engineering