Extreme Programming im Klassenraum

Größe: px
Ab Seite anzeigen:

Download "Extreme Programming im Klassenraum"

Transkript

1 Extreme Programming im Klassenraum Michael Weigend Holzkamp-Gesamtschule Willy-Brandt-Sre Witten Abstract: Agile Methoden der Softwareentwicklung (Extreme Programming, Scrum, Crystal) finden insbesondere im Zusammenhang mit Open Source- Software - zunehmend Verbreitung. Eine Besonderheit agiler Methodologien ist, Kommunikations- und Lernprozesse des Teams während einer Softwareentwicklung zu berücksichtigen. Anhand eines Beispiels werden Ideen des Extreme Programmings und Umsetzungsmöglichkeiten im Informatikunterricht vorgestellt.. 1 Softwareentwicklung in der Schule - Probleme Methoden des Software-Engineerings, der Kunst und Wissenschaft der Programmierung im Großen, werden schon seit längerem in der Didaktik der Informatik nicht nur als Unterrichtsgegenstand sondern auch als Vorbild für die Gestaltung von Programmierprojekten im Klassenraum diskutiert [KP93]. Ein typisches Unterrichtsvorhaben nach dem Muster des Phasenkonzepts des traditionellen SE beginnt mit der Analyse eines Wirklichkeitausschnitts, führt dann zum Entwurf eines Softwaresystems, das arbeitsteilig implementiert, getestet und schließlich kritisch beurteilt wird. Es gibt eine Reihe gut dokumentierter erfolgreicher Beispiele für solche Projekte. Dennoch sind auch einige Probleme nicht von der Hand zu weisen: Informatikunterricht ist an allgemeinbildenden Schulen in einen unerbittlichen Zeitrahmen eingebettet. Ein Programmierprojekt muss zu einem bestimmten Zeitpunkt fertig sein. Dabei wird in Kauf genommen, dass Projekte nicht fertig werden, weil man zu Beginn den Aufwand nicht richtig eingeschätzt hat. Die Qualität eines Entwurfs kann letztlich aber erst im Nachhinein beurteilt werden, wenn das Produkt bereits fertig ist.

2 Das Phasenkonzept stellt gerade in der Analyse- und Entwurfsphase hohe Anforderungen an die Entwickler. Im Grunde ist für einen guten Entwurf, der eine tragfähige Basis für eine Implementierung darstellen soll, ein Erfahrungsschatz erforderlich, über den Anfänger nicht verfügen. In der Praxis wird die Lehrperson Schülerergebnisse zur Analyse und zum Entwurf massiv nachbearbeiten und so zurechtstutzen, dass sie implementierbar werden. Aber selbst, wenn die Lehrerin oder der Lehrer schon viele ähnliche Projekte durchgeführt hat, ist sie in der Regel vor Überraschungen nicht gefeit. Lerngruppen sind in der Regel sehr heterogen. Selbst wenn im Unterricht vor einem Projekt jede Menge Programmiertechnik gelernt worden ist, dürfte ein beträchtlicher Teil der Schülerschaft auch noch mit elementaren Algorithmik- und Programmierkonzepten zu kämpfen haben. Diese Kenntnisse sind nicht nur während der Implementierungsphase von Bedeutung, sondern auch schon in den früheren Phasen, wenn es um die Beurteilung der Machbarkeit geht.. 2 Warum ist XP eine geeignete Entwicklungsmethodologie für die Schule? Extreme Programming ist eine Methode des agilen Programmierens und wurde zum großen Teil von Kent Beck bei Chrysler entwickelt (Beck 2003). Es wird gerne als Gegenbewegung zu phasenorientierten Ansätzen des traditionellen Software- Engineering gesehen, das an die Planungsmethodologie des Maschinenbaus und Bauingenieurwesens anknüpft. Die wesentlichen Merkmale sind folgende: Eine Metapher beschreibt in einem Satz, was das System leisten soll. Der Auftraggeber des Projekts (Kunde, Customer) skizziert in sogenannten Stories die Systemfunktionalität. Sie sind die Grundlage für die Arbeitsaufteilung im Entwicklungsteam. Es wird in kurzen Zyklen (Iterationen), die in der Industrie etwa zwei Arbeitswochen, in der Schule vielleicht 30 bis 90 min dauern. Am Ende jeder Iteration steht ein lauffähiges (Zwischen-)Produkt, das getestet und beurteilt werden kann. Die Programmierer arbeiten immer zu zweit an einem Rechner (Pair Programming). Neue Programmteile werden kontinuierlich in das entstehende System integriert. Wenn ein neues Programmstück (z.b. eine neue Funktion oder Methode) implementiert werden soll, wird zunächst ein Test definiert (Test Driven Development), den das fertige Fragment bestehen muss, bevor es integriert wird. Der entwickelte Programmtext gehört dem ganzen Team (Collective Ownership of Code) und kann ständig von jedem überarbeitet werden (Refactoring).

3 Viele typische Aktivitäten des Software Engineerings, wie etwa Spezifikation von Systemfunktionalität oder UML-Diagramme zur Visualisierung von Klassenstrukturen spielen auch bei XP-Projekten eine Rolle. Nur die Sichtweise ist eine andere. Während im klassischen Phasenkonzept ein UML-Klassendiagramm eine langfristig tragende Basis für eine spätere Implementierung ist, entsteht es bei einem typischen XP-Projekt parallel zur Implementierung und wird sogar eher am Ende fertig gestellt und findet erst wieder bei einer Jahre später erfolgenden Überarbeitung des Projekts Verwendung. UML-Diagramme werden eher zur Dokumentation als zum Erfinden von Strukturen erstellt. Die Vorteile der agilen Methodologie für das Lernen im Informatikunterricht sind folgende: Ein Projekt ist immer erfolgreich. Jedes Team schafft mehrere Iterationen. Auch wenn das ursprünglich gesetzte Ziel für das erste Release nicht erreicht wird, steht am Ende ein Produkt, das man vorzeigen kann. XP unterstützt eigenes Experimentieren. Wenn ein Entwickler feststellt, dass die eigenen Kenntnisse nicht ausreichen, eine Story zu implementieren, plant er oder sie Zeit für Erkundungen ein. XP fördert den Erwerb metakognitiver Kompetenzen. Dazu gehört vor allem die Beurteilung eigener Fähigkeiten (Kann ich diese Story implementieren oder muss ich erst ein bisschen probieren?) und die Einschätzung des Zeitbedarfs für die Lösung einer Aufgabe. 3 Einige XP-typische Features im Informatik-Unterricht 3.1 Die Metapher des Projekts Es gibt viele Möglichkeiten an ein Projektthema zu kommen. Häufig sind solche Projekte interessant, bei denen es zu irgendeiner Zusammenarbeit mit anderen Fächern oder außerschulischen Partnern kommt. Wir tun dann so, als hätte uns dieser Partner einen Auftrag erteilt. Normalerweise ist das Ergebnis eines Schulprojekts nicht wirklich brauchbare Software. Aber man bekommt ein Gefühl, dass etwas Sinnvolles entstehen könnte, wenn man noch mehr Zeit und Energie investieren würde. Am Anfang der Softwareentwicklung steht eine so genannte Metapher, eine Kurzbeschreibung des Zielproduktes. Beispiel: Wir stellen uns vor, die Volkshochschule Witten wünscht eine Software zur Bereicherung ihrer Englisch-Kurse. Das Zielsystem lässt sich durch folgende Metapher beschreiben: Ein Chatroom, in dem die Teilnehmer nur auf Englisch kommunizieren können.

