piątek, 21 grudnia 2012

Lista skrótów klawiaturowych

Dla ułatwienia korzystania z programu Enterprise Architect wprowadzono szereg różnych skrótów klawiaturowych. Korzystanie z nich pozwala oszczędzić wiele czasu na wykonywanie powtarzalnych czynności.
Tylko jak efektywnie korzystać z tych skrótów klawiaturowych, gdy tylko niektóre z nich pojawiają się w menu? W EA User Guide jest co prawda strona zawierająca ich spis, ale w formie tabeli, która nie poręczna w codziennym użytkowaniu.

W tym celu może się okazać przydatny arkusz opracowany przez niejakiego Juanjo Ramizera Amenedo. Arkusz ten został opublikowany w serwisie społecznościowym Sparx Systems i jest dostępny do pobrania pod adresem: Enterprise Architect Shortcuts Reference Card.

Myślę, że warto mieć pod ręką ten arkusz w postaci wydruku.

fragment arkusza skrótów klawiaturowych Enterprise Architect
Fragment arkusza skrótów klawiaturowych Enterprise Architect

czwartek, 20 grudnia 2012

Edycja szablonów RTF: Elementy spoza pakietu

W prosty sposób można umieścić w szablonie RTF opisy elementów znajdujących się w pakiecie objętym raportem. Wystarczy wstawić odpowiednie znaczniki, a następnie wybrać właściwe pola, które opisują znaczące cechy, takie jak nazwa (Name), czy opis (Notes).
Często jednak może być potrzebne wymienienie również innych elementów, które są powiązane z raportowanym pakietem poprzez kontekst. Dotyczyć to może elementów powiązanych relacjami lub obcych elementów umieszczonych na diagramach w raportowanym pakiecie. Dzięki temu raport może zawierać również (lub tylko) elementy pochodzące z innych pakietów niż raportowany.
Taki zabieg może być przydatny na przykład w sytuacji, gdy w rozdziale opisującym przypadki użycia chcemy nawiązać również do kontekstu procesów biznesowych lub komponentów aplikacji, które je realizują.


środa, 19 grudnia 2012

Edycja szablonów RTF

Program Sparx Enterprise Architect jest instalowany wraz z kolekcją predefiniowanych szablonów RTF. Dostęp do tych raportów jest możliwy z poziomu okna Resources. Szablony te są zebrane w grupę o nazwie System. Raport wygenerowany przy użyciu predefiniowanego szablonu jest łatwo rozpoznawalny z uwagi na zastosowanie specyficznych styli paragrafów. Chociażby wszystkie nagłówki mają odcienie koloru niebieskiego.
Taki styl może nie odpowiadać każdemu, w związku z tym sugeruję, aby traktować je jedynie jako przykłady możliwych konstrukcji, a dla celów projektowych opracować na ich podstawie własne szablony.
Jest to o tyle istotne, że predefiniowane szablony zawierają bardzo dużą ilość cech, tabel oraz pól, które mogą być nadmiarowe. Brak doświadczenia w edycji szablonów bądź po prostu ludzka niechęć do wyrzucania czegokolwiek sprawia, że wygenerowany raport przy użyciu standardowego szablonu staje się nieczytelny z uwagi na przeładowanie niepotrzebnymi informacjami.
W jednym z projektów spotkałem się z raportem wygenerowanym przy użyciu standardowego szablonu, który liczył blisko 200 stron. Ważne informacje były tak rzadko rozsiane, że samo przewijanie stawało się nieprzyjemne, a jak się pomyśli jeszcze o tym, że taki raport jest drukowany w kilku egzemplarzach, to aż żal lasów. Ten raport zamiast 200 stron bez problemu zmieściłby się na 20-30 stronach.

okno Resources - lista standardowych szablonów


poniedziałek, 17 grudnia 2012

Virtual Reports

W programie Enterprise Architect w zakresie generowania dokumentacji w formacie RTF jest możliwość generowania tzw. raportów prostych - opartych o jeden szablon oraz raportów złożonych - opartych o więcej niż jeden szablon. Zaproponowany przeze mnie podział na typy raportów został opisany w artykule Rodzaje raportów.
Metoda wykorzystania raportów złożonych, czyli Virtual Reports może nie być czytelna dla każdego, w związku z tym postanowiłem poświęcić jej nieco miejsca.


sobota, 15 grudnia 2012

Definicje pojęć związanych z generowaniem raportów

W artykułach opisujących funkcjonalność generowania raportów w programie Sparx Enterprise Architect pojawia się szereg pojęć, które mogą być niejasne. W związku z tym w poniższej tabeli zaprezentowano ich definicje. Należy je traktować jako moją propozycję definicji, gdyż mogą się nieco różnić od opisów dostępnych w publikacjach Sparx Systems.



