Kompetenzorientierte Lehre im Software Engineering

Die Seite wird erstellt Franziska Sauer
 
WEITER LESEN
Kompetenzorientierte Lehre
              im Software Engineering
                    Axel Böttcher und Veronika Thurner, Hochschule München
                                     ab | thurner@cs.hm.edu
                       Gerhard Müller, TNG Technology Consulting GmbH
                                  gerhard.mueller@tngtech.com

Zusammenfassung                                           steigt (Spitzer, 2006). Da dieser Entwicklung alleine
Software Engineering ist eine komplexe Aufgabe, die       mit erhöhter Packungsdichte in der Wissensvermitt-
von den Beteiligten ausgeprägte Kompetenzen in vie-       lung nicht mehr beizukommen ist, ist zwangsweise
len verschiedenen Bereichen fordert. Die Vermittlung      Selektion erforderlich. Eine „gute“ Selektion wird so-
dieser Kompetenzen über das reine Fachwissen hin-         mit zu einer der wesentlichen Herausforderungen bei
weg ist eine zentrale Aufgabe, die eine Software-         der Konzeption der Software-Engineering-Ausbildung.
Engineering-Ausbildung leisten muss, um Absolventen          Im Folgenden definieren wir zunächst kompeten-
für den Einsatz in der Praxis zu qualifizieren. Ausge-    zorientierte Lernziele für die Software-Engineering-
hend von den zu vermittelnden Kompetenzen zeigen          Ausbildung. Diese basieren im Wesentlichen auf drei
wir, wie wir in unserer Lehrpraxis mit Hilfe eines mög-   Quellen:
lichst einfach gehaltenen, aber so komplex wie nötig      •   klassischer Software-Engineering-Literatur,
gestalteten durchgängigen Beispiels sowie durch in-
novative Lehrmethoden praxisnah eine fundierte Ein-       •   einer umfangreichen Befragung von Absolventen
führung in die komplexen Tätigkeiten des Software             unserer Fakultät aus den letzten fünf Jahrgängen
Engineerings vermitteln.                                      sowie
                                                          •   Aussagen von Spezialisten aus der beruflichen Pra-
Motivation                                                    xis über die Eigenschaften und Fähigkeiten, die
                                                              sie von potenziellen neuen Mitarbeitern/innen er-
Anforderungen an Softwaresysteme werden heute zu-
                                                              warten.
nehmend umfangreicher und komplexer. Analog dazu
entwickeln sich auch die Technologien und Werkzeuge       Im Anschluss daran beschreiben wir ein Beispielpro-
für Software Engineering stetig weiter und werden im-     jekt und die zugehörigen Lehrkonzepte, die wir in den
mer mächtiger – und damit selbst komplexer. Da sich       Bachelor-Studiengängen Informatik sowie Wirtschafts-
diese Technologien und Werkzeuge laufend weiter           informatik einsetzen. Abschließend setzen wir die mit
entwickeln, ist die Halbwertzeit der dazu erworbenen      unserem Lehrkonzept gemachten Erfahrungen in Be-
Kompetenzen entsprechend kurz.                            ziehung zu den zuvor definierten Kompetenzzielen.
   Aufgrund der Menge und Komplexität des erfor-
derlichen Wissens und wegen der Größe der zu er-          Definition von Lernzielen
stellenden Systeme wird Software in der heutigen          Grundlage einer adäquaten Selektion von Ausbil-
Praxis nahezu immer im Team entwickelt. Neben den         dungsinhalten und -methoden ist die Definition der zu
rein technisch-fachlichen Kompetenzen werden da-          erreichenden Lernziele. In der Regel stellt die Definiti-
mit in zunehmendem Maße auch Fähigkeiten wichtig,         on dieser Lernziele bereits selbst eine Auswahl dar, da
die sich mit der Positionierung einer Einzelperson im     in der meist begrenzten verfügbaren Zeit realistischer
Team sowie mit der Integration und Interaktion aller      Weise nicht immer alle eigentlich gewünschten Ziele
Beteiligten untereinander befassen.                       erreicht werden können (Lehner, 2009).
   Eine Software-Engineering-Ausbildung, die nicht           Ausbildung und Lernziele müssen sich dabei zum
