compare & merge, workshop 22.09.2011 foundations - matching: what is «the same» - merging:...

23
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 Kropf Senior SE + Architect [email protected]

Upload: adalwolfa-duhr

Post on 05-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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 + [email protected]

Page 2: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

2

Bridging between business complexityand tool difficulty

Page 3: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

Foundations

3

An Enterprise Model is…

many zoom levelsdown to minute details

hundred thousands of entities

huge number of dependencies

Page 4: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

4

We don't live in an ideal world…

perfectly OKbut how to be sure?

Page 5: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 6: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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, …

Page 7: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 8: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 9: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

9

In what context does an object exist?

Page 10: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 11: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

11

User AUser B

Model

WertA

WertB

Model Model

WertA

WertAWertB

WertAWertB

time

Page 12: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

12

demo

Compare&Merge WizardCompare ViewCopy WizardObject MergerCopy+Paste

Page 13: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 14: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 15: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

15

Copy Wizard demo

Page 16: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 17: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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:

Page 18: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 19: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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"

Page 20: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 21: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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

Page 22: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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)

Page 23: Compare & Merge, Workshop 22.09.2011 Foundations - Matching: what is «the same» - Merging: Union and Conflict Resolution Tools + Usage - Compare&Merge

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