Software-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen



Ähnliche Dokumente
Software-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Software-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

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

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erfahrungen mit Hartz IV- Empfängern

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Kulturelle Evolution 12

GEVITAS Farben-Reaktionstest

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Informationsblatt Induktionsbeweis

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Ein Vorwort, das Sie lesen müssen!

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

Bewertung des Blattes

Straumann CARES Visual 8.5.1

Primzahlen und RSA-Verschlüsselung

Professionelle Seminare im Bereich MS-Office

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Psychologie im Arbeitsschutz

Betriebliche Gestaltungsfelder

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

Abwesenheitsnotiz im Exchange Server 2010

1 Mathematische Grundlagen

Wasserkraft früher und heute!

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

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

Bernadette Büsgen HR-Consulting

Abschluss Version 1.0

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

UMDENKEN IN DER INKASSOBRANCHE?

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

Silca Software ERKLÄRUNG. February 2013 Copyright Silca S.p.A. V.2.0

QM: Prüfen -1- KN

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Lehrer: Einschreibemethoden

Einführung in. Logische Schaltungen

Zulassung nach MID (Measurement Instruments Directive)

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Zwischenablage (Bilder, Texte,...)

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

Installation OMNIKEY 3121 USB

Warum Sie dieses Buch lesen sollten

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

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Produktionsplanung und steuerung (SS 2011)

Alle gehören dazu. Vorwort

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

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

Erfolg im Verkauf durch Persönlichkeit! Potenzialanalyse, Training & Entwicklung für Vertriebsmitarbeiter!

Selbsttest Prozessmanagement

Bei der Tagung werden die Aspekte der DLRL aus verschiedenen Perspektiven dargestellt. Ich habe mich für die Betrachtung der Chancen entschieden,

Festigkeit von FDM-3D-Druckteilen

Jetzt neu: Online Reporting Schritt für Schritt durch das Online Reporting (OLR) Online Liedmeldung

Konzentration auf das. Wesentliche.

Dokumentation IBIS Monitor

Validierung und Verifikation

Durch die virtuelle Optimierung von Werkzeugen am Computer lässt sich die reale Produktivität von Servopressen erhöhen

Tutorial: Homogenitätstest

Test: Sind Sie ein Unternehmertyp?

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

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

7 Rechnen mit Polynomen

Beweisbar sichere Verschlüsselung

Bürgerhilfe Florstadt

Speicher in der Cloud

Statuten in leichter Sprache

Windows 10 - Probleme

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

Mobile Intranet in Unternehmen

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

Installationsanleitung für das KKL bzw. AGV4000 Interface

Was ist Sozial-Raum-Orientierung?

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

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

Anleitung über den Umgang mit Schildern

Europäischer Fonds für Regionale Entwicklung: EFRE im Bundes-Land Brandenburg vom Jahr 2014 bis für das Jahr 2020 in Leichter Sprache

Elternzeit Was ist das?

D.E.O. Die Erwachsene Organisation. Lösungen für eine synergetische Arbeitswelt

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

Die Post hat eine Umfrage gemacht

Informationen zum neuen Studmail häufige Fragen

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Grundlagen der Theoretischen Informatik, SoSe 2008

Die StandbyBuchung. Hier finden Sie den Link zu StandbyBuchung:

Abenteuer e-commerce Erfolgreich mit dem eigenen Onlineshop.

Offen für Neues. Glas im Innenbereich.

Projektmanagement in der Spieleentwicklung

Papierverbrauch im Jahr 2000

Dipl.-Ing. Herbert Schmolke, VdS Schadenverhütung

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

Buchhaltung mit WISO EÜR & Kasse 2011

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Transkript:

Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09

Überblick I 1 Softwaretechnik

Allgemeines zur Softwaretechnik 1 Softwaretechnik Eigenschaften von Software Software-Lebenszyklus Software-Evolution Entstehung der Softwaretechnik Merkmale der Softwaretechnik Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 3 / 29

Was ist Software? Definition Software: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. IEEE Std 610.12-1990 (1990) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 4 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Was ist Software? Was ist Software? Definition Software: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. IEEE Std 610.12-1990 (1990) Software umfasst also nach IEEE Std 610.12 Programme, Abläufe, Regeln, auch Dokumentation und Daten, die mit dem Betrieb eines Rechnersystems zu tun haben.

