Seminarvortrag Methoden der agilen Softwareentwicklung für eingebettete Systeme Lisa Krause Aachen, 27.01.2010
Inhaltsübersicht Motivation Einführung in die Softwaretechnik - Ziele - Traditionelle Prozessmodelle - Agile Prozessmodelle Einführung in eingebettete Systeme - Definition - Regelung Agile Methoden zur Softwareentwicklung für eingebettete Systeme - Problematik - Erfahrungen - Gründe für den erfolgreichen Einsatz Fazit & Zusammenfassung Ausblick Folie 2
Motivation Eingebettete Systeme werden immer wichtiger (Marktanteil bei Prozessoren 98%) [Kow09] Folie 3
Motivation Folie 4
Motivation Markt wächst Größere Anforderungen an die Entwickler Schnell und günstig Systeme produzieren [SDL09] V-Modell am meisten verwendet [Kow09] Wird Anforderungen aber nicht gerechnet! [SDL09] Agile Methoden als Lösung? Folie 5
Inhaltsübersicht Motivation Einführung in die Softwaretechnik - Ziele - Traditionelle Prozessmodelle - Agile Prozessmodelle Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 6
Softwaretechnik Anfangs Softwareentwicklung im Wesentlichen ohne zugrundeliegende Planung Mit der Zeit stiegen die Anforderungen Nicht mehr möglich im gesetzten Kosten- und Zeitrahmen zu entwickeln [BD04] Ziel der Softwaretechnik: Den Prozess der Softwareentwicklung kontrollier- und messbar zu gestalten. Folie 7
Inhaltsübersicht Motivation Einführung in die Softwaretechnik - Ziele - Traditionelle Prozessmodelle - Agile Prozessmodelle Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 8
Traditionelle Prozessmodelle Wasserfallmodell: Anforderungsermittlung Anforderungsanalyse Entwurf Orientierung an Ingenieurswissenschaft Sequentielle Herangehensweise ungeeignet Auch iterative Modelle können der Softwareentwicklung kaum gerecht werden Software ist nur schwer mit den Produkten aus den Ingenieurswissenschaften vergleichbar Implementierung Testen Betrieb und Wartung Folie 9
Inhaltsübersicht Motivation Einführung in die Softwaretechnik - Ziele - Traditionelle Prozessmodelle - Agile Prozessmodelle Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 10
Agile Prozessmodelle Akzeptieren Veränderung als festen Bestandteil Agil bedeutet schlank, flink, leicht Nicht Orientierung an Ingenieurswissenschaft Software ist immateriell, braucht eigenen Prozess Der Mensch rückt in den Vordergrund, nicht die Rolle Motivation, Kommunikation Kein fester Zeit- und Kostenplan, aber Prototypen Folie 11
Agile Prozessmodelle Beispiel: Extreme Programming Akzeptanztests Unit Tests User Stories Testen Iterationsplan Planung Entwurf Simpler Entwurf Refactoring Software- Inkrement/ Prototyp Implementierung Kontinuierliche Integration Paarprogrammierung Folie 12
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme - Definition - Regelung Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit Zusammenfassung Ausblick Folie 13
Eingebettete Systeme Umwelt Einbettendes System Eingebettetes System Digitale Hardware Aktuatoren Software Sensoren Meist reaktive Systeme Oft hohe nicht-funktionalen Anforderungen Funktionale Anforderungen erscheinen meist einfach Anforderungen an die Hardware Oft in physikalischen Systemen zur Steuerung und Regelung Folie 14
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme - Definition - Regelung Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 15
Regelung Störgrößen Steuergröße Stellglied Stellgröße Regelstrecke Regelgröße Regler Istwert Beispiel: Führungsgröße Folie 16
Regelung Störgrößen Steuergröße Stellglied Stellgröße Regelstrecke Regelgröße Regler Istwert Beispiel: Führungsgröße Folie 17
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme - Problematik - Erfahrungen - Gründe für den erfolgreichen Einsatz Fazit & Zusammenfassung Ausblick Folie 18
Problematik Eingebettete Systeme sind meist reaktiv Besonderheit der Anforderungen Zielsystem meist spät zur Verfügung Nachträgliche Änderungen schwierig Agile Methoden wollen auf Planung verzichten z.b. Nachverfolgbarkeit? Einsatz fraglich? Folie 19
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme - Problematik - Erfahrungen - Gründe für den erfolgreichen Einsatz Fazit & Zusammenfassung Ausblick Folie 20
Erfahrungen Empirische Studie wies keinen nennenswerten Nutzen nach [Wil08] Europäische Firmen stellten allerdings großen Nutzen fest [SA08] Generell hohe Erwartungen an Nutzen [SA08] Quelle:[SA08] Einsatz anscheinend doch möglich! Folie 21
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme - Problematik - Erfahrungen - Gründe für den erfolgreichen Einsatz Fazit & Zusammenfassung Ausblick Folie 22
Gründe für den erfolgreichen Einsatz z.b. eingebettete Systeme auch in nicht-sicherheitskritischen Bereichen Individuelle Anpassung einzelner Methoden [SA08] Meistverwendete Methoden auch in Projekten für reine Softwarelösungen einsetzbar [SA08] Quelle: [SA08] Folie 23
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 24
Fazit & Zusammenfassung Anforderungen an die Softwareentwickler eingebetteter Systeme werden immer größer Agile Methoden eventuell als Lösung Einsatz agiler Methoden aber schwierig Empirische Studie konnte keinen Nutzen nachweisen Erfahrungen in der Industrie widersprechen dem allerdings Prozess zum Wechsel zu entwickeln Eventuell Entwicklung angepasster Methoden Folie 25
Inhaltsübersicht Motivation Einführung in die Softwaretechnik Einführung in eingebettete Systeme Agile Methoden zur Softwareentwicklung für eingebettete Systeme Fazit & Zusammenfassung Ausblick Folie 26
Ausblick Bachelorarbeit: - Entwicklung eines verbindenden Prozessmodells aus traditionellen und agilen Methoden - Evaluation eines bestehenden Prozesses anhand eines Industrieprojektes Fallstudie: Industrieprojekt zur Entwicklung einer echtzeitfähigen Simulationsumgebung für die Signaltechnik Quelle: www.de.academic.ru Folie 27
Vielen Dank für Ihre Aufmerksamkeit! Fragen?
Referenzen [Kow09] [BD04] [Rie07] [Wil08] [SDL09] [Fow01] Kowalewski, Stefan: Folien zur Vorlesung Introduction To Embedded Systems, Sommersemester 09. Brügge, Bernd und Alan Dutoit: Objektorientierte Softwaretechnik, Pearson Studium, 2004. Rieger,Martin: Folien zur Vorlesung Eingebettete Systeme, Sommersemester 2007. Wilking, Dirk: Empirical Studies for the Application of Agile Methods to Embedded Systems. Doktorarbeit, RWTH Aachen, 2008. Srinivasan, Jayakanth, Radu Dobrin und Kristina Lundqvist: State of the Art in Using Agile Methods for Embedded Systems Development. In: 2009 33rd Annual IEEE International Computer Software and Applications Conference, 2009. Fowler, Martin: The New Methodology.Wuhan University Journal of Natural Sciences, 6:12-24, 2001. Folie 29
Steuerung Störgrößen Führungsgröße Stellglied Stellgröße Steuerstrecke Zu steuernde Größe Beispiel: Folie 30
Softwareentwicklung für eingebettete Systeme Anforderungen an das einbettende System gestellt Überprüfung bzw. Messung der Qualitätsanforderungen nötig Folie 31