View
103
Download
0
Category
Tags:
Preview:
Citation preview
Compare & Merge, Workshop 22.09.2011• Foundations
- Matching: what is «the same»
- Merging: Union and Conflict Resolution• Tools + Usage
- Compare&Merge Wizard
- Compare View "virtual compare"
- Copy Wizard• Coming > 6.3.6• Workshop und Hands On
1
Markus KropfSenior SE + Architectmarkus.kropf@business-dna.ch
2
Bridging between business complexityand tool difficulty
Foundations
3
An Enterprise Model is…
many zoom levelsdown to minute details
hundred thousands of entities
huge number of dependencies
4
We don't live in an ideal world…
perfectly OKbut how to be sure?
5
Almost everything can be different in almost any complexity… bringing in some order
Bdetailsparts
B'detailsparts
the same object
C
A deleted
updated
inserted
6
Matching - What is "the same object"?
- representant of the same entity- the same GUID?- the same Identifier?- the same Name?- the same Value?
GUID:- what if copied?
Identifier:- what if in two models? what if not assigned?
Name:- only meaningful within context - class attribute "value" - activity "start"
Value:- ambiguities- recognize moves
- performance - LCS is O(n^2) - even O(n) hurts- complexity- effort vs. benefit- evolution vs. revolution
Specialities:- models and settings- toplevel folders- rules, permissions, settings- RACI, Flow, Parameter, CustomData, …
7
Merging: Unions
- sorting collisions- identifier collisions- name collisions
diagram layout
- generally get union of both sources, with markers
- compositions - M:N relationships - N:1 relationships - Properties
where unions are not possible "new" wins
Terms used- old, new- master, changed- left, right- red, blue
8
Merging is actually Refactoring
Model A Model B
Object A Object A
Definitions A Definitions B
Dependencies Dependencies
Model A Process P1
Model B System S1
Model A' Process P1'
Model B' System S1'
Model A' Process P1'
System S1
Model A' Process P1'
- same or different file- same or different model- same or different branch
be careful with…- RACI persons, roles- predefined values- risk, measurement templates
demo
9
In what context does an object exist?
Tools
10
how get a consistent object graph
how get a valid object model
how get a valid business view
how get a valid workflow
Use Cases
User A
User B
Model
update
delete
- Collaboration "optimistic locking"
- Offline Work Checkout
Checkin
Model
edit
- similar to collaboration- much larger divergence- checkin is actually keep up and correct
- Independent ModelsModel A Model B - various scenarios…
- Replication
- Extract, Copy, Reuse
- Platform and Customization
automated
manual
11
User AUser B
Model
WertA
WertB
Model Model
WertA
WertAWertB
WertAWertB
time
12
demo
Compare&Merge WizardCompare ViewCopy WizardObject MergerCopy+Paste
13
checkout
Reintegrate Offline Work
"Reference Model""Master"
"Working Model""Changes"
ReferenceModel
ReferenceModel
Working Copy
load/integrate/edit
edit
Compare & Merge
ReferenceModel
commit
Add Activity StepsRemove Activity Steps
Add Information SystemRemove Information System
left right
System "only in master"System "only in changed"
Step "only in changed"Step "only in master"
demo
acceptdelete
acceptdelete
Just from comparing two states, C&M is not able to tell if an object is deleted in the left or inserted in the right
14
Swapped Sides?
"Reference Model""Master"
"Working Model""Changes"
Add Activity StepsRemove Activity Steps
Add Information SystemRemove Information System
left right
System "only in changed"System "only in master"
acceptdelete
acceptdelete
Step "only in master"Step "only in changed"
wording very confusing!!
Using Subsets
15
Copy Wizard demo
Beyond 6.3 …
16
AS IS TO BE
Differenz
Projekte
AS IS TO BE
Differenz
Projekte
AS IS TO BE
Differenz
Projekte
TO BE TO BE TO BE
6.3Compare View
6.3.5Project RelationDirect Actions
6.3.6maintenance
6.0Mass Actions
7.x…
Continuous Evolution
5.2Html Differ
Evolution of Gaps
17
IST1 SOLL1GAP1deleteadd
IST2 SOLL2GAP2deleteadd
DGAPweiterbestehende Differenz
behobene Differenzneue Differenz
Zwischen IST und SOLL besteht immer noch dieselbe Lücke.Projekt muss weitergeführt oder initiiert werden
Zwischen IST und SOLL ist eine neue Differenz entstanden. Entweder hat sich das IST weiter vom SOLL entfernt oder das SOLL wurde erweitert.Neues Projekt sollte initiiert werden.
Die Differenz zwische IST und SOLL besteht nicht mehr, entweder hat IST das SOLL erreicht oder SOLL ist nicht mehr abweichend vom IST.Bestehendes Projekt kann fertiggestellt oder abgebrochen werden.
UpdatenInitiieren Beenden Ignorieren
Evolution
Aktionen:
Change Bereiche
18
Nicht mehr relevant(löschen?)
Identisch mitStandard
nicht benutzte Teiledes Standards
ZusätzlicheFunktionen
Abweichendvom Standard
Gibt es einen Unterschied zwischen dem vollenBild und zwei nacheinander geschalteten compare?- das neue Bild ist im wesentlichen der Merger mit dem neuen Standard
- in vielen Bereichen hat die Art der Differenz geändert - upd kann zu ins, upd‘, eq werden - del kann bleiben oder obsolet sein - ins kann bleiben oder upd oder eq werden - eq kann ins oder upd werden
Es gibt allenfalls zusätzliche Operationen:- gelöschstes Objekt ganz löschen- rekombinieren von Einfügungen
Besonders der praktische Fall interessiert:- es gibt eine Differenz und ich bestätige diese- es gibt dieselbe Differenz erneut, die Bestätigung bleibt erhalten
- ich entferne ein unbenutztes Objekt- beim erneuten Vergleich taucht es wieder auf und ich muss es erneut entfernen ich entferne es nicht, sondern unterdrücke eswenn es erneut rot auftaucht bleibt es unterdrückt
In der Implementierung geht es also darum:- Entscheide bezüglich Differenzen erhalten (wiederholbar machen)- zu Untersuchen: mit Differenz-Operatoren arbeiten d.H. „Lösche P1“ auf ein anderes Modell anwenden
old
modified
new
Delta (technisch) vs Evolution (fachlich)
19
- C&M Differenz wird fachlich zu Projekt/Aktivität (bisherige Stossrichtung)- Differenz ist fachlich in Evolution/Lifecycle modelliert (neue Stossrichtung)- die laufende fachliche Veränderung kann als Gefäss für C&M Delta dienen
Themenfelder:
C&MVirtual
C&MWizard
StatesEinsatzstatus
WorkflowstatusLifecyclestatus
Strat.PositioningEAM
app/von/bis/status
ProjektAktivität von bisChange
Tracking
Difference:
Del
Upd
Ins
Evolution in Time:
Slice t2Slice t1Action
Project
Siehe auchBitemporale Datenhaltung (wiki)- Gültigkeitszeit- Transaktionszeit
Evolution in anderen Achsenz.B. Notfallszenario
"was wurde im Jan 10 gesagt was derPreis am Aug 10 sein würde"
Planung und Umfeld
20
Rahmenbedingungen- schrittweise Erweiterung kurz bis mittelfristig bis Vision- in Datenmodell, Tools, Reporting, Plattform- Lifecycle fachlich erst vereinzelt aber zunehmend, technisch vollständig
Fachliche Welt (Real World)- zeitliche Weiterentwicklung- Ist/Soll/Jetzt/Vision/Varianten- bekannt/angenommen/unbekannt
Informationssystem- Stand bekannt
Informationssystem- Stand geplant
Informationssystem- Stand geplant
Informationssystem- ohne/mit Zeitangabe
Ist/SollGAPAktivitäten
Ist-Stand
Soll-Stand
Zielpublikum
Leitradar
TopEaseDrehscheibe
Prozesse
Systeme
Organisation
Projekte
Regulatorien
Messwerte
Assessments
Dokumente
tatsächliche Situation
Referenzmodelle
Bestandteile des Change
21
ZustandModell, ObjektSchnappschuss
Differenzwenigerandersmehr
MassnahmeActionaccept/reject/ignoreinsert/delete/updateschedule/plan
ZustandModell, ObjektSchnappschuss
Differenzwenigerandersmehr
MassnahmeActionaccept/reject/ignoreinsert/delete/updateschedule/plan
aufnehmen, Detection
vergleichen, Compare
Entscheiden+Planen
Vereinfachter Zyklus:- Ist und Soll liegen als Momentaufnahmen vor- Differenz zwischen Ist und Soll wird bestimmt- Entscheide über Differenzen werden getroffen und in das Ist und/oder Soll angewendet
Frühere Entscheide fliessen nicht in die Differenz ein.
Erweiterter Zyklus- Ist und Soll liegen vor- und bestehende Differenzen sind bekannt- und bestehende Massnahmen sind bekannt
- aus Stand+Differenz+Entscheid entstehen neue Differenzen- Aktionen wirken auf Stand, Differenz, Massnahmen- Zustand, Massnahmen, Differenz ändern
Gaps und Projektschritte
22
Gaps, z.B.obsolete Prozessegeänderte Prozesseneue Prozesse
EigenschaftenBestandteileAbhängigkeiten
Projektschritte- Ablösung (handling Delete)- Anpassung (various cases)- Einführung (handling Insert)LifecycleDelta
ObjectDelta(details)Project
[Plan…] [Mark..]
Choose Project…
Choose related ActivitiesCreate… Add Remove
USE(R)
INS(C)
DEL(D)
INS(C)
Type(CRUD)
23
Kombinatorik:
Struktur: Objekt,Property,Relation,Attribut
Kardinalität: Einzelstelle, Menge
Differenz: Gelöscht,Eingefügt,Geändert,Gleich
Aktionen: Einfügen,Löschen,Anpassen,Ignorieren
Zielrichtung: Links,Rechts,Dritte,Keine
Zielstelle: Deltamarke,Projektpendenz,Lifecycle
Recommended