Ein Produkt wie jedes andere? Software ist ein technisches Produkt, weist aber einige einmalige Merkmale auf. Sie sollten beim Umgang mit Software beachtet werden. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 5 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Ein Produkt wie jedes andere? Ein Produkt wie jedes andere? Software ist ein technisches Produkt, weist aber einige einmalige Merkmale auf. Sie sollten beim Umgang mit Software beachtet werden. Generell kann und sollte Software als technisches Produkt betrachtet werden, das wie andere Produkte von Ingenieuren systematisch entwickelt werden kann und durch feststellbare Eigenschaften (Funktionalität, Qualität) gekennzeichnet ist. Software ist sogar frei von allen Unwägbarkeiten, die anderen technischen Produkten anhaften. Sie ist in diesem Sinne das ideale technische Produkt. Als Software-Leute sollten wir darum keine spezielle Nachsicht erwarten. Software weist aber (wie viele andere Produkttypen) einige besondere und wenigstens in dieser Kombination einmalige Merkmale auf: Sie müssen beim Umgang mit Software beachtet werden.

Eigenschaften von Software Software ist immateriell: Software kann nicht ohne Weiteres betrachtet werden. Kopie und Original sind völlig gleich. Software wird nicht gefertigt, sondern nur entwickelt. Software verschleißt nicht. Software altert in dem Maße, in dem sich ihre Umwelt ändert. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 6 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Eigenschaften von Software Eigenschaften von Software Software ist immateriell: Software kann nicht ohne Weiteres betrachtet werden. Kopie und Original sind völlig gleich. Software wird nicht gefertigt, sondern nur entwickelt. Software verschleißt nicht. Software altert in dem Maße, in dem sich ihre Umwelt ändert. Was wir als natürlich empfinden, ist an materielle Eigenschaften geknüpft. An Software ist nichts natürlich. Erfahrungen aus der natürlichen Welt sind nicht übertragbar (werden dennoch ständig übertragen, siehe z.b. Wartung). Kopie und Original sind völlig gleich. Software wird nicht gefertigt, sondern nur entwickelt. Software verschleißt nicht; die Wartung stellt nicht den alten Zustand wieder her, sondern einen neuen. Wiederverwendung ist bei Software extrem lukrativ, wenn der Aufwand für Anpassungen relativ gering ist. Programmierer unterschätzen meist das Problem (... oder überschätzen sich selbst!)

Eigenschaften von Software Software hat keine natürliche Lokalität. Ihre Werkstoffe sind amorph und universell. Strukturen müssen aktiv geschaffen werden. Ein Programm realisiert keine stetige Funktion. Korrektheit ist durch Test nicht prüfbar. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 7 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Eigenschaften von Software Eigenschaften von Software Software hat keine natürliche Lokalität. Ihre Werkstoffe sind amorph und universell. Strukturen müssen aktiv geschaffen werden. Ein Programm realisiert keine stetige Funktion. Korrektheit ist durch Test nicht prüfbar. Natürliche Lokalität gibt es bei Software nicht. Im Speicher eines Rechners gibt es keine schützende Distanz. Die Werkstoffe der Software sind amorph und universell. Werkstoffe sind die eingesetzten Sprachen, meist nur die natürliche Sprache und die Programmiersprache, evtl. noch andere, z.b. graphische Notationen. Ein Programm realisiert keine stetige Funktion. Der Zusammenhang zwischen Eingabe und Ausgabe lässt sich nicht durch eine kontinuierliche Funktion beschreiben.

Eigenschaften von Software Software-Systeme sind sehr komplex: Entwicklungskosten sind unvermeidlich hoch. Korrekte Konstruktion ist extrem schwierig. Software spiegelt (in vielen Fällen) die Realität wider. This complexity is compounded by the necessity to conform to an external environment that is arbitrary, unadaptable, and everchanging. F.P. Brooks, 1987 Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 8 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Eigenschaften von Software Eigenschaften von Software Software-Systeme sind sehr komplex: Entwicklungskosten sind unvermeidlich hoch. Korrekte Konstruktion ist extrem schwierig. Software spiegelt (in vielen Fällen) die Realität wider. This complexity is compounded by the necessity to conform to an external environment that is arbitrary, unadaptable, and everchanging. F.P. Brooks, 1987 Software-Systeme sind sehr komplex (nach Zahl der relevanten Entscheidungen darin), vergleichbar mit anderen sehr komplexen Systemen. Es ist extrem schwer, sie trotzdem so zu konstruieren, dass sie automatisch und korrekt arbeiten.