nur theoretisch fundiert, sondern auch praxisnah          einen an Kompetenzen auf unterschiedlichen Wissens-
und berufsbefähigend sein soll, muss diesen Entwick-      gebieten orientieren. Zum anderen sollen sie die Stu-
lungen Rechnung tragen. Hier stößt die Lehre sehr         dierenden auf die Übernahme verschiedener Rollen
schnell auf das heute bereits klassische Dilemma,         vorbereiten. Analog zu Schott und Ghanbari (Schott
dass die verfügbare Lernzeit in der initialen Ausbil-     u. Ghanbari, 2009) betrachten wir Kompetenzen als
dungsphase eines Menschenlebens seit Jahren in etwa       diejenigen Eigenschaften und Fähigkeiten, die man be-
konstant bleibt, die Menge des verfügbaren und als        sitzen muss, um eine bestimmte Menge von Aufgaben
wichtig empfundenen Wissens aber exponentiell an-         sinnvoll ausführen zu können.

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                             Seite 33 von 44
Softwarekompetenzen (SWEBOK)           Inf    WI        •   Modellierung und Entwurf
  Requirements                           ++     ++            Um eine „ordentliche“, d.h. professionelle und
  Design                                 ++     ++            nachhaltige Softwareentwicklung rein technisch-
  Construction                           ++      +            handwerklich überhaupt zu ermöglichken müssen
  Testing                                ++      +            Software-Ingenieure/innen modellieren und desi-
  Maintenance                             –      –            gnen können. Dazu gehören unter anderem auch
  Configuration Management                o      o            das Verständnis für bzw. der Einsatz von Design
  Engineering Management                  o      +            Patterns, SOLID-Prinzipien und ggf. Domain Dri-
  Engineering Process                     +     ++            ven Development (Evans, 2003).
  Engineering Tools and Methods           +      +
                                                          •   Beschreibung von Architekturen
  Quality                                 +      +            Software-Ingenieure/innen müssen in der Lage
                                                              sein, technische und fachliche Architekturen zu
Tabelle 1: Unsere Prioritäten für die Vermittlung der         konzipieren und so darzustellen, dass sie als klar
Kompetenzen (– –, –, o, +, ++) in den Bachelor-               verständliche Grundlage für die Kommunikation
Studiengängen Informatik (Inf) und Wirtschaftsinfor-          aller Projektbeteiligten dienen können.
matik (WI)                                                •   Einarbeitung in große, fremde Projekte
                                                              Softwaresysteme entstehen heute häufig im
                                                              Kontext bereits bestehender Systemlandschaf-
   Als Grundlage für die Definition von zu vermitteln-        ten. Eine wichtige Fähigkeit von Software-
den Kompetenzen und daraus abzuleitenden Lernzie-             Ingenieuren/innen ist somit die Einarbeitung in
len, empfiehlt sich zunächst der „Software Enginee-           umfangreiche fremde Projekte. Typische Aufga-
ring Body of Knowledge“ (Abran u. a., 2005). Die dort         benstellung ist das Bug-Fixing in fremdem Code,
genannten Kompetenzfelder haben wir für die Durch-            aber auch das Einbauen neuer Features in ein be-
führung der Lehre in den Bachelor-Studiengängen In-           stehendes System.
formatik und Wirtschaftsinformatik priorisiert und in
Tabelle 1 zusammengefasst. Der Themenbereich „Soft-       •   Gesamtsicht auf Zusammenspiel von Frameworks
ware Maintenance“ wird aktuell nur am Rande adres-            Moderne Softwaresysteme sind gekennzeichnet
siert. Das liegt unter anderem daran, dass Software           durch das Zusammenwirken vieler Bibliotheken
Maintenance zum einen sehr technologiespezifisch ist          und Frameworks. Jeder dieser Bausteine ist für
und zum anderen stark auf anderen Kompetenzen auf-            sich genommen nicht schwierig zu verstehen. Die
baut. Diese müssen somit zuerst vermittelt werden,            Integration dieser Frameworks in einem Produkt
bevor diese Thematik auf technisch anspruchsvollem            erhöht die Komplexität jedoch sprungartig. Ent-
Niveau behandelt werden kann.                                 sprechend müssen diese Bausteine in der Lehre
                                                              nicht nur einzeln, sondern auch in ihrer Gesamt-
   Als ergänzende Informationsquelle haben wir eine
                                                              sicht vermittelt werden.
Umfrage herangezogen, die unter unseren Absolven-
ten der Informatik und Wirtschaftsinformatik der letz-    •   Test Driven Development
ten Jahre durchgeführt wurde – also unter Personen,           Test Driven Development ist in der heutigen Praxis
die sich bereits mit den bei uns erworbenen Fähigkei-         eine Basistechnik der professionellen, nachhalti-
ten in der Industrie bewähren müssen. Darüber hinaus          gen Softwareentwicklung. Damit einher gehen das
befragten wir erfahrene Praktiker aus der Industrie,          Erlernen eines sauberen Designs, Continuous In-
welche konkreten Anforderungen die Praxis an unsere           tegration, Refactoring und Techniken wie das Pair
Absolventen stellt. Die auf diese Weise identifizierten       Programming.
Kompetenzbedarfe gliedern wir im Folgenden nach
den vier Bereichen Sach-, Methoden-, Selbst- und Sozi-    •   Verständnis für Lebensdauer von Code
alkompetenz (vergleiche (Schaeper u. Briedis, 2004)).         Die Praxis zeigt, dass der Quelltext geschäftsrele-
Dabei ordnen wir Kompetenzen, die mehr als einen              vanter Softwaresysteme oft über Jahrzehnte im
dieser Bereiche bedienen, demjenigen Kompetenzbe-             Einsatz bleibt. Entsprechend müssen Software-
reich zu, zu dem sie nach unserer Einschätzung den            Ingenieure/innen ein Verständnis für die Lebens-
stärksten Beitrag leisten.                                    dauer von Code entwickeln die Wichtigkeit von
                                                              Informationen erkennen, die in „Clean Code“ be-