Pojęcie
Definicja
Document Artifact
Element wykorzystywany m.in. przez mechanizm Virtual Report. W tym kontekście służy do przechowywania treści statycznych w formie Linked Document.
Linked Document
Dokument w formacie RTF, który jest przyporządkowany do określonego elementu. Dokument ten można edytować lub usunąć. Informacja o tym, że element posiada Linked Document prezentowana jest na diagramie w postaci literki A w prawym dolnym rogu elementu.
Master Document
Element (package element) wykorzystywany przez mechanizm Virtual Report. Do Master Document możliwe jest przypisanie głównego szablonu RTF określającego m.in. paginę czyli nagłówek i stopkę całego dokumentu.
Model Document
Element wykorzystywany przez mechanizm Virtual Report służący do zdefiniowania sekcji dokumentu. Atrybuty Model Documentu określają treść sekcji, zaś szablon RTF formę prezentacji tej treści.
Package Template
Plik XMI zawierający szablon pakietu wraz z zawartością (podpakiety, diagramy i elementy). Szablon taki służy automatyzacji tworzenia struktury pakietowej, która może być wielokrotnie powielana. Package Template może być dystrybuowany przy użyciu MDG Technology lub importowany jako plik XMI (z zastosowaniem opcji Strip GUID).
Resource Document
Definicja całego dokumentu wyjściowego dostępna w panelu Resources. Definicja ta obejmuje wszystkie opcje takie jak nazwa pliku wynikowego, Master Document, filtry itp.
Treść statyczna
Zawartość sekcji dokumentu pochodząca z Linked Document należącego do elementu typu Document Artifact. Treść statyczna w odróżnieniu od treści dynamicznych generowanych z zawartości pakietu jest sformatowana w formacie RTF, może zawierać tabele oraz elementy graficzne.
Virtual Report
Mechanizm programu Enterprise Architect służący do generowania złożonych dokumentów w formacie RTF umożliwiający wybór, grupowanie oraz ustalenie kolejności treści pochodzących z różnych pakietów i zawierających różny zakres informacyjny.

piątek, 14 grudnia 2012

Rodzaje raportów

Program Enterprise Architect umożliwia generowanie raportów, dzięki którym diagramy oraz opisy zawartości modelu mogą być prezentowane osobom zaangażowanym w przedsięwzięcie  bez potrzeby korzystania bezpośrednio z EA.
Poniżej został przedstawiony podział na kategorie tych raportów.


Raporty HTML

Raport w formacie HTML odzwierciedla strukturę repozytorium lub strukturę wybranego drzewa pakietów, czyli podzbioru repozytorium. Istnieje możliwość zmiany domyślnego szablonu HTML poprzez edycję styli CSS. Edycja szablonu pozwala zmienić styl wyświetlania określonych cech elementów oraz ograniczyć zakres prezentowanych w raporcie cech. Czyli na przykład możemy usunąć z raportu informację o autorze diagramu, czy dacie utworzenia i poprzestać tylko na informacjach ważnych z merytorycznego punktu widzenia. Ponadto w łatwy sposób możliwa jest zmiana logo prezentowanego w prawym górnym rogu raportu. 
Sugerowane zastosowanie tego typu raportu to udostępnienie treści zawartych w modelu kierownictwu projektu lub klientowi. 
Podstawową zaletą tego typu raportów jest łatwość dostępu, gdyż nie jest konieczne instalowanie aplikacji Enterprise Architect lub EA Viewer oraz konfigurowanie dostępu do współdzielonego modelu. 
W niektórych projektach zdefiniowany raport HTML jest generowany cyklicznie i publikowany w serwisie WWW zawierającym zbiór aktualnych informacji dotyczących całego przedsięwzięcia.

Poniższy rysunek prezentuje przykładowy raport w formacie HTML.
zawartość przykładowego raportu HTML z Enterprise Architect

Raporty proste

Raporty proste to inaczej raporty w formacie RTF wygenerowane przy użyciu pojedynczego szablonu specyficznego dla jednego zakresu informacyjnego. Aby wygenerować na przykład raporty opisujące wymagania, przypadki użycia oraz model danych konieczne jest zastosowanie oddzielnych szablonów specyficznych dla każdego rodzaju elementów z uwagi na ich inny zakres informacyjny.
Sugerowane zastosowania:
  • Zestawienie określonego typu elementów wraz z ich cechami - może służyć np. dalszemu przetwarzaniu w MS Excel.
  • Raport roboczy dla członków zespołu projektowego - może służyć np. zebraniu w jednym miejscu wszystkich elementów spełniających określone kryteria w celu walidacji i weryfikacji zbioru danych.
