Softwaretechnik - Vorlesung RWTH Aachen PDF

Summary

This document is a lecture presentation on software engineering. It provides an overview of the topic and discusses some historical examples of software failures. The presentation is geared towards undergraduate students.

Full Transcript

Vorlesung Softwaretechnik Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Farbe! Softwaretechnik 1. Warum, was, wie und wozu Softwaretechnik? 1.1 Einleitung und Motivation Prof. Bernhard Rumpe Software Engineering RWTH Aachen http...

Vorlesung Softwaretechnik Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Farbe! Softwaretechnik 1. Warum, was, wie und wozu Softwaretechnik? 1.1 Einleitung und Motivation Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Literatur: Sommerville 1.1 Balzert Band 1, LE 1 Boeing Quellen: https://www.manager-magazin.de/unternehmen/artikel/boeing-737-max-boeing-gesteht-erstmals-software-fehler-ein-a-1268189.html; https://www.aerotelegraph.com/boeing-gesteht-zweiten-software-fehler-bei-737-max 3 Software Engineering | RWTH Aachen 4. Juni 1996: Erster Start der "Ariane-5" § Während des Fluges läuft ein unnötiges Kalibrierungsprogramm für die Trägheitssensoren. § Die gemessenen Werte der Ariane-5 überschreiten die in der Ariane-4-Software vorgesehenen Bereiche. § Die (Ada-)Exception wird durch Anhalten des Steuerungscomputers behandelt, um auf ein zweites redundantes System umzuschalten. § Im zweiten System tritt der gleiche Software-Fehler auf und wird identisch behandelt. § Kosten des Ariane-5-Programms bis 1996: ca. 8 Milliarden US-$ § Wert des zerstörten Satelliten: ca. 500 Millionen US-$ 4 Software Engineering | RWTH Aachen Warum Software Engineering? Intel Pentium FDIV Fehler (1994) Gleitkomma-Divisionen mit bestimmten Werten fehlerhaft Schaden: 475 Mio. US-$ NASA Mars Climate Orbiter (1998) Fehlerhafte Konvertierung imperialer in metrische Einheiten Mars-Orbit verpasst → Orbiter verloren Schaden: 125 Mio. US-$ Millennium-Bug (1999) Jahreszahlen zweistellig gespeichert Berechnungsfehler bei Umstellung: (19)99+1=(19)00 Schaden: 600 Mil. US-$ (Gartner; geschätzt) Weitere https://raygun.com/blog/costly-software-errors-history/ https://www.computerworld.com/article/3412197/top-software-failures-in-recent-history.html https://en.wikipedia.org/wiki/List_of_software_bugs 5 Software Engineering | RWTH Aachen Softwaredebakel: Keine Einzelfälle Terminliche, finanzielle und technische Katastrophen: - 1999: Verlust der Sonde "Mars Climate Orbiter" wegen falscher Einheitenumrechnung - 2003-5: Toll Collect: Termin u.a. wegen Softwareproblemen mehrfach verschoben, Einnahmeausfall > 5 Milliarden Euro - 2004: Einheitliche Software „Fiskus“ für alle Finanzämter wird nach 13 Jahren und 900 Mio. Euro aufgegeben - 2009: Gleichzeitiger Ausfall aller 7000 Fahrkartenautomaten der DB, Kosten ca. 500.000 Euro in vier Stunden - 2012: Bundesweites Studienzulassungssystem 2 Jahre verschoben: Chaos bei der Einschreibung - 2013: Hunderte Flugausfälle: Telefon-Crash in der europäischen Luftsicherung - 2023: Onlinezugangsgesetzt miserabel umgesetzt: von 575 Verwaltungsleistungen nur 114 digital und die nicht flächendeckend. Weltweit jährlicher Schaden durch Softwarefehler 6,2 Billionen US$, Tendenz steigend 6 Software Engineering | RWTH Aachen Warum Softwaretechnik? Größe der Systeme wächst Komplexität der Systeme steigt Heterogenität nimmt zu Software ist lange in Betrieb Softwareprojekte scheitern, kosten mehr als geplant, werden später fertig Software ist nicht wiederverwendbar, nur schwer erweiterbar Fehler in Sicherheitskritischer Software verursachen große Schäden Menschenleben sind in Gefahr 7 Software Engineering | RWTH Aachen Worüber wir nicht reden… animated Einfache 1-Shot Programme Hacking at Home Alone Programmieren für Anfängerinnen und Anfänger 8 Software Engineering | RWTH Aachen Worüber wir reden… Komplexität beherrschen z.B. Software MaCoCo, 3/2020: app. 400.000 LOC Code + 8.000LOC Modelle, 11 MA, 4 Jahre Dev. 9 Software Engineering | RWTH Aachen Worüber wir reden… Software Engineering „Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge“ (Manifest der Softwaretechnik, 2006) Berücksichtigung der folgenden drei Aspekte: - Kosten - Termine - Qualität (Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit, Wartbarkeit) 10 Software Engineering | RWTH Aachen Was Sie mit Software Engineering anfangen können.. Entwicklung großer komplexer Softwaresysteme - an entscheidender Stelle Sichere Jobs: - Große Auswahl an Stellenangeboten Viel Geld verdienen Spaß an erfolgreicher und (immer) spannender Arbeit 11 Software Engineering | RWTH Aachen Softwaretechnik 1. Warum, was, wie und wozu Softwaretechnik? 1.2. Organisatorisches Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Literatur: Sommerville 1.1 Balzert Band 1, LE 1 Dozent:innen und Ansprechpartner Prof. Bernhard Rumpe rumpe @ se-rwth.de Dr. Judith Michael michael @ se-rwth.de Hendrik Kausch kausch @ se-rwth.de Mathias Pfeiffer mpfeiffer @ se-rwth.de Deni Raco raco @ se-rwth.de INFORMATIONEN Moodle: https://moodle.rwth-aachen.de/course/view.php?id=44025 13 Software Engineering | RWTH Aachen SE - Arbeitsgruppen und Themen Assistive Automotive Systems Engineering Information Systems - Autonomous Driving - Software & Systems Architectures - Human-Centered Assistance - Modeling Data & Diagnostics - Semantic Tool Integration - DSLs for Rights, Roles, Privacy - Test-Driven Development - Variability & Product Lines - Behavior/ Process Modeling Artificial Intelligence for Digital Twins Software Engineering - LLM-in Development and Products - Industry 4.0, CPPS, Robotics - LLM for Requirements Engineering - Digital Twin Cockpits - LLM-based MBSE - Cyber-Physical Systems Software Language Engineering - Development Tools - Testing, Analysis, Verification - Language Workbench MontiCore - Transformation, Evolution - UML, SysML, DSL, Architecture DL - Agile Methods - Generation, Synthesis, - Compositional DSL Engineering 14 Software Engineering | RWTH Aachen Forschungsthemen NETWORKS UNIFIED MODELING ABSTRACTION LANGUAGE UML/P AVIATION CYBER- PHYSICAL TOOLING MontiCore AGILE SCRUM MODEL- ANALYSIS GENERATIVE SYSTEMS METHODS BASED CREATION USER DIGITAL SHADDOW PROCESS MontiGEM INVOLVEMENT DESIGN MODEL- DIGITAL TWIN DOMAIN DRIVEN GUI MODELS SPECIFIC SYSTEMS ENGINEERING LANGAUGES MontiArc DATABASES ENTERPRISE INFORMATION SYSTEMS STREAMS LIFE-CYCLE SOFTWARE ARCHITECTURE TAYLORED FOR PRODUCTION- APPLICATION DATA DOMAINS CLASS HUMAN-CENTERED IoT NETWORKS DIAGRAMS ASSISTIVE SYSTEMS WORKFLOWS E-HEALTH SMART HOME PRIVACY PRESERVATION Mehr unter: http://www.se-rwth.de/ 15 Software Engineering | RWTH Aachen Auszug Unserer Kooperationen mit der Industrie Partner 16 Software Engineering | RWTH Aachen Anwendungsgebiete Ambient Assisted Living Automotive Avionics Controlling and Finances Cyber-Physical Systems Energy Health Internet of Production (IoP) Internet of Things (IoT) Industry 4.0 Logistics Robotics Smart Homes Siehe auch: https://www.se-rwth.de/jobs/ 17 Software Engineering | RWTH Aachen Anwendungsbeispiel: Digital Twin A Digital Twin consists of a set of models of the system and a data traces of the system in operation, and provides a set of services to manage the original system. Data Control, condensed information Physical system Data / Information system 18 Software Engineering | RWTH Aachen Digital Twin of SE Offices can be visited virtually Lights, a metal ring and fans are synchronized between the real world and the digital twin Technologies: Meta Quest 2&3, Unreal Engine, MQTT, Arduino/Raspberry Pi IoT MQTT VR Device Broker / Unreal 19 Software Engineering | RWTH Aachen Promotion am Lehrstuhl für Software Engineering Der Lehrstuhl SE sucht sowohl - wissenschaftliche Mitarbeiter:innen (Doktorand:in) - als auch HiWis Promotionsstellen für wissenschaftliche Mitarbeiter:innen - Modellbasierte Software-Entwicklung und Analyse - Digitale Zwillinge - KI im Automobilen Ziele- und Anforderungsmanagement - Modell-basiertes DevOps - MontiCore Neue Features für die Language Workbench MontiCore - Tools für SE in Wissenschaft und Industrie generell … Basis: Java - oder Sie bewerben sich initiativ! Siehe auch: https://www.se-rwth.de/jobs/ 20 Software Engineering | RWTH Aachen SE in der Lehre (B.Sc./M.Sc. Informatik) Softwaretechnik im 3ten Semester (6 CP) Vorlesungen im Bachelor / Master: - Model-Based Software Engineering (6 CP, Prof. Rumpe) - Praktika - Model-Based Systems Engineering (6 CP, Prof. Rumpe) - Seminare - Software Language Engineering (6 CP, Prof. Rumpe) - Bachelor-, Masterarbeit - Software-Architekturen (6 CP, Prof. Nagl) - Die Softwaretechnik-Programmiersprache Ada 95 (6 CP, Prof. Nagl) - Der digitale Lebenszyklus von Fahrzeugen als Teil des Internet of Things (IoT), (3 CP oder 6 CP mit Praxis Workshop, Dr. Diana Fischer, DSA) - Prozesse und Methoden beim Testen von Software (3 CP oder 6 CP mit Praxis Workshop, Dr. Stefan Kriebel, FEV.io) 21 Software Engineering | RWTH Aachen Organisation der SWT Vorlesung MODUL Bachelor, vertiefende Vorlesung und Übung (3+2) Dienstags, 10:30 bis 12:00 Uhr Größer Hörsaal Audimax TERMINE Mittwochs, 10:30 bis 12:00 Uhr Größer Hörsaal Audimax Donnerstags, 14:30 bis 16:00 Uhr Größer Hörsaal (H01) C.A.R.L Abwechselnd mit Vorlesung GLOBALÜBUNGEN Übungsgruppen bilden: 3-4 Studierende – Forum in Moodle nutzen 120 Minuten, 120 Punkte KLAUSUR Bestehen der Übungen nicht erforderlich zur Zulassung, verschafft aber Bonus. INFORMATIONEN Moodle: https://moodle.rwth-aachen.de/course/view.php?id=44025 22 Software Engineering | RWTH Aachen Vorlesung Softwaretechnik gute Programmierkenntnisse (ideal ist Java oder ähnliche Sprache) VORAUSSETZUNGEN (Wissen über Programmieren von Algorithmen wird hier nicht mehr vermittelt.) BA Informatik HÖRER:iNNENKREIS BA Mathematik BA Technik-Kommunikation, NF Informatik BA Maschinenbau BA Computational Engineering Science MA Data Science MA Automatisierungstechnik MA Energietechnik MA Verfahrenstechnik MA Software Systems Engineering MA Computational Engineering Science weitere Nebenfächer 23 Software Engineering | RWTH Aachen Bonuspunkte aus der Übung Erst wenn mindestens 50% aller Übungspunkte erreicht wurden und die Klausur bestanden ist, werden Bonuspunkte für die Klausur angerechnet. Details in der ersten Übungsstunde! Klausur für die Vorlesung: Proz. Anteil der Übungspunkte Bonuspunkte in der Klausur 120 Klausur-Punkte erreichbar. < 50% oder Klausur nicht bestanden 0 =50% +2 Beispiele für keine Anrechnung von Bonuspunkten, z.B. >50% bis =60% +3 - 49% der Übungspunkte >60% bis =70 +4 - 95% Übungspunkte aber Klausur nicht bestanden >70% bis =80% +5 >80% bis =90% +7 >90% bis 100% +10 24 Software Engineering | RWTH Aachen Elektronische Übungsaufgaben Weitgehend elektronische Übungen: Details werden im ersten Übungstermin besprochen - Übungsaufgaben via Gitlab erhalten - bis zur ersten Übung nichts weiter zu tun - In Gitlab gemeinsam daran arbeiten § Instant Feedback bei jedem commit DSGVO-konform: Wir begutachten nur das offiziell abgegebene - Ergebnis in Gitlab comitten (= abgeben) Ergebnis - keine Performanz- oder Zwischenergebnisse sind für die Punktevergabe relevant Deshalb: - (nur statistisch aggregierte Zahlen z.B. über Toolnutzung) Jede Übungsgruppe erhält eigenes Gitlab-Projekt Zweck: Wir üben - Versionskontrolle, - Automatisierung und die - Nutzung von Tools via CI (ohne lokale Installation). 25 Software Engineering | RWTH Aachen Elektronische Übungsaufgaben: Abgabe und Testen mit gitlab CI Übungsaufgaben via Gitlab erhalten In Gitlab gemeinsam daran arbeiten § Instant Feedback bei jedem commit § Prozessiert, Compiliert, Installiert, …. Ergebnis in Gitlab comitten (= abgeben) 1 umlp Verwaltung { 2 git commit 3 class Person { int age; } & git push autom. 4 class Paper { List lines; } 5 6 } https://studentprojects.se-rwth.de/... 26 Software Engineering | RWTH Aachen Softwaretechnik 1. Warum, was, wie und wozu Softwaretechnik? 1.3. Softwaresysteme Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Literatur: Sommerville 1.1 Balzert Band 1, LE 1 Softwaresysteme Software: computer programs, procedures, rules, and possibly associated documentation and data pertaining to the operation of a computer system. (IEEE Standard Glossary of Software Engineering) Software: Software ist ein Sammelbegriff für Programme in menschenlesbarer Quellform, ausführbarer Objektcode-Form, Dokumentation für Entwickler, Betreiber und Nutzer, einschließlich ausführbarer Installations- und Compilations-Skripte, sowie die Testumgebung nebst Software-Tests, die für die Weiterentwicklung, Installation und Nutzung notwendig sind. (RWTH Software Verträge, Begriffsklärung) 28 Software Engineering | RWTH Aachen Software-Produkt Software als Sammelbegriff bis heute nicht ganz vereinheitlicht, deshalb besser: Softwaresystem - Ein System (oder Teilsystem), dessen Komponenten aus Software bestehen. Software-Produkt - Ein Produkt ist ein in sich abgeschlossenes, i. A. für einen Auftraggeber bestimmtes Ergebnis eines erfolgreich durchgeführten Projekts oder Herstellungsprozesses. Als Teilprodukt oder Komponente bezeichnen wir einen abgeschlossenen Teil eines Produkts. 29 Software Engineering | RWTH Aachen Klassifikation von Software? Welche Arten von Software nutzen wir? - Generisches Produkt oder Einzelanfertigung? - Systemsoftware (Betriebssystem, Compiler, Editor,...) oder Anwendungssoftware (application software)? - Produktintegriert (embedded) oder für reine Computersysteme? - Echtzeitanforderungen oder flexiblere Zeitanforderungen? - Daten-, berechnungs- oder kommunikationsintensiv? - Monolithisch oder verteilt? - Standalone oder mit anderen Anwendungen integriert? - Lokal oder Remote oder in der Cloud? - Service eines integrierten Netzwerks? 30 Software Engineering | RWTH Aachen Besonderheiten von Software Software ist immateriell. Software wird nicht durch physikalische Gesetze begrenzt. Software unterliegt keinem Verschleiß. Defekte sind immer Konstruktionsfehler. Software ist schwer zu vermessen („Technische Daten“ von Software). Software gilt als relativ leicht änderbar (im Vergleich zu materiellen technischen Produkten). Software unterliegt einem ständigen Anpassungsdruck. Software veraltet. 31 Software Engineering | RWTH Aachen Einige wichtige angestrebte Eigenschaften von Software Zuverlässigkeit - Software darf im Fall des Versagens keine physischen oder ökonomischen Schäden verursachen. Benutzbarkeit - Software muss sich nach den Bedürfnissen der Benutzer richten. - Die Benutzerschnittstelle muss ergonomisch und selbsterklärend sein. - Dokumentation muss in allen Detaillierungsgraden ausreichend zur Verfügung stehen. Wartbarkeit - Software muss anpassbar an neue Anforderungen sein. - Software sollte möglichst plattformunabhängig sein. Effizienz - Software muss ökonomischen Gebrauch von Ressourcen des unterliegenden Systems machen. 32 Software Engineering | RWTH Aachen Wachsende Komplexität (2) Skalierung Entwicklung der Growth in Komplexität Code in der Size for Manned and Raumfahrt Unmanned Missions beachten 10000000 unmanned 1000000 manned Expon. (unmanned) 100000 Expon. (manned) KNCSL (log scale) (Log scale) NCSL (Log scale) 10000 1969 Mariner-6 (30) 1975 Viking (5K) 1000 1977 Voyager (3K) 1989 Galileo (8K) 1990 Cassini (120K) NCSL 100 1997 Pathfinder (175K) 1999 DS1 (349K) 10 2003 SIRTF/Spitzer (554K) 2004 MER (555K) 1 2005 MRO (545K) NCSL = 1968 1975 1977 1980 1989 1997 1999 2003 2005 1968 Apollo (8.5K) Non-Comment 1980 Shuttle(470K) Source Lines 1989 ISS (1.5M) Year of Mission Wachstumsrate ~10x alle 10 Jahre Quelle: Nasa - Flight Software Complexity - 2009 33 Software Engineering | RWTH Aachen Komplexitätswachstum und Fehlerrate 800 200 20 160 animated 0,2 10 1977 1994 1977 1994 1977 1994 Anzahl Fehler auf 1000 LOC Programmgröße (1000 LOC) Resultierende absolute Fehleranzahl Echte Qualitätsverbesserungen sind nur möglich, wenn die Steigerung der Programmkomplexität überkompensiert wird ! (Durchschnittswerte, aus Balzert 96) 34 Software Engineering | RWTH Aachen Geschätzte relative Abstellkosten je Software-Fehler bei der Fahrzeugentwicklung 87,0 T€ 75,0 T€ 68,0 T€ 3,5 T€ 3,6 T€ 6,2 T€ 1,05 T€ Konzept A-Muster B-Muster C-Muster PVS 0-Serie Serie Quelle: HIS, Stand 1999 Typische Fehlerabbaukurve Start of Production 11 5F eh ler /W oc he KW -50 -40 -30 -20 -17 0 Quelle: G.Wagner, M. Liebler, 2007 35 Software Engineering | RWTH Aachen Zunehmende Qualitätsanforderungen Gefundene Defekte in 1000 Zeilen Quellcode (M. Cusumano, MIT): - 1977: 7 - 20 Defekte - 1994: 0,05 - 0,2 Defekte - 2003: 0,02 - 0,04 Defekte Steigerung des Qualitätsniveaus um den Faktor 100 in 13 Jahren. Aber: Komplexitätssteigerung muss kompensiert werden ! - Komplexitätssteigerung ca. Faktor 10 in 5 Jahren Zunehmende „Altlasten“: - Anwendungssoftware wird oft 20 Jahre und länger eingesetzt. - In manchen Betrieben sind 60-70% der Softwarekosten für Anpassung von Altsoftware! 36 Software Engineering | RWTH Aachen Erfolgsstatistik von IT-Projekten 2015 2014 2013 2012 2011 2010 2009 2006 2004 2002 2000 1998 1996 1994 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Failed Challenged Succeeded Quelle: CHAOS Report, 1994-2015, Standish Group International, Inc. 37 Software Engineering | RWTH Aachen Herausforderungen Quelle: https://www.conversationagent.com/2010/01/what-really-affects-behavior.html 38 Software Engineering | RWTH Aachen Softwaretechnik 1. Warum, was, wie und wozu Softwaretechnik? 1.4. Definition, Übersicht Prof. Bernhard Rumpe Software Engineering RWTH Aachen http://www.se-rwth.de/ Literatur: Sommerville 1.1 Balzert Band 1, LE 1 Software Engineering 1968: erste Konferenz zum Thema „Software Engineering“ Der Begriff wird geprägt: Software Engineering: The establishment and use of sound engineering principles in order to obtain economically software that is reliable and runs on real machines. (F.L. Bauer, NATO-Konferenz Software-Engineering 1968) 40 Software Engineering | RWTH Aachen Software Engineering „Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge“ (Manifest der Softwaretechnik, 2006) Berücksichtigung der folgenden drei Aspekte: - Kosten - Termine - Qualität (Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit, Wartbarkeit) 41 Software Engineering | RWTH Aachen Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist mehr als Und dazu gehören auch: nur Programmieren! - Management großer und komplexer Projekte - Schätzung von Terminen und Kosten Dazu gehören auch: - Erfassung von Kunden- und Marktanforderungen - Vorgehensmodelle - Änderungsmanagement - Analyse - Sicherstellung eines hohen Qualitätsniveaus § Anforderungen | Modellierung - Wartung und Weiterentwicklung von Altsystemen § System | Modellierung | Muster - Softwareproduktlinien - Softwareentwurf (Design) § Systementwurf | Oberflächen | Muster - Guter Programmierstil - Generative Entwicklung - Entwicklungswerkzeuge - Test - Prinzipien wie Abstraktion, Strukturierung, Hierarchisierung, Modularisierung, Wiederverwendung & Variabilität 42 Software Engineering | RWTH Aachen Softwaretechnik vs. Programmieren Softwaretechnik - Größe & Komplexität der Entwicklungsprojekte - Teams, Zusammenarbeit, Komponenten, Qualität,… Margaret Hamilton - Direktorin der Softwareentwicklungs-Abteilung des Instrumentation Laboratory des MIT - On-Board-Flugsoftware für das Apollo-Raumfahrtprogramm - 420,837 lines of code (LOC) Große Software - Windows 7 (40 Mio), Facebook (61 Mio) Quelle: https://t3n.de/news/codezeilen-facebook-windows-software- 546933/codezeilen_code-zeilen_infografik/ Quelle: https://de.wikipedia.org/wiki/Datei:Margaret_Hamilton_-_restoration.jpg 43 Software Engineering | RWTH Aachen Portfolio der SE-Techniken... ist vergleichbar mit einer Werkzeugkasten: - Für jedes Problem das richtige Werkzeug - in der Hand eines Experten, der damit umgehen kann Nicht jeder muss alle Werkzeuge beherrschen Aber: je mehr man beherrscht, um so besser. 44 Software Engineering | RWTH Aachen Und was ist mit KI im Software Engineering? Was ist denn mit KI im SE? 45 Software Engineering | RWTH Aachen Themen Überblick Organisatorisches Vorgehensmodelle Analyse - Anforderungen | Modellierung - System | Modellierung | Muster Vorbereitung Softwareentwurf (Design) - Systementwurf | Oberflächen | Muster Implementierung & Generative Entwicklung - Implementierung | Generative SWT Vorlesung Übung - Werkzeuge Test - Qualität in der SWT und Testen im Speziellen Wiederverwendung & Variabilität Nachbereitung - Komponenten und Wiederverwendung - Softwareproduktlinien und Variabilität Ausblick 46 Software Engineering | RWTH Aachen Wozu? Lernziele Kenntnis über Praktische Anwendung von - Welche Vorgehensmodelle werden in der Praxis - Modellierungstechniken in der Analyse und Design angewandt Phase, z.B. Use Case, Aktivitätsdiagramme, Klassendiagramme, Objektdiagramme, - Phasen der Softwareentwicklung & konkrete Schritte Sequenzdiagramme, Zustandsdiagramme, Feature Diagramme, erkennen, anwenden und analysieren - Modellierung zum Systemverstehen und -konstruieren - Muster für den Entwurf, die Analyse, die Architektur - Prinzipien der Generativen Entwicklung - Versionskontrolle z.B. git und SVN - Die wichtigsten Werkzeuge - Ableitung von Testdaten und Teststrategien - Prozesse von Softwareproduktlinien - Definition von Komponentenspezifikationen 47 Software Engineering | RWTH Aachen Literatur (generell für alle Themen der SWT) I. Sommerville - Software Engineering - 19. Oktober 2018, 10. Auflage J. Ludewig und H. Lichter - Software Engineering: Grundlagen, Menschen, Prozesse, Techniken - 2te Auflage, Februar 2023 H. Balzert: - Lehrbuch der Software-Technik Bd. 1 M. Broy, M. Kuhrmann - Einführung in die Softwaretechnik, Springer 2021 48 Software Engineering | RWTH Aachen Was haben wir heute gelernt? Software Software Engineering erfüllt kritische Aufgaben ist die Lehre von der ingenieurmäßigen Entwicklung in jedem Bereich des von Software und softwarebasierten Systemen Lebens strebt die schnelle und effiziente Herstellung ist von großer qualitativ hochwertiger Softwareprodukte an wirtschaftlicher Bedeutung entwirft dafür Prinzipien, Methoden, Werkzeuge und ist ein schwer zu Prozesse fassender Werkstoff strebt nach Wiederverwendung theoretisch und entsteht durch empirisch geprüfter Ergebnisse Zusammenarbeit ist anwendungsnah und erfordert, dass ihre mehrerer/vieler Personen Methoden und Techniken geübt werden 49 Software Engineering | RWTH Aachen

Use Quizgecko on...
Browser
Browser