Eigenschaften von Software Software gilt als flexibel (d.h. leicht änderbar) 1 : Sie verbindet Hardware und Umgebung. Details der Aufgabenstellung werden in aller Regel durch Software realisiert. Änderungen schlagen sich entsprechend primär in der Software nieder. 1 Software ist nur in dem Maße flexibel, in dem die Flexibilität explizit eingebaut ist. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 9 / 29

2008-10-26 Software-Projekt Softwaretechnik Eigenschaften von Software Eigenschaften von Software Eigenschaften von Software Software gilt als flexibel (d.h. leicht änderbar) 1 : Sie verbindet Hardware und Umgebung. Details der Aufgabenstellung werden in aller Regel durch Software realisiert. Änderungen schlagen sich entsprechend primär in der Software nieder. 1 Software ist nur in dem Maße flexibel, in dem die Flexibilität explizit eingebaut ist. Software ist nur in dem Maße flexibel, in dem die Flexibilität explizit eingebaut ist: Es ist leicht einen Parameter zu verändern, aber nur wenn dieser Parameter in der Software vorhanden ist.

Software-Lebenszyklus Analyse Entwurf Implemen tierung Test Wartung & Evolution Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 10 / 29

Software-Projekt Software-Lebenszyklus 2008-10-26 Softwaretechnik Software-Lebenszyklus Software-Lebenszyklus Analyse Entwurf Implemen tierung Test Wartung & Evolution Wie jeder komplexe Engineering-Prozess, so verläuft auch die Software-Entwicklung in mehreren Phasen. Die Software wird spezifiziert, eine Lösung wird entworfen und implementiert und schließlich getestet. Nach der Auslieferung wird sie gewartet. Das heißt, Fehler werden korrigiert sowie Erweiterungen und Anpassungen vorgenommen. Diese Darstellung suggeriert, dass alle Teilphasen mehr oder minder gleich lang sind. Dies stimmt jedoch nicht.

Aufwand in den Phasen nach McKee (1984) Analyse Entwurf Implemen tierung Test Wartung & Evolution Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 11 / 29

2008-10-26 Software-Projekt Softwaretechnik Software-Lebenszyklus Aufwand in den Phasen nach McKee (1984) Aufwand in den Phasen nach McKee (1984) Analyse Entwurf Implemen tierung Test Wartung & Evolution Hier sehen Sie eine Darstellung des Entwicklungsprozesses, in der die einzelnen Phasen entsprechend ihrer Dauer gezeichnet sind. Empirische Untersuchungen zeigen, dass bis zu 80% der Kosten erst nach der Auslieferung entstehen. Das heißt, in der Wartungs- und Evolutionsphase. Diese Phase unterscheidet sich von den anderen Phasen darin, dass man sich mit einem existierenden System auseinander setzen muss. Diese Verteilung sagt übrigens auch aus, dass unsere Studenten zu 80prozentiger Wahrscheinlichkeit es in ihrem späteren Berufsleben mit der Wartung zu tun haben werden. Nur an wenigen Universitäten werden sie hierauf ausreichend vorbereitet.

Evolutionsphase nach Fjeldstadt und Hamlen (1984) Analyse Entwurf Implemen tierung Test Verstehen Änderung und Test Wartung & Evolution Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 12 / 29

2008-10-26 Software-Projekt Softwaretechnik Software-Lebenszyklus Evolutionsphase nach Fjeldstadt und Hamlen (1984) Evolutionsphase nach Fjeldstadt und Hamlen (1984) Analyse Entwurf Implemen tierung Test Wartung Verstehen Änderung und Test & Evolution Weitere Studien zeigen, dass Wartungsprogrammierer etwa die Hälfte ihrer Zeit allein mit der Analyse der Software verbringen, ehe sie ihre Änderungen vornehmen und testen. Bei der Korrektur von Fehlern liegt der Aufwand eher bei 60%. Dieser hohe Aufwand liegt an der unzureichenden Information, die den Wartungsprogrammierern zur Verfügung steht. Die Programmierer müssen die Informationen mühsam von Hand herleiten, weil ihnen die dazu notwendigen Werkzeuge fehlen. Wer Kosten bei der Software-Entwicklung sparen möchte, muss hier ansetzen.

