Archiv für ‘UML’ Category

SharePoint Datenmodellierung mit MS Visio

In größeren SharePoint Projekten gibt es oft komplexe Informationen und Daten zu verwalten. In der Planung ist eine detaillierte Datenmodellierung für eine adäquate Umsetzung des Datenmodells in SharePoint notwendig.
Für die Datenmodellierung bietet sich MS Visio 2007 an, genauer gesagt das Klassendiagramm aus der Standard UML 1.3 Vorlage.

Die SharePoint Listenspalten können als Attribute einer jeweiligen Klasse dargestellt werden, deren Datentyp den SharePoint-Column Types entspricht. Dafür habe ich eine Visio-Vorlage erstellt, die als Ausgangspunkt zur Erstellung eines SharePoint Datenmodells dienen kann.

Folgende SharePoint Columns sind als Datentypen in der Visio Vorlage enthalten:

  • Boolean
  • Choice
  • Note
  • Text
  • Lookup
  • URL
  • User
  • Lookup
  • Calculated
  • Currency
  • DateTime

Diese Datentypen sind in einem Paket namens “WSS” enthalten und können bei der Klassifizierung von Klassenattributen verwendet werden.

urlaubsantrag-antragsteller-user.png

Neben der Modellierung der eigentlichen Datenstrukturen ist es auch notwendig die tatsächliche Website-Struktur der zukünftigen SharePoint-Lösung zu modellieren. Für dieses Modell einer Website-Struktur bietet sich wieder das UML 1.3 Klassenmodell von Visio an. Für die Modellierung muss zwischen SiteCollections, Websites, Listen, Dokumentenbibliotheken und Content Types unterschieden werden, dafür habe ich in der Vorlage folgende UML Stereotypes angelegt:

  • SPList
  • SPDocLib
  • SPWeb
  • SPSite
  • SpContentType

Diese Stereotypes kann man nun den entsprechenden UML-Klassen zuordnen und somit eine Unterscheidung zwischen den verschiedenen SharePoint Elementen im UML-Modell treffen.

urlaubsantrag-contenttype.png
Ein kleiner Ausschnitt aus dem Beispielmodell von oben ist nachfolgend dargestellt.

urlaubsantrag-contenttypemodell.png

Als genereller Vorteil hat sich die Verwendung und Modellierung von Datenstrukturen in Content Types erwiesen, auf die ich in einem zukünftigen Blogpost gern eingehen werde.

Die Visio-Vorlage gibt es hier zum Download: WSS_DataTypes.

25. Februar 2009

Fachkonzeption: Verwendung von Use Cases

Da dieses Thema bei mir gerade mal wieder aktuell ist, gibt es nachfolgend eine Use Case Vorlage, die sich bei uns im Projekt bewährt hat.

Was ist ein Use Case?

Ein Use Case (dt. Anwendungsfall) beschreibt eine Interaktion zwischen einem Akteur und dem Zielsystem die zur Erreichung eines fachlichen Ziels wichtig ist.

Wie wird ein Use Case dargestellt?

Ein Use Case ist recht granular und beschreibt genau eine Interaktion, der als Prozess dargestellt werden kann. Ein Akteur kann dabei ein menschlicher Benutzer oder aber auch ein Drittsystem sein, dass mit dem Zielsystem aus nicht trivialen Grund interagiert.

Ein Use Case kann natürlich durch reinen Prosa Text beschrieben werden. Der Nachteil an dieser Variante ist, dass die Pflege des Textes mühsam ist und die einzelnen Fakten nicht auf einen Blick überschaubar sind. Den Ablauf in Stichpunkten zu beschreiben bringt da schon mehr Lesbarkeit hinein. Da ein Use Case typischerweise immer wieder durch die gleichen Meta-Informationen beschrieben wird, macht es Sinn eine Vorlage zu entwickeln, mit der man in seinem Projekt Anwendungsfälle beschreibt.

Die nachfolgende Use Case Vorlage habe ich nach meinen eigenen Vorstellungen und der Zuhilfenahme weitere Best Practices und Vorlagen entwickelt.