4 3.2 Release Planning Stories schreiben und bewerten Die Entwicklung beginnt mit der Planung des ersten Release, also der ersten komplett einsatzfähigen Fassung der Software. Hier wird festgelegt, wie das Produkt in etwa aussehen soll. Bei realen Projekten in der Industrie spielt nun der Customer (Kunde) die Hauptrolle. Der Customer ist ein Vertreter des Auftragebers (in unserem Beispiel die Volkshochschule), der das Projekt finanziert. Es handelt sich um Personen, die sich im Anwendungsfeld der entwickelten Software gut auskennen. Normalerweise begleitet ein Customer die gesamte Entwicklung, ist immer ansprechbar, wenn es Fragen zu Details einer Story gibt, ist bei allen Planungen anwesend und prüft in Akzeptanztests, ob die Qualität der Software seinen Ansprüchen genügt. Enge Zusammenarbeit mit dem Customer wird als Qualitätsmerkmal gesehen. Beim ersten XP-Projekt in der Schule spielt die Lehrperson die Rolle des Customers. In der Release-Planung beschreibt der Customer die Systemfunktionalität umgangssprachlich in sogenannten Stories. Jede Story steht auf einer Karte, auf der später noch Kommentare zur Implementierung, Testfälle etc. vermerkt werden können. In unserem Beispiel-Projekt gibt die Lehrperson einige Stories vor. Es macht aber auch Sinn, wenn Schüler/innen zeitweilig in die Rolle des Customers schlüpfen und eigene Stories erfinden. Story 1: Ein Teilnehmer muss sich zu Beginn einer Sitzung einloggen und seinen Namen angeben. Erst dann gelangt er oder sie in den Chatroom. Das System merkt sich den Namen. Story 2: Im Chatroom sieht ein Teilnehmer die letzten sechs Beträge des Chats in folgender Form: <Name der Person>: <Beitrag>. Story 3: Im Chatroom kann jeder Teilnehmer einen Gesprächsbeitrag von 60 Zeichen absetzen. Danach wird der dargestellte Dialog aktualisiert. D.h. man sieht die letzten sechs Beiträge. Story 4: Nur Beiträge in englischer Sprache werden akzeptiert. Äußerungen in einer anderen Sprache werden unterdrückt und nicht im Dialog dargestellt. Story 5: Auf allen Seiten sieht man oben rechts das Logo des Auftraggebers (VHS Witten). Story 6: Der Text eines Beitrages kann formatiert werden. Man kann flüstern (kleine Schrift), schreien (große Schrift) oder normal reden (normale Schriftgröße). Gute Stories sollten eine Reihe von Merkmalen aufweisen. Die wichtigsten sind folgende: Eine Story ist kurz und deutet ein Feature des Zielsystems nur an. Details werden später im Gespräch geklärt. Jede Story muss innerhalb einer Iteration (in der Schule heißt das: in maximal 30 bis 60 min) implementiert werden können. Notfalls muss eine zu umfangreiche Story in einfachere Stories aufgespalten werden.

5 Stories sollten möglichst unabhängig voneinander implementiert werden können. Der Customer bringt die Stories in eine Prioritätenreihenfolge oder ordnet ihnen jeweils eine Zahl zu, die zum Ausdruck bringt, welchen Nutzen er sich von dieser Story verspricht ("business points"). Möglicherweise reicht die Zeit nicht, alle Stories zu implementieren. Dann sollte das erste Release wenigstens die wichtigsten Features enthalten. Nun müssen die Entwickler (Schüler) für jede Story abschätzen, wie viel Zeit für ihre Implementierung notwendig ist. Eine schwierige Aufgabe. Aber erst dann kann das Team entscheiden, welche Stories es innerhalb der vorgesehenen Projektzeit insgesamt implementieren kann. Das ist das Ergebnis der Release-Planung. Nun kann aber folgendes Problem auftreten. Die Entwickler wissen nicht, wie sie bestimmte Stories realisieren sollen und können deshalb auch keinen Zeitbedarf angeben. Deshalb ist für das Release Planning eine Explorationsphase vorgesehen. Man recherchiert und entwickelt versuchsweise Lösungen, so genannte Spike Solutions oder kurz Spikes. 3.4 Erkunden und Experimentieren - Spikes Spikes sind Programmierxperimente, die allein dem Zweck dienen herauszufinden, wie und mit welchem Aufwand man eine Story implementieren kann. Schüler/innen müssen im Rahmen eines Projektes meist neue informatische Konzepte lernen. Deshalb kommt den Spikes im Klassenraum eine besondere Bedeutung zu und es muss genügend Zeit für sie eingeplant werden. Sie können auf verschiedene Weise gestaltet werden. Mit Hilfe ihrer Sprachreferenz erarbeiten sich die Schülerinnen und Schüler selbstständig die erforderlichen Programmierkonzepte. Die Schüler/innen bearbeiten ein ausgearbeitetes Lernarrangement mit Erkundungsaufgaben und Experimenten, das auf eine Story zugeschnitten ist (z.b. "Wie speichert man eine Liste?") Man analysiert einen Programmtext, der ein ähnliches Problem löst, wie das in der Story beschriebene. Gute Sprachreferenzen enthalten solche "praxistypischen Beispiele". Die Länge des Programmtextes gibt einen Anhaltspunkt, mit welchem Implementierungsaufwand zu rechnen ist. Die Schüler/innen entscheiden selbst, welche Spikes sie durchführen. Als "Starthilfe" kann die Lehrperson ein kleines Programm vorgeben, dass erkennen lässt, wie die Architektur des Zielsystems in etwa aussehen könnte (architectual spike). Die Schüler/innen können es ausprobieren, abwandeln und als Ausgangspunkt für ihre eigene Entwicklung verwenden.

