Nils Gruschka Programmierung mit Entwurfsmustern - Eine Fallstudie in einem industriellen Umfeld ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Kurzfassung: Entwurfsmuster beschreiben abstrakt die L"osung zu einen Problem der objektorientierten Programmentwicklung. Der Entwurf objektorientierter Software ist alleine ist schon schwer, aber noch schwerer ist es, einen Entwurf so zu gestalten, da"s die Software auch wiederverwendbar und flexibel ist. Die Erwartung, da"s Teile von objektorientierten Programmen problemlos wiederzuverwenden sind, hat sich als Irrtum herausgestellt. Es ist in der Regel sehr schwierig, eine zweckm"a"sige Granularit"at von Klassen zu finden. Zu umfangreiche oder zu kleine Klassen (bez"uglich Methoden und Zustandsvariablen) oder zu viele Relationen zwischen Klassen k"onnen die Wiederverwendbarkeit stark einschr"anken oder gar zunichte machen. Die G"ute einer L"osung erkennt man aber oft erst, wenn man diese verwendet oder wiederverwendet. So dauert es oft mehrerer Revisionszyklen bis eine L"osung ausgereift ist. Fachleute erfinden L"osungen normalerweise nicht v"ollig neu, sondern verwenden Grundideen von L"osungen "ahnlicher Probleme, die sie fr"uher gel"ost haben. Entwurfsmuster repr"asentieren genau diese Grundideen und helfen Probleme eleganter zu l"osen und das Nachbessern der L"osung zu verringern. So hat man nach und nach eine Menge von Mustern erhalten, die in Musterkatalogen (z.B. "`Design Patterns"' von Gamma, Helm, Johnson \& Vlissides) zusammengefa"st werden. Wenn man nun auch die Vorteile der Verwendung von Entwurfsmustern eingesehen hat, kommt man zu der Frage des Einsatzes der Entwurfsmuster in der industriellen Praxis: Kann ich Entwurfsmuster f"ur meine konkreten Entwurfsprobleme im Alltagsgesch"aft einer Firma verwenden? Bringen mir Entwurfsmuster wirklich konkreten Nutzen (= Geld)? Kann ich diese L"osungen auf den vorhandenen Plattformen auch unsetzen? Um genau diese Fragestellungen ging es in der Diplomarbeit, die diesem Vortrag zu Grunde liegt. Es wurde (erfolgreich) versucht Entwurfsmuster f"ur immer wiederkehrende Probleme bei der Softwareentwicklung einer IT-Abteilung eines Mineraloel-Konzerns zu benutzen. Die so gewonnene L"osung wurde dann in einem konkreten Projektes eingesetzt und daf"ur in der dort verwendeten Programmiersprache implementiert; ein Problem, da es sich nicht um eine objekt-orientierte Programmiersprache i.e.S. handelte. Das Projekt ist inzwischen beendet und der Einsatz der Entwurfmuster hat sich als sinnvoll erwiesen, sowohl bei der Entwicklung der Software, als auch bei der Wartung und "Anderung der selben. Des weiteren hat sich die entwurfsmusterbasierte L"osung auch als hilfreich bei der Verteilung der Softwareentwicklung auf mehrere Programmierer erwiesen. So hat sich in dieser Fallstudie der Einsatz von Entwurfsmuster als m"oglich und sinnvoll erwiesen. Die Abteilung wird auch auf Grund dieses Ergebnisse Entwurfsmuster als Hilfsmittel bei der objekt-orientierten Softwareentwicklung verwenden.