Podstawową zaletą takich raportów jest ich prostota, gdyż wytworzenie pojedynczego szablonu nie jest czasochłonne, a uruchomienie generowania raportu nie wymaga żadnej konfiguracji.
Raporty proste mogą być generowane przy użyciu tych samych szablonów, które są wykorzystywane w generowaniu raportów złożonych.
Poniższy rysunek przedstawia przykład raportu prostego zawierającego zestawienie wymagań funkcjonalnych.
zestawienie wymagań funkcjonalnych


Raporty złożone - Virtual Reports

Raport złożony umożliwia wygenerowanie kompletnego dokumentu w formacie MS Word zgodnego z szablonem projektowym wykorzystywanym również do tworzenia dokumentacji wprost w MS Word lub Open Office. Dzięki temu cała dokumentacja projektowa posiada jednolitą i spójną formę, czyli takie same:
  • style paragrafów,
  • stronę tytułową,
  • metrykę,
  • formę spisu treści,
  • oraz paginę (nagłówek i stopkę).
Dokument taki może składać się z wielu sekcji, z których każda prezentuje inny zakres informacyjny charakterystyczny dla różnego rodzaju elementów modelu. Dodatkowo część treści takiego dokumentu może stanowić tzw. treść statyczną, pochodzącą z zawartości Linked Documents, czyli dokumentów RTF przechowywanych w repozytorium EA. Dokumenty takie mogą zawierać elementy graficzne oraz tabele, które trudno byłoby umieścić w opisach elementów lub pakietów. Format zawartości Linked Document może być niezależny od zastosowanych szablonów projektowych.
Sugerowane zastosowanie to generowanie kompletu dokumentacji projektowej. Zastosowanie Virtual Reports pozwala zachować spójność treści modelu oraz dokumentów, łatwość aktualizacji oraz sprawniejsze zarządzanie dokumentacją poprzez rozdzielenie treści dokumentów od formy ich prezentacji.

spis treści przykładowego raportu złożonego - virtual report

Aby skorzystać z tego typu raportów konieczne jest oprócz przygotowania szablonów również opracowanie odpowiedniej struktury pakietowej oraz diagramów. Przykładowy diagram, który definiuje raport złożony przedstawia poniższy rysunek.
diagram dokumentacji - Virtual report


Mechanizm Virtual Reports umożliwia dodatkowo wygenerowanie również raportu w formacie HTML. Tego typu hybryda pozwala stworzyć raport HTML, który posiada strukturę zgodną z dokumentem w formacie RTF, a nie ze strukturą pakietową repozytorium.
Poniższy rysunek przedstawia taki przykładowy raport, którego strukturę można porównać z odpowiednikiem z zamieszczonym wyżej przykładowym raportem w formacie HTML.
przykładowy Virtual Report w formie HTML

czwartek, 13 grudnia 2012

Generowanie raportów RTF w EA

Gdy zakończymy pracę nad opracowaniem modelu w Enterprise Architect nadchodzi moment, gdy należy podzielić się wynikami pracy z innymi członkami zespołu projektowego lub z klientem. Możemy przesłać lub udostępnić repozytorium EA, ale o wiele lepszym rozwiązaniem jest opracowanie dokumentacji, która w bardziej przejrzysty i czytelny sposób prezentuje zawartość modelu. W tym celu należy skorzystać z funkcjonalności generowania raportów w EA.


piątek, 7 grudnia 2012

Raporty Enterprise Architect jako narzędzie komunikacji

W realizacji projektów informatycznych podstawowym wyzwaniem jest kwestia szeroko rozumianej komunikacji. Najczęstszymi skutkami błędów w komunikacji jest spadek efektywności, obniżenie poziomu motywacji członków zespołu projektowego oraz popełniane błędy. Skutki te dotyczą zarówno komunikacji wewnątrz zespołu, jak również komunikacji z klientem.

Wyzwanie