6 Für den Chatroom dient ein Miniatursystem bestehend aus einer statischen HTML-Seite mit Formular (Abb. 1) und einem CGI-Skript (Abb. 2) als Architekturspike. Es illustriert einige Grundtechniken der CGI-Programmierung: Variablenwerte aus einem Formular übernehmen (#2), ein HTTP-Paket durch Formatierung eines konstanten Strings mit variablen Teilen erzeugen (#3), einen Variableninhalt (hier der Name des Chat-Teilnehmers) während eines Dialoges in einem Hidden-Feld verfügbar halten (#1). <html> <head> <title>chat Login</title> </head> <body bgcolor=#e0e0e0> <font face="verdana"> <h2> Welcome to our chat room</h2> Please enter your first name or a pseudonym and click on "Login"!<br> <form action="http://www.media-objects.de/cgibin/schule/chatlogin_spike.py" method="post"> Name: <input type="entry" name="name" > <input type="submit" value="login"> </form> </font> </body> </html> Abbildung 1: Statische Webseite mit Formular HTML-Text und Screenshot

7 #!/usr/bin/python ANTWORT = '''content-type: text/html <html> <head><title>chat Login</title></head> <body bgcolor=#e0e0e0> <font face="verdana"> <h2> English Chat Room</h2> Thank you for coming, %s. Have a lot of fun! <form action="http://www.media-objects.de/cgibin/schule/chat_spike.py" method="post"> <input type="hidden" name="name" value="%s"> #1 <input type="submit" value="enter chat room"> </font></body> </html>''' import cgi form = cgi.fieldstorage() name = form.getvalue('name') #2 print ANTWORT % (name, name) #3 Abbildung 2: CGI-Skript (Python) und die von diesem Skript dynamisch erzeugte Webseite 3.5 Durchführung einer Iteration programmieren und beobachten Das Programm wird inkrementell im Verlaufe mehrerer Iterationen implementiert. Ein praktikables Maß für die zeitliche Länge einer Iteration in der Schule sind drei Unterrichtsstunden (eine Woche). Da man auch Zeit für Planungen und und andere organisatorische Dinge abziehen muss, bleiben vielleicht Minuten reine Programmierzeit, mit der man kalkulieren kann. Die Iteration beginnt mit einer Planungsrunde des Teams. Es werden noch nicht implementierte Stories der Release- Planung ausgewählt. Stories besonders hoher Priorität werden bevorzugt. Details der Funktionalität, die aus der Story nicht hervorgehen, müssen mit dem Customer geklärt und Testfälle entwickelt werden. Die erste Iteration ist ein Sonderfall. Sie sollte ein Ergebnis liefern, das in groben Zügen bereits die Architektur des Gesamtsystems erkennen lässt. Bei den letzten Iterationen spielt die Überarbeitung (Refactoring) des Programmtextes im Hinblick auf gute Performanz und übersichtliche Struktur eine zunehmende Rolle.

8 Die ausgewählten Stories werden an die Programmierpaare verteilt und von ihnen bearbeitet. Die Teams beobachten ihren Entwicklungsprozess. Dabei spielt die Uhr eine besondere Rolle. Die Schüler/innen messen, wie viel Zeit sie tatächlich für die Implementierung einer Story benötigt haben und vergleichen diesen Wert mit der zuvor geschätzten Zeit. So ermittelt das Team seine Arbeitsgeschwindigkeit (velocity) und kann in späteren Iterationen den Zeitaufwand besser vorhersagen. Pascal Van Cauwenberghe und Vera Peeters haben ein amüsantes Spiel ausgearbeitet (XP Game), in dem man in Miniiterationen von 90 Sekunden Aufwandsabschätzungen üben kann [vcp03]. Stories werden von den Programmierpaaren möglichst unabhängig voneinander implementiert. Das separat getestete Programmfragment wird direkt nach Fertigstellung in die aktuelle Version integriert (kontinuierliche Integration). Am Ende jeder Iteration steht ein lauffähiges Programm (Zwischenergebnis), das dem Customer (hier: der Lehrperson) gezeigt wird. Der Customer führt Akzeptanztests durch. Dabei können unerwünschte Eigenschaften sichtbar werden. Zu deren Beseitigung werden neue Stories geschrieben und in nachfolgenden Iterationen bearbeitet. 3.6 Test Driven Development (TDD) Beim XP beginnt man die Implementierung einer Story mit der Formulierung eines Testszenariums (Testdaten und erwartete Ergebnisse) und der Entwicklung einer Testumgebung. Diese Vorgehensweise nennt man Test Driven Development (TDD). Für Schüler, die die Semantik der von ihnen verfassten Programmzeilen erst noch lernen und noch Sicherheit bezüglich ihrer mentalen Konzepte finden müssen, ist das Testen besonders wichtig. Durch Testen wird Programmieren zum Experimentieren. Betrachten wir als Beispiel die Story 4 des Chatrooms. Sie besagt, dass Wortbeiträge, die nicht in englischer Sprache verfasst sind, unterdrückt werden sollen. Die Funktion testenglisch() im folgenden Skript prüft mit Hilfe eines regulären Ausdrucks einen Text und entscheidet ob er englisch ist oder nicht. def testenglish(s): #1 """Liefert True, wenn s einen englischen Text enthaelt, und False sonst >>> testenglish("my name is Mike") True >>> testenglish ("Wo lebst du?") False >>> testenglish ("127") True """ import re assert type(s) == type("a") reg = "[mm]y\s \sthe\s \sis\s" if re.findall(reg, s): return True else: return False

9 Das Beispiel illustriert eine einfache Möglichkeit des automatischen Testens mit dem Python-Modul doctest [We05a]. Unterhalb der Kopfzeile der Funktionsdefinition (#1) steht zwischen dreifachen Anführungszeichen ein sogenannter Docstring. Er wird normalerweise als Kommentar interpretiert und vom Laufzeitsystem übersprungen. Dieser Docstring enthält einige Testaufrufe der Funktion und in der Zeile darunter jeweils das erwartete Ergebnis. Nach der Idee des TTD formuliert man zuerst dieses Testszenarium, bevor man sich an die eigentliche Impelmentierung begibt. Nun ist es möglich die Funktion mit Hilfe des Moduls doctest zu testen. Dann wird der Docstrimg interpretiert ob alle aufgeführten Funktionsaufrufe das erwartete Ergebnis zurückgeben. 3.7 Refactoring Das Endprodukt einer Software-Entwicklung muss nicht nur die vereinbarte Funktionalität besitzen sondern auch anderen (nichtfunktionalen) Qualitätsansprüchen genügen. Dazu gehören z.b. gute Änderbarkeit und Wartungsfreundlichkeit, verständlicher Programmtext und übersichtliche Klassenstruktur. Die Idee von XP ist, dass hohe technische Qualität nicht durch ausführliche Vorplanung in einer Entwurfsphase erreicht werden kann sondern erst später im Laufe des Entwicklungsprozesses entsteht. Zur Verbesserung der Qualität muss der gesamte Programmtext immer wieder von Grund auf umgearbeitet werden. Man nennt dies Refactoring. Mit dem Refactoring ist verbunden, es keine isolierten Verantwortlichkeiten einzelner Programmierer für einzelne Module gibt, sondern der gesamte Programmtext dem ganzen Team gehört (collective ownership of code). Typische Refactoring-Maßnahmen sind Einfügen und Verbessern von Kommentaren, Umbenennen von Klassen, Methoden und Attributen oder das Aufteilen größerer Klassen in kleinere. Refactoring ist eine logische Konsequenz des Dazulernens während eines Entwicklungsprozesses. Man muss erst einmal etwas Programmtext geschrieben haben um zu erkennen, dass es auch besser geht. 3.8 Dokumentation des Entwicklungsprozesses Big Visible Charts im Computerlabor Zum XP gehört die Beobachtung und Dokumentation des Software- Entwicklungsprozesses auf der Big Visible Chart (BVC). Das ist ein großes handgezeichnetes Plakat mit Diagrammen, die verschiedene Facetten des Prozesses visualisieren. Die waagrechte Achse ist die Zeitachse; Zeiteinheit ist meist ein Tag oder eine Iteration. So kann man z.b. festgehalten, wie viele erfolgreiche und nicht erfolgreiche Tests während einer Iteration durchgeführt worden sind. Die Lehrperson kann einige Dinge vorgeben, die jede Gruppe protokollieren muss. Die Schüler sollten aber außerdem ermuntert werden, sich selbst weitere Diagramme auszudenken. Abbildung 3 zeigt ein Beispiel. Die erhobenen Daten betreffen nicht allein das Softwareprodukt, sondern auch Rahmenbedingungen, die auf den Entwicklungsprozess Einfluss haben. Dies lässt die Lehrperson rechtzeitig Probleme erkennen. Ein Team kann über ihre BVC zum Ausdruck bringen, was seine Arbeit behindert und was sie fördert.

10 Anzahl Tests pro Iteration erfolgreich nicht erfolgreich insgesamt implementierte Stories Ziel Anzahl der Tipps der Lehrerin hilfreich nicht hilfreich/ irreführend 2 fehlende Teammitglieder Abbildung. 3 Diagramme der Big Visible Chart Das Geheimnis des Erfolges der BVC liegt offenbar darin, dass sie öffentlich ist und jedermann, der den Raum betritt, ins Auge springt. Digitale Dokumentationen, die nur über das Netz erreichbar sind und erst aufgerufen werden müssen, ersetzen nicht die BVC [Je04]. 4 Fazit Development is Learning sagt Kent Beck, der Hauptprotagonist des Extreme Programming [Be03]. Eine Softwareentwicklungsmethodologie, die Dazulernen unterstützt, sollte eigentlich ein gutes Vorbild für die Gestaltung von Informatikprojekten in der Schule sein. Freilich müssen die Methoden der Profis an die besonderen Bedingungen der Schule (Zeitknappheit, Korsett des 45-Minuten-Takts, Räumlichkeiten) angepasst werden. Oder umgekehrt. Literaturverzeichnis [KP93] Koerber, Bernhard; Peters, Ingo-Rüdiger: Planungsstrukturen bei größeren Unterrichtsvorhaben - Theorie und Praxis der Planung informatischer Bildungsprozesse bei komplexen Problemlösungen. In: Login 13 (1993) Heft 6. [Be03] Beck, Kent: Extreme Programming Explained, Addison-Wesley [JAH00] Jeffries, Ron; Anderson, Ann; Hendrickson, Chet: Extreme Programming Installed. Addison-Wesley [Je04] Jeffries, Ron: Big Visible Charts. XP Magazine (XProgramming.com) [vcp03] Van Cauwenberghe, Pascal; Peeters, Vera: The XP Game [Wa02] Wake, William C.: Extreme Programming Explored. Addison-Wesley [We05] Weigend, Michael: Python gepackt. 2. Aufl. Bonn (mitp) [We05a] Weigend, Michael: Objektorientierte Programmierung mit Python. 2. Aufl. Bonn (mitp) 2005.

Projekt: Requirements Engineering Sommersemester 2002. Anforderungsspezifikation im X-Treme Programming

Projekt: Requirements Engineering Sommersemester 2002. Anforderungsspezifikation im X-Treme Programming Projekt: Requirements Engineering Sommersemester 2002 Vortrag von Bernd Simmchen Anforderungsspezifikation im X-Treme Programming Gliederung 1 XP Eine kurze Einführung 2 Anforderungsspezifikation Klassisch

Mehr

Agile Softwareprozess-Modelle

Agile Softwareprozess-Modelle Agile Softwareprozess-Modelle Steffen Pingel Regionale Fachgruppe IT-Projektmanagement 2003-07-03 Beweglich, Lebhaft, Wendig Was bedeutet Agil? Andere Bezeichnung: Leichtgewichtiger Prozess Manifesto for

Mehr

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter Referat Extreme Programming Von Irina Gimpeliovskaja und Susanne Richter 1.) Was ist XP? Überlegte Annäherung an Softwareentwicklung Prozessmodell für objektorientierte Softwareentwicklung erfordert gute

Mehr

Software Engineering. 4. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2014

Software Engineering. 4. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2014 Software Engineering 4. Methodologien Franz-Josef Elmer, Universität Basel, HS 2014 Software Engineering: 4. Methodologien 2 Wie den Entwicklungsprozess organisieren? Dokumentieren Verwalten Instandhalten

Mehr

Projektmanagement. Dokument V 1.2. Oliver Lietz - Projektmanagement. Probleme bei Projekten

Projektmanagement. Dokument V 1.2. Oliver Lietz - Projektmanagement. Probleme bei Projekten Projektmanagement Agile Methoden: Extreme Programming / Scrum Dokument V 1.2 Probleme bei Projekten Viel Arbeit, die an den Zielen vorbeigeht Viel Dokumentation für f r unbenutzte Bestandteile Fehlende

Mehr

- Agile Programmierung -

- Agile Programmierung - Fachhochschule Dortmund Fachbereich Informatik SS 2004 Seminar: Komponentenbasierte Softwareentwicklung und Hypermedia Thema: - - Vortrag von Michael Pols Betreut durch: Prof. Dr. Frank Thiesing Übersicht

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Extreme Programming: Überblick

Extreme Programming: Überblick Extreme Programming: Überblick Stefan Diener / Apr 18, 2007 / Page 1 Prinzipien Rollen Planung Implementierung Praktiken weitere Vorgehensweisen Grenzen Inhalt Stefan Diener / Apr 18, 2007 / Page 2 Prinzipien

Mehr

extreme Programming Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis dpunkt.verlag Henning Wolf Stefan Roock Martin Lippert

extreme Programming Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis dpunkt.verlag Henning Wolf Stefan Roock Martin Lippert Henning Wolf Stefan Roock Martin Lippert extreme Programming Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis 2., überarbeitete und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Die

Mehr

Agile Software Development

Agile Software Development Dipl. Wirtsch. Ing. Alexander Werth Methoden der Softwareentwicklung 6-1 Agile Manifest Individuen und Interaktion statt Prozessen und Tools. Funktionierende Software statt umfangreicher Dokumentation.

Mehr

Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001

Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001 Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001 Tammo Freese OFFIS, Oldenburg freese@acm.org http://www.tammofreese.de Frank Westphal unabhängiger Berater westphal@acm.org http://www.frankwestphal.de

Mehr

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann Extreme Programming Referat von Viktoria Schwarzhaupt und Andrea Schuhmann 1. Was ist XP - Prozessmodell für die objektorientierte Softwareentwicklung - leichter Softwareentwicklungsprozess Analyse Design

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Softwareentwicklung Probleme bei großer Software Life-Cycle-Modelle Teilphasen eines Software-Projekts Methoden und Werkzeuge 01101101 01011001 11010011 10011000 00000011 00011100

Mehr

extreme Programming (XP)

extreme Programming (XP) Softwaretechnik SS2005 Tobias Giese Masterstudiengang Informatik HS-Harz Agenda Allgemeines Vorgehensmodell Kommunikation und Arbeitsphilosophie Entwicklungsphasen / Extreme Rules Planung Entwurf Implementierung

Mehr

Water-Scrum-Fall Ein Entwicklungsprozess mit Zukunft? Bernhard Fischer

Water-Scrum-Fall Ein Entwicklungsprozess mit Zukunft? Bernhard Fischer Water-Scrum-Fall Ein Entwicklungsprozess mit Zukunft? Bernhard Fischer Wasserfall vs. Agile: Eine Erfolgsstory 2 Umsetzung agiler Prinzipien Entwicklungsprozess 2009 30.6% 13.4% 20.6% 35.4% Agil Iterativ

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

RE-Metriken in SCRUM. Michael Mainik

RE-Metriken in SCRUM. Michael Mainik RE-Metriken in SCRUM Michael Mainik Inhalt Agile Methoden Was ist SCRUM? Eine kurze Wiederholung Metriken Burn Down Graph Richtig schätzen Running Tested Features WBS/ Earned Business Value Business Value

Mehr

Software- Projektmanagement. Dokument V 1.2-2010. Oliver Lietz - Projektmanagement. Projektmodelle im Vergleich. Agil Extreme Programming /

Software- Projektmanagement. Dokument V 1.2-2010. Oliver Lietz - Projektmanagement. Projektmodelle im Vergleich. Agil Extreme Programming / Software- Projektmanagement Management- und Phasen-Modelle Vom Wasserfall bis Extreme Programming / Scrum Dokument V 1.2-2010 Projektmodelle im Vergleich Klassisch Wasserfall -Modell Spezifikation/Pflichtenheft

Mehr

ZuuL - Entwicklung eines Adventures

ZuuL - Entwicklung eines Adventures ZuuL - Entwicklung eines Adventures im Rahmen der Uni-Tage 2009 Team 120 Universität Hamburg 16./17. November 2009 Team 120 (Universität Hamburg) ZuuL - Entwicklung eines Adventures 16.11.09 1 / 21 Übersicht

Mehr

Agile Programmierung - Theorie II SCRUM

Agile Programmierung - Theorie II SCRUM Agile Programmierung - Theorie II SCRUM Arne Brenneisen Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Christian

Mehr

Extremes Programmieren

Extremes Programmieren Extremes Programmieren Übersicht, Demonstration, Erfahrungen ACM/GI Regionalgruppe Hamburg, 19.1.2001 Frank Westphal unabhängiger Berater westphal@acm.org http://www.frankwestphal.de Tammo Freese OFFIS,

Mehr

(und was wir davon lernen können!)

(und was wir davon lernen können!) extreme Programming (und was wir davon lernen können!) extreme Programming Eine Einführung - basierend auf Kent Beck: extreme Programming explained Addison Wesley (2000) http://www.extremeprogramming.org

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander?

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander? INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung Rütistrasse 9, Postfach 5401 Baden, Switzerland Phone: +41 56 222 65 32 Internet: www.infogem.ch Robust und Agil gegeneinander oder miteinander?

Mehr

IT-Projekt-Management

IT-Projekt-Management IT-Projekt-Management email: vuongtheanh@netscape.net http: www.dr-vuong.de 2005 by, Bielefeld Seite 1 Vorgehensmodell 2005 by, Bielefeld Seite 2 Was ist ein Vorgehensmodell? Strukturbeschreibung über

Mehr

RE bei agilen Methoden

RE bei agilen Methoden 1 RE bei agilen Methoden Dipl. Inform. stefan.roock@itelligence.de it Workplace Solutions GmbH Vogt-Kölln-Strasse 30 22527 Hamburg Germany Agiles Manifest We are uncovering better ways of developing software

Mehr

Wie funktioniert agile Software-

Wie funktioniert agile Software- Wie funktioniert agile Software- Entwicklung mit SCRUM Zürich, 8. Mai 008 Jean-Pierre König, namics ag Software Engineer Bern, Frankfurt, Hamburg, München, St. Gallen, Zug, Zürich www.namics.com Agenda»

Mehr

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Extreme Programming Agiles Manifest Individuen und Interaktion wichtiger als Prozesse und Werkzeuge Laufende Software wichtiger als vollständige

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Taking RM Agile CLICK TO EDIT MASTER OPTION 1 Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Click to edit Master subtitle style Christian Christophoridis Requirements Management

Mehr

Extreme Programming. Frank Gerberding LINEAS Informationstechnik GmbH Theodor-Heuss-Straße 2 D-38122 Braunschweig

Extreme Programming. Frank Gerberding LINEAS Informationstechnik GmbH Theodor-Heuss-Straße 2 D-38122 Braunschweig Extreme Programming Frank Gerberding LINEAS Informationstechnik GmbH Theodor-Heuss-Straße 2 D-38122 Braunschweig Stand: 11.06.2007 LINEAS Gruppe - Zahlen und Fakten LINEAS Gruppe Branche Software- und

Mehr

Test-Driven Developement Eine Einführung

Test-Driven Developement Eine Einführung Test-Driven Developement Eine Einführung 2007 by Tobias Hagen Im Rahmen der Veranstaltung Aktuelle Themen der Informatik bei Prof. Dr. Friedbert Kaspar Hochschule Furtwangen University Übersicht Einführung...

Mehr

Empirische Evidenz von agilen Methoden. Seminar in Software Engineering Wintersemester 03/04

Empirische Evidenz von agilen Methoden. Seminar in Software Engineering Wintersemester 03/04 Empirische Evidenz von agilen Methoden Seminar in Software Engineering Wintersemester 03/04 Agenda Einleitung Bedeutung von agil Kurzübesicht agiler Methoden Überprüfung des (agilen) Erfolges Ausgewählte

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Extremes Programmieren

Extremes Programmieren Extremes Programmieren Übersicht, Demonstration, Erfahrungen ACM/GI Regionalgruppe Hamburg, 16.3.2001 Frank Westphal unabhängiger Berater westphal@acm.org http://www.frankwestphal.de Tammo Freese OFFIS,

Mehr

Grundlegende Veränderungen in der Software-Dokumentation durch agile Entwicklung?

Grundlegende Veränderungen in der Software-Dokumentation durch agile Entwicklung? Grundlegende Veränderungen in der Software-Dokumentation durch agile Entwicklung? Marlis Friedl Christina Wirth Comet Computer GmbH tekom-jahrestagung 2010 5. November, UA 17 Überblick Die agile Software-Entwicklung

Mehr

Softwareentwicklungsprozesse. 18. Oktober 2012

Softwareentwicklungsprozesse. 18. Oktober 2012 Softwareentwicklungsprozesse 18. Oktober 2012 Überblick Was soll ein Softwareentwicklungsprozess leisten? Überblick über Softwareentwicklungsprozesse Welche gibt es? Warum gibt es mehrere? Diskussion:

Mehr

Was fehlt Scrum? 31. März 2014 Erich Oswald CTO Ergon Informatik AG

Was fehlt Scrum? 31. März 2014 Erich Oswald CTO Ergon Informatik AG Was fehlt Scrum? 31. März 2014 Erich Oswald CTO Ergon Informatik AG Scrum ist eine Erfolgsstory Aus der Praxis entstanden Nachweislich erfolgreich Gut geeignet für komplexe Probleme Produktentwicklung

Mehr

Projektmanagement Vorlesung 12/ 13

Projektmanagement Vorlesung 12/ 13 Folie 1 Projektmanagement Vorlesung 12/ 13 Prof. Adrian Müller, PMP FH Kaiserslautern phone: +49 6332 914-329 http://www.fh-kl.de/~amueller Folie 2 Inhalte Agile Modelle Manifesto Übersicht XP Prinzipien

Mehr

Open Source Projekte im Informatikunterricht. Tim Tenbusch

Open Source Projekte im Informatikunterricht. Tim Tenbusch Open Source Projekte im Informatikunterricht Tim Tenbusch Gliederung Einleitung Herkömmlicher Ansatz Rahmenbedingungen Didaktische Überlegungen Projektarbeit Unterrichtsreihe Fazit OSS in Schulen In vielen

Mehr

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013!

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013! Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013! Sie wollen alles über agile Softwareentwicklung wissen? Wie können Sie agile Methoden

Mehr

FALLSTRICKE IM AGILEN ANFORDERUNGSMANAGEMENT ODER WIE BEKOMME ICH MIT USER STORIES VON DEN GEEKS WAS ICH WILL?

FALLSTRICKE IM AGILEN ANFORDERUNGSMANAGEMENT ODER WIE BEKOMME ICH MIT USER STORIES VON DEN GEEKS WAS ICH WILL? FALLSTRICKE IM AGILEN ANFORDERUNGSMANAGEMENT ODER WIE BEKOMME ICH MIT USER STORIES VON DEN GEEKS WAS ICH WILL? Steffen Thols - REConf 2012 07.03.2012 2 ÜBER MICH Name : Steffen Thols Berufserfahrung: Einige

Mehr

AGILE SOFTWAREENTWICKLUNG NACH BERTRAND MEYER (AGILE!)

AGILE SOFTWAREENTWICKLUNG NACH BERTRAND MEYER (AGILE!) HOCHSCHULE ESSLINGEN FAKULTÄT INFORMATIONSTECHNIK STUDIENGANG SOFTWARETECHNIK UND MEDIENINFORMATIK AGILE SOFTWAREENTWICKLUNG NACH BERTRAND MEYER (AGILE!) WISSENSCHAFTLICHE PRÜFUNG WOJCIECH LESNIANSKI 22.01.2016

Mehr

Lego MindStorms Implementierung für Etoys

Lego MindStorms Implementierung für Etoys NXTeToys Lego MindStorms Implementierung für Etoys NXTeToys Gruppe 5 Tobias Schubotz, Björn Groneberg, Florian Westphal, Felix Leupold, Richard Meißner, Gerardo Navarro Suarez Motivation 2 Kinder lernen

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander?

INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung. Robust und Agil gegeneinander oder miteinander? INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung Rütistrasse 9, Postfach 5401 Baden, Switzerland Phone: +41 56 222 65 32 Internet: www.infogem.ch Robust und Agil gegeneinander oder miteinander?

Mehr

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes Programmieren mit Java. Test Driven Development Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test

Mehr

Software Engineering

Software Engineering Software Engineering Prof. Adrian A. Müller, PMP Fachbereich Informatik und Mikrosystemtechnik Fachhochschule Kaiserslautern, Standort Zweibrücken Prof. A. Müller, FH KL Software Engineering WS '11/'12

Mehr

Einführung in Scrum. Agiles Projektmanagement. Martin Krüger 27.04.2011 Entwicklung von Workflowanwendungen

Einführung in Scrum. Agiles Projektmanagement. Martin Krüger 27.04.2011 Entwicklung von Workflowanwendungen Einführung in Scrum Agiles Projektmanagement Martin Krüger 27.04.2011 Entwicklung von Workflowanwendungen Warum Agiles Projektmanagement? Scrum Empfehlungen Das Seminar Planbarkeit Warum Agiles Projektmanagement?

Mehr

Ganzheitliches IT-Projektmanagement

Ganzheitliches IT-Projektmanagement Ganzheitliches IT-Projektmanagement Kapitel 2 nach dem Buch: Ruf, Walter; Fittkau, Thomas: "Ganzheitliches IT-Projektmanagement" Wissen - Praxis - Anwendungen R. Oldenbourg Verlag München - Wien 2008;

Mehr

3. Vorgehensmethoden/Prozessmodelle

3. Vorgehensmethoden/Prozessmodelle 3. Vorgehensmethoden/Prozessmodelle Vorgehensmethode/Prozessmodell: Ablauforganisation des Projektes für eine effektive und zielgerichtete Softwareentwicklung Wasserfallmodell Spiralmodell Agiles Vorgehen

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Kundenanforderungen dokumentieren

Kundenanforderungen dokumentieren Requirements Engineering Kundenanforderungen dokumentieren Bereich Anforderungen Aktivität Kunden-Anforderungen erheben Ziele Gesteigerte Kundenzufriedenheit Dokumentation der genauen Erwartungen des Kunden

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Qualitätssicherungskonzept

Qualitätssicherungskonzept Qualitätssicherungskonzept Web Annotation mit Fragment Ids Gruppe: swp12-9 Inhaltsverzeichnis 1. Dokumentationskonzept...2 1.1. Quelltexte...2 1.2. Änderungsdokumentation...4 1.3. Modellierungsdokumentation...4

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Modulare Programmierung Test Driven Development Refactoring Modular programmierung der

Mehr

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing. SOFTWARETECHNIK Kapitel 7 Vorgehensmodelle Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing. Armin Zimmermann Inhalt Vorgehensmodelle Sequenzielle Modelle Iterative

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Agile Softwareentwicklung

Agile Softwareentwicklung Agile Softwareentwicklung Werte, Konzepte und Methoden von Wolf-Gideon Bleek, Henning Wolf 2., aktualisierte und erweiterte Auflage Agile Softwareentwicklung Bleek / Wolf schnell und portofrei erhältlich

Mehr

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12 Vertretung von Prof. Dr. Blume WS 2011/12 Inhalt Test, Abnahme und Einführung Wartung- und Pflegephase gp Vorlesung Zusammenfassung Produkte und Recht (Folien von Prof. Blume) 2 , Abnahme und Einführung

Mehr

Value Delivery and Customer Feedback

Value Delivery and Customer Feedback Value Delivery and Customer Feedback Managing Continuous Flow of Value Michael Reisinger Microsoft & ANECON Praxisupdate 2014 ANECON Software Design und Beratung G.m.b.H. Alser Str. 4/Hof 1 A-1090 Wien

Mehr

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme. Informatik I 05. November 2013 6. Python-, kommentieren, starten und entwickeln Informatik I 6. Python-, kommentieren, starten und entwickeln Bernhard Nebel Albert-Ludwigs-Universität Freiburg 05. November

Mehr

Agiles REQUIREMENTS ENGINEERING. Peter Hruschka hruschka@b-agile.de www.b-agile.de www.systemsguild.com. in der Praxis. Mein Ziel ist Ihr Erfolg:!

Agiles REQUIREMENTS ENGINEERING. Peter Hruschka hruschka@b-agile.de www.b-agile.de www.systemsguild.com. in der Praxis. Mein Ziel ist Ihr Erfolg:! Agiles EQUIEMENTS ENGINEEING in der Praxis Peter Hruschka hruschka@b-agile.de www.b-agile.de www.systemsguild.com Software- und System-Engineering: Von der Vision einer besseren Welt...!... zur industriellen

Mehr

Unit Testing, SUnit & You

Unit Testing, SUnit & You HUMBOLDT-UNIVERSITÄT ZU BERLIN MENSCH-TECHNIK-INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Unit Testing, SUnit & You

Mehr

Das Who s Who der agilen Methoden Golo Roden

Das Who s Who der agilen Methoden Golo Roden Das Who s Who der agilen Methoden Golo Roden www.goloroden.de www.des-eisbaeren-blog.de Über mich > Wissensvermittler und Technologieberater >.NET, Codequalität und agile Methoden > MVP für C#, zweifacher

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Agile Entwicklung nach Scrum

Agile Entwicklung nach Scrum comsolit AG Hauptstrasse 78 CH-8280 Kreuzlingen Tel. +41 71 222 17 06 Fax +41 71 222 17 80 info@comsolit.com www.comsolit.com Agile Entwicklung nach Scrum Seite 1 / 6 Scrum V 1.0 1. Wieso Scrum Die Entwicklung

Mehr

Agile Software-Entwicklung: Überblick und Techniken. Prof. Dr. Stefan Kowalewski Dr. Carsten Weise 1/29

Agile Software-Entwicklung: Überblick und Techniken. Prof. Dr. Stefan Kowalewski Dr. Carsten Weise 1/29 Agile Software-Entwicklung: Überblick und Techniken Prof. Dr. Stefan Kowalewski Dr. Carsten Weise 1/29 Kapitel I Der agile Ansatz 2/29 Agilität agil = flink, beweglich geringer bürokratischer Aufwand wenige

Mehr

1. Grundbegriffe des Software-Engineering

1. Grundbegriffe des Software-Engineering 1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen

Mehr

Klausur mit Lösungshinweisen zur Vorlesung Planung und Entwicklung von IuK-Systemen Sommersemester 2005 02. August 2005 Deckblatt Hinweise

Klausur mit Lösungshinweisen zur Vorlesung Planung und Entwicklung von IuK-Systemen Sommersemester 2005 02. August 2005 Deckblatt Hinweise Klausur mit Lösungshinweisen zur Vorlesung Planung und Entwicklung von IuK-Systemen Sommersemester 2005 02. August 2005 Deckblatt Hinweise Die Bearbeitungszeit der Klausur beträgt 90 Minuten. Es sind alle

Mehr

Softwaretechnikpraktikum SS 2004. Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Softwaretechnikpraktikum SS 2004. Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal Softwaretechnikpraktikum SS 2004 Qualitätsmanagement I 5. Vorlesung 1. Überblick Planungsphase Definitionsphase Entwurfsphase Implem.- phase Fragen Was ist Qualität? Wie kann man Qualität messen? Wie kann

Mehr

Ausgangslage, Rolle und Auftrag

Ausgangslage, Rolle und Auftrag Ausgangslage, Rolle und Auftrag zum Modul 118 - Analysieren und strukturiert implementieren. Technische Berufsschule Zürich Seite 1 von 9 Frey A. /Sägesser A. Auftragsbeschreibung im Detail Sie haben sich

Mehr

Scrum technische Umsetzung und kaufmännische Rahmenbedingungen

Scrum technische Umsetzung und kaufmännische Rahmenbedingungen Scrum technische Umsetzung und kaufmännische 9. Darmstädter Informationsrechtstag 2013 Darmstadt, 15. November 2013 Franziska Bierer 2 andrena ojects ag Gründung 1995 Standorte in Karlsruhe und Frankfurt

Mehr

Bewertung von MS Robotics Studio von Robert Grandl

Bewertung von MS Robotics Studio von Robert Grandl Bewertung von MS Robotics Studio von Robert Grandl Positive Aspekte Die Oberfläche wurde seit der Version 1.0 deutlich auf gewährtet. Das System von Visual Programming Language ermöglicht es die Programmlogik

Mehr

Das Wasserfallmodell - Überblick

Das Wasserfallmodell - Überblick Das Wasserfallmodell - Überblick Das Wasserfallmodell - Beschreibung Merkmale des Wasserfallmodells: Erweiterung des Phasenmodells Rückkopplungen zwischen den (benachbarten) Phasen sind möglich Ziel: Verminderung

Mehr

Agile Systemadministration (ASA)

Agile Systemadministration (ASA) Agile Systemadministration (ASA) marcel.wegermann@it-agile.de http://www.it-agile.de { Agenda I. Ausgangspunkt II. Vorgehensweisen III. Projektmanagement IV. Status Quo Der Ausgangspunkt Agiles Manifest

Mehr

SCRUM. Scrum in der Software Entwicklung. von Ernst Fastl

SCRUM. Scrum in der Software Entwicklung. von Ernst Fastl SCRUM Scrum in der Software Entwicklung von Ernst Fastl Agenda 1. Die Entstehung von Scrum 2. Überblick über den Prozess 3. Rollen 4. Meetings 5. Artefakte 6. Fragen & Antworten Agenda 1. Die Entstehung

Mehr

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren?

Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Ergebnisse der Untersuchung zur Eignung einer Programmiersprache für die schnelle Softwareentwicklung kann der Informatikunterricht davon profitieren? Zur Diplomarbeit: Eignet sich die Skriptsprache Python

Mehr

Inhaltsverzeichnis. Inhaltsverzeichnis... I. 1 Problemstellung... 1. 2 V-Modell... 1. 2.1 Allgemeines... 1. 2.2 Anwendung des V-Modells...

Inhaltsverzeichnis. Inhaltsverzeichnis... I. 1 Problemstellung... 1. 2 V-Modell... 1. 2.1 Allgemeines... 1. 2.2 Anwendung des V-Modells... Inhaltsverzeichnis Inhaltsverzeichnis... I 1 Problemstellung... 1 2 V-Modell... 1 2.1 Allgemeines... 1 2.2 Anwendung des V-Modells... 3 3 SCRUM-Modell... 4 3.1 Allgemeines... 4 3.2 Anwendung des SCRUM-Modells...

Mehr

Praxisbericht und Demo-Projektabwicklung mit der ATLASSIAN Toolchain und Continuous Integration. Markus Stollenwerk, Noser Engineering AG

Praxisbericht und Demo-Projektabwicklung mit der ATLASSIAN Toolchain und Continuous Integration. Markus Stollenwerk, Noser Engineering AG Praxisbericht und Demo-Projektabwicklung mit der ATLASSIAN Toolchain und Continuous Integration Markus Stollenwerk, Noser Engineering AG Agile Softwareentwicklung Crash-Kurs Markus Stollenwerk, 27.9.2013

Mehr

Agile Methoden. David Tanzer. Oliver Szymanski

Agile Methoden. David Tanzer. Oliver Szymanski Agile Methoden David Tanzer Oliver Szymanski Ziel von Softwareentwicklung Anforderungen zuverlässig und effizient in lauffähige Software verwandeln. Ziel von Softwareentwicklung Bedürfnisse des Kunden

Mehr

Anforderungsermittlung mit Extreme Programming (XP) - Erfahrungen aus der Praxis

Anforderungsermittlung mit Extreme Programming (XP) - Erfahrungen aus der Praxis Anforderungsermittlung mit Extreme Programming (XP) - Erfahrungen aus der Praxis Stefan Roock, roock@jwam.de APCON Workplace Solutions GmbH & Universität Hamburg Vogt-Kölln-Strasse 30 22527 Hamburg Germany

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Python CGI-Skripte erstellen

Python CGI-Skripte erstellen Python CGI-Skripte erstellen CGI (Common Gateway Interface)... ist eine Schnittstelle, um Scripte im Web bereitzustellen. ist eine Schnittstelle zwischen einem HTTP-Server und ausführbaren Programmen.

Mehr

Mike Cohn Mit einem Vorwort von Kent Beck. User Stories. für die agile Software-Entwicklung mit Scrum, XP u.a.

Mike Cohn Mit einem Vorwort von Kent Beck. User Stories. für die agile Software-Entwicklung mit Scrum, XP u.a. Mike Cohn Mit einem Vorwort von Kent Beck User Stories für die agile Software-Entwicklung mit Scrum, XP u.a. Mike Cohn User Stories Übersetzung aus dem Amerikanischen von Martina Hesse-Hujber Bibliografische

Mehr

Kurzübersicht Unified Process und Agile Prozesse

Kurzübersicht Unified Process und Agile Prozesse Kurzübersicht Unified Process und Agile Prozes Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt.

Mehr

Grob- und Detailplanung bei der Implementierung nutzen

Grob- und Detailplanung bei der Implementierung nutzen Softwarearchitektur Grob- und Detailplanung bei der Implementierung nutzen Bereich Realisierung Aktivität Softwareinkrement realisieren Ziele Vermitteln einer Orientierungshilfe für alle Entwickler Etablierung

Mehr

Testmanagement im agilen Entwicklungsprozess

Testmanagement im agilen Entwicklungsprozess Testmanagement im agilen Entwicklungsprozess Unser Beratungsangebot für die effiziente Abwicklung von Projekten: n Anforderungen erkennen n Software-Qualität steigern n Teams zum Erfolg führen Unser Erfolgskonzept:

Mehr

Einführung in SCRUM. Helge Baier 21.01.2010

Einführung in SCRUM. Helge Baier 21.01.2010 Einführung in SCRUM Helge Baier 21.01.2010 Helge Baier Master of Computer Science (Software Engineering) über 10 Jahre Erfahrung in der Software Entwicklung Zertifizierung zum Scrum Master (2009) praktische

Mehr

Software-Lebenszyklus

Software-Lebenszyklus Software-Lebenszyklus Inhalt Vorgehensmodell/Phasenplan Wasserfallmodell WAS-Beschreibung WIE-Beschreibung Weitere Phasenmodelle: Spiral-Modell, V-Modell, RUP Extreme Programming SW-Qualitätssicherung

Mehr

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

Produktqualität in agilen Entwicklungsvorgehen. BITKOM Software Summit Frankfurt, 23. September 2014 Dominik Rost, Hartmut Schmitt

Produktqualität in agilen Entwicklungsvorgehen. BITKOM Software Summit Frankfurt, 23. September 2014 Dominik Rost, Hartmut Schmitt Produktqualität in agilen Entwicklungsvorgehen BITKOM Software Summit Frankfurt, 23. September 2014 Dominik Rost, Hartmut Schmitt 1 Motivation 2 Agile Entwicklungsvorgehen Status Quo vorwiegend eingesetzte

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Testen im Software- Entwicklungsprozess

Testen im Software- Entwicklungsprozess Technologie-Event 2006 Testen im Software- Entwicklungsprozess W.Lukas, INGTES AG Was nicht getestet wurde, funktioniert nicht. -- R.Güdel (ca. 1998) Seite 2 Was sollen wir tun? Anomalien & Defekte von

Mehr

Klassische vs. agile Methoden der Softwareentwicklung

Klassische vs. agile Methoden der Softwareentwicklung Klassische vs. agile Methoden der Softwareentwicklung Vorgetragen am 03. November 2004 durch Jonathan Weiss Emel Tan Erstellt für SWT Methoden und Werkzeuge zur Softwareproduktion Agenda I. Einleitung

Mehr

Kanban und Scrum mit JIRA und dem neuen Greenhopper Plugin

Kanban und Scrum mit JIRA und dem neuen Greenhopper Plugin Kanban und Scrum mit JIRA und dem neuen Greenhopper Plugin Atlassian User Group München, 17. Oktober 2012 Gerhard Müller, Leo von Klenze, TNG Technology Consulting GmbH Source: Henrik Kniberg, http://www.crisp.se/henrik.kniberg/presentations/scrum-intro-brief-henrik-kniberg.pdf

Mehr

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG

Mehr

Kapitel 12 Dokumentation und Zugriffsrechte

Kapitel 12 Dokumentation und Zugriffsrechte Kapitel 12 Dokumentation und Zugriffsrechte Seite 1 / 6 Kapitel 12 Dokumentation und Zugriffsrechte Lernziele: Dokumentation mit Hilfe von Javadoc Datenkapselung über Zugriffsrechte 12.1 Dokumentation

Mehr

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen

Mehr

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1996 Philippe Kruchten: Rational Unified Process Produkt der Firma Seit 2002 Teil des IBM Konzerns Objektorientiertes

Mehr