Software Factories - WS 2018/19 - Fakultät Informatik/Mathematik
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Überblick ● Master-Studiengang „Angewandte Informatik“ ● Wintersemester 2018/19 ● 2 SWS Vorlesung + 2 SWS Praktikum ● Prüfungsvorleistung: Belegarbeit – Ausgabe im November – Abgabe im Januar ● Prüfung: Klausur (90 min, mit Unterlagen) ● Kontakt: Prof. Dr. Dirk Müller – Fakultät Informatik/Mathematik, Büro: Z 466 – Sprechstunde: mittwochs 14.00 Uhr bis 15.00 Uhr – Tel.: 0351-462-2248 – muellerd@... – www.informatik.htw-dresden.de/~muellerd Dirk Müller: Software Factories WS 2018/19 2/17
Organisatorisches ● Vorlesung – Modul I-755 Software Factories – Gruppen: 18/046/71 + 72 (alle) – Fr 11.10 Uhr – 12.40 Uhr – 15 Sitzungen ● Praktikum – zusammen mit Herrn J. Roeper – Raum S 131 – zuerst wöchentliches Aufgabenblatt – später betreutes Arbeiten am Beleg – Gruppen: 18/046/71 + 72 (alle) – Di 9.20 Uhr – 10.50 Uhr Dirk Müller: Software Factories WS 2018/19 3/17
Literatur ● T. Stahl, M. Völter, S. Efftinge, A. Haase: [StaV07] „Modellgetriebene Softwareentwicklung – Techniken, Engineering, Management“, dpunkt.verlag, 2. Aufl. 2007 ● E. Clayberg, D. Rubel: „Eclipse Plug-ins“, Addison-Wesley, 3. Aufl. 2009 [ClR2009] ● C. Rupp, S. Queins, B. Zengler: „UML 2 glasklar, Praxiswissen für die UML-Modellierung“, Carl Hanser Verlag, 4. Aufl., 2012 [RupQ12] ● Ian Sommerville: „Software Engineering 9“, Addison-Wesley, 2010 auch: neue Auflage SE 10 von 2016 [Som10] ● W. Pree: „Komponentenbasierte Softwareentwicklung mit Frameworks“, dpunkt.verlag, 1997 [Pre1997] Dirk Müller: Software Factories WS 2018/19 4/17
Übersicht zur Vorlesung ● Grundlagen der Softwaretechnik – Softwareentwicklungsprozesse – Modellgetriebene Softwareentwicklung ● Werkzeugentwicklung mit Eclipse – Plug-ins – Rich Client Applications ● Werkzeuge zur Unterstützung der MDSD – Eclipse EMF, GMF – OpenArcitectureWare (oAW) mit Xtext, Xtend und Xpand ● Aspektorientierte Programmierung ● Software Factories – Fallstudie einer MDSD-Infrastruktur unter Eclipse für Java-EE- Anwendungen Dirk Müller: Software Factories WS 2018/19 5/17
Software-Enthusiasmus in 1950ern Software mit riesigen Vorteilen gegenüber Hardware ● auf Universalrechnern für alle Zwecke einsetzbar – ja, aber das zeigt die Verantwortung eines Informatikers ● einfach zu schreiben, zu testen und zu pflegen – 2012 nur 39% aller Projekte erfolgreich ● einfach zu replizieren Modellgetriebene SW-Entw. – zu kopieren ja, aber zu portieren nein ● kein Verschleiß – ja, aber relative Alterung ● keine flüchtigen Fehler – für einfache Programme ja, aber bei Multithreading auf Mehrkern-Prozessoren Heisenbugs durch z. B. Race Conditions sogar typisch Dirk Müller: Software Factories WS 2018/19 6/17
Software und Computer ● Software als eine spezielle Form von Daten – immateriell, keine physikalischen Gesetze – kein Verschleiß, aber relative Alterung – keine SI-Einheit, aber Anzahl der Codezeilen (lines of code, LOC) oft genutzt: SW-Metriken – fragwürdiges Leistungsmaß Produktivität in LOC/Monat (motiviert aufgeblähten Code) – Wiss. Leistung in eingeworbener Drittmittelrate z. B. in €/Jahr (Geld ist ein Mittel, nicht das Forschungsziel) – Energieeffizienzklasse Pkws (Bezug des CO2-Ausstoßes auf Masse, nicht auf Nutzfläche oder -volumen, Masse ist Mittel und nicht Ziel) ● Freiheit: sehr flexibel ● Verantwortung: sehr komplex ● Computer nicht einfach neue Maschinen, sondern neue Qualität: digitale Revolution Dirk Müller: Software Factories WS 2018/19 7/17
Magisches Dreieck ● Gute Software soll schnell und zu geringen Kosten entwickelt werden. ● meistens Fokussierung auf 2 der Ziele nötig ● seit 1968 (NATO-Konferenz in Garmisch) ingenieurmäßiger Ansatz propagiert, da Größe und Komplexität mit unstrukturierten Methoden nicht mehr beherrschbar Qualität Zeit Kosten Dirk Müller: Software Factories WS 2018/19 8/17
Qualität von Software: ISO/IEC 9126 von 2001 Was? Wie? (nichtfunktionale Eigenschaften) Design for Change [1] Dirk Müller: Software Factories WS 2018/19 9/17
Qualität von Software: ISO/IEC 250mn von 2011 ● Software product Quality Requirements and Evaluation (SQuaRE) ● zwei neue Hauptkriterien, somit jetzt insgesamt acht – Sicherheit (Security) – Kompatibilität: Koexistenz und Interoperabilität ● Funktionalität heißt jetzt funktionale Angemessenheit ● Effizienz heißt jetzt Leistungseffizienz ● Änderbarkeit mit Modularität und Wiederverwendbarkeit ● Zuverlässigkeit mit Verfügbarkeit Dirk Müller: Software Factories WS 2018/19 10/17
Definitionen ● Ziel: kostengünstige Entwicklung von SW hoher Qualität ● David Parnas [1]: Design for Change „multi-person construction of multi-version programs“ ● Helmut Balzert: „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Ent- wicklung und Anwendung von umfangreichen Software- systemen. Zielorientiert bedeutet die Berücksichtigung z. B. von Kosten, Zeit, Qualität.“ [Bal09], S. 17 ● IEEE [2]: „The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.“ Dirk Müller: Software Factories WS 2018/19 11/17
Begriffe ● Software-Engineering (engl.), F. L. Bauer, 1968 – Softwaretechnik, auch: Softwaretechnologie, Abk.: SWT, SE ● Software, John W. Tukey, 1958 – Programm + Dokumentation + Konfigurationsdaten + Modelle – Gegensatz: Hardware, Zwischenstufe Firmware – spezielle Form von Daten, die zusammen mit Hardware und Anwendungsdaten einen Computer ausmachen ● Engineering, ca. 1300 – planvolles, gezieltes Vorgehen zum Entwurf, Bau, zur Erhaltung und Verbesserung von Maschinen, Geräten, Systemen, Strukturen und Prozessen – Gegensatz: Kunst und Wissenschaft – military engineering vs. civil engineering ● Metapher liefert Bezeichnung, aber Analogien begrenzt Dirk Müller: Software Factories WS 2018/19 12/17
Kritik am Begriff ● Donald Knuth: Kunst und Wissenschaft, aber keine Ingenieurwissenschaft ● Edsger W. Dijkstra: Engineering ist der falsche Begriff, Ziel ist widersprüchlich in sich, „How to program if you cannot.“ ● nur sehr selten als anerkannter Berufsabschluss ● Revolutionen statt Evolution legen nahe, dass es sich (noch?) nicht um eine Ingenieurwissenschaft handelt – Strukturierte Programmierung seit ca. 1970 – Objekt-orientierte Programmierung seit ca. 1980 – Generische Programmierung seit ca. 1990 – Modellgetriebene Programmierung seit ca. 2000 – Aspektorientierte Programmierung seit ca. 2000 Dirk Müller: Software Factories WS 2018/19 13/17
Software-Lebenszyklus (1/2) ● meist Unterschätzung der Lebensdauer von SW-Systemen – Design for Change – z. B. Space Shuttle der NASA 1981-2011 ● Betrieb ist normalerweise die längste und teuerste Phase – Größenordnung Jahrzehnte ist typisch – Wartung und Evolution Hardware Anforderungen ● Software-Alterung [3] SW-Umgebung – kein Verschleiß wie bei materiellen Dingen – Umgebung ändert sich (Anforderungen und Hardware sowie andere Software) => relative Alterung – Anpassungen verschlechtern Struktur, Alterung Änderungen was zu noch mehr Alterung führt (Gegenmaßnahme: Refactoring) Dirk Müller: Software Factories WS 2018/19 14/17
Software-Lebenszyklus (2/2) Abschaltung Start der bzw. Ablösung Entwicklung Änderbarkeit Funktionale Angemessenheit Benutzbarkeit Leistungseffizienz Zuverlässigkeit Betrieb Spezifikation Installation Entwurf Kompatibilität Implemen‑ Übertragbarkeit tierung Änderbarkeit Funktionale Angemessenheit Benutzbarkeit Sicherheit Quelle: [Bal11], S. 1 f. Dirk Müller: Software Factories WS 2018/19 15/17
Zusammenfassung ● Softwaretechnik als Reaktion auf Softwarekrise seit 1968 – Umfang und Komplexität wachsen exponentiell – Heterogenität – Auslieferungsdruck (Produktzyklen immer kürzer) – Vertrauen ● Erstellung von Programmen mit mehreren Versionen durch mehrere Personen ● Qualität von Software: Funktionale Angemessenheit und nichtfunktionale Eigenschaften mit wichtigster darunter Änderbarkeit: Design for Change ● Magisches Dreieck aus Qualität, Zeit und Kosten – meist Fokussierung auf zwei der drei Ziele nötig ● SW-Lebenszyklus mit 5 Phasen: Spezifikation, Entwurf, Implementierung, Installation und Betrieb Dirk Müller: Software Factories WS 2018/19 16/17
Literatur [1] Parnas, David Lorge: „Software engineering or methods for the multi- person construction of multi-version programs“, Programming Methodology, Springer Berlin Heidelberg, 1975, S. 225-235 [2] Abran, A. and J.W. Moore (exec. eds); P. Borque and R. Dupuis (eds.). 2004. „SWEBOK: Guide to the Software Engineering Body of Knowledge.“ Piscataway, NJ, USA: IEEE [3] Parnas, D. L.: Software Aging. In: Int'l Conf. on Software Engineering. IEEE Computer Society Press, Sorrento, Italy 1994, S. 279–287 Dirk Müller: Software Factories WS 2018/19 17/17
Sie können auch lesen