Modellierung und Qualitätssicherung von UML-Modellen der ...
Modellierung und Qualitätssicherung von UML-Modellen der ...
Modellierung und Qualitätssicherung von UML-Modellen der ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong><br />
<strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik<br />
<strong>von</strong> Informationssystemen<br />
Tobias Brückmann, Volker Gruhn
Motivation / Einordnung<br />
• Vision<br />
• Generieren <strong>von</strong> Programmcode <strong>der</strong> Geschäftslogik <strong>von</strong><br />
Informationssystemen<br />
• Geschäftslogik: Keine UI, Keine Persistenz, son<strong>der</strong>n die Ablaufsteuerung<br />
• Modellgetriebener Entwicklungsprozess<br />
• <strong>Modellierung</strong>: Erstellung <strong>und</strong> Verfeinerung des (visuellen) SW-Modells, bis<br />
es die erfor<strong>der</strong>liche Detaillierung erreicht hat<br />
• Code-Generierung (<strong>und</strong> Einbindung)<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
2
<strong>Modellierung</strong><br />
• Einsatz <strong>von</strong> visuellen SW-<strong>Modellen</strong><br />
• Ursprünglich: Zwischenmenschliche Kommunikation<br />
• Hinzugekommen: Mensch-Maschine-Kommunikation<br />
• Verschärfte Anfor<strong>der</strong>ungen an Modelle:<br />
• Vollständigkeit, Konsistenz, Korrektheit bzgl. <strong>der</strong> Anfor<strong>der</strong>ungen<br />
Modelle werden komplexer <strong>und</strong> gleichzeitig kritischer<br />
• Herausfor<strong>der</strong>ung: Modellkomplexität<br />
• Manuelle <strong>Modellierung</strong><br />
• Große, komplexe Modelle sind für Menschen nicht mehr überschaubar<br />
• Modellierer benötigt Hilfestellung bei <strong>der</strong> Arbeit:<br />
• Verschiedene Sichten integriert in ein Modell<br />
• Unterstützung durch automatische <strong>Qualitätssicherung</strong><br />
im integrierten Modell<br />
• (Unterstützung durch geeignete Konzepte zu Modellinteraktion)<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
3
Code-Generierung<br />
• Code-Generierung<br />
• Domäne <strong>der</strong> Informationssysteme vielfältig<br />
• Anfor<strong>der</strong>ungen an Code-Generator je Projekt unterschiedlich<br />
• Es gilt jedoch immer:<br />
• Erlaubte Diagramme <strong>und</strong> Notationselemente samt Bedeutung sowie<br />
<strong>der</strong>en Beziehung müssen klar definiert sein<br />
• Ein einfaches Metamodell erleichtert Erstellung <strong>und</strong><br />
Wartung <strong>von</strong> Generatoren<br />
• Herausfor<strong>der</strong>ung: Einfache <strong>und</strong> klare Schnittstelle zum Generator<br />
• Unterstützung <strong>von</strong> Konzepten zur <strong>Modellierung</strong> <strong>von</strong> Geschäftslogik<br />
• Möglichst einfaches Modell als Input für den Generator<br />
• Reduziert auf logische Informationen<br />
• Abstraktion <strong>von</strong> diagrammspezifischen Beson<strong>der</strong>heiten<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
4
Modellarchitektur für Geschäftslogik<br />
• AMABULO (A Model Architecture for Business Logic)<br />
• Infrastruktur für die <strong>Modellierung</strong> <strong>und</strong> Generierung <strong>von</strong> Geschäftslogik<br />
• Menge <strong>von</strong> <strong>Modellen</strong> <strong>und</strong> Modelltransformationen<br />
AMABULO<br />
Structure<br />
Diagram<br />
Process<br />
Diagram<br />
State<br />
Diagram<br />
Business Process<br />
Modeling Languages<br />
(e.g. BPMN, EPC)<br />
Semantic Meta Model<br />
Program-Code<br />
(e.g. Java)<br />
XML-Code<br />
(e.g. BPEL)<br />
Coloured Petri Nets<br />
Bidirectional<br />
Model Transformation<br />
Unidirectional<br />
Model Transformation<br />
Optional<br />
Model Transformation<br />
• Thema heute: <strong>Modellierung</strong> <strong>von</strong> Geschäftslogik mit <strong>UML</strong> +<br />
Gr<strong>und</strong>lagen <strong>der</strong> automatischen <strong>Qualitätssicherung</strong><br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
5
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Warum Unified Modeling Language (<strong>UML</strong>) ?<br />
• Integriert verschiedene <strong>Modellierung</strong>skonzepte,<br />
die zur <strong>Modellierung</strong> <strong>von</strong> IT-Systemen benötigt werden<br />
• Unterstützung verschiedener Sichten<br />
• Skaliert in <strong>der</strong> Detaillierung innerhalb eines Diagrammtyps<br />
• Falls bestimmte Notationselemente fehlen ist ein<br />
Diagramm trotzdem syntaktisch richtig<br />
• Skaliert in <strong>der</strong> Anzahl Diagramme<br />
• Weltweit in Industrie <strong>und</strong> Forschung verbreitet<br />
• Modelle einigermaßen einfach zu verstehen / zu modellieren<br />
• Kompromiss zwischen intuitiver Verständlichkeit<br />
<strong>und</strong> definierter Semantik<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
6
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Beispiel-Modell<br />
• Aktivitätsdiagramm<br />
Activity Diagram: Offer Decision<br />
Activity Diagram: 4-eyes-decision<br />
[property = false]<br />
<br />
Create offer<br />
[property = true]<br />
[decision = d]<br />
<br />
Person 1 decides<br />
[decision = b]<br />
<br />
simple-decision<br />
<br />
Person 2 decides<br />
[decision = d]<br />
<br />
4-eyes-decision<br />
Offer<br />
[decision = c]<br />
<br />
Send message<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
7
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Beispiel-Modell mit den Sichten<br />
• Aktivitätsdiagramm, Zustandsdiagramm, Klassendiagramm<br />
Activity Diagram: Offer Decision<br />
[Offer.property = false]<br />
<br />
Create offer<br />
<br />
Offer.decision = a AND<br />
Offer.property = true OR false<br />
Offer<br />
[Offer.property = true]<br />
Activity Diagram: 4-eyes-decision<br />
[Offer.decision = d]<br />
Offer<br />
<br />
Person 1 decides<br />
Offer<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Class Diagram: Offer<br />
Offer<br />
deci<strong>der</strong> 1<br />
deci<strong>der</strong> 2<br />
decision<br />
property<br />
[Offer.decision = b]<br />
State Machine Diagram: Offer.decision<br />
Offer<br />
<br />
simple-decision<br />
Offer<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Offer<br />
<br />
Person 2 decides<br />
Offer<br />
[Offer.decision = d]<br />
<br />
Offer.decision = b<br />
<br />
Offer.decision = b<br />
a [Undecided]<br />
b [Person 1 accepted]<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Offer<br />
<br />
4-eyes-decision<br />
Offer<br />
[Offer.decision = c]<br />
Offer<br />
<br />
Send message<br />
Offer<br />
<br />
Offer.decision = c<br />
<br />
Offer.decision = c<br />
c [Offer accepted]<br />
d [Offer declined]<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
8
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Ablaufsicht (Aktivitätsdiagramm)<br />
• Unterstützen Strukturierung durch Verschachtelung: Actions + Activities<br />
• Entscheidungen in <strong>der</strong> Ablaufsteuerung<br />
• Vor- <strong>und</strong> Nachbedingungen<br />
• Benötige Objekte<br />
• Struktursicht (Klassendiagramm)<br />
• Geschäftsobjekte mit Eigenschaften (Attributen)<br />
• Zustandssicht (Zustandsdiagramm)<br />
• Fachliche Zustände <strong>von</strong> Objekten, die für Ablaufsteuerung relevant sind<br />
• Technisch: Verfeinerung <strong>von</strong> Attributen <strong>von</strong> Objekten<br />
• Jedes Zustandsdiagramm spezifiziert genau ein Attribut<br />
<strong>und</strong> je<strong>der</strong> Zustand einen möglichen Attributwert<br />
• Transitionen entsprechen den möglichen Än<strong>der</strong>ungen <strong>von</strong> Attributwerten<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
9
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Zustandssicht (Fortsetzung):<br />
• Vorteile<br />
• Zustandsdiagramme werden nicht sehr groß,<br />
da sie auf fachliche Zustände beschränkt sind<br />
• Vermeidung <strong>von</strong> „anonymen“ Zuständen<br />
• Nicht jede Funktion führt zu einer Än<strong>der</strong>ung<br />
des fachlichen Zustands<br />
• Zustandsdiagramm ist semantische Abstraktion<br />
<strong>von</strong> konkreten Funktionen<br />
• Bildet „semantische Klammer“ über<br />
mehrere Aktivitätsdiagramme<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
10
author : Tobias Brueckmann<br />
date : 2005-12-11<br />
state : draft<br />
version : 0.01<br />
lod : ??<br />
ContractState DELETED;<br />
ContractState CREATED;<br />
ContractState DRAFT;<br />
ContractState PENDING_UW;<br />
ContractState PENDING_MC;<br />
ContractState PENDING_REVIEW_UW;<br />
ContractState PENDING_MA ;<br />
ContractState PENDING_WRITTEN;<br />
ContractState BOUND;<br />
ContractState REJECTED;<br />
ContractState WITHDRAWN;<br />
ContractState CANCELLED;<br />
ContractState EXPIRED;<br />
ContractState BOUND_PENDING_CAMCELLATION;<br />
ContractState UNCOMPLETE_BOUND_PENDING_CAMCELLATION;<br />
ContractState UNCOMPLETE_BOUND ;<br />
Long contractId;<br />
Long contractVersioId;<br />
String nameOfInsured;<br />
IufRecommendationType total;<br />
IufRecommendationType generalRisk;<br />
IufRecommendationType specialRisk;<br />
IufRecommendationType harmsRisk;<br />
IufRecommendationType bankData;<br />
Collection generalRiskDPDetails;<br />
Collection specialRiskDPDetails;<br />
Collection harmsDPDetails;<br />
Collection bankDataDPDetails;<br />
Collection losses;<br />
Collection possibleLosses;<br />
Collection communicationBetweenMC_and_MA;<br />
ExpertDiscussionVo recommendationByMA;<br />
String exclusions;<br />
String commentsByUW;<br />
PremiumVo premium;<br />
Collection openDiscussions;<br />
ContractVo contract;<br />
String tradingPassword;<br />
CompanyVo company;<br />
BigDecimal maxSumInsured;<br />
String street;<br />
String houseNumber;<br />
String postCode;<br />
String city;<br />
Long id;<br />
Access access;<br />
String userName;<br />
String password;<br />
UserType type;<br />
Date lastVisit;<br />
String position;<br />
String division;<br />
String firstName;<br />
String surname;<br />
UserSex sex;<br />
String phone;<br />
String cellPhone;<br />
String pager;<br />
String fax;<br />
String email;<br />
Platform platform;<br />
Date creationDate;<br />
Date modificationDate;<br />
Role role;<br />
CountryCode country<br />
List userApplications;<br />
List userApplicationsVo;<br />
Integer defaultSignature;<br />
String signature1;<br />
String signature2;<br />
String disclaimer;<br />
boolean automaticDecision;<br />
ContractVerVo contractVerVo;<br />
Long userIdBroker;<br />
Long userIdUn<strong>der</strong>writerReviewer;<br />
Long userIdUn<strong>der</strong>Writer;<br />
Long userIdMedCons;<br />
Long userIdMedAdv;<br />
Long creationUser;<br />
boolean remin<strong>der</strong>Broker;<br />
boolean remin<strong>der</strong>Un<strong>der</strong>writerReviewer;<br />
boolean remin<strong>der</strong>BrokerUn<strong>der</strong>writer;<br />
boolean remin<strong>der</strong>MedAdv;<br />
boolean remin<strong>der</strong>MedCons;<br />
Long parentContract;<br />
boolean current;<br />
ContractOrigin origin;<br />
ContractState state;<br />
BrokerVo brokerVo;<br />
Un<strong>der</strong>writerVo <strong>und</strong>erWriterVo;<br />
Un<strong>der</strong>writerVo <strong>und</strong>erWriterReviewerVo;<br />
MedicalAdvisorVo medicalAdvisorVo;<br />
MedicalConsultantVo medicalConsultantVo;<br />
Date creationDate;<br />
Date endorsedAt;<br />
Long recoverReferenceNumnber;<br />
String brokersReferenceNumber;<br />
String mediRiskReferenceNumber;<br />
Long iufConfigurationIdentifier;<br />
Long contractId;<br />
Long userIdMedAdv;<br />
Long userIdUMedCons;<br />
UserVo advisor;<br />
UserVo consultant;<br />
Date dateOfQuestion;<br />
String questionComment;<br />
String questionExclusions;<br />
RecommendationType questionRecommendation;<br />
Date dateOfAnswer;<br />
String answerComment;<br />
String answerExclusions;<br />
RecommendationType answerRecommendation;<br />
boolean finalSuggestion;<br />
<strong>UML</strong>-Modelle für Geschäftslogik<br />
cld MMF :: BusinessRelevantObjects, extract<br />
ContractState<br />
DecisionPanel<br />
User<br />
Contract<br />
ExpertDiscussion<br />
Broker<br />
Un<strong>der</strong>writer<br />
Expert<br />
DataAssistent<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
11
Modellarchitektur für Geschäftslogik<br />
• AMABULO (A Model Architecture for Business Logic)<br />
AMABULO<br />
Structure<br />
Diagram<br />
Process<br />
Diagram<br />
State<br />
Diagram<br />
Business Process<br />
Modeling Languages<br />
(e.g. BPMN, EPC)<br />
Semantic Meta Model<br />
Program-Code<br />
(e.g. Java)<br />
XML-Code<br />
(e.g. BPEL)<br />
Coloured Petri Nets<br />
Bidirectional<br />
Model Transformation<br />
Unidirectional<br />
Model Transformation<br />
Optional<br />
Model Transformation<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
12
AMABULO - Metamodell<br />
• Integration <strong>der</strong> <strong>UML</strong>-Sichten auf AMABULO<br />
• Abstraktion <strong>von</strong> konkreter Sicht<br />
• Reduzierung auf logische Informationen<br />
Prozess<br />
Struktur<br />
Zustand<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
13
Automatische <strong>Qualitätssicherung</strong><br />
• Unser Ziel<br />
• Modellierer auf Stellen im Modell hinweisen, an denen<br />
möglicherweise etwas falsch modelliert wurde<br />
• Fokus dabei: Semantische Fehler<br />
• Automatische <strong>Qualitätssicherung</strong> heute<br />
• <strong>Modellierung</strong>swerkzeuge bieten Hilfe zur Vermeidung <strong>von</strong> Fehlern<br />
• Automatische Erkennung <strong>von</strong> Fehlern immer noch ein aktueller<br />
Forschungsgegenstand<br />
• Voraussetzung für automatische <strong>Qualitätssicherung</strong><br />
• Eindeutige definierte Semantik <strong>der</strong> Notationselemente<br />
<strong>und</strong> <strong>der</strong>en Beziehungen<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
14
Automatische <strong>Qualitätssicherung</strong><br />
• „Formalisierung“ des AMABULO-Metamodells mit CPN<br />
• Gefärbte Petri-Netze (Coloured Petri Nets, CPN) nach Jensen<br />
• Abbildung <strong>der</strong> Elemente <strong>und</strong> <strong>der</strong>en Beziehungen auf Elemente eines CPN<br />
• Eindeutige Definition <strong>der</strong> Semantik<br />
• Erlaubt nicht nur statische Analyse, son<strong>der</strong>n auch Simulationen<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
15
Automatische <strong>Qualitätssicherung</strong><br />
• Werkzeug- bzw. Transformationskette: <strong>UML</strong> AMABULO CPN<br />
• Erstellen <strong>und</strong> Bearbeiten des <strong>UML</strong>-Modells in industriellem <strong>UML</strong>-Tool<br />
• MagicDraw, (EnterpriseArchitect)<br />
• Transformation nach AMABULO<br />
• Unter Berücksichtigung toolspezifischer Beson<strong>der</strong>heiten<br />
• Transformation <strong>von</strong> AMABULO nach CPN<br />
• Austauschformat für CPNTools<br />
• Laden des generierten CPN in CPNTools<br />
• Simulation <strong>und</strong> Analyse des Modells<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
16
Automatische <strong>Qualitätssicherung</strong><br />
• Beispiele für „Fragen“ an das Modell<br />
• Hängen alle Abläufe eines Prozesses logisch zusammen?<br />
• Nein, falls das generierte CPN mehr als eine<br />
Zusammenhangskomponente hat<br />
• Können alle modellierten Funktionen <strong>und</strong> Prozesse ausgeführt werden?<br />
• Funktionen <strong>und</strong> Prozesse, die aufgr<strong>und</strong> <strong>der</strong> Kombination <strong>von</strong><br />
verschiedenen Bedingungen niemals ausgeführt werden können,<br />
führen im CPN zu „tote Transitionen“<br />
• Werden alle Funktionen in <strong>der</strong> richtigen Reihenfolge abgearbeitet?<br />
• Schrittweise Simulation des CPN<br />
• Einsetzen <strong>von</strong> Monitor-Stellen im CPN zur Beobachtung <strong>der</strong><br />
Abarbeitungsreihenfolge <strong>von</strong> Transitionen <strong>und</strong> Token<br />
• Erste Experimente mit CPNTools<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
17
<strong>UML</strong>-Modelle für Geschäftslogik<br />
• Beispiel-Modell mit den Sichten<br />
• Aktivitätsdiagramm, Zustandsdiagramm, Klassendiagramm<br />
Activity Diagram: Offer Decision<br />
[Offer.property = false]<br />
<br />
Create offer<br />
<br />
Offer.decision = a AND<br />
Offer.property = true OR false<br />
Offer<br />
[Offer.property = true]<br />
Activity Diagram: 4-eyes-decision<br />
[Offer.decision = d]<br />
Offer<br />
<br />
Person 1 decides<br />
Offer<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Class Diagram: Offer<br />
Offer<br />
deci<strong>der</strong> 1<br />
deci<strong>der</strong> 2<br />
decision<br />
property<br />
[Offer.decision = b]<br />
State Machine Diagram: Offer.decision<br />
Offer<br />
<br />
simple-decision<br />
Offer<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Offer<br />
<br />
Person 2 decides<br />
Offer<br />
[Offer.decision = d]<br />
<br />
Offer.decision = b<br />
<br />
Offer.decision = b<br />
a [Undecided]<br />
b [Person 1 accepted]<br />
<br />
Offer.decision = a<br />
<br />
Offer.decision = c or<br />
Offer.decision = d<br />
Offer<br />
<br />
4-eyes-decision<br />
Offer<br />
[Offer.decision = c]<br />
Offer<br />
<br />
Send message<br />
Offer<br />
<br />
Offer.decision = c<br />
<br />
Offer.decision = c<br />
c [Offer accepted]<br />
d [Offer declined]<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
18
Zusammenfassung <strong>und</strong> Ausblick<br />
• Unser Ziel: Unterstützung <strong>der</strong> <strong>Modellierung</strong> <strong>und</strong> Code-Generierung für<br />
Geschäftslogik <strong>von</strong> Informationssystemen<br />
• <strong>UML</strong>-Diagramme: Aktivitäts-, Klassen-, Zustandsdiagramme<br />
• Integration <strong>der</strong> Sichten in ein (einfaches) Metamodell<br />
• Abstraktion <strong>und</strong> Reduzierung auf logische Informationen<br />
• Formale Semantik durch Abbildung auf CPN<br />
• Automatische Generierung <strong>von</strong> CPN aus <strong>UML</strong><br />
• Gr<strong>und</strong>lage für automatische <strong>Qualitätssicherung</strong><br />
• Ausblick<br />
• Klassifizierung <strong>und</strong> automatisches Finden möglicher <strong>Modellierung</strong>sfehler<br />
• Generatoren für "industriellen" Programmcode für Geschäftslogik<br />
• Gesucht: Industrieprojekte als „Praxistest"<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
19
Fragen <strong>und</strong> Antworten<br />
Kontakt:<br />
Tobias Brückmann<br />
Professur für Angewandte Telematik / e-Business<br />
Institut für Informatik<br />
Universität Leipzig<br />
Klostergasse 3<br />
04109 Leipzig, Germany<br />
brueckmann@ebus.informatik.uni-leipzig.de<br />
www.lpz-ebusiness.de<br />
<strong>Modellierung</strong> <strong>und</strong> <strong>Qualitätssicherung</strong> <strong>von</strong> <strong>UML</strong>-<strong>Modellen</strong> <strong>der</strong> Geschäftslogik <strong>von</strong> Informationssystemen<br />
20