Die Inhalte der weißen Felder sind jeweils durch die eigenen Werte zu ersetzen. In der Vorlage habe ich die Felder durch passende Fragen und Hinweise gefüllt, die ein Ausfüllen der Vorlage erleichtern sollen.

Für die Zusammenarbeit im Team eigenen sich vor allem die Felder Version und Bearbeitungskommentar. Durch diese beiden Felder können nachträgliche Änderungen und Nachbesserungen auf einen Blick sichtbar gemacht werden. Die Frage “Ist die Version die Sie vorliegen haben, die aktuelle Version?” kann somit leicht beantwortet werden.

Natürlich ist die tabellarische Darstellung nur für eine einzelne Beschreibung eines Use Cases sinnvoll. Zur übersichtlichen Darstellung verschiedener Use Cases und Benutzer können UML Use Case Diagramme verwendet werden. Nachfolgend habe ich ein beispielhaftes Use Case Diagramm für ein Bibliothekssystem dargestellt.

Anwendungsfälle können auf diese Art und Weise beschrieben und im Anschluss mit den relevanten Stakeholdern, allen voran dem Kunden, besprochen und angepasst werden. Sie bilden so die Grundlage für die nachfolgenden Phasen der Software-Entwicklung.

13. November 2008

UML 2 Notationsübersicht

Wer sich die Notation einzelner UML-Elemente ansehen oder einfach wieder ins Gedächtnis holen will, dem empfehle ich die UML 2 Notationsübersicht von www.oose.de.

UML 2 Notationsübersicht (PDF)
Nachfolgend die 4 Seiten der Notationsübersicht als Einzelgrafiken:

Die Übersicht kann natürlich nur zum Naschlagen dienen, einige Zusammenhänge und Diagramme werde ich in nachfolgenen Einträgen erläutern.

12. August 2008

MS Visual Studio “Rosario” – UML Unterstützung

Bisher hielt man sich seitens Microsoft eher bedeckt, was eine sinnvolle Integration von UML (Unified Modelling Language) in die Entwicklungsumgebung Visual Studio betraf. Seit Visual Studio 2005 gibt es den Class Designer, mit dem man Klassendiagramme für die jeweiligen Projekte separat erstellen kann. Praktisch ist dies, da Visual Studio aus dem Diagramm direkt Code erzeugt und es somit weitere Arbeit erspart. Mehr wird aktuell jedoch nicht unterstützt, umso mehr freut es mich, dass Microsoft nun daran arbeitet. Im nächsten Release des Visual Studio Team Systems Codename “Rosario”, soll eine Untertsützung folgender 5 UML Basis Diagramme enthalten sein:

  • Klassendiagramm (class diagram)
  • Anwendungsfalldiagramm (Use Case diagram)
  • Komponentendiagramm (Component diagram)
  • Sequenzdiagramm (Sequence diagram)
  • Aktivitätsdiagramm (Activity diagram)

Wie Cameron Skinner in seinem Blog schreibt, wird es eine Kombination aus UML und einer domain-specific language (DSL, dt. Domänenspezifische Sprache) geben. Dies macht natürlich Sinn, da UML als universell einsetzbare, objektorientierte Notation bzw. Sprache nicht nur zur Software-Modellierung verwendet werden kann, sondern auch zur Modellierung Software fremder Sachverhalte.

Um die UML Diagramme nicht nur für visuelle Zwecke zu nutzen, sondern den Informationsgehalt dieser für eine Codegenerierung zu verwenden,, will Microsoft eine DSL darunter setzen, die dann Informationen auswerten kann und die Sachverhalte auf Programmcode-Ebene betrachtet. Man ordnet den beiden Sprachen unterschiedliche Abstraktionsniveaus zu, so dass UML auf einer logischen Ebene (engl. logical layer) und die DSL auf einer darunter liegenden physischen Ebene (engl. physical layer) fungiert.

Im April wurde bereits ein CTP von Roasario veröffentlicht, das ganze gibts als Virtual PC Image zum herunterladen. Die Links dazu und eine kleine Featurelist gibt es im Blog von Jeff Beehler.

Ich bin sehr gespannt wie dieses Zusammenspiel konkret aussehen wird und werde das Thema im Auge behalten.

9. August 2008