Sachkompetenz                                                 schrieben sind (Martin, 2008). Daarüber hinaus
                                                              müssen Sie in der Lage sein, selbst sauberen Code
Der Bereich der Sachkompetenz fokussiert das erwor-           zu schreiben. Ebenfalls erforderlich ist ein Veständ-
bene Fachwissen und dessen zielgerichtete Anwen-              nis für die Kosten von Zeit.
dung. Hierzu zählen die in Tabelle 1 aufgelisteten
Kompetenzbereiche aus dem SWEBOK. Diese wurden            •   Größenordnungen verstehen
aus der Praxis durch die folgenden Kompetenzforde-            In der Praxis bestimmen nicht-funktionale Re-
rungen ergänzt.                                               quirements oft zu ca. 80% die Systemarchitek-

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                             Seite 34 von 44
tur, während die funktionalen Anforderungen im       •   „Faulheit", DRY-Prinzip
    Vergleich dazu eine eher untergeordnete Rolle            Das Prinzip des „Don’t Repeat Yourself“ bedeutet,
    spielen. Um auf systematische Weise adäquat              im Normalfall keine eigenen Frameworks bauen
    performante Systemarchitekturen konzipieren zu           wollen, Erkennen der Notwendigkeit Automatisie-
    können müssen Software-Ingenieure/innen ein              rung auf allen Ebenen in möglichst großem Um-
    Gefühl für Größenordnungen entwickeln, bei-              fang eu erreichen. Software lebt von der Wieder-
    spielsweise bzgl. algorithmischer Komplexität, An-       verwendung bewährter Konzepte und Lösungen.
    zahl der Transaktionen pro Sekunde, Speicher-            Die so genannten „Not Invented Here“-Lösungen
    bedarf pro Session, IO-Geschwindigkeit, CPU-             bedeuten eine Verschwendung von Ressourcen.
    Geschwindigkeit, Bandbreite, Ressourcenbedarf
    pro Benutzer oder in Summe, ... Darüber hinaus       •   Vernünftiges Maß an Pragmatismus
    ist ein Verständnig für die Auswirkungen dieser          In der beruflichen Praxis müssen ständig Entschei-
    Werte erforderlich sowie die Fähigkeit, ggf. pas-        dungen getroffen werden, ob etwa die Menge der
    sende Konsequenzen daraus herzuleiten. Ohne              Tests ausreichend ist, ob ein noch abstrakteres Fra-
    dieses Verständnis werden die erarbeiteten Lösun-        mework einzusetzen ist, oder ob an einer Stelle
    gen nicht auf angemessene Weise skalierbar.              noch mehr Optimierungsaufwand getrieben wer-
                                                             den soll etc. Um in solchen für ein Projekt kriti-
•   Aufwandsschätzung                                        schen Fragen vernünftig abwägen zu können, ist
    Aufwandsschätzungen bilden nicht nur die Grund-          viel Erfahrung erforderlich.
    lage für viele planerischen und organisatorischen
    Tätigkeiten im Software Engineering, sondern         •   Prägnantes Dokumentieren von Anforderungen
    beispielsweise auch für die Entscheidung zwi-            Die in Projekten auftretenden Probleme sind oft-
    schen verschiedenen Realisierungsalternativen.           mals weniger technischer Natur als vielmehr or-
    Um verlässliche Aussagen zu Machbarkeit, Zeit-           ganisatorischer Art. Software-Ingenieure/innen
    und Ressourcenbedarf treffen zu können müssen            müssen oft zuerst herausfinden, welches Problem
    Software-Ingenieure/innen Aufwände auf realis-           der Kunde eigentlich gelöst haben will. Hier ist
    tisch treffende Weise schätzen können.                   es insbesondere wichtig, Requirements kurz und
•   Vorgehensmodelle                                         prägnant aufschreiben zu können.
    Der in der Theorie gelegentlich verfolgte Grund-
    gedanke eines universell einsetzbaren Vorgehens-     •   Ausdrucks- und Schreibfähigkeit
    modells („One size fits all“) funktioniert in der        Software-Ingenieure/innen müssen in der Lage
    Praxis in der Regel nicht. Entsprechend müssen           sein, aussagekräftige, klar verständliche Doku-
    Software-Ingenieure/innen verschiedene Vorge-            mente und Dokumentation zu schreiben. „Ordent-
    hensmodelle wie z.B. Scrum, XP, Crystal-Familie,         liche“ Dokumente sind in der Praxis eine zentrale
    RUP und V-Modell-XT kennen und deren Vor- bzw.           Voraussetzung dafür, dass Lösungen bzw. Lösungs-
    Nachteile und Einsatzgebiete einschätzen können.         ideen von den Beteiligten verstanden und von den
    Insbesondere sind Kompetenzen sowohl zu klas-            Nutzern akzeptiert und eingesetzt werden und
    sisch ingenieurwissenschaftlichen als auch zu ak-        dass Lösungen weiterentwickelbar sind, ggf auch
    tuellen agilen Vorgehensmodellen von Nöten.              über einen längeren Zeitraum und mehrere Ent-
                                                             wicklergenerationen hinweg.