Aby poprawić efektywność komunikacji stosujemy różnorodne techniki modelowania. Powszechnie znane jest chińskie przysłowie mówiące o tym, że jeden obraz wart jest tysiąca słów. Ale czy to wystarcza?
Nawet, gdy opracujemy doskonałe diagramy zgodne z przyjętą notacją, z których jesteśmy dumni może się okazać, że odbiorca ich nie rozumie. A co gorsza, nie przyzna się, że ich nie rozumie i nie sformułuje żadnych uwag.  W rezultacie przedstawimy materiał, do którego klient nie jest w stanie się odnieść i go zweryfikować.
Niby wszystko się zgadza z regułami sztuki: zamiast opisu tekstowego, który bywa niedoskonały tworzymy diagramy. Załóżmy, że taki diagram jest zgodny z wybraną metodyką oraz notacją. Więc o co chodzi? Problem jest w tym, że autor modelu posiada przygotowanie techniczne, podczas gdy odbiorca modelu może go nie posiadać. Autor modelu zna dobrze narzędzie typu CASE, w którym opracował model, a odbiorca modelu może go nie znać. Zatem brak znajomości aspektów technicznych, notacji oraz narzędzia stanowi barierę w komunikacji.

Podejście TOGAF®

Problem ten został zarysowany w ramach architektonicznych TOGAF®. Sposób, w jaki to zostało opisane bardzo mi odpowiada, dlatego też chciałbym to pokrótce omówić.
Poniższy diagram pochodzi ze strony pubs.opengroup.org/architecture/togaf9-doc/arch/chap34.html, gdzie zostało opisane zagadnienie tzw. metamodelu.
Relacje pomiędzy udziałowcami, modelami i repozytorium. Źródło: The Open Group.
Najważniejsze elementy na tym diagramie, które dotyczą komunikacji to:
  • Architecture Repository (pol. Repozytorium architektoniczne) - system zarządzajacy wszystkimi danymi o korporacji, w tym modelami danych i procesów, oraz informacjami o korporacji. 
  • Model - reprezentacja przedmiotu zainteresowania. Model dostarcza zmniejszonego, uproszczonego i/lub abstrakcyjnego odzwierciedlenia przedmiotu modelowanego. Tworzy się go jako środek do osiągnięcia celu. W kontekście architektury korporacyjnej, przedmiotem podlegającym modelowaniu jest całość lub część korporacji, zaś zamierzonym celem jest zdolność do konstruowania widoków odpowiadających na troski poszczególnych interesariuszy, w szczególności punktów widzenia związanych z analizowanym zagadnieniem.
  • Viewpoint (pol. Punkt widzenia) - definiuje perspektywę, z której ujmowany jest widok. Jest to specyfikacja konwencji dla konstruowania i używania widoku. Widok jest tym, co widzisz; punkt widzenia jest tam, skąd patrzysz - dogodnym punktem odniesienia lub perspektywą, która określa, co widzisz.
  • Stakeholder Views (pol. Widoki interesariuszy) - reprezentacja zbioru powiązanych ze sobą trosk. Widok architektoniczny może być przedstawiony jako model, aby zaprezentować interesariuszom ich obszar zainteresowania architekturą. Widok nie musi mieć postaci wizualnej lub graficznej.
  • Stakeholder (pol. Interesariusz) - osoba, zespół lub organizacja (lub ich klasy) zainteresowana architekturą lub posiadająca troski związane z wynikami implementacji architektury.
Powyższe definicje zostały zaczerpnięte z dokumentu TOGAF®9 Translation Glossary: English - Polish.

Co to tak naprawdę oznacza?

Repozytorium, (które może być zarządzane przez program Enterprise Architect, ale wcale nie musi) służy do przechowywania modelu opisującego architekturę. Tak naprawdę nie ma potrzeby do ograniczania się tylko do modeli architektonicznych, można tę definicję rozszerzyć na dowolne modele. Model, (który nie jest wymieniony wprost na diagramie) przechowuje informacje, które są udostępniane (komunikowane) interesariuszom w postaci widoków, które są istotne z ich punktu widzenia.
Zatem opracowując model należy mieć na uwadze również potrzeby informacyjne interesariuszy. Zamiast publikować czy udostępniać całą zawartość modelu wszystkim zainteresowanym stronom warto zastanowić się, jakiego typu informacje kogo mogą interesować.
Ale warto pójść dalej tym tokiem myślenia. Już na etapie prac przygotowawczych do projektu warto zastanowić się, z czego powinien się składać model.
Czy wystarczy ograniczyć się do modelu danych, czy może rozszerzyć go o zakres funkcjonalny, model przypadków użycia? Czy wystarczy opisać biznesowe przypadki użycia, czy rozwinąć je w niskopoziomowe - systemowe? Czy wystarczy wymienić wymagania funkcjonalne, czy również wymagania biznesowe? Czy opisać strukturę organizacji? Czy wystarczy opisać łańcuchy wartości, czy modelować procesy biznesowe? Czy stworzyć model uprawnień? Czy opisywać aspekty wdrożeniowe? I tak dalej...
Aby odpowiedzieć sobie na tego typu pytania należy wyjść od potrzeb informacyjnych interesariuszy. Bo innego typu informacji wymaga departament informatyki, innego departamenty merytoryczne, a jeszcze innego departament bezpieczeństwa. A przy tym wszystkim warto też pamiętać o programistach, z którymi trzeba rozmawiać w inny sposób niż z biznesem.
Nie wystarczy udostępnić klientowi repozytorium i powiedzieć, że zawiera ono kompletny model rozwiązania. Klient po pierwsze może mieć trudności ze znalezieniem przeznaczonych dla niego informacji. Jeśli ich nie znajdzie, to oprócz wrażenia niedosytu może nie żądać ich dostarczenia, bo nie będzie potrafić odpowiednio sformułować wymagania.

