40
Software Engineering © Ludewig, J., H. Lichter: Software Engineering Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2 Grundbegriffe 2.1 Kosten 2.1 Engineering und Ingenieur 2.3 Software 2.4 Arbeiten, die an Software ausgeführt werden 2.5 Weitere Grundbegriffe

Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Embed Size (px)

Citation preview

Page 1: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Software Engineering

© Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010.

2 Grundbegriffe

2.1 Kosten

2.1 Engineering und Ingenieur

2.3 Software

2.4 Arbeiten, die an Software ausgeführt werden

2.5 Weitere Grundbegriffe

Page 2: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Begriffe im Software Engineering

Im privaten Leben sind die meisten Aussagen vage, mehrdeutig, nicht völlig verständlich und ganz unvollständig, weil sie einen bestimmten Kontext voraussetzen. Das hat Nachteile, aber auch viele Vorteile.

In Technik und Wissenschaft versuchen wir, möglichst präzise, eindeutige, verständliche und vollständige Aussagen zu machen. (Natürlich ist das ein Ideal, das wir niemals erreichen.)

Wir beginnen darum mit einigen für das Thema wichtigen Begriffen.

Die meisten dieser Begriffe sind aus dem Alltag übernommen; sie haben dann meist im Software Engineering nicht die genau gleiche Bedeutung wie im Alltag. (Sonst wären sie ja wieder vage usw.)

2

Page 3: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

2.1 Kosten

Page 4: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Kosten - 1

Wenn wir ein Problem lösen wollen, haben wir meist mehrere Möglichkeiten (einschließlich der Möglichkeit, das Problem nicht zu lösen).

Wir suchen dann die unter den konkreten Bedingungen beste Lösung.

Da sich die Lösungen in der Regel auf viele Weisen unterscheiden, ist es nur selten möglich zu sagen, welche Lösung am besten ist.

4

Page 5: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Kosten - 2

Um einen rationalen Vergleich durchzuführen, brauchen wir einen einheitlichen Maßstab. In der Technik sind das meist die Kosten.

Kosten sind nicht nur Zahlungen, die zu leisten sind. Dazu zählen auch alle anderen Nachteile, die eine Lösung hat.

Hat eine Lösung einen speziellen Vorteil, dann können wir diesen in Form von negativen Kosten in die Betrachtung einbeziehen.

5

Page 6: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Beispiel

Sie wollen eine bestimmte Vorlesung besuchen. Sie haben verschiedene Möglichkeiten, zur Vorlesung zu kommen (zu Fuß, per Rad, mit dem Auto, mit der S-Bahn).

Die Fahrt mit der S-Bahn erzeugt Kosten durch den Fahrschein. Weitere Kosten entstehen durch Risiken und Unbequemlichkeiten.

Bei der Fahrt mit dem Auto entstehen Kosten durch den Spritverbrauch, die Abnutzung und ebenso durch Risiken und andere Nachteile.

Sie können auch beschließen, im Bett zu bleiben und auf die Vorlesung zu verzichten. In diesem Falle sind die Kosten durch den entgangenen Wissensgewinn entstanden, vielleicht auch durch entgangene soziale Kontakte.

6

Page 7: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Quantifizierung und Abgrenzung - 1

Die genannten Kosten sind überwiegend nicht quantifiziert. Wir könnten sie aber prinzipiell quantifizieren und dann vergleichen.

Ein (grundsätzlich nicht lösbares) Problem ist die Abgrenzung: Welche Kosten beziehen wir ein?

Eine Fahrt mit dem Auto erzeugt auch Kosten für andere Menschen, durch den Verbrauch fossiler Brennstoffe auch für Menschen, die wir nicht kennen, die sogar weit weg sein können oder erst später geboren werden. Sind das Kosten im Sinne unserer Optimierung, also Kosten, die wir zu vermeiden suchen?

Einige dieser Kosten sind durch Vorschriften und Gesetze erfasst; im Übrigen ist das eine ethische Frage, die jeder Mensch selbst erwägen und beantworten muss.

7

Page 8: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Quantifizierung und Abgrenzung - 2

Und haben Kosten, die später anfallen, das gleiche Gewicht wie Kosten, die wir sofort spüren?

Hier entscheidet der Bauch oft anders, als es der Verstand täte.

In jedem Fall gilt (für uns wie für alle Ingenieure): Wir suchen Lösungen, die die Kosten minimieren. Solche Lösungen erzeugen oft zunächst scheinbar höhere Kosten; ihre Vorteile werden erst mittel- und langfristig sichtbar.

8

Page 9: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

2.2 Engineering und Ingenieur

Page 10: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Engineering und Ingenieur

Etymologie:

● Ingenieur = Baufachmann für Festungen (d.h. Bauingenieur mit dem Spezialgebiet Festungen), dann allgemein für militärische Einrichtungen und Maschinen.