Lehman und Beladys Gesetze (1985) Gesetz vom fortwährenden Wandel Software löst ein Problem der realen Welt, die reale Welt ändert sich, Software muss sich anpassen, bis sie abgelöst wird. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 13 / 29

2008-10-26 Software-Projekt Softwaretechnik Software-Evolution Lehman und Beladys Gesetze (1985) Lehman und Beladys Gesetze (1985) Gesetz vom fortwährenden Wandel Software löst ein Problem der realen Welt, die reale Welt ändert sich, Software muss sich anpassen, bis sie abgelöst wird. Warum muss Software überhaupt angepasst werden? Die Begründung fällt leicht....

Lehman und Beladys Gesetze (1985) Gesetz der zunehmenden Komplexität die Komplexität der Software erhöht sich beim Wandel, wenn keine Gegenmaßnahmen ergriffen werden Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 14 / 29

2008-10-26 Software-Projekt Softwaretechnik Software-Evolution Lehman und Beladys Gesetze (1985) Lehman und Beladys Gesetze (1985) Gesetz der zunehmenden Komplexität die Komplexität der Software erhöht sich beim Wandel, wenn keine Gegenmaßnahmen ergriffen werden Leider geht mit dem Zwang zur Änderung der Anstieg der Komplexität der Software einher. Hier sehen Sie eine Grafik von Many Lehman, der sich als einer der ersten mit dem Phänomen der Software-Evolution empirisch auseinander gesetzt hat. Sie sehen hier den Umfang eines Systems, gemessen in der Anzahl seiner Module, über die Zeit. Die Messpunkte sind die verschiedenen Releases der Software. Sie bemerken das Wachstum. Aber auch gleichzeitig die Verlangsamung des Wachstums. Die Dauer zwischen Releases nimmt zu. Um diesem Trend entgegen zu wirken, müssen Sie Maßnahmen ergreifen, um die Komplexität einzudämmen.

Software-Evolution Konsequenzen: Änderbarkeit ist eine Schlüsselqualität Änderbarkeit muss frühzeitig angestrebt werden sie lässt sich nicht nachträglich überstülpen wer sie vernachlässigt, nimmt einen Kredit auf, den er teuer abzahlen wird Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 15 / 29

Wo liegen die Probleme in der Softwaretechnik? In den späten 60er Jahren: Manche Software-Projekte sind selbst mit gigantischem Aufwand nicht zu schaffen. In vielen anderen Fällen wird der Abschluss nur mit unbefriedigenden Resultaten, viel zu spät und/oder mit extremen Kostenüberschreitungen erreicht. Andererseits erzielt die Hardware-Entwicklung atemberaubende Fortschritte. The whole trouble comes from the fact that there is so much tinkering with software. It is not made in a clean fabrication process, which it should be. What we need is software engineering. F.L. Bauer, 1968 Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 16 / 29

2008-10-26 Software-Projekt Softwaretechnik Entstehung der Softwaretechnik Wo liegen die Probleme in der Softwaretechnik? Wo liegen die Probleme in der Softwaretechnik? In den späten 60er Jahren: Manche Software-Projekte sind selbst mit gigantischem Aufwand nicht zu schaffen. In vielen anderen Fällen wird der Abschluss nur mit unbefriedigenden Resultaten, viel zu spät und/oder mit extremen Kostenüberschreitungen erreicht. Andererseits erzielt die Hardware-Entwicklung atemberaubende Fortschritte. The whole trouble comes from the fact that there is so much tinkering with software. It is not made in a clean fabrication process, which it should be. What we need is software engineering. F.L. Bauer, 1968 Kurz: Es ist nicht alles machbar, was prinzipiell möglich sein müsste. Für diese Probleme kam das Schlagwort Software Crisis in Mode. Die Software-Krise war Anlass für viele Diskussionen und Tagungen. Auf der NATO-Konferenz in Garmisch (1968) prägte F.L. Bauer das Wort Software Engineering als Provokation (siehe dazu Bauer, 1993).

Wie viel hat sich bis heute daran geändert? Beispiel Fehler: vollständiger Batterieausfall in Fahrzeugen eines deutschen Automobil-Herstellers Ursache: Fehler in der software-gesteuerten Innenbeleuchtung Folge: Rückrufaktion mit einem (geschätzten) Schaden von mehreren Millionen DEM Partsch (1998) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 17 / 29

