\documentstyle[german,twocolumn]{article}

\makeatletter 
\def\@normalsize{\@setsize\normalsize{10pt}\xpt\@xpt
\abovedisplayskip 10pt plus2pt minus5pt\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip 
6pt plus3pt minus3pt\let\@listi\@listI}
\def\subsize{\@setsize\subsize{12pt}\xipt\@xipt}
%						Standard bei art10:
\def\section{\@startsection
	{section}		
	{1}
	{\z@}
	{2.2ex plus 1ex minus .2ex} 		% {-3.5ex plus-1ex minus -.2ex}
	{1.2ex plus .2ex \@afterindentfalse}	% {2.3ex plus.2ex}
	{\large\bf}}				% {\reset@font\Large\bf}}
\def\subsection{\@startsection
	{subsection}
	{2}
	{\z@}
	{2.0ex plus 1ex}			% {-3.25ex plus-1ex minus-.2ex}
	{.8ex plus .2ex \@afterindentfalse}	% {1.5ex plus.2ex}
	{\subsize\bf}}				% {\reset@font\large\bf}}
\def\subsubsection{\@startsection
	{subsection}
	{3}
	{\z@}
	{1.8ex plus 1ex}			% {-3.25ex plus -1ex minus-.2ex}
	{.8ex plus .2ex \@afterindentfalse}	% {1.5ex plus.2ex}
	{\normalsize\bf}}			% {\reset@font\normalsize\bf}}
\def\paragraph{\@startsection 
	{paragraph}
	{4}
	{\z@}
	{1.8ex plus .3ex}			% {3.25ex plus1ex minus.2ex}
	{-1em \@afterindentfalse}		% {-1em}
	{\normalsize\bf}}			% {\reset@font \normalsize\bf}}


\setlength{\textheight}{247mm}
\setlength{\columnsep}{6.5mm} %{2.0pc}
\setlength{\textwidth}{17cm}
\setlength{\parindent}{1pc}
\setlength{\parskip}{0.0cm}
\setlength{\topsep}{0.1cm}
\setlength{\partopsep}{0.0cm}
\setlength{\itemsep}{0.1cm}
\setlength{\parsep}{0.0cm}

% das folgende mu"s ggf. an die Einstellungen des 
% lokal vorhandenen Druckers angepa"st werden.
\setlength{\topmargin}{-12mm}
\setlength{\oddsidemargin}{-6mm}
\setlength{\evensidemargin}{-6mm}

\pagestyle{empty}
\thispagestyle{empty}

\baselineskip12pt


\begin{document}
\title{\Large\bf Die Softwaretechnik-Ausbildung in der 
Wirtschaftsinformatik an der WWU M"unster}
\author{ Herbert Kuchen \hspace{1cm} Michael Nietsch\\[2ex]
        Westf"alische Wilhelms-Universit"at M"unster\\
        Institut f"ur Wirtschaftsinformatik\\
        {\tt http://www-wi.uni-muenster.de}}
\date{}
\maketitle

\section{Einf"uhrung}
An der Westf"alischen Wilhelms-Universit"at M"unster kann Wirtschaftsinformatik mit den 
Abschl"ussen Bachelor und Master bzw. Diplom studiert werden. In allen diesen 
Studieng"angen bildet die Softwaretechnik einen zentralen Bestandteil. Neben der 
Vermittlung theoretischer Kenntnisse wird deren praktischer Umsetzung und insbesondere 
der Verwendung von CASE-Tools ein hoher Stellenwert beigemessen. Die Ausbildung 
umfasst im wesentlichen die folgenden Veranstaltungen. Sie sind in allen genannten 
Studieng"angen enthalten.\medskip
 
{\bf Grundstudium:}
\begin{itemize}
\item[1)] Programmierung
\item[2)] Software-Praktikum
\end{itemize}
 
{\bf Hauptstudium:}
\begin{itemize}
\item[1)] Software-Engineering I
\item[2)] Software-Engineering II
\item[3)] Projektseminar
\item[4)] Seminare zu ausgew"ahlten Aspekten des Software-Engineering
\end{itemize}
\noindent
Auch in einer Reihe anderer Veranstaltungen werden Softwaretechnik-Aspekte gestreift. Zu 
nennen sind hier die Vorlesungen Nicht-Standard-Datenbanken, Wissensbasierte Systeme, 
Inner- und Zwischenbetriebliche Informationssysteme und Verteilte Systeme, auf die hier 
nicht im Detail eingegangen werden soll. Die meisten der genannten Veranstaltungen 
stehen neben Studierenden der Wirtschaftsinformatik auch Studierenden anderer 
Fachrichtungen (wie z. B. Mathematik) offen. Die Softwaretechnik-Veranstaltungen werden
im folgenden im einzelnen dargestellt. Da bei den Seminaren ausgew"ahlten Aspekte des 
Software-Engineerings von Veranstaltung zu Veranstaltung unterschiedliche,
aktuelle Themen aufgegriffen und vertieft werden, und der Ablauf eines Seminars allgemein
bekannt ist, wird hierauf nicht im Detail eingegangen. 
 