18. – 19. Jh.: Wandlung in die heute übliche Bedeutung: → Bild des Ingenieurs, der alle Probleme löst und kraft seines Verstandes Dinge vollbringt, die wie Zauberei erscheinen.

Max Eyth (1836–1906) („Hinter Pflug und Schraubstock“) hat das Bild des Ingenieurs in Deutschland wesentlich geprägt.

(Tipp: Buch in einer Bibliothek suchen und reinlesen!)

10

Page 11: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Merkmale, Prinzipien - 1Rationalität, Anwendung der Wissenschaft als Grundprinzip

● Der Ingenieur ist ein Feind des Aberglaubens, ein Verehrer der Zahlen und Formeln, also ein Kind der Aufklärung, das alles mechanistisch zu erklären sucht und ablehnt, was (ihm) nicht erklärbar ist.

11

Page 12: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Merkmale, Prinzipien - 2Problemlösen als eigentliche Aufgabe

● Die Rationalität verbindet den Ingenieur mit jedem Naturwissenschaftler, aber dieses Merkmal unterscheidet die beiden Gruppen deutlich.

● Der Naturwissenschaftler will Probleme formulieren, vermeiden, ihre Ursachen erkennen und bekämpfen, kurz: die Welt verstehen und erklären.

● Der Ingenieur will Probleme lösen, indem er die Welt technisch verändert, also baut, Distanzen überbrückt, Energie verfügbar macht, oder die größtmögliche Zerstörung anrichtet.

12

Scientists build to learn, engineers learn to buildFred Brooks (1977)

Page 13: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Merkmale, Prinzipien - 3

Das folgende Gedicht verherrlicht den Ingenieur:

Welchen tieferen Sinn haben diese Handlungen?

Anscheinend keinen! Die Sinnfrage wird nicht gestellt, Problemlösen ist Selbstzweck!

13

Dem Ingenieur ist nichts zu schwere –Er lacht und spricht: Wenn dieses nicht, so geht doch das!Er überbrückt die Flüsse und die Meere,Die Berge unverfroren zu durchbohren ist ihm Spaß.Er türmt die Bogen in die Luft,Er wühlt als Maulwurf in der Gruft,Kein Hindernis ist ihm zu groß –Er geht drauf los!

Heinrich Seidel (1842–1906)

Page 14: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Merkmale, Prinzipien - 4

Kostenbewusstsein statt Perfektionismus

● Eine Lösung ist gut, wenn ihr Nutzen hoch ist, ihre Kosten gering sind. Daher ist ein guter Ingenieur kein Perfektionist: Eine perfekte Lösung hat nur selten ein günstiges Preis/Leistungsverhältnis.

Universeller Anspruch, der nicht vor Fachgrenzen Halt macht

● Ein Ingenieur kapituliert nicht, wenn das Problem die Grenzen seines Fachs überschreitet. Er ist in diesem Sinne Generalist.

14

Page 15: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Was können wir lernen? - 1

Ingenieure entwickeln Methoden und wenden sie an, realisieren und gebrauchen Werkzeuge. Aber das tun andere auch. Dagegen sind die folgenden Punkte für Ingenieure charakteristisch:

Kosten als Grundlage von Bewertungen (siehe oben)

● “Ich finde, dass ...” ist lächerlich, objektive Kriterien sind relevant, insbesondere Kosten.

Praktischer Erfolg als einziger zulässiger Beweis

● Plausible Argumente haben nur vorläufigen Nutzen, Erfolg zählt, erfordert Messungen. Nur was gezählt oder gemessen wurde, ist ein akzeptables Argument.

15

Page 16: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Was können wir lernen? - 2

Qualitätsbewusstsein als Denkprinzip

● Hohe Qualität ist ein Prinzip der unspezifischen Kostensenkung. Dieser Ansatz kommt aus der handwerklichen Tradition, die die Ingenieure übernommen haben.

Die Einführung und Beachtung von Normen

● Normen schaffen passende Schnittstellen (vgl. Norm für Passstifte).

● Normen gibt es auch für Verfahren und Begriffe.

● Merke: Eine Norm wird immer beachtet!

Denken in Baugruppen

● Durch Normen entsteht die Möglichkeit, Baugruppen zu verwenden, also die Lösung der Teilprobleme auszuklammern.

16

Page 17: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

2.3 Software

Page 18: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Software

Tipp: Schauen Sie mal in die IEEE Software Engineering Standards!

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.

18

software - Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.

See also: application software; support software; system software.

Contrast with: hardware.IEEE Std 610.12-1990

Page 19: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Ein Produkt wie jedes andere?

