350 likes | 532 Views
UML. Seminar Programmiersprachen Florian Seeger. Inhalt. Grundlagen Was ist UML? UML-Diagramme Beispiel 99 Bottles of Beer Einsatz und Nutzen. Die Autoren Entstehungsgeschichte Kernthesen des Interviews. UML – Die Grundlagen. Definition. UML: Unified Modeling Language
E N D
UML Seminar Programmiersprachen Florian Seeger
Inhalt • Grundlagen • Was ist UML? • UML-Diagramme • Beispiel • 99 Bottles of Beer • Einsatz und Nutzen • Die Autoren • Entstehungsgeschichte • Kernthesen des Interviews UML - Florian Seeger
UML – Die Grundlagen UML - Florian Seeger
Definition • UML: Unified Modeling Language • „The UML is a graphical language used to vizualize, specify, reason about, document, and construct the artifacts of a software-intensive system.“ [1] • Keine Programmiersprache • Erlaubt eine höhere Abstraktionsebene als die der Programmiersprachen UML - Florian Seeger
Die UML-Spezifikation • Definition von • modellierungsrelevanten Elementen und Beziehungen • Klasse, Objekt, … • Vererbung, Realisierung, Abhängigkeit, … • Statischen und dynamischen Abläufen • Sequenzen, Aktivitäten, … • graphischen Notationen für diese Elemente Klasse Objekt Paket Aktivität Abhängigkeit Realisierung Vererbung UML - Florian Seeger
UML-Diagramme • Die spezifizierten Sprachelemente können in diversen Diagrammen genutzt werden • UML kennt 14 Diagrammtypen: Verhaltensdiagramme Strukturdiagramme Interaktionsdiagramme Quelle: [2] UML - Florian Seeger
UML – viele Einsatzgebiete, großer Umfang Quelle: [2] UML - Florian Seeger
Einsatz der UML Am Beispiel von 99 Bottlesof Beer UML - Florian Seeger
1. Schritt:Klärung der Anforderungen UML - Florian Seeger
2. Schritt:Strukturierung UML - Florian Seeger
3. Schritt:Programmablauf UML - Florian Seeger
Modellierung mit UML – wozu? • Visualisierung aller Elemente eines Software-Projekts über den gesamten Lebenszyklus • Vom Use-Case vor Projektstart bis zu den Klassendiagrammen der Implementierung • Strukturierte Software • Einheitliches und universelles Kommunikationsmittel • Kommunikation mittels Diagrammen einfacher • Weniger „aneinander vorbeireden“ UML - Florian Seeger
Modellierung mit UML – wie? • UML-Werkzeuge existieren wie Sand am Meer • Erstellung von Diagrammen bis hin zur automatischen Code-Generierung • Trend hin zur Integration in IDEs • Beispiele: • Visual Studio • Eclipse • Außer Konkurrenz: Quelle: [3] UML - Florian Seeger
Die Autoren und die Entstehung der UML UML - Florian Seeger
Dr. Ivar Jacobson • * 02.09.1939 in Ystad, Schweden • 1962 M.Sc. in Elektrotechnik, 1985 promoviert • Begann als Projektleiter bei Ericsson • Entstehung des Use-Case • Sequenz- und Kollaborationsdiagramme • Mitbegründer der SDL (Specification and Description Language) • Gründete mehrere Unternehmen • U.a. Objectory AB, fusionierte 1995 mit Rational Software, später von IBM übernommen Quelle: [4] UML - Florian Seeger
Grady Booch • * 27.02.1955 in Texas, USA • B.Sc. in Informatik, M.Sc. in Elektrotechnik • Chef-Wissenschaftler bei Rational Software seit Gründung 1981 • Begründer der Begriffe Object-Oriented Design (OOD) und Collaborative Development Environments (CDE) • Erfinder der Booch-Notation • Mittlerweile Chef-Wissenschaftler in der Softwareentwicklung bei IBM Research Quelle: [5] UML - Florian Seeger
Dr. James Rumbaugh • * 22.08.1947 in Bethlehem, Pennsylvania, USA • B.Sc. in Physik, M.Sc. in Astronomie, promoviert in Informatik • Arbeitete 25 Jahre bei General Electric • Entwicklung der OMT (Object-modelling technique) • Autor des Buchs Object-Oriented Modeling and Design (Prentice Hall) • 1994 begann er bei Rational Software • Im Ruhestand seit 2006 Quelle: [6] UML - Florian Seeger
„Die drei Amigos“ der UML • Alle drei gelten als Pioniere der Objektorientierung • Gemeinsame Schlüsselstation: Rational Software • Grady Booch, James Rumbaugh und Ivar Jacobson waren dort die Entwickler von UML • Ziel war die Vereinheitlichung der existierenden Modellierungsmethoden • Die erste Spezifikation der UML entstand im Januar 1997 UML - Florian Seeger
UML – ein konstanter Entwicklungsprozess • Eine verfeinerte Version (UML 1.1) ging im August 1997 an die OMG (Object Management Group) • Gremium mit Mitgliedern aus einer Vielzahl an Unternehmen und Instituten • Bekannteste Namen: Microsoft, IBM und Hewlett Packard • November 1997: UML 1.1 wurde als Standard von der OMG akzeptiert • Weiterentwicklung bis heute: • Einige kleinere Revisionen • Nächste größere Version mit UML 2.0 in 2005 • Aktuell: UML 2.3 UML - Florian Seeger
Das Interview UML - Florian Seeger
Übersicht • Gründe für die Entstehung der UML • Wie nützlich ist UML wirklich? • Kritik an der UML • Wie kann man UML vereinfachen? • UML und die Bildung UML - Florian Seeger
Gründe für die Entstehung der UML • Komplexität von Softwaresystemen sehr hoch • Entscheidend für den Erfolg: • Eine gute Architektur • Zusammenarbeit im Team • Früher entscheidend, heute weniger relevant: • Wahl der Programmiersprache • Probleme beim Programmieren selbst UML - Florian Seeger
Gründe für die Entstehung der UML • Grady Booch: • „[…] the right representation can collapse complexity, making it possible to meaningfully reason about complex information in an abstract way.“ [1] • „We were at the right time addressing a point of pain in the marketplace.“ [1] UML - Florian Seeger
Wie nützlich ist UML wirklich? • Kernaussage: UML erleichtert die Softwareentwicklung • Ohne Modellierung • Verbringt man viel Zeit damit, zu beschreiben, was man macht • Hat man nicht den notwendigen Überblick • Entwickler können mit UML besser kommunizieren UML - Florian Seeger
Wie nützlich ist UML wirklich? • Rumbaugh betrachtet UML kritischer: • Sehr hilfreich für das Design von Datenstrukturen • Mehr oder weniger nützlich zur Dekomposition eines Systems in mehrere Schichten • Kaum nützlich für dynamische Dinge • „The whole computing field has a tendency to hype any new development tool beyond reason. There is also a tendency to look for a single solution for all problems.“ [8] UML - Florian Seeger
Kritik an der UML • UML (2.0) ist zu komplex • Jacobson: „Traditional UML is designed for methodologists or tool vendors.“ [7] • 20% von UML werden i. d. R. genutzt, die restlichen 80% decken Sonderfälle ab, z. B. die Code-Generierung • Booch: „[…] there are some uses of the UML […] that drive a lot of the complexity in 2.0 and that does complicate it for some other things.“ [1] • Die Semantik ist schlecht definiert • Zu viele verschiedene Konstrukte • Mittlerweile ist die Semantik unmöglich klar zu definieren UML - Florian Seeger
Kritik an der UML • Hauptgrund: der Standardisierungsprozess durch die OMG • Rumbaugh: „The OMG is a case study on how political meddling can damage any good idea.“ [8] • Zu viele konkurrierende Interessen wirken aufeinander ein • „Too many people want to stuff things in that you can‘t keep it simple.“ [8] • „Why do you need a standardized model language?[…] You don‘t need standards to do modeling.“ [8] UML - Florian Seeger
Kritik an der UML • Vergleich mit Linux • Linux Foundation (Konsortium zur Standardisierung von Linux): • Linus Torvalds ist immer noch Koordinator der Kernelentwicklung • UML • Keiner der Gründer ist noch aktiv beteiligt • Es gibt keine führende Hand mehr UML - Florian Seeger
Wie kann man UML vereinfachen? • Nicht mehr durch einen Standardisierungsprozess entwickeln • Stattdessen Entwicklung abgespeckter Versionen durch unabhängige Entwickler • Nutzer entscheiden dann, welche Version geeignet ist und welche nicht • Zu echten Projekten gehen, die mit UML arbeiten • Häufige Anwendungsfälle herausarbeiten • Booch: „I would go from real use as opposed to expected use.“ [1] UML - Florian Seeger
UML und die Bildung • UML ist ein Werkzeug für Softwareentwickler • Aber: • Lernen (Informatik-) Studenten an einer Universität die Prinzipien der Softwareentwicklung? • Die Autoren sind sich einig: Nein! • Der Fokus werde viel zu sehr auf einzelne Programmiersprachen gelegt, als auf grundlegende Prinzipien • Wenig Wissen über Softwareentwicklung sei mit einer bestimmten Programmiersprache verbunden UML - Florian Seeger
UML und die Bildung • Jacobson: „The real problemisunderstandingsoftware in general.“ [7] • „Itwouldbeexcellentifourtechnicalinstitutesoruniversitieswouldeducatestudents in thebasicsofsoftwareengineering, followedupbytrainingthestudent in a setofgoodpracticesusingthatbase.“ [7] UML - Florian Seeger
Vielen Dank für Ihre Aufmerksamkeit! Fragen? UML - Florian Seeger
Quellen • [1] GradyBooch;MastermindsofProgramming, Federico Biancuzzi & Shane Warden, O‘Reilly2009 • [2] Unified Modeling Language, Wikipedia, http://en.wikipedia.org/wiki/Unified_Modeling_Language • [3] http://www2.cs.uni-paderborn.de/cs/ag-schaefer/PG/FUJABA/images/Logo.gif • [4] http://www.itmag.org.tw/UD/1146841769082679800.jpg • [5] http://www.reengineer.org/stevens/images/grady_booch.jpg • [6] http://www2.fh-rosenheim.de/gki/gallery/images/img_rumbaugh.jpg • [7] Ivar Jacobson; MastermindsofProgramming, Federico Biancuzzi & Shane Warden, O‘Reilly 2009 • [8] James Rumbaugh; MastermindsofProgramming, Federico Biancuzzi & Shane Warden, O‘Reilly 2009 UML - Florian Seeger
Quellen • Sonstige genutzte Quellen: • http://en.wikipedia.org/ • http://de.wikipedia.org/ • http://omg.org/ • http://www.oio.de/public/objektorientierung/uml-referenz-2-1/ • http://www.torsten-horn.de/techdocs/uml.htm • http://www.dfpug.de/konf/konf_1999/gruppe02_oop/d_uml/d_uml.htm UML - Florian Seeger