•   Beherrschung grundlegender Werkzeuge
    Damit alle Beteiligten auf technischer Ebene         Selbstkompetenz
    reibungsfrei zusammen arbeiten können ge-            Zum Bereich der Selbstkompetenz zählen Fähigkeiten,
    hört die Beherrschung grundlegender Werkzeuge        die eigene Situation wahrzunehmen, eigene Bedüfnis-
    zum elementaren Handwerkszeug von Software-          se zu erkennen und zu artikulieren, eigenverantwort-
    Ingenieuren/innen, wie beispielsweise die verwen-    lich zu handeln und über all diese Punkte selbstkri-
    dete IDE oder die Versionsverwaltung incl. Kennt-    tisch und konstruktiv zu reflektieren.
    nissen zu geeigneten Branching-Strategien.
Methodenkompetenz                                        •   Reflexions- und Kritikfähigkeit
                                                             Reflexions- und Kritikfähigkeit sind Grundvoraus-
Im Bereich der Methodenkompetenz sind grundlegen-
                                                             setzungen für eine erfolgreiche Berufstätigkeit,
de Arbeitstechniken zusammengefasst, sowie Fähig-
                                                             nicht nur im Umfeld des Software Engineerings.
keiten und Verfahren, die ein effektives, ergebnisori-
                                                             Ziel der Reflektion ist es, sich selbst und die
entiertes Arbeiten ermöglichen.
                                                             (Projekt-)Umgebung immer wieder zu hinterfra-
•   Denken in Systemen                                       gen, um so sicherzustellen, dass „das Richtige“
    Wer nicht in übergeordneten Strukturen denkt,            getan wird. Kritikfähigkeit ermöglicht es, das ggf.
    beschränkt sich auf lokale Optimierungen und             kritische Feedback Anderer nicht als persönlichen
    tendiert dazu, „echte“ Probleme nicht anzugehen.         Angriff zu werten, sondern als Verbesserungspo-
    Strukturprobleme anzugehen erfordert auch Mut.           tenzial anzuerkennen und daraus zu lernen. Auch

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                           Seite 35 von 44
das Geben von konstruktiv verwertbarem Feed-              der Fähigkeit, sinnvoll, effektiv und gerne (!) in ei-
    back ist in diesem Kontext eine wesentliche Schlüs-       nem Team zusammenzuarbeiten eine fundamenta-
    selkompetenz.                                             le Bedeutung zu: Wer das nicht kann, kann nichts
                                                              von dem, was er/sie kann, sinnvoll im komple-
•   Dinge „richtig“ machen                                    xeren Umgebungen einbringen. Zu den zentra-
    Die Informatik allgemein, und damit auch das              len Teilfähigkeiten gehören unter anderem eher
    Software Engineering, erfordern nicht nur eine            pragmatische Punkte wie ein freundlicher Um-
    präzise Denkweise und ein hohes Maß an Wis-               gangston, nett sein und zuhören können. Gerade
    sen, sondern auch eine ständige Aktualisierung            in kritischen Situationen gewinnt darüber hinaus
    dieses Wissens, um mit den ständig neuen Ent-             theoretisch fundiertes Wissen über Team-Regeln
    wicklungen Schritt halten zu können. Der Wunsch,          an Bedeutung, wie beispielsweise das Tucker-
    Dinge „richtig“ zu machen, gepaart mit dem Stre-          Modell, das Vier-Ohren-Modell von Schulz von
    ben nach lebenslangem Lernen und Verbessern,              Thun. Ebenfalls nützlich sind Change Manage-
    sollte in Software-Ingenieuren/innen intrinsisch          ment, wie z.B. (Rising u. Manns, 2004), sowie
    motiviert sein. Ohne diese Eigenschaft werden die         ein Grundstock an psychologischem Grundwissen,
    vielen Innovationen und die steigende Komplexi-           wie beispielsweise in (Vigenschow u. Schneider,
    tät eher als Belastung empfunden und nicht als            2007) beschrieben.
    Anreiz. In einer solchen Konstellation kann die In-
    formatik mit ihren vielen Änderungen auf Dauer          Nicht alle dieser eigentlich wünschenswerten Kom-
    keinen Spaß machen – und dann werden auch             petenzen können in der zur Verfügung stehenden Lehr-
    keine vernünftigen Ergebnisse erzielt.                und Lernzeit im vollen Umfang vermittelt werden. In
                                                          den Kompetenzbereichen, die wir nicht vollständig