Generell kann und sollte Software als technisches Produkt betrachtet werden, das wie jedes andere Produkt 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 sollten beim Umgang mit Software beachtet werden.

19

Page 20: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Eigenschaften der Software - 1

Software ist immateriell.

● 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 auf die Software übertragbar (werden dennoch ständig übertragen) Analogie: Röntgenstrahlen

● Software wird nicht gefertigt, sondern nur entwickelt.

● Kopie und Original sind völlig gleich, nicht unterscheidbar.

● Software verschleißt nicht; die „Wartung“ stellt nicht den alten Zustand wieder her, sondern einen neuen. Fehler entstehen nicht durch Abnutzung, sondern sind eingebaut.

● 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!)

20

Page 21: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Eigenschaften der Software - 2

Natürliche Lokalität gibt es bei Software nicht.

● Im Speicher des Rechners gibt es keine schützende Distanz, und alle Rechner der Welt stehen nebenan.

● Die Softwaretechnik muss Distanz herstellen.

Software-Systeme sind sehr komplex.

● Nach der Zahl der darin enthaltenen (relevanten) Elementarentscheidungen sind sie komplexer als alle anderen Artefakte.

● Die Entwicklungskosten sind unvermeidlich hoch.

21

Page 22: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Eigenschaften der Software - 3

Ein Programm realisiert keine stetige Funktion.

● Der Zusammenhang zwischen Eingabe und Ausgabe lässt sich nicht durch eine kontinuierliche Funktion beschreiben.

● Die Funktionalität ist nicht durch Test validierbar.

22

Page 23: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Fehler in einem mechanischen System

Eine Stahlfeder, ideal und mit kleinem Fehler

23

Page 24: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Fehler in einem digitalen System

Eine virtuelle (digitale) Stahlfeder, mit kleinem Fehler

24

Page 25: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Excel-Fehler 2007

25

Page 26: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Eigenschaften der Software - 4

Software-Systeme müssen autonom funktionieren.

● Die meisten komplexen Artefakte funktionieren nur, wenn und solange Menschen immer wieder eingreifen und Mängel, Defekte und Widersprüche beseitigen oder kompensieren.

● Software benötigt dagegen nur sehr selten Wartungseingriffe. Zwischen „Systemabstürzen“ liegen typisch Milliarden korrekt ausgeführter Operationen. Die Software funktioniert also über weite Strecken autonom.

● Auch außergewöhnliche Situationen, die nur im Abstand von Milliarden Operationen auftreten, müssen als Normalfälle behandelt werden.

26

Page 27: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Eigenschaften der Software - 5

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.

● Strukturen entstehen nicht, sie müssen geschaffen werden.

Software spiegelt – in vielen (in allen?) Fällen – die Realität.

● Sie verbindet Hardware und Umgebung. Die Details der Aufgabenstellung werden in aller Regel durch Software realisiert; Änderungen schlagen sich primär in der Software nieder.

27

... This complexity is compounded by the necessity to conform to an external environment that is arbitrary, unadaptable,

and ever-changing. F.P. Brooks Jr., 1987

Page 28: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

2.4 Arbeiten, die an Software ausgeführt werden

Page 29: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Übersicht der Arbeiten - 1

Analyse

Ziel der Analyse ist, das bestehende Problem zu durchdringen und zu verstehen. Dabei wird auch geklärt, inwieweit Software eingesetzt werden kann, um das Problem zu lösen, und welche Aufgaben von der zu entwickelnden Software übernommen werden sollen.

Spezifikation der Anforderungen

Die in der Analyse festgestellten Anforderungen müssen geordnet, dokumentiert, geprüft, ergänzt und korrigiert werden. Die meisten folgenden Arbeiten stützen sich auf die Spezifikation!

29

Page 30: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Übersicht der Arbeiten - 2

Architekturentwurf, Spezifikation der Module

Software-Systeme bestehen aus Modulen oder Komponenten, die miteinander die Gesamtfunktionalität des Systems bieten. Gesamtstruktur = Software-Architektur.

Die Schnittstellen der Komponenten werden so präzise wie möglich festgelegt, damit die Komponenten parallel entwickelt und am Ende problemlos integriert werden können.

Codierung und Modultest

Die Module werden in der gewählten Programmiersprache codiert und auf der Basis ihrer Spezifikation getestet und korrigiert.

30

Page 31: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Übersicht der Arbeiten - 3

Integration, Test, Abnahme

Das System wird aus den fertig gestellten Modulen zusammengebaut (integriert) und getestet. Schließlich Abnahme durch den Kunden.

Betrieb und Wartung

Das Software-System wird beim Auftraggeber installiert und in Betrieb genommen.

Während der Nutzung des Systems fallen Fehler auf und werden behoben, und fast immer werden auch neue Anforderungen an das System gestellt und umgesetzt.

31