Rozwiązanie

Jak traktować te abstrakcyjne pojęcia jak widok i punkt widzenia w praktyce?

W odniesieniu do programu Enterprise Architect widoki i punkty widzenia są realizowane przez mechanizm raportowania. EA umożliwia wygenerowanie raportów w formacie HTML oraz RTF. Ponadto część informacji może być dostarczana w innej formie za pomocą odpowiednich zapytań, czy transformacji.
Widok stanowi raport wygenerowany z repozytorium. Widok ten zawiera wybrane informacje w formie tekstowej i/lub graficznej. Raport taki może być generowany wielokrotnie, w różnych wersjach powstających w miarę dopracowywania zawartości modelu.
Aby ułatwić wielokrotne generowanie raportu można stworzyć w EA jego definicję. Definicja taka określa zakres informacyjny raportu i stanowi w praktyce określony punkt widzenia interesariusza.
Definicje raportów dostępne są w EA w oknie Resources. Poniższy rysunek zawiera przykład różnych definicji raportów przeznaczonych dla różnych odbiorców.
okno Resources - Documents - RTF Documents

Dzięki opisanemu powyżej podejściu polegającemu na wyjściu od potrzeb informacyjnych różnego typu interesariuszy jesteśmy w stanie opracować dla każdego typu odbiorcy dokumenty napisane w zrozumiały przez nich sposób i nie przeładowane nadmiarem informacji. Jeśli dany odbiorca będzie odczuwał niedosyt informacji, wówczas możemy wskazać mu, że interesujące go informacje są dostępne z innego punktu widzenia, czyli w innym dokumencie, z którym może się zapoznać.
Zatem postępując według zasady "każdemu według potrzeb" z jednego modelu przy użyciu mechanizmów raportowania możemy opisywać jedno rozwiązanie z różnych perspektyw.

Oprócz samego zdefiniowania zawartości raportu poprzez określenie jego sekcji warto też określić również zakres informacyjny dotyczący opisu poszczególnych typów elementów. Na przykład w odniesieniu do wymagań funkcjonalnych dla departamentu merytorycznego może być istotne źródło wymagania, opis czy uzasadnienie. Dla departamentu informatyki może być istotny priorytet i data realizacji, zaś dla programistów sposób realizacji. Po uzgodnieniu zakresu informacyjnego z interesariuszami możemy filtrować (nie pokazywać) wybranych elementów opisu. Błędem bywa generowanie raportów opartych na domyślnych szablonach programu EA, w których prezentowane są wszystkie elementy opisu. Sprawia to, że dokument może zawierać setki stron, a istotne informacje są tak rzadko rozsiane, że zniechęcają do czytania.

sobota, 1 grudnia 2012

Project Integrity Check od środka

Projekt tworzony w programie Enterprise Architect jest przechowywany w formie relacyjnej bazy danych. Bez względu na zastosowany silnik bazodanowy (MS Jet w przypadku plików EAP, MS SQL, MySQL, Oracle czy inny) zastosowany jest ten sam schemat bazy danych do przechowywania modeli. Dane w relacyjnej bazie danych powinny być spójne. Spójność tę można zapewnić w sposób techniczny wprowadzając określone constraints, wówczas silnik baz danych pilnuje zgodności zdefiniowanych reguł.

Funkcja Project Integrity Check

Zapewne kierując się przesłankami wynikającymi z logiki biznesowej dotyczącej przetwarzania danych takich, jak pakiet, element, relacja, atrybut czy metoda, zdecydowano o wdrożeniu wewnątrz programu EA funkcjonalności pozwalającej z poziomu interfejsu użytkownika sprawdzić spójność projektu. Funkcjonalność ta nazywa się Project Integrity Check i jest dostępna poprzez wybór w menu aplikacji opcji Tools -> Data Management -> Project Integrity Check.