Wie viel hat sich bis heute daran geändert? Beispiel Fehler: Bei der rechnergestützten Auswertung der OB-Wahl in Neu-Ulm 1994 wurde zunächst eine Wahlbeteiligung von 104% festgestellt. Ursache: In der Auswertungssoftware hatte sich ein mysteriöser Faktor 2 eingeschlichen. Folge: Neuauszählung Partsch (1998) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 18 / 29

Wie viel hat sich bis heute daran geändert? Beispiel Fehler: USS Yorktown treibt während eines Manövers im September 1997 manövrierunfähig bei Cape Charles, VA. Ursache: Fehler in einer Routine zum Abfangen einer Division durch Null in einer Windows NT Applikation. Die Null wurde als manuelle Eingabe einer enormen Datenmenge interpretiert. Folge: Atlantic Fleet officials said the ship was dead in water for about 2 hours and 45 minutes. Neumann (1999) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 19 / 29

Produktgarantie? Disclaimer of Warranty: This car is provided under this license on an as is basis, without warranty of any kind, either expressed or implied, including, without limitation, warranties that the car is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the car is with you. Should any car prove defective in any respect, you (not the initial developer or any other contributor) assume the cost of any necessary servicing, repair or correction. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 20 / 29

Garantien über Software? Disclaimer of Warranty: This software is provided under this license on an as is basis, without warranty of any kind, either expressed or implied, including, without limitation, warranties that the software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the software is with you. Should any software prove defective in any respect, you (not the initial developer or any other contributor) assume the cost of any necessary servicing, repair or correction. Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 21 / 29

2008-10-26 Software-Projekt Softwaretechnik Entstehung der Softwaretechnik Garantien über Software? Garantien über Software? Disclaimer of Warranty: This software is provided under this license on an as is basis, without warranty of any kind, either expressed or implied, including, without limitation, warranties that the software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the software is with you. Should any software prove defective in any respect, you (not the initial developer or any other contributor) assume the cost of any necessary servicing, repair or correction. An solche Disclaimer haben wir uns schon lange gewöhnt. Stellen Sie sich vor, sie lesen einen solchen in der Betriebsanleitung Ihres Autos. Sie würden das Auto sofort zurückgeben. Übrigens: Solche Disclaimer sind nach deutschem Recht hinfällig. Stellen Sie jemandem auf dem Netz ein Programm zur Verfügung, sind Sie automatisch in der Haftung. Grobe Fahrlässigkeit und Vorsatz lassen sich in Deutschland nicht ausschließen. Spezifizieren Sie nicht den Zweck Ihres Programms, so wird zu Grunde gelegt, was man üblicherweise von einem Programm dieser Art erwartet.

Ingenieursdisziplin (Shaw und Garlan 1996) Geübte Arbeiter etabliertes Vorgehen pragmatische Verfeinerungen Ausbildung in der Ausführung ökonomische Betrachtung der Materialien Herstellung für den Verkauf Produktion Wissenschaft Handwerk Ingenieursdisziplin Kunst Talentierte Amateure intuitiv und ad hoc wahlloser Fortschritt gelegentliche Übermittlung verschwenderische Verwendung verfügbaren Materials Herstellung für die Verwendung, weniger für den Verkauf Ausgebildete Personen Analyse und Theorie Fortschritt basiert auf Wissenschaft Einführung neuer Anwendungen durch Analyse Marktsegmentierung durch Produktvielfalt Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 22 / 29

Definition Softwaretechnik: Entdeckung und Anwendung solider Ingenieur-Prinzipien mit dem Ziel, auf wirtschaftliche Art Software zu bekommen, die zuverlässig ist und auf realen Rechnern läuft. F.L. Bauer Herstellung und Anwendung einer Software, wobei mehrere Personen beteiligt sind oder mehrere Versionen entstehen. D.L. Parnas (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). IEEE Std 610.12-1990 (1990) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 23 / 29

Definition 2008-10-26 Software-Projekt Softwaretechnik Merkmale der Softwaretechnik Softwaretechnik: Entdeckung und Anwendung solider Ingenieur-Prinzipien mit dem Ziel, auf wirtschaftliche Art Software zu bekommen, die zuverlässig ist und auf realen Rechnern läuft. F.L. Bauer Herstellung und Anwendung einer Software, wobei mehrere Personen beteiligt sind oder mehrere Versionen entstehen. D.L. Parnas (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). IEEE Std 610.12-1990 (1990) Software Engineering wurde oft definiert. Drei wichtige Definitionen sind hier angegeben. Die IEEE-Definition ist problematisch, wenn nicht falsch, weil sie wertet und fordert, also ein Ideal beschreibt, und einen anderen undefinierten Begriff zu Grunde legt.