•   Ethisches Handeln                                     bedienen können, soll unsere Ausbildung zumindest
    Softwaresysteme durchziehen heute nahezu al-          das Bewusstsein für die Notwendigkeit dieser Kompe-
    le Bereiche des beruflichen und privaten Le-          tenzen wecken, indem sie deutlich macht, für welche
    bens. Damit beeinflusst die Informatik in ho-         Aufgaben, Disziplinen und Rollen diese Kompetenzen
    hem Maße, wie andere Menschen leben und ar-           erforderlich sind.
    beiten. Software-Ingenieure/innen gestalten so-
    mit mehr oder weniger direkt die Zukunft. Dies        Lehrkonzept
    bringt nicht nur eine kaum absehbare Vielzahl an
                                                          Um dem Curriculum der von uns bedienten Bachelor-
    (Geschäfts-)Möglichkeiten mit sich, sondern auch
                                                          Studiengänge „Informatik“ und „Wirtschaftsinforma-
    ein sehr hohes Maß an Verantwortung für die Rol-
                                                          tik“ mit nur einem Beispiel gerecht zu werden konzi-
    le der Informatik in der Welt. Eine ganzheitliche
                                                          pierten wir dieses als eine moderne Webapplikation.
    Software-Engineering-Ausbildung sollte in ange-
                                                          Bislang kommt dieses Beispiel in folgenden Modulen
    henden Software-Ingenieuren/innen zumindest
                                                          zum Einsatz, deren Umfang jeweils bei zwei SWS se-
    das Bewusstsein für diese Verantwortung wecken,
                                                          minaristischem Unterricht und zwei SWS Praktikum
    sowie ein gewisses Maß an kritischem Weitblick
                                                          liegt und mit fünf ECTS-Punkten gewichtet ist:
    aufbauen und fördern.
Sozialkompetenz (Soft Skills)                             •   Modul „Software Engineering I“ im 3. Semester
                                                              des Bachelorstudiengangs Wirtschaftsinformatik
Der Bereich der Sozialkompetenz fokussiert schließ-
lich die Fähigkeit, die Bedürfnisse und Interessen an-    •   Modul „Software Engineering II“ im 4. Semester
derer Menschen wahrzunehmen, sich mit diesen aus-             des Bachelorstudiengangs Wirtschaftsinformatik
einander zu setzen und konstruktiv und erfolgreich
mit anderen Menschen zusammenzuarbeiten.                  •   Modul „Software-Architektur“ im 4. Semester des
                                                              Bachelorstudiengangs Informatik
•   Verständnis für Andere
    Software entsteht nicht in einem luftleeren Raum,     Die zu Größe der zu unterrichtenden Gruppen liegt
    sondern durch die Zusammenarbeit verschiedens-        bei etwa 45 Studierenden. Für das Praktikum werden
    ter Gruppen, wie beispielsweise Management, Be-       die Gruppen jeweils noch einmal geteilt.
    nutzer, Fachexperten, QA, Operations und vielen          Thematisch bildet das Beispiel ein Verleihsystem
    anderen. Schon die Zielfindung in einem Entwick-      namens ShareIt ab, über das ein Freundes- und Be-
    lungsprojekt erfordert intensive Kommunikation        kanntenkreis dingliche Ressourcen unterschiedlicher
    zwischen den Beteiligten sowie eine offene Wahr-      Art (wie z.B. Bücher, DVDs, Werkzeug, etc.) unterein-
    nehmung der Belange und Interessen aller Betei-       ander verleihen bzw. gemeinschaftlich nutzen kann.
    ligten.                                               Technisch ist die Beispielapplikation als klassische
                                                          drei-Schicht-Architektur realisiert. Fachlich gliedert
•   Teamfähigkeit                                         sich das Beispiel bisher in die Hauptbereiche „Benut-
    In der Praxis ist Software heutzutage fast immer      zerverwaltung“, „Verwaltung der Leihobjekte“ und
    das Produkt eines Teams. Entsprechend kommt           „Ausleihe“ (siehe Abbildung 1).

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                              Seite 36 von 44
Studierenden den im ersten Teil spezifizierten fachli-
                                               Verschiedene
                                               Benutzerrollen
                                                                                   chen Schnitt implementieren. Als Vorgabe erhalten sie
                                                                                   eine referenzimplementierung des ersten Schnittes.
                                           Fachliche Schnitte                         Software-Architektur: Lernziel ist hier die Fähig-
                                                                                   keit, moderne Architekturen für komplexe Software-
                                    Benutzer- Leihobjekte        Objekte
                                   verwaltung verwalten         ausleihen
                                                                            ....   Systeme zu bewerten, zu entwerfen, zu realisieren
                                                                                   und zu betreiben (kompetenzbereiche design. Con-
                                                                                   struction, Testing). Die Studierenden bekommen für
                         User                                                      den ersten fachlichen Schnitt sowohl eine Spezifikati-
 Schichten (Layers)

                       Interface
                                                                                   on als auch deren Implementierung als Vorgabe. Sie
                        Dienste                                                    müssen den zweiten fachlichen Schnitt implementie-
                      (Business-                                                   ren und bekommen dazu die Spezifikation als Vorga-
                        Logik)
                                                                                   be.
                                                                                      Als Lehrmethode im seminaristischen Unterricht
                         Daten-
                         zugriff                                                   wurde eine Mischung aus interaktiver Vorlesung, Ler-
                                                                                   nen durch Lehren, Gruppenpuzzle und Projektarbeit
                                                                                   in wechselnden Teams eingesetzt.

                                               Datenbank                           Abgleich Lehrkonzept vs. Lernziele
                                                                                   Nach den bisherigen Erfahrungen adressiert unser
                                                                                   Lehrkonzept eine Vielzahl der Schlüsselkompetenzen,
 Abbildung 1: Struktur des durchgängigen Beispiels                                 die aus der Praxis geforderten wurden.

                                                                                   Sachkompetenz
   Für den ersten fachlichen Schnitt, die Benutzerver-                             Die Studierenden durchlaufen im Rahmen der Projekt-