\section{Veranstaltungen des Grundstudiums}
\subsection{Programmierung}
Die 4-st"undige Grundvorlesung ``Programmierung'' richtet sich an Erstsemester.
% und setzt keine Vorkenntnisse voraus. 
Die Veranstaltung hat ca. 200 H"orer(innen), die sich zur H"alfte aus
Wirtschaftsinformak-Studierenden und zur H"alfte aus Studierenden anderer
Fachrichtungen (meist Mathematik (Diplom oder Lehramt) oder Informatik-Lehramt)
zusammensetzen.
Sie wird durch eine 2-st"undige "Ubung in 8 Kleingruppen 
erg"anzt, die von studentischen Hilfskr"aften geleitet werden.
Ziel ist, das Programmieren-im-Kleinen zu vermitteln. 
Neben den wesentlichen Konzepten imperativer und objektorientierter Sprachen werden 
auch deklarative Programmiersprachen, d.h. funktionale und logische Sprachen, und die 
entsprechenden Programmiertechniken vorgestellt. 
Der Schwerpunkt liegt hierbei, insbesondere was die "Ubungen betrifft, 
auf der objektorientierten Sprache Java. 
%Am Ende des Semesters sollen die Studierenden 
%neben einem "Uberblick "uber die 
%Programmiersprachen-Landschaft "uber detaillierte Java-Kenntnisse verf"ugen. 
%Neben einer informellen Erl"auterung von 
%Sprachkonzepten wird die Semantik von Kernsprachen 
%der erw"ahnten Programmierparadigmen formal angegeben. 
Weiterhin wird das Beweisen 
von Programmeigenschaften behandelt. Der Lernerfolg wird im Rahmen einer 
2-st"undigen, f"ur das Vordiplom relevanten Klausur abgepr"uft.
 
\subsection{Software-Praktikum}
Das Software-Praktikum wird als 4-w"ochige, ganzt"agige Blockveranstaltung in der 
vorlesungsfreien Zeit im Fr"uhjahr durchgef"uhrt und richtet sich an Studierende 
nach dem 2. Fachsemester. Aufbauend auf den Grundvorlesungen Programmierung 
sowie Datenstrukturen und Algorithmen soll im Rahmen dieser Veranstaltung das 
Programmieren-im-Kleinen vertieft werden. Die Aufgabe besteht darin, ausgehend von 
einer vorgegebenen Spezifikation ein Softwaresystem zu implementieren und zu testen. 
Ein typisches Projekt ist die Entwicklung eines Systems zum Buchen von 
Bahnverbindungen und zur zugeh"origen Stammdatenverwaltung.

Da die Anzahl (ca. 100) der teilnehmenden Studierenden bei der Entwicklung eines 
einzelnen Systems zu gro"s ist, werden Gruppen gebildet, von denen jede ein komplettes 
System erstellt. Jede Gruppe besteht wiederum aus 5 Teams, die jeweils einige 
vorgegebene Klassen des Gesamtsystems zu entwickeln haben. Neben der 
rein fachlichen Ausbildung liegt ein Aspekt des Praktikums daher auch in der 
Ein"ubung von Teamarbeit.