Page 32: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Übersicht der Arbeiten - 4

Auslauf und Ersetzung

Jedes Software-System erreicht irgendwann einen Zustand, in dem die weitere Wartung unvertretbar aufwändig und schwierig ist. Dann wird es aus dem Betrieb genommen und in der Regel durch ein Nachfolgesystem ersetzt.

32

Page 33: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Tätigkeiten während der Entwicklungszeit ● Dazu gehören die Leitungsfunktionen, also Planung und

Management, ebenso die Qualitätssicherung, die dafür sorgt, dass die Qualität geprüft und durch verschiedene Maßnahmen verbessert wird.

● Die Dokumentation erscheint hier nicht, weil sie Bestandteil aller Tätigkeiten ist.

33

Page 34: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

2.5 Weitere Grundbegriffe

Page 35: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Taxonomie

Dieser Begriff kommt aus der Biologie.

Beispiele:

● Lehrveranstaltungen klassifiziert als Vorlesungen, Übungen, Praktika usw.; Vorlesungen sind weiter klassifiziert in Grund- und Spezialvorlesungen usw.

● Software-Projekte klassifiziert als Kundenprojekte, Systemprojekte, Entwicklungsprojekte.

Achtung: Jede Klassifikation ist willkürlich, also nicht objektiv richtig!

35

taxonomy — A scheme that partitions a body of knowledge and defines the relationships among the pieces. It is used for classifying and understanding the body of knowledge.

IEEE Std 610.12-1990

Page 36: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Begriffe im Software Engineering

Im Software Engineering gibt es viele unklare Begriffe!

Darum:

● Ordnung in die Wörter bringen und ihre Beziehungen klären. Wenn möglich, wird hier der Begriffsstandard des IEEE zu Grunde gelegt. Oft ist es aber notwendig, neue Definitionen vorzuschlagen.

Vorteilhaft:

● baumartige Begriffszerlegung, d. h. rekursive Zerlegung der durch einen Begriff bezeichneten Menge in disjunkte Klassen (Unterbegriffe).

36

Page 37: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Methoden, Sprachen, Werkzeuge - 1

Diese drei Wörter werden im Software Engineering oft verwendet – leider oft ohne klare Definitionen.

Werkzeuge dienen zur Ausführung einer Arbeit, die – wenigstens prinzipiell – auch ohne das Werkzeug geleistet werden könnte.

Im Produkt ist das Werkzeug nicht mehr enthalten, es sei denn als Ausrüstung für die Wartung.

Im Software Engineering dienen Werkzeuge zur automatischen oder vom Benutzer gesteuerten Transformation, evtl. auch Speicherung, von Information.

37

Page 38: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Methoden, Sprachen, Werkzeuge - 2

Werkstoffe sind von den Werkzeugen deutlich unterschieden weil aus ihnen das Produkt geformt wird; Werkstoffe bleiben im Produkt. Wir benutzen als Werkstoffe unserer Produkte Sprachen, sowohl „natürliche“ als auch formale. Eine Sprache (eine Notation) legt die möglichen Aussagen fest (Syntax) und deren Bedeutungen (Semantik).

Methoden sind Handlungsanweisungen, also Regeln, die den Menschen bei der Wahl seiner Aktionen führen.

Für einen bestimmten Werkstoff (Holz) gibt es bestimmte Werkzeuge (Hobel, Säge, Raspel), die mit bestimmten Methoden (Hobeln, Sägen, Raspeln) eingesetzt werden. Alle drei sind durch ein gemeinsames Konzept (spanabnehmende Bearbeitung) verbunden.

So ist es auch in der Informatik. (Beispiel: Iteration)

38

Page 39: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Methoden, Sprachen, Werkzeuge - 3

Das Systemdreieck: Methoden, Sprachen und Werkzeuge sind im Idealfall durch gemeinsame Konzepte verbunden.

39

Page 40: Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 2Grundbegriffe

Effektiv und effizient

Eine Lösung, die die geforderte Funktionalität aufweist, also im üblichen Sinne korrekt ist, ist effektiv. Wir verwenden das Wort allgemeiner auch bei Werkzeugen und Verfahren; ein effektives Werkzeug erfüllt seinen Zweck, ein effektives Verfahren führt zum Ziel.

Eine Lösung, die von den Betriebsmitteln sparsamen Gebrauch macht, also mit wenig Rechenzeit und wenig Speicher auskommt, ist effizient. Das bedeutet:

● Effektivität ist eine Eigenschaft, die gegeben ist oder nicht, man kann sie nicht steigern.

● Effizienz ist dagegen in unterschiedlichem Maße vorhanden: Ein Programm kann effizienter sein als ein anderes. Es ist aber nur bei effektiven Programmen sinnvoll, über Effizienz zu reden.

40