2011-11-08 14 views
6

W naszej firmie zaczęliśmy używać VS 2010 do modelowania naszych systemów, w ramach tzw. Projektów modelowania. Są one przechowywane pod kontrolą źródła TFS2010.Modelowe problemy projektowe

Wszystko to jest dobre dla pojedynczego użytkownika, ale gdy tylko wprowadziliśmy to narzędzie do całego zespołu architektów, natknęliśmy się na poważny problem: bardzo źle obsługuje wielu użytkowników! Pozwól, że przeprowadzę Cię przez prosty scenariusz.

  1. Architect 1 wyewidencjonuje istniejącym schemacie i działa na nią przez chwilę
  2. Architect 2 dodaje nowy schemat i działa na nią przez chwilę
  3. Architect 2 kontrole w swoim nowym schemacie
  4. Architect 1 kontrole w jego zmianach w projekcie modelowania
  5. Architekt 2 ponownie otwiera swój diagram, ale okazuje się, że brakuje w nim wszystkich elementów!

Jak już zrozumiałem, problem polega na tym, że projekt architektury oparty jest na kilku plikach xml, a w szczególności na jednym ważnym kawałku xml o nazwie ModelDefinition/Architecure.uml. Zawiera wiele wiedzy na temat diagramów w projekcie modelowania. Gdy wiele osób jednocześnie wykonuje wiele zmian w tym pliku, narzędzia (TFS, VS) nie obsługują wymaganego scalania automatycznie, a my mamy problemy z wielką współbieżnością.

Więc w moim scenariuszu, ponieważ Architecture.uml że architekt 1 sprawdzone w nie coś na temat elementów, które architekt 2 dodanych wiedzieć, elementy te są zastępowane lub w inny sposób zniszczony.

Chcemy uniknąć podziału projektu na kilka mniejszych, ponieważ oznaczałoby to, że musielibyśmy wielokrotnie definiować nasze komponenty modelowania (klasy, aktorzy, przypadki użycia, komponenty itp.). Korzystając z jednego rozwiązania, możemy zdefiniować takie elementy w jednym miejscu i ponownie wykorzystać je na każdym innym schemacie.

Zatem naszym obecnym "rozwiązaniem" jest praca z wykorzystaniem ekskluzywnych czeków. Więc tylko jeden architekt może pracować na raz!

miałem nadzieję, że ktoś wymyślił lepszego rozwiązania tego problemu, co pozwala nam na bardziej efektywną pracę.

Odpowiedz

2

Spróbuj podzielić & podbić: Czy to możliwe, że każdy architekt pracuje na jej osobistym oddziale &, a następnie wszystko jest połączone w "Trunk"?
Konflikty powinny być widoczne podczas tych scaleń.


EDIT
Można zatrudnić narzędzia XML specyficznych, jak te prezentowane here.
Czyniąc tak, należy zachować podejście rozgałęzienie-per-architekta, ale zamiast przy użyciu jednego kroku TFS seryjnej możesz:

  • wykonać porównanie katalogów między „oddział” folderu & swój ' folder "trunk". Każdy znaleziony plik podlega scaleniu, które następuje.
  • Merge każdy znaleziony plik do folderu „oddział”, przy użyciu jednego z narzędzi przedstawionych w artykule. Użyłem Altova DiffDog, jest bardzo dobry - ale ma wysoką nagrodę.
  • Sprawdź, czy wszystko jest OK, a następnie zatwierdź w "oddziale".
  • Teraz połącz z TFS-merge w "trunk", który powinien być teraz banalnym połączeniem.
+0

Dzięki za odpowiedź. Zapewni to, że żadne elementy nie zostaną utracone bez zauważenia. Miałem jednak nadzieję, że nie będę musiał ręcznie scalać pliku, ponieważ jest to plik xml. Z mojego doświadczenia wynika, że ​​domyślne narzędzie do scalania dostarczane z TFS 2010 jest słabo wyposażone w obsługę plików xml, np. poruszony element może zostać zidentyfikowany jako współzałożyciel, chociaż tak naprawdę nie jest; jest to po prostu zamieniona pozycja na niezłożonej liście. Rozumiem jednak dane wejściowe i przekażę je mojemu zespołowi w celu uzyskania potwierdzenia. Będę oczekiwał, że zaakceptuję to na razie, aby sprawdzić, czy ktoś jeszcze nie napotkał i nie rozwiązał tego koszmaru :) – havardhu

+0

Całkowicie zgadzam się z twoim "nadzieją uniknięcia ręcznego scalania XML". Poczekaj na lepszy sposób :) – pantelif

+0

Dzięki za edycję uważam, że może to nieco poprawić proces. Przekierowanie do przodu pnia za pomocą odpowiedniego narzędzia do scalania XML powinno być krokiem we właściwym kierunku :) – havardhu

Powiązane problemy