Das zu entwickelnde System umfasst u.a. eine zeitgem"a"se graphische Benutzerschnittstelle,
die von je einem Team jeder Gruppe mit Java AWT erstellt wird. Jedes der "ubrigen Teams ist 
f"ur die Implementierung einiger Basisklassen (z.B. AVL-Baum, Heap) und 
Fachkkonzeptklassen verantwortlich. 

Um das Projekt bei der hohen Teilnehmeranzahl trotz des engen Zeitrahmens 
erfolgreich durchziehen zu k"onnen, hat sich eine straffe Organisation
als notwendig erwiesen. F"ur jede zu entwickelnde Klasse werden rigorose 
Deadlines vorgegeben, bis zu denen diese von einem Betreuer abgenommen
worden sein m"ussen. Gleiches gilt auch f"ur die Integrationstests.
Bei der Abnahme ist nicht nur der erstellte Code vorzuf"uhren,
sondern es m"ussen auch die Test-Treiber und -St"umpfe sowie systematisch erstellte
Testdaten vorgelegt werden, wobei f"ur jede Komponente vorgegeben wird,
ob Blackbox- und/oder Glassboxtesten eingesetzt werden soll.
Jede Gruppe wird von einem Mitarbeiter betreut.
Die notwendigen, grundlegende Kenntnisse "uber das Testen von Software werden in einem
Crash-Kurs zu Anfang des Praktikums vermittelt. Hierbei wird auch Java AWT
vorgestellt.

Als Werkzeug wird das Java-Development Kit 
verwendet. Das Softwarepraktikum wird als Teil der Vordiplomsklausur Informatik 
abgepr"uft. Es ist geplant, die Veranstaltung in Zukunft in die 
Software-Engineering-
Vorlesung (s.u.) zu integrieren.
 
\section{Veranstaltungen des Hauptstudiums}
\subsection{Software-Engineering I}
Als erste Vorlesung zum Thema Software-Engineering behandelt die 4-st"undige 
Hauptstudiumsveranstaltung die fr"uhen Phasen der Softwareentwicklung von der 
Vorstudie "uber die Anforderungsanalyse bis hin zum Grobentwurf. Sie bildet damit die 
Basis f"ur die im darauffolgendem  Semester stattfindende Vorlesung Software 
Engineering II.

Ausgehend von einer systemtheoretischen Fundierung, in der Systemdenken als 
Hilfsmittel sowohl zur Erkl"arung als auch zur Gestaltung von Informationssystemen 
vermittelt wird,  werden Methoden und Werkzeuge f"ur die Anforderungsanalyse 
behandelt. Hierbei wird besonderer Wert auf ein klares Verst"andnis der behandelten 
Begriffe, wie System, Modell, Methode, Qualit"at, Anwendungs- und Informationssystem 
etc. gelegt. Im Kontext dieses mit thematischer Entfaltung "uberschriebenen Teils wird 
sowohl eine prozess- als auch gegenstandsorientierte Abgrenzung der 
Softwareentwicklung und der Entwicklung industrieller G"uter durchgef"uhrt.

W"ahrend der Anforderungsanalyse geht es nicht nur um das Aufzeigen unterschiedlicher 
Ans"atze und einer ersten technischen Gestaltung von Systemen, sondern auch um die 
Planung und geordnete Abwicklung von Projekten. F"ur die Informationssystemgestaltung 
werden Referenzmodelle unterschiedlicher Abstraktionsebenen und Anwendungsgebiete 
besprochen und auf ihre Tauglichkeit hin untersucht. F"ur klassische und moderne 
Vorgehensmodelle werden sowohl die Charakteristika ihrer Einsatzbereiche anhand von 
Fallbeispielen erarbeitet, als auch die unterschiedlichen Perspektiven des Managements 
und der Entwickler thematisiert. In etwa gleichgewichtig werden psychologische Aspekte 
der Projektarbeit im Plenum diskutiert und in Form von Rollenspielen illustriert. Die 
Studenten sollen in die Lage versetzt werden, unterschiedliche Charaktere von 
Teamarbeitern erkennen zu k"onnen und typische Konfliktsituationen zu l"osen. Hier besitzt 
die Vorlesung einen engen Bezug zu Veranstaltungen aus dem Bereich F"uhrung und 
Organisation.

