Udostępnij za pośrednictwem


Generowanie i konfigurowanie aplikacji z modeli

Można wygenerować lub skonfigurować części aplikacji z modelu.Model może być UML lub DSL.

Model reprezentuje wymagania bardziej bezpośrednio kod.Poprzez zachowanie aplikacji bezpośrednio z modelu, może odpowiedzieć na zmianę wymagań znacznie bardziej szybko i niezawodnie niż aktualizowanie kodu.Chociaż niektóre początkowa praca jest wymagane Aby skonfigurować informacje o pochodzeniu, zwracany jest tej inwestycji oczekujesz, że zmiany w wymogach lub planuje wprowadzić kilka wariantów produktu.

Generowanie kodu aplikacji z modelu

Najprostszym sposobem generowania kodu jest przy użyciu szablonów tekstu.Można wygenerować kodu w tym samym Visual Studio rozwiązanie, w którym można przechowywać modelu.Aby uzyskać więcej informacji zobacz:

Ta metoda jest łatwe zastosowanie stopniowo.Uruchom z aplikacji, która działa tylko dla konkretnego przypadku i wybierz polecenie kilka części go, który ma się różnić od modelu.Zmień nazwę części te pliki źródłowe, dzięki czemu stają się one tekst, pliki szablonów (.tt).W tym momencie pliki źródłowe CS zostanie automatycznie wygenerowane z plików szablonów więc aplikacja będzie działać jak wcześniej.

Następnie można podjąć jednej części kodu i zastąpić wyrażenie szablonowe tekst, który odczytuje modelu i generuje częścią pliku źródłowego.Tak, aby ponownie uruchamiać aplikacji i będzie działać jak wcześniej, co najmniej jedną wartość model powinien generować oryginalnego źródła.Po przetestowaniu wartości różnych modeli można przenosić Wstawianie wyrażenia szablonowe w innej części kodu.

Ta metoda przyrostowe oznacza, że generowanie kodu jest zazwyczaj niskiego ryzyka.Wynikowy aplikacje zwykle wykonywać niemal jak również wersji napisany ręcznie.

Jednakże jeśli uruchamia się z istniejącą aplikacją, może się okazać, że dużo przeróbek jest wymagane, aby rozdzielić różne zachowania, które są regulowane przez model, dzięki czemu mogą być niezależnie zróżnicowane.Zaleca się, aby ocenić ten aspekt aplikacji, gdy oszacowania kosztów projektu.

Konfigurowanie aplikacji z modelu

W zależności od zachowania aplikacji w czasie wykonywania, nie może użyć generowania kodu, który generuje kod źródłowy, zanim kompilowania aplikacji.Zamiast tego można projektować aplikacji odczytać modelu UML lub DSL i odpowiednio w zależności od jego zachowanie.Aby uzyskać więcej informacji zobacz:

Metoda ta może również być stosowane przyrostowo, ale istnieje więcej pracy na początku.Konieczne jest napisanie kodu, który odczytać model i ustawić RAM, która umożliwia jego wartości umożliwić dostęp do zmiennej części.Tworzenie zmiennej części na rodzajowy jest droższe niż generowanie kodu.

Aplikacja ogólna zwykle wykonuje się dobrze, mniej niż jego szczególnych odpowiedników.Jeśli wydajność ma podstawowe znaczenie, planu projektu powinny obejmować ocenę tego ryzyka.

Opracowanie aplikacji pochodne

Następujące ogólne wytyczne może być przydatne.

  • Rozpocznij szczególnych, a następnie generalize. Najpierw zapisać określoną wersję aplikacji.Ta wersja powinny działać w jeden zestaw warunków.Po zakończeniu, że działa poprawnie, można wprowadzić niektóre z nich wynikają z modelu.Stopniowo rozszerzać pochodne części.

    Na przykład projektowanie witryny sieci Web, która ma określony zestaw stron sieci Web, przed rozpoczęciem projektowania aplikacji sieci Web, która przedstawia stron, które są zdefiniowane w modelu.

  • Model aspektów wariantu. Identyfikacji aspektów, które będą się różnić, albo między wdrażania jednego i drugiego, lub zmienić w czasie, gdy wymagania.Są to aspekty, które powinny pochodzić z modelu.

    Na przykład zestaw Web stron i łączy między ich zmiany, ale styl i format strony jest zawsze taka sama, a następnie modelu powinna zawierać opis łącza, ale nie do opisania format stron.

  • Oddzielne obawy. Jeśli zmienna aspektów można podzielić na obszary niezależnych, należy użyć osobnych modeli dla każdego obszaru.ModelBus można zdefiniować operacje, które wpływają na modelach i ograniczeń między nimi.

    Na przykład użyj jednego modelu do definiowania nawigacji między stron sieci Web i innego modelu w celu zdefiniowania układu strony.Aby uzyskać więcej informacji, zobacz Porady: integrowanie modeli UML z innymi modelami i narzędziami.

  • Model wymóg nie roztworu. Projektowanie modem DSL lub dostosowanie UML tak, aby w tym artykule opisano wymagania użytkownika.Z drugiej strony nie projektować notacji zgodnie z zmiennej aspektów realizacji.

    Na przykład model nawigacyjny sieci Web powinny reprezentować stron sieci Web i hiperłącza między nimi.Model nawigacyjny sieci Web nie powinny stanowić fragmenty kodu HTML lub klas w aplikacji.

  • Generowanie lub interpretowania? Jeśli rzadko zmieni wymagania dla danego wdrożenia, generowanie kodu programu z modelu.Jeśli wymagania często może zmienić lub mogą współistnieć w więcej niż jednego elementu variant w tym samym wdrażania, zapisu aplikacji tak, że może odczytywać i interpretować modelu.

    Na przykład jeśli używasz modelu witryny sieci Web do opracowania szeregu różnych i instalowane oddzielnie witryn sieci Web, następnie należy generować kod witryny z modelu.Ale go sterować za pomocą modelu witryny, który zmienia się codziennie, a następnie jest napisanie serwer sieci Web, który czyta modelu i odpowiednio przedstawia witryny.

  • UML lub DSL? Należy rozważyć utworzenie notacji modelowania przy użyciu Stereotypy UML rozszerzenie.Zdefiniuj DSL, jeśli nie ma żadnych diagram UML, która pasuje do tego celu.Ale zapobiec przerywaniu standardowe semantyki UML.

    Na przykład diagram klasy UML jest zbiorem pola i strzałki; w tej notacji w teorii definiowania niczego.Jednak nie zaleca się używanie Schemat klasy, z wyjątkiem przypadków, gdy są w rzeczywistości opisujące zestaw typów.Na przykład można dostosować diagramy klas do opisania różnych typów stron sieci Web.

Zobacz też

Koncepcje

Porady: generowanie plików z modelu UML

Porady: odczytywanie modelu UML w kodzie programu

Porady: otwieranie modelu z pliku w kodzie programu

Generowanie kodu czasu projektowania przy użyciu szablonów tekstowych T4

Inne zasoby

Generowanie kodu z języka specyficznego dla domeny