Some Software Engineering Principles



Ähnliche Dokumente
SDD System Design Document

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Übungen zur Softwaretechnik

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

teischl.com Software Design & Services e.u. office@teischl.com

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

Grundbegriffe der Informatik

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!.

QuickStart. «/personenspezifische Fragenanzeige» Kurzanleitung

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Fragebogen ISONORM 9241/110-S

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Kurzleitfaden für Schüler

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

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

Tipps & Tricks im CRM

Professionelle Seminare im Bereich MS-Office

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Integration von ITIL in das V-Modell XT

Studieren- Erklärungen und Tipps

SEP 114. Design by Contract

Schnittstelle DIGI-Zeiterfassung

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

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

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Updatehinweise für die Version forma 5.5.5

Agile Software Development

Der wachsende Berufsunfähigkeitsschutz SV Start-Easy-BU.

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Fragebogen zur Anforderungsanalyse

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Handbuch ZfEditor Stand

Theoretische Informatik SS 04 Übung 1

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

SharePoint Demonstration

IFV Informatik für Verbände

Einleitung... 2 Eingeben der Daten... 2 Datenabgleich... 3 Zusammenfassung... 5

Fragebogen: Abschlussbefragung

Rillsoft Project - Installation der Software

Grundlagen der Informatik

Die Wirtschaftskrise aus Sicht der Kinder

Netzwerk-Migration. Netzwerk-Migration IACBOX.COM. Version Deutsch

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Berufsunfähigkeit trifft jeden Vierten. Sehr gut, dann bei der SV versichert zu sein.

Allgemeine Geschäftsbedingungen AGB

1. Einführung. 2. Weitere Konten anlegen

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Anleitung zur Umstellung der Mehrwertsteuer in WERBAS

Der wachsende Berufsunfähigkeitsschutz. junge Leute. SV Start-Easy-BU. Sparkassen-Finanzgruppe

Pflegende Angehörige Online Ihre Plattform im Internet

Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln

Saldo-Konto eines Mitarbeiters korrigieren

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Softwareentwicklungsphasen!

Berufsunfähigkeit trifft jeden Vierten. Gut, dann bei der SV versichert zu sein.

Quick Guide Mitglieder

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

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

Projektplan(ung) zu CYOUTOO

Anleitung für die Registrierung und das Einstellen von Angeboten

ELitE Bestell- und Lieferplattform für Informationen & Literatur

Dokumentation Schedulingverfahren

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

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

Wärmebildkamera. Arbeitszeit: 15 Minuten

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

SJ OFFICE - Update 3.0

egovernment für das Open Source CMS Contao

Geld Verdienen im Internet leicht gemacht

Kleines Handbuch zur Fotogalerie der Pixel AG

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

Konzepte der Informatik

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

OSD-Branchenprogramm. OSD-Version Was ist neu? EDV-Power für Holzverarbeiter

Leichte-Sprache-Bilder

Das Leitbild vom Verein WIR

Anleitung BFV-Widget-Generator

1. Einführung. 2. Die Abschlagsdefinition

Klausur Software Engineering für WI (EuI)

Powermanager Server- Client- Installation

Debitoren Buchhaltung

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

macs Support Ticket System

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Nicht über uns ohne uns

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Kurze Anleitung zum Guthaben-Aufladen bei.

Transkript:

David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1

Problemstellung Software Engineering Multi-Personen Programmierung Multi-Versions Programmierung Aufgabenverteilung Modifizierbarkeit Anforderungsdefinition Sinnvolle Teilprogramme Fehlerbehandlung Erweiterbarkeit 2

Was ist ein gut strukturierte Software? Programmstruktur: Menge von Teilen des Systems Verbindungen zwischen diesen Teilen Gute Struktur: Verbindungen enthalten sehr wenig Informationen Wozu? Beweis der Korrektheit des Systems Veränderungen am System 3

Korrektheitsbeweis Modul A..Anforderungen....Theoreme.. Voraussetzungen Axiome Modul B Modul C Beweis der Korrektheit des Gesamtsystems Nutze Beweise über Korrektheit der Teilsysteme 4

Veränderungen am System Zentrale Frage: Welche Veränderungen können an einem Teil des Systems vorgenommen werden, ohne andere Teile des Systems zu verändern? Antwort Nur Änderungen, die den Annahmen an den Softwareteil nicht widersprechen 5