Im praktischen Teil der Veranstaltung werden die Studierenden in Form von Fallstudien 
mit klassischen und objektorientierten Methoden vertraut gemacht und im Umgang mit 
CASE-Tools ge"ubt. Auf der Fachkonzeptebene werden zur Darstellung der 
Gesch"aftsvorf"alle neben ereignisorientierter Prozessketten (EPKs) 
auch Petri-Netz-basierte Darstellungen wie 
Bedingungs-Ereignis-Netze und Stelle-Transitions-Netze 
genutzt. Als Tools kommen hier ARIS und INCOME zum Einsatz. Bei der 
objektorientierten Systementwicklung werden Use Cases, Aktivit"atendiagramme und erste 
Klassenmodelle mit Rational Rose erstellt. Die Fallstudien orientieren sich inhaltlich an 
betriebswirtschaftlichen Problemstellungen etwa einer Auftragsverwaltung, eines 
Hotelreservierungssystems oder der Reorganisation einer Entwicklungsabteilung. 
 
Pro Veranstaltung sind ca. 100 Studierende zu betreuen, wobei sowohl Vorlesung als auch 
"Ubung im Plenum stattfinden. Die in Abh"angigkeit vom Umfang w"ochentlichen bzw. 
zweiw"ochentlichen vorlesungsbegleitenden "Ubungen k"onnen in Kleingruppen (2-4 
Personen) gel"ost werden. "Uber die erfolgreiche Abgabe qualifizieren sich die 
Studierenden f"ur eine Teilnahme an einer Scheinerwerbsklausur. 
 
\subsection{Software-Engineering II}
Die 4-st"undige Vorlesung Software-Engineering II behandelt im wesentlichen die Phasen 
Entwurf, Implementierung, Abnahme und Wartung sowie die Qualit"atssicherung. Sie wird 
von den Studierenden in der Regel im 6. Fachsemester geh"ort. Neben den klassischen 
Ans"atzen strukturierter Entwurf und modularer Entwurf wird hier insbesondere auf den 
objektorientierten Entwurf eingegangen. Entsprechend wird auch bei der Implementierung 
und beim Testen zwischen klassischem und objektorientiertem Ansatz unterschieden. 
Besprochen werden auch die Einbindung von Datenbanken, Expertensystemen und 
Benutzungsschnittstellen sowie verteilte Anwendungen und der Einsatz von Middleware. 
Die Veranstaltung umfasst einen praktischen Anteil, in dem mit dem CASE-Tool Rational 
Rose ein UML-Modell eines kleinen Beispielsystems, beim letzten Mal einer
Medienhandlung, zu erstellen ist. Dies geschieht
in Kleingruppen mit ca. 5 Teilnehmern. Zun"achst wird ein Analysemodell f"ur 
erstellt, das dann,
auch im Hinblick auf eine Verteilung im Netz, die Datenbankanbindung und die
Benutzerschnittstelle zu einem Entwurfsmodell verfeinert und schlie"slich
implementiert und getestet wird. "Ahnlich wie im Software-Praktikum m"ussen
auch hier Test-Treiber und -St"umpfe sowie Testdaten systematisch generiert werden.
Die erlangten Kenntnisse werden in einer 2-st"undigen 
Klausur abgepr"uft. Das Ergebnis geht in die Abschlussnote ein.
Die Veranstaltung hat 80-100 Teilnehmer.
 
\subsection{Projektseminar}
Im Rahmen eines einsemestrigen Projektpraktikums werden die Studenten vor konkrete 
Entwicklungsaufgaben gestellt. In Gruppen von 3-20 Studierenden haben sie Projekte aus 
ganz unterschiedlichen Themenbereichen zu bew"altigen. Diese reichen von eher 
betriebswirtschaftlichen Fragestellungen einer Controlling-Konzeption oder der 
Gestaltung einer Produktionsplanung und -steuerung, "uber das breite Thema der 
SAP-Anwendungen und Workflow-Realisierungen, bis hin zur 
Business-to-Business-Aspekten 
im Internet oder der technischen Realisierung von Middleware. Allein im Bereich SAP 
wurden in den vergangenen Jahren von den Studierenden zahlreiche Projekte abgewickelt, 
die sich inhaltlich etwa mit dem Einsatz, dem Customizing, der Internetanbindung, der 
F"uhrungsunterst"utzung oder den Retail-Komponenten besch"aftigten. Dabei wurden 
Aufgaben insbesondere der Fach- und DV-Ebene aber auch der Implementierungsebene 
gel"ost. Einen weiteren Schwerpunkt bilden Themen aus dem Bereich der 
Interorganisationssysteme und des Wissensmanagements. "Ublicherweise werden Projekte 
zur Verst"arkung der Praxisrelevanz in Zusammenarbeit mit Unternehmen durchgef"uhrt. 
So konnte beispielsweise f"ur eine Versicherung deren Intranet-Konzept oder f"ur ein 
Fertigungsunternehmen aus dem Mittelstand ein Datawarehouse entwickelt und 
prototypisch realisiert werden.

