Softwaretechnik
Lesson 1
Wer ist der Typ?
- Jens Schauder
- Mitarbeiter bei der T-Systems on site services GmbH
- Diplom Physiker
- JUG Ostfalen Coorganisator
- Coach
- Speaker
- Autor (Artikel, Blog)
- Autor (Degraph)
- Software Entwickler
Software Entwickler
-
Java
-
Oracle
-
Schwerpunkt Softwarequalität
Software Qualität
- Requirementsengineering
- Specification
- Testing
- Development (Testen kommt vor Development)
- Clean Code
- Documentation
- Deployment
- Operations
- Softskills
Projektmanagement
versuche ich zu vermeiden
Und was passiert hier jetzt?
Praxis Relevant
- Erfahrungen aus täglicher Arbeit
- Was ich daraus gelernt habe
- Gemischt mit Wissen und Grundlagen aus Büchern
- Lernen ist mir wichtig
- Daher Fragen gerne jeder Zeit:
@jensschauder
jens@schauderhaft.de
persönlich
Unikat
- Es ist mein erstes Mal
- Wird (erstmal) nicht wiederholt
- Wenn Sie wiederholen, wird die Vorlesung sehr anders aussehen
- Kein fertiges Script
- Alles auf Github
- Ich akzeptiere Pull Requests
Wer sind Sie?
-
Können Sie ...
- Java
- Testen
- TDD
- Was wollen Sie aus der Vorlesung mitnehmen?
- Was wollen Sie nach dem Studium machen?
- Was tun Sie für dieses Ziel?
- Sind Sie on Track?
Vorraussetzungen
- Grundlagen in Java
- Grundlagen in Objekt Orientierter Programmierung
- Englisch (Leseverständnis, Hörverständnis)
- Fähigkeit und Wille zum Lernen
- Fragen stellen
- Wann
- Wem
- Wie
- Stackoverflow und Google
- Wenigstens ein Notebook für je zwei Studenten
- Java-IDE
- JUnit
- Coverage Plugin
- Git
Warum Softwaretechnik?
(engl. software engineering)
1972
[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. Edsger Dijkstra: The Humble Programmer
Softwareentwicklung
skaliert nicht!
Das Problem besteht noch
TR-440
vs
Smartphone
vs
Tianhe-2
Flächenvergleich
x: Rechenkerne * Takt
y: Hauptspeicher
Wie groß sind die Flächen wenn der TR-440 1mm2 entspricht?
TR-440
106
KerneHz x 105
B
=> 1mm2
Ein dicker Punkt
Smartphone
109
KerneHz x 109
B
=> 1m x 10m
Die Fläche der Tafel
Tianhe-2
1015
KerneHz x 1015
B
=> 1000km x 1000km
1.8 x die Fläche von Frankreich
Quellen
Lösungsansätze
- Programmiersprachen
- Arbeitsweisen
- TDD
- RAD
- Code Generierung
- Tools
- Versionsverwaltung
- UML-Editoren
- IDEs
- Analyse Tools
- Prozesse
- Projektmanagement
- Wasserfall
- Agile
und Softskills
leider oft vernachlässigt
Es gibt keine Silver Bullets
Aber wir sind offensichtlich in den letzten 4 Jahrzehnten besser geworden.
Softwareengineering
- Ingenieurswissenschaften sind Vorbild
- Angewandte Wissenschaften
- Entwickelt aus der Militärtechnik
Exkurs: Modelle
Ein Modell ist ein beschränktes Abbild der Wirklichkeit. Dies kann gegenständlich oder theoretisch geschehen. Nach Herbert Stachowiak ist es durch mindestens drei Merkmale gekennzeichnet
-
Abbildung
-
Verkürzung
-
Pragmatismus
Vorsicht Modell
Wann immer man einem Modell begegnet gilt es zu identifizieren:
-
Das ein Modell vorliegt
-
welche Annahmen/Vereinfachungen es vornimmt
-
welche Aussagen aus dem Modell abgeleitet werden
Modellbildung
- Abgrenzung: Nichtberücksichtigung irrelevanter Objekte
- Reduktion: Weglassen von Objektdetails
- Dekomposition: Zerlegung, Auflösung in einzelne Segmente
- Aggregation: Vereinigung von Segmenten zu einem Ganzen
- Abstraktion: Begriffs- bzw. Klassenbildung
Beispiel
Rechnergrößen als Flächen
Aggregation
Tianehe 2 enthält viele unterschiedliche Prozessoren. Ich habe die einfach zusammengefasst.
Reduktion
Permanentspeicher habe ich vollständig ignoriert, ebenso FLOPS
Dekomposition
Beispiel: Materialwissenschaften unterscheiden oft zwischen, dem innern eines Materials und der Oberfläche.
Aggregation
Im Beispiel nicht angewandt.
Anderes Beispiel: Statistische Mechanik, leitet aus vielen Atomen/Molekülen aussagen über Volumina ab.
Abstraktion
Aus einer Unzahl möglicher Smartphones habe ich eins herausgegriffen und stellvertretend genutzt.
Modell der Softwaretechnik
Softwareentwicklung ist vergleichbar mit dem Bau von Brücken oder Häusern
Dieses Modell liefert in vielen Fällen:
Bullshit
Probleme des Ingenieurs Modells
- Softwareentwicklung ist komplex nicht nur kompliziert
- Design+Programmierung ≠ Entwurf+Umsetzung
- Ignoriert die Menschen
Spektrum von "Wissenschaften"
Esotherik
- Nachweislich Blödsinn
- Homöopathie
- Aberglauben
- "Impfungen verursachen Autismus"
- Verschwörungstheorien
- Treffen Aussagen die wiederlegbar
sind und widerlegt wurden
Witzig bis gefährlich
Religionen
- Treffen prinzipiell nicht widerlegbare Aussagen
- Keinerlei belastbare Aussagen
Schwierige Wissenschaften
- Beschäftigen sich mit extrem komplexen Systemen
- Versuchen überprüfbare Aussagen zu treffen
- Dies ist aber oft nur schwer möglich
- zu teuer
- moralisch nicht vertretbar
- einfach nicht praktikabel
- Soziologie, Medizin, Software Technik
- Beispiel: Es gibt Operationen die jahre lang gängige Praxis waren die nicht stärker gewirkt haben als eine Placebo OP
Es ist oft nicht klar unter welchen Bedingungen Erkenntnisse gelten.
Mittelschwer
- Typische Ingenieurswissenschaften
- Sehr praxisrelevant
- Modelle beschäftigen sich mit Effekten, weniger mit Gründen
Verlässliche Aussagen mit definierten Toleranzen
Einfach
- Mathematik, Physik, Informatik
- Präzise Exakte Ergebnisse
- Bedingungen unrealistisch oder vollständig theoretisch
So einfach, das können sogar Computer
Präzision ist
Moderne Atomuhren haben eine Genauigkeit von 10-19
Wassertank mit 21km Kantenlänge
+/- 1 Teelöffel
0,2 Sekunden seit dem Aussterben der Dinsaurier
Präzision in der Softwaretechnik
Aufwandsschätzung: Größenordnung
Ressourcenverbrauch: Größenordnung
Keine Kritik, nur Einordnung
Entsprechendes gilt auch für diese Vorlesung:
betrachten Sie kritisch, was ich Ihnen erzähle
Organisatorisches
Ab dem nächsten Mal
Rechner mit IDE und JUnit
Termine
Es fallen aus
7. Oktober
14. Oktober
JUG Ostfalen
Entwicklung von eigenen Views in Android
Donnerstag 26. September
19:00
ckc Gmbh
Am alten Bahnhof 13
38122 Braunschweig
Softwaretechnik lesson1
By Jens Schauder
Softwaretechnik lesson1
- 2,475