Veränderungen am System Modul A (3) Korrektheit von Modul A kann nicht mehr bewiesen werden. (2) Axiome gelten nicht mehr...anforderungen....theoreme..? X Voraussetzungen Axiome Modul B..Anforderungen....Theoreme.. Modul C (1) Modul B wird so verändert, dass es nicht mehr den Anforderungen entspricht. 6

Techniken Techniken zur Erstellung Decomposition Specification 7

Decomposition Aufteilung des Systems in Module (hier: work assignments) Schlecht: Flussdiagramme Grobes Diagramm Anschließend Verfeinerung Problem: Viele Informationen in den Verbindungen Besser: Konstruktion von Module um Annahmen, die sich am meisten ändern werden Sich wenig ändernde Schnittstellen 8

Decomposition Vorteil Beschränkung von Änderungen auf ein Modul Problem: Vermittlung/Lehre Nur anhand sehr vieler Beispiele erlernbar 9

Specification Kontrolle über die Struktur des Systems durch Exakte Beschreibung der Annahmen über ein Modul Problem Zuwenig Beschreibung Zwangsläufig ineffiziente Programme Zuviel Beschreibung Eventuell werden Annahmen über ein Modul gemacht, die so nicht beabsichtigt wurden 10

Specification - Schlechte Wege Interne Struktur des Moduls beschreiben Programm wird schwerer modifizierbar, weil Teile des Systems von der internen Struktur des Moduls abhängen können Beschreibung einer hypothetischen Implementation des Moduls Programm kann eventuell nie korrekt arbeiten, wenn ein Aspekt der hypothetischen Implementation nie korrekt war Schwierig zu vermitteln, welche Teile der offengelegten Informationen nicht benutzt werden dürfen 11

Der richtige Weg: Information Hiding Genaue Spezifikation der nach außen sichtbaren Aspekte Keine Andeutungen über interne Strukturen Bestätigung durch Experiment KWIC-Index 1971: 20 Studenten, Spezifikation gegeben 15 funktionierende Module Test von 25 Kombinationen, alle erfolgreich Bestätigung dieses Ergebnisses durch ähnliche Experimente 12

Error Handling Durch Information Hiding wird die Behandlung von Laufzeitfehlern massiv erschwert Fehler werden in Datenstrukturen und Programmen ausgedrückt, die nicht in allen Teilen des Systems bekannt sind Informationen zum verstehen und behandeln des Fehlers eventuell in anderen Modulen Zerstörung des Information Hiding Prinzips durch Übermittlung des Fehlers 13

Error Handling Während des Entwurfs von Modulen, über mögliche Fehler nachdenken Traps einbauen In hierarchischen Software-Strukturen Ein extra Fehler-Handling Modul je Schicht Fehler nach oben/unten propagieren Fehlerbeschreibung an Abstraktionsniveau der Schicht anpassen 14

Error Handling Nachteil Erhöhter Aufwand beim Entwurf Vorteil Feststellen des verursachenden Moduls ohne Wissen über das Innere der Module Verbesserte Fehlersuche Verbesserte Verläßlichkeit des Systems Möglichkeit zur Verbesserung des Error Handling während der Softwareentwicklung 15

Hierarchische Strukturen Viel Diskussion zu der Zeit Nach Parnas der bedeutendste Ansatz: die Uses Hierarchie Programm 1 Programm 1 uses uses uses Programm 2 Programm 1 arbeitet nur dann korrekt, wenn auch Programm 2 korrekt arbeitet. Programm 2 Schlecht: Zyklen Das Gesamtsystem arbeitet erst korrekt, wenn alle Teilsysteme korrekt arbeiten. 16

Hierarchische Strukturen Entwurf der Uses-Hierarchie vor der Implementation (Teil-)Programmpakete leicht aus der Uses-Hierarchie erstellbar 17

Abstract Interfaces Design in 2 Schritten: 1.Liste mit Annahmen, die sich während des gesamten Software life cycle (wahrscheinlich) nicht ändern werden 2.Spezifikation einer Menge von Schnittstellen-Funktionen, die auf Grund dieser Annahmen garantiert implementiert werden können 18

Zusammenfassung Mehraufwand in den frühen Phasen der Softwareentwicklung lohnt sich Alle angesprochenen Konzepte sollten auf jeden Fall berücksichtigt werden Dekomposition in Module Präzise Spezifikation Design leicht modifizierbarer Systeme Design abstrakter Interfaces 19

Quellen David L. Parnas: Some Software Engineering Principles ; 1978 David L. Parnas, H. Würges: Response to Undesired Events in Software Systems ; 1976 20