Model Driven Engineering

Model Driven Engineering used by Inteca goeas to transparent IT architecture modelling process and good business results
Podziel się!

Na rynku IT mają do czynienia z różnymi metodykami inżynierii oprogramowania, paradygmatami architektury i stylami projektowania rozwiązań IT. W Inteca, podczas realizacji kompleksowych projektów dla naszych klientów z różnych sektorów, przez lata udało nam się nauczyć, przetestować, wykorzystać i eksperymentować z  większością z nich. Efektem tego jest wypracowanie własnej metodyki Model Driven Engineering. 

Nauczyliśmy się, że niezależnie od stylu zarządzania i prowadzenia projektu (od małych samo-organizujących się zespołów do wielkich wielo-organizujących programów z udziałem wielu dostawców) ryzyko związane z realizacją projektu jest zawsze związane z: niespełnieniem wymagań biznesowych – szczególnie  w zakresie procesów biznesowych, brakiem spójności pomiędzy produktami różnych faz procesu wytwórczego (SDLC) i wynikające z niej nieporozumienia, brakiem świadomości architektonicznej IT.

Inżynieria oprogramowania

Praktyki takie jak:

  • Modelowanie procesów w BPMN,
  • Symulacja procesów,
  • Analiza wymagań systemu IT z użyciem Przypadków Użycia,
  • Projektowanie zorientowane obiektowo w UML,
  • Projektowanie architektury SOA sterowanej organizacją domen biznesowych czy generowanie produktów implementacji (kod źródłowy, kontrakty usług, fizyczny model danych) z modeli projektu oprogramowania

to przykłady wiodących elementów, używanych w inżynierii oprogramowania.

Jednakże rzadko kiedy zespoły są w stanie zintegrować powyższe praktyki, tak aby działały jako jeden, spójny i całościowy proces wytwarzania oprogramowania, który gwarantuje spójność, powtarzalność i istotnie redukuje ryzyko.

Model Driven Engineering

Model Driven Engineering

Dzięki doświadczeniu zdobytemu w projektach realizowanych w bardzo zróżnicowanych środowiskach, udało nam się zintegrować powyższe praktyki w jedną, spójną metodę pracy, która wykorzystuje najlepsze elementy poszczególnych standardów, notacji i metodyk. Realizację każdego z tych elementów opisujemy poniżej.

Analiza procesów oparta o model procesu (Model Driven Process Analysis)

  1. Używamy narzędzi BPM / CASE do budowy modelu procesów oraz modelu domeny – łączymy notację BPMN z diagramami UML na poziomie biznesowym. Obiekty informacyjne i danych łączone są z aktywnościami przepływu procesu.
  2. Symulujemy poszczególne warianty procesu w celu analizy wpływu planowanej zmiany oraz poszukiwaniu optymalnego wariantu.
  3. Nie piszemy dokumentacji procesowej – generujemy ją z naszego modelu analizy. Komentarze i zmiany są realizowane bezpośrednio w modelu, co zapewnia spójność.
  4. Weryfikacja biznesowa jest realizowana z użyciem narzędzi kolaboracji on-line, w których na każdym etapie widok on-line naszego modelu analizy dostępny jest dla interesariuszy.

Projektowanie Architektury IT oparte o model

  1. Projekt realizacji wymagań w architekturze wywodzony jest bezpośrednio z elementów modelu poprzedniej fazy.
  2. Identyfikujemy i projektujemy komponenty IT docelowego rozwiązania.
  3. Kontrakty usług i modele wiadomości (integracja), schematy danych są generowane z modeli architektonicznych w narzędziu CASE.
  4. Zbudowaliśmy zestaw rozszerzeń dla narzędzi do modelowania, które automatycznie weryfikują spójność i kompletność realizowanych projektów.
  5. Dokumentacja Architektury oprogramowania jest generowana jest z modelu projektu.

Automatyzacja budowy i rozmieszczania oprogramowania

  1. Produkty fazy projektowania w postaci modeli analizy I architektury są wkładem do fazy implementacji, gdzie transformujemy modele do postaci definicji wiadomości  i interfejsów oraz kodu źródłowego.
  2. Proces budowania aplikacji I jej rozmieszczenia na poszczególne środowiska przebiega w sposób automatyczny dzięki podejściu DevOps I Ciągłej Integracji.
  3. Używamy testów automatycznych dla zapewnienia jakości oprogramowania.
  4. Zbudowaliśmy szereg dedykowanych narzędzi do budowy I rozmieszczania aplikacji na platformie SoftwareAG webMethods.

Rezultaty biznesowe stosowanego podejścia MDE

Efektywność

Wobec zastosowania Model Driven Engineering, każdy produkt procesu jest  powiązany (traceable) z produktami faz wcześniejszych i oznacza wejście dla produktów faz kolejnych. W takim podejściu nie są konieczne nakłady pracy na jednoczesne utrzymywanie modeli projektowych oraz dokumentacji (np. specyfikacji funkcjonalnej, specyfikacji architektonicznej).

Dokumentacja oraz elementy implementacji są generowane z modelu, utrzymywanego w narzędziu CASE, dzięki czemu minimalizujemy nakłady pracy, koniecznej do aktualizacji zmian w dokumentacji oraz między produktami poszczególnych faz procesu projektowego.

Redukcja czasu realizacji poszczególnych etapów prac projektowych

Oszczędzamy zasoby, poświęcone na dokumentowanie projektu oraz przeglądy i akceptacje dokumentacji.
Cała dokumentacja wymagań, procesów biznesowych i projektu rozwiązania jest utrzymywana w narzędziu CASE i aktualizowana w czasie rzeczywistym.

Budowa, rozmieszczenie i testy oprogramowania są zautomatyzowane. Przetestowanie i publikowanie nowych czy zmodyfikowanych funkcjonalności, odbywa się szybciej i nie rodzi dużych kosztów.

Spójność i możliwość śledzenia powiązań elementów

Istnieje pełna możliwość śledzenia powiązań z wymaganiami biznesowymi, poprzez wymagania funkcjonalne, takie jak np. Przypadki użycia czy User stories, aż do ich realizacji w postaci elementów projektu oprogramowania (usługi, ekrany, komponenty) i wynikających z nich zadaniach  w procesie rozwoju oprogramowania.

Zależności te są możliwe do prezentacji w postaci graficznych diagramów oraz analizy w arkuszach kalkulacyjnych. Dzięki temu weryfikacja i walidacja rozwiązania jest przejrzysta dla wszystkich interesariuszy projektu.


Podziel się!