waltung, werden Planung, Analyse- und Entwurfsdo-                                  arbeit mindestens einen kompletten Softwareentwick-
kumente, Implementierung und umfangreiche Tests                                    lungszyklus, vom Skizzieren erster Anforderungen bis
den Studierenden als Lernmaterialien zur Verfügung                                 hin zum Integrationstest. Das vorgefertigte, durchgän-
gestellt. Diese dienen sowohl als veranschaulichendes                              gige Beispiel hilft dabei, neu eingeführte Techniken
Beispiel als auch als Vorlage für die von den Studie-                              und deren zielgerichtete Verwendung zu veranschau-
renden durchzuführenden Projektarbeiten.                                           lichen. Des Weiteren dient es als Anhaltspunkt für
   Der zweite fachliche Schnitt „Verwaltung der Leih-                              die Lösungsbestandteile, welche die Studierenden im
objekte“ ist ebenfalls ausgearbeitet, je nach Fokus der                            Rahmen ihrer Projektarbeit nach und nach selbst ent-
Lehrveranstaltung aber nur teilweise oder gar nicht für                            wickeln.
die Studierenden verfügbar. In der Lehrveranstaltung                                  Das Beispiel ist aktuell auf der Basis von Servlets
„Softwarearchitektur“ (Bachelor Informatik) erhalten                               implementiert. Als Frameworks kommen Hibernate,
die Studierenden die vorgefertigten Analyse- und Ent-                              Google Guice (Dependency Injection), Apache Click,
wurfsdokumente, die sie anschließend in eine funkti-                               Log4j und Selenium zum Einsatz. Die zugehörigen
onsfähige Implementierung umsetzen. In „Software                                   Technologien und Frameworks werden in der Lehrver-
Engineering“ (Bachelor Informatik und Wirtschaftsin-                               anstaltung sukzessive vermittelt und von den Studie-
formatik) dagegen erstellen die Studierenden selbst                                renden bei der Erstellung ihrer eigenen Lösungsanteile
die benötigten Analyse- und Entwurfsdokumente und                                  entsprechend weiterverwendet.
setzen anschließend ihre eigene Spezifikation um. Bei                                 Für die Modellierung stehen verschiedene Mo-
Bedarf ist das Beispiel um zusätzliche fachliche Schnit-                           dellierungswerkzeuge zur Verfügung, beispielswei-
te erweiterbar.                                                                    se der IBM Rational Software Modeler oder die
   Wir setzen das Lehrmaterial in den einzelnen Ver-                               UML2-Modellierungsumgebung der aktuellen Eclipse-
anstaltungen wie folgt ein:                                                        Version. Entwickelt wird mit dem JEE-Plug-in-Set von
   Software Engineering I: Hier stehen die Kompe-                                  Eclipse.
tenzfelder Requirements, Design sowie Engineering                                     Die Software des vorgefertigten Beispiels wird den
Management und Process im Vordergrund. Vorgabe                                     Studierenden in einem Subversion-Repository zur Ver-
für das Praktikum ist daher lediglich eine ausgearbei-                             fügung gestellt. Über dieses Repository koordinieren
tete Spezifikation für den ersten fachlichen Schnitt                               die Studierenden den Austausch der im Team erstell-
„Benutzerverwaltung“. Die Studierenden müssen min-                                 ten Artefakte. Des Weiteren geben sie darüber ihre
destens einen weiteren fachlichen Schnitt selbststän-                              Ergebnisse ab.
dig spezifizieren.                                                                    Im Rahmen der Projektarbeit experimentieren die
   Software Engineering II: Dieses Modul deckt den                                 Studierenden mit verschiedenen Vorgehensmodellen.
Kompetenzbereich Construction ab. Hier müssen die                                  Neben einem klassischen, iterativ-inkrementell orien-

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                                                    Seite 37 von 44
tierten ingenieurmäßigen Vorgehen kommt als Reprä-         ist das Erlernen des konstruktiven fachlichen Austau-
sentant der agilen Ansätze auch Scrum zum Einsatz.         sches, sowohl in der Rolle des Präsentierenden als
                                                           auch in der Rolle des kritisch Hinterfragenden. Beide
Methodenkompetenz                                          Rollen fallen erstaunlich vielen Studierenden zunächst
Um die Studierenden nicht bereits am Anfang mit            schwer. Eine wichtige Voraussetzung für die Vermitt-
einer großen Vielzahl verwendeter Technologien zu          lung von Reflexions- und Kritikfähigkeit besteht darin,
überfordern, dient ein minimalistisches Exzerpt dieses     in der Lehrveranstaltung eine Atmosphäre der vertrau-
Beispiels als niederschwelliger Einstieg für den Lern-     ensvollen Zusammenarbeit zu schaffen, in der alle
prozess. So wird an einem zunächst noch bewusst sehr       Beteiligten auf Augenhöhe wertschätzend miteinan-
einfach gehaltenen System zunächst ein Überblick           der umgehen.
über die wesentlichen Zusammenhänge zwischen Mo-              Bzgl. der Vermittlung ethischen Handelns stoßen
dellen und Implementierung, sowie innerhalb der Im-        wir mit der Ausbildung in dieser Form schnell an
plementierung über das Zusammenspiel der einzel-           Grenzen. Als Dozenten können wir hier im Wesentli-
nen Technologien erarbeitet. Darauf aufbauend wird         chen sensibilisieren, den Blickwinkel auf grundlegen-
dieses System sukzessive weiter ausgebaut und nach         de Fragestellungen richten und natürlich versuchen,
und nach um entsprechende Komplexitäten erweitert,         als gutes Beispiel voranzugehen. Die hinter dem ethi-
nicht nur bzgl. der realisierten Funktionalität, sondern   schen Handeln liegenden Wertesysteme lassen sich
auch bzgl. der verwendeten Technologien.                   „mal eben so nebenbei“ aber nur ansatzweise vermit-
   Dadurch, dass das Beispiel hinreichend komplex          teln – und auch nur dann, wenn die der Hochschule
ist und die Aufgabenstellung nicht alle Entscheidun-       vorgelagerte Erziehung und Bildung den Grundstock
gen vorgibt, müssen die Studierenden an verschiede-        dafür gelegt hat.
nen Stellen abwägen und entscheiden, wie weit sie
bestimmte Kerntechniken anwenden (beispielsweise           Sozialkompetenz
hinsichtlich des Detallierungsgrades bei der Model-        Durch den relativ hohen Anteil an Teamarbeit kommt
lierung, oder bzgl. der Testabdeckung). Da auch in-        dem Bereich der Sozialkompetenz quasi als „Hinter-
nerhalb des studentischen Projektes Zeit eine knappe       grundprozess“ eine fortlaufend wichtige Rolle zu. Be-
Ressource darstellt, wird die Notwendigkeit der Ab-        reits beim Bilden der Teams und bei der Aufteilung
wägung zwischen Perfektionismus und pragmatischer          der zu erledigenden Arbeiten treffen unterschiedli-
Einschränkung des investierten Aufwandes erlebbar.         che Interessen und Vorlieben aufeinander. Die Dozen-
   Die Ergebnisse, die die Studierenden im Rahmen          ten beobachten aufmerksam, aber unaufdringlich das
der praktischen Projektarbeit erstellen, umfassen ne-      Zusammenspiel innerhalb der einzelnen Teams. Bei
ben dem eigentlichen Quelltext auch weitere Artefakte      Bedarf greifen sie (möglichst minimalistisch) in das
des Software Engineerings, beispielsweise Projektplä-      Geschehen ein, beispielsweise durch das Setzen von
ne, Anforderungsdokumente, Architekturmodelle und          gruppendynamischen Impulsen. Des Weiteren mode-
Ähnliches. Da diese Dokumente in die Gesamtbewer-          rieren sie zu ausgewählten Meilensteinen der Projekt-
tung mit einfließen, spendieren die Studierenden zwar      arbeit den Prozess der Gruppenreflexion über Ergeb-
meist ein gewisses Maß an Sorgfalt in deren Erstel-        nisse und Ablauf der Teamarbeit.
lung, sehen diese Dokumente zunächst aber oft als             Ergänzend wird theoretisch fundiertes Grundlagen-
ein notwendiges Übel an. Das Verständnis für die fach-     wissen zu Sozialkompetenzen in spezialisierten Veran-
liche Notwendigkeit dieser Dokumente (und damit            staltungen vermittelt und gezielt praktisch eingeübt.
eine intrinsiche Motivation, diese Dokumente sorgfäl-
tig zu erstellen und weiter zu pflegen) erwächst im        Zusammenfassung und Ausblick
Laufe der Lehrveranstaltung aus der Dauer und dem
Umfang der Projektarbeit. Typischerweise stellen die       Mit dem hier vorgestellten Beispiel lassen sich viele
Studierenden nach wenigen Wochen fest, dass ihr Pro-       zentrale Aspekte des Software Engineerings von der
jekt ohne klare Dokumentation ineffektiv wird, weil        Machbarkeitsanalyse bis hin zum Abnahmetest zeigen.
Anforderungen unklar und doppeldeutig sind, bereits        Der besondere Fokus liegt dabei auf der Integration
getroffene Entscheidungen nicht mehr einheitlich er-       der einzelnen Disziplinen. Dadurch werden für die
innert werden oder weil Uneinigkeit darüber besteht,       Lernenden die Zusammenhänge zwischen einzelnen
wer wann welche Schritte als nächstes durchzuführen        Arbeitsschritten und Artefakten klar ersichtlich und
hat.                                                       nachvollziehbar. Insbesondere werden dadurch die
                                                           Auswirkungen einzelner Entwicklungsentscheidungen
Selbstkompetenz                                            greifbar verdeutlicht. Das Beispiel und die zugehöri-
Im Rahmen der verschiedenen Phasen der Projekt-            gen Lernmaterialien ermöglichen so einen ganzheitli-
und Teamarbeit erhalten die Studierenden Feedback          chen Einstieg in die komplexe Materie des Software
von Kommilitonen und Dozenten, sowohl über ihren           Engineerings.
Arbeitsprozess als auch über die erzielten Ergebnis-         Im Rahmen einer qualitativen Evaluierung haben
se. Beispielsweise stellen einzelne Projektteams Teile     unsere Studierenden die folgenden repräsentativen
ihrer Arbeiten den anderen Gruppen vor. Ziel dabei         Aussagen gemacht. Als positiv wurde die Praxisnähe

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                             Seite 38 von 44
des Beispiels empfunden, sowie die Tatsache, dass in     [Schaeper u. Briedis 2004] S CHAEPER, H. ; B RIE -
den Lehrveranstaltungen ein Beispiel von realistischer     DIS , K.: Kompetenzen von Hochschulabsolventinnen
Komplexität behandelt wird. Diese Komplexität wurde        und Hochschulabsolventen, berufliche Anforderun-
jedoch gleichzeitig auch als negativ empfunden, da zu      gen und Folgerungen für die Hochschulreform. HIS-
Beginn der Veranstaltung sehr viele Dinge gleichzeitig     Kurzinformation, 2004
zu lernen sind, beispielsweise verschiedene Frame-
works. Des Weiteren wurde die Größe der Aufgabe          [Schott u. Ghanbari 2009] S CHOTT, F. ; G HANBARI,
kritisiert.                                                S. A.: Modellierung, Vermittlung und Diagnostik
  Der beschrittene Weg, für ein signifikant großes         der Kompetenz kompetenzorientiert zu unterrich-
Projekt einzelne Teile in einer ausgearbeiteten Form       ten – wissenschaftliche Herausforderung und ein
vorzugeben, die auch kritischen Blicken aus der Praxis     praktischer Lösungsversuch. In: Lehrerbildung auf
Stand hält, hat sich also im Ansatz bewährt. An man-       dem Prüfstand 2 (2009), Nr. 1, S. 10–27
chen Stellen haben wir einen Teil unserer Studieren-     [Spitzer 2006] S PITZER, Manfred: Lernen: Gehirnfor-
den mit der Komplexität des Beispiels aber offenbar        schung und die Schule des Lebens. Spektrum Akade-
überfordert.                                               mischer Verlag, 2006
  In folgenden Punkten haben wir konkret Verbesse-
rungspotenzial sowohl für das Beispiel als auch für      [Vigenschow u. Schneider 2007] V IGENSCHOW, Uwe ;
die eingesetzten didaktischen Methoden identifiziert:      S CHNEIDER, Börn: Soft Skills für Softwareentwickler
                                                           – Fragetechniken, Konfliktmanagement, Kommunika-
•   Kleinere Wissenseinheiten vermitteln                   tionstypen und -modelle. dpunkt.verlag, 2007
    Die Darstellung von Technologien und Basistechni-
    ken müssen wir gezielt in einem überschaubaren
    Kontext aufbereiten.

•   Referenzimplementierung inkrementell einführen
    Wir werden Referenzimplementierungen zukünf-
    tig in kleineren Zwischenschritten vorgeben. Zum
    Einstieg haben wir ein minimalistisches Beispiel
    gebaut, das sich auf einen Server (Tomcat, Jetty)
    „deployen“ lässt und einen Login für einen hart
    codierten Benutzer mit entsprechendem Service,
    aber ohne eine Datenbank, realisiert.

•   Mehr Diskussion individueller Lösungen
    Wir wollen mit den Studierenden stärker deren
    Lösungen diskutieren. Hier stoßen wir allerdings
    von der Betreuungsrelation und unserem Zeitbud-
    get an Grenzen.

Literatur
[Abran u. a. 2005] A BRAN, A. ; M OORE, J. ; D UPUIS,
  R. ; T RIPP, L.: Guide to the Software Engineering
  Body of Knowledge 2004 Version SWEBOK. IEEE
  Computer Society Press, 2005

[Evans 2003] E VANS, Eric:       Domain-Driven De-
  sign: Tackling Complexity in the Heart of Software.
  Addison-Wesley Longman, Amsterdam, 2003

[Lehner 2009] L EHNER, M.: Viel Stoff – wenig Zeit.
  Haupt Verlag, Stuttgart, 2009

[Martin 2008] M ARTIN, Robert C.: Clean Code: A
  Handbook of Agile Software Craftsmanship. Prentice
  Hall International, 2008

[Rising u. Manns 2004] R ISING, Linda ; M ANNS, Ma-
  ry L.: Fearless Change: Patterns for Introducing New
  Ideas. Addison-Wesley, 2004

Ludewig, Böttcher (Hrsg.): SEUH 2011                                                          Seite 39 von 44
Sie können auch lesen