Abschrift aus dem Vorwort zum Vorlesungsskript Werkstoffe der Elektrotechnik (Prof. Fischer, Uni-Dortmund, 1977) Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 25 / 29

Merkmale der alten Ingenieurdisziplinen Kostendenken als Grundlage von Bewertungen praktischer Erfolg als einziger zulässiger Beweis Qualitätsbewusstsein als Denkprinzip Einführung und Beachtung von Normen (Schnittstellen, Verfahren, Begriffe) Denken in Baugruppen Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 26 / 29

2008-10-26 Software-Projekt Softwaretechnik Merkmale der Softwaretechnik Merkmale der alten Ingenieurdisziplinen Merkmale der alten Ingenieurdisziplinen Kostendenken als Grundlage von Bewertungen praktischer Erfolg als einziger zulässiger Beweis Qualitätsbewusstsein als Denkprinzip Einführung und Beachtung von Normen (Schnittstellen, Verfahren, Begriffe) Denken in Baugruppen Definition und Anwendung von Methoden, Bereitstellung und Verwendung von Werkzeugen sind allgemein bewährte Ansätze, also nicht typisch für Ingenieure. Ingenieur-spezifisch sind dagegen: Kostendenken als Grundlage von Bewertungen (Achtung, es geht hier um die Gesamtkosten, nicht nur um Geld!) praktischer Erfolg als einziger zulässiger Beweis: nur was gezählt oder gemessen wurde, ist ein akzeptables Argument; Qualitätsbewusstsein: hohe Qualität ist ein Prinzip der unspezifischen Kostensenkung; kommt aus der handwerklichen Tradition, die die Ingenieure übernommen haben; Normen (vgl. Norm für Passstifte); Merke: Eine Norm wird immer beachtet! Baugruppen: Durch Normen entsteht die Möglichkeit, Baugruppen zu verwenden, also die Lösung der Teilprobleme auszuklammern.

Wiederholungsfragen Was sind die besonderen Eigenschaften von Software? Was folgt aus diesen Eigenschaften für die Softwareentwicklung? Aus welchen Phasen besteht der Software-Lebenszyklus? Was ist die Besonderheit der Wartungsphase und was folgt daraus für die Softwareentwicklung? Warum muss Software überhaupt angepasst werden? Welche Folgen können diese Änderungen haben? Welche Einsichten führten zur Entstehung der Softwaretechnik? Mit welchen Problemen ist die Softwaretechnik nach wie vor konfrontiert? Was ist Softwaretechnik? Welche Ziele verfolgt sie? Was sind die Kennzeichen einer Ingenieursdisziplin und wie entsteht sie? Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 27 / 29

Fjeldstadt und Hamlen 1984 Fjeldstadt ; Hamlen: Application Program Maintenance Study: Report to Our Respondents. In: Proc. GUIDE 48, IEEE Computer Society Press, April 1984 IEEE Std 610.12-1990 1990 : IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard 610.12-1990. 1990 Lehman und Belady 1985 Lehman, M. ; Belady, L.: Program Evolution: Processes of Software Change. London : Academic Press, 1985 McKee 1984 McKee, J.R.: Maintenance as a Function of Design. In: AFIPS National Computer Conference, Las Vegas (Ch. 27), 1984 Neumann 1999 Neumann, Peter G.: Risks to the Public in Computers and Related Systems. In: ACM SIGSOFT Software Engineering Notes 24 (1999), Nr. 1, S. 31 Partsch 1998 Partsch, H.: Requirements-Engineering systematisch - Modellierung für softwaregestützte Systeme. Berlin, Heidelberg, New York : Springer-Verlag, 1998 Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 28 / 29

Shaw und Garlan 1996 Shaw, Mary ; Garlan, David: Software Architecture Perspectives on an Emerging Discipline. Upper Saddle River, NJ : Prentice Hall, 1996. ISBN ISBN 0-13-182957-2 Rainer Koschke (Uni Bremen) Software-Projekt Wintersemester 2008/09 29 / 29