Projekte werden in Abh"angigkeit von der Teilnehmerzahl und der Interessenlage der 
wissenschaftlichen Mitarbeiter im Verh"altnis von 5 zu 1 betreut. Die Zuordnung der 
Studierenden zu den Projekten erfolgt innerhalb der verf"ugbaren Kapazit"aten "uber eine 
freie Wahlm"oglichkeit seitens der Studenten. Die Erfahrungen haben gezeigt, dass 
Gruppengr"o"sen zwischen 5-10 Mitgliedern f"ur die typischen Projekte ideal sind. Bei 
weniger als f"unf Teilnehmern sind neben einer reduzierten Aufgabenstellung auch 
Einbu"sen im Bereich des Lernens "uber Teamarbeit zu akzeptieren. Die inhaltliche und 
organisatorische Ausgestaltung obliegt dem Projektanbieter. "Ublicherweise wird auf der 
Grundlage einer Aufgabenstellung der Praxis oder eines hypothetischen Falls von einer 
eher vagen Spezifikation ausgegangen, die dann von den Studierenden inhaltlich 
detailliert werden muss. Gef"uhrt werden die Projekte seitens der Betreuer anhand von 
Ergebnissen, die zeit- und qualit"atsgerecht durch die Teilnehmer abgeliefert werden 
m"ussen. Dabei wird den Studenten bewusst ein hohes Ma"s von Selbstkoordination 
zugestanden, so dass im Projektverlauf aus eher steuernden Eingriffen seitens der 
Projektleitung ein begleitendes Coaching wird. 

Der Projektverlauf selbst folgt einer Dreiphasigkeit. Die Phase 1 oder Einarbeitungsphase 
beinhaltet ein themenbezogenes Literaturstudium, welches mit einer 10-15-seitigen 
Dokumentation und einer Pr"asentation abschlie"st. Nach der anschlie"senden Detaillierung 
des  Projektplans und der damit verbunden Aufgabenzuordnung erfolgt in der zweiten 
Phase die eigentliche Abwicklung des Projekts. Ausf"uhrliche Abschlussdokumentationen 
(ca. 150 Seiten) und professionelle Ergebnispr"asentationen bilden den Inhalt der 
abschlie"senden dritten Phase. W"ahrend des gesamten Verlaufs werden die Studierenden 
zu einem professionellen Arbeiten und praxisnahen Rahmenbedingungen angehalten. 
Hierdurch erkl"art sich der im Vergleich zu anderen Veranstaltungen hohe Zeit und 
Arbeitsaufwand der Studierenden, die "ublicherweise w"ahrend des Seminars ihre sonstigen 
Aktivit"aten reduzieren. 
  
\section{Zusammenfassung}
Softwaretechnik wird im Rahmen der Wirtschaftsinformatik-Studieng"ange an der 
Universit"at M"unster in Form von Vorlesungen, Praktika und Seminaren vermittelt. Der 
praktische Anteil und insbesondere der Einsatz von CASE-Tools haben hierbei einen 
hohen Stellenwert. Eine spezifische Ausrichtung in Richtung Wirtschaftsinformatik ist
insbesondere in den Veranstaltungen Software-Engineering I und den Projektseminaren
festzustellen. Die "ubrigen Softwaretechnik-Veranstaltungen unterscheiden sich nur
unwesentlich von dem Angebot an reinen Informatik-Fachbereichen.
\end{document}
