Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:miw:miw08_xttplusapps [2008/09/17 10:03]
miw
pl:miw:miw08_xttplusapps [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Opis ====== 
- 
-R: Łukasz Dziewanowski (4AR) <​dziewano@student.agh.edu.pl>​ 
- 
-Try to apply, refine xtt+ features, design real-life SE cases using xtt+ 
-  * input: SE cases, well documented MVC-based UML code 
-  * output ARD/XTT based representation of the cases 
- 
-case: webserver 
- 
- 
-====== Spotkania ====== 
- 
-===== 08.03.04 ===== 
-  * przykłady: webserver, pralka 
-  * wiedza zapisana regułowo 
- 
- 
-===== 080318 ===== 
- 
-===== 080408 ===== 
-  * użycie [[hekate:​hqed]] do modelowania 
-  * wybrać przykłady z [[pl:​miw:​miw08_ardcase_cs#​control_system_models]] [[pl:​miw:​miw08_ardcase_uml#​linki_do_uml_i_mvc]] 
- 
-====== Projekt ====== 
-  - Format zapisu XTTML, jak wygląda? 
-  - Projekt [[http://​mirella.ia.agh.edu.pl/​|Mirella]],​ czy w nim tworzyć diagramy ? 
- 
-=== Pomysły na kolejne przykłady aplikacji === 
-  - Pizzeria 
-  - Wypożyczalnia samochodów 
-  - Firma konsultingowa ​ 
-  - Sklep internetowy 
- 
- 
-====== Sprawozdanie ====== 
-  - [[hekate:​hqed]],​ uruchamia się z błędem na Windows XP, na Ubuntu 7.10 - brak QtOpenGL (muszę przekompilować źródła - na razie szukam jakiegoś przykładu (jest zainstalowany GLUT - więc ??)) 
-  ​ 
-Głównym problemem jest złożoność problemów i ich opis, im więcej parametrów i/lub warunków tym więcej tabel i powiązań między nimi np. [[http://​regulus.ia.agh.edu.pl/​gjn-Regulus-WWW/​miw2002/​MIW02-projekty/​MIW02-Winda.pdf|Students MiW Project by J.Sysak, P.Zieliński]]. 
-System musi pokrywać 13296 stanów, co w zapisie XTT daje nam tabelę o 47 wierszach (przed redukcją) - skoro dla niezbyt złożonego przykładu otrzymuje się tak duża tabelę, czego spodziewać się po bardziej złożonych problemach? 
- 
-Kolejną przeszkodą jest brak kontekstu wywołania metody znanego choćby z Javy czy C++, czyli musimy zawsze sprawdzać wszystkie warunki? ​ 
- 
-====== Opis projektu ====== 
-Wybranie przykładowych projektów informatycznych,​ najlepiej opisanych technikami UML i MVC. Stworzenie implementacji tychże przykładów w języku XTT/ARD za pomocą narzędzia HQED.  
- 
-Projekt ma za zadanie ukazać możliwości modelowania w XTT+, opisać zalety i wady tego podejścia. Przykłady które wybrałem: 
- 
-  - Webserwer – komunikacja client-serwer ​ 
-  - Subversion – system kontroli wersji ​ 
- 
-====== Opis przykładów ====== 
-==== Webserwer ==== 
-Jednym z najbardziej popularnych i używanych na szeroką skalę serwerów WWW jest Apache – w&​nbsp;​chwili obecnej wersja 2.2.9, wersja 1.3 jest opisana tutaj . Jest to serwer z którym praktycznie każdy kto miał kontakt z&​nbsp;​Internetem,​ się spotkał – możliwe, że nawet o tym nie wiedząc. Ma on budowę modułową dzięki czemu łatwo można go rozbudować. Ale dość wstępu – wybrałem taki przykład gdyż pokazuje on przejrzyście grupę obiektów w którym każdy ma określone z&​nbsp;​góry obowiązki. Uproszczoną budowę przedstawię na diagramie UML: 
- 
-[[Image:​|thumb|''​Rysunek 1: Diagram klas serwera Apache''​]] 
-Na powyższym diagramie, przedstawione są zależności między instancjami obiektów. Widzimy że serwer posiada informację o kliencie i modułach obsługujących (Handle), klient zaś tylko informację o serwerze HTTP. Opis jak przebiega komunikacja między tymi obiektami zostanie przedstawiony poniżej. ​ 
- 
- 
-[[Image:​|thumb|''​Rysunek 2: Diagram sekwencji komunikacji z serwerem Apache''​]] 
-Klient wysyła żądanie „connect” (rozpoczęcie połączenia) jest to żądanie które serwer potrafi „zrozumieć” więc nie odwołuje&​nbsp;​się do żadnych modułów. Podobnie żądanie „disconnect” kończące połączenie z&​nbsp;​serwerem. Inne żądania „request” są obsługiwane poprzez moduły, serwer musi zdecydować który z tych modułów jest odpowiedni do żądania klienta i przekazać je do tego modułu. Odpowiedź jaką uzyska od modułu przekazuje dalej do klienta. Jeśli serwer nie znajdzie odpowiedniej obsługi dla danego zapytania zwraca błąd. ​ 
- 
-==== Subversion ==== 
-Najpopularniejszy obecnie system kontroli wersji – nieodzowne narzędzie w przypadku pracy w&​nbsp;​grupie. Założenia tego systemu są proste: 
- 
-# Wiele osób może pracować nad jednym fragmentem tekstu (kodu) – jednocześnie,​ 
-# Po wprowadzeniu poprawek zawartość pliku jest uaktualniana w repozytorium,​ 
-# Inna osoba może w tym czasie wprowadzić swoje poprawki będące w konflikcie z&​nbsp;​naszymi – należy wtedy rozwiązać konflikt wersji, 
-# Kolejne wersje plików nie nadpisują poprzednich,​ lecz rozszerzają je poprzez zapisanie zmian jakie nastąpiły w pliku i kolejnego numeru wersji – umożliwia to powrót do wcześniejszych wersji plików. 
- 
-Świetne wprowadzenie możemy przeczytać w książce , jak również ogólne reguły działania systemu kontroli wersji, ponadto porównanie możliwości z wciąż popularnym CVS. 
- 
-Pierwszym przykładem był serwer Apache – system Subversion także możemy zakwalifikować do&​nbsp;​aplikacji klient - serwer, jest to jednak tak wyspecjalizowane narzędzie, że na pierwszy rzut oka trudno zauważyć podobieństwa. Ciekawostką jest, że istnieje moduł do Apache umożliwiający dostęp do repozytorium poprzez właśnie ten serwer. W przedstawionym opracowaniu skupię się jedynie na cyklu korzystania z Subversion tj. założenia kopii roboczej, aktualizowaniu jej, zapisywaniu zmian w repozytorium i rozwiązywaniu konfliktów. Schemat tych działań obrazuje diagram: 
- 
-[[Image:​|thumb|''​Rysunek 3: Diagram stanów''​]] 
- 
-====== Próba zamodelowania przykładów w XTT+ ====== 
-==== Webserwer ==== 
-[[Image:​|thumb|''​Rysunek 4: Schemat XTT+''​]] 
- 
- 
-==== Subversion ==== 
-==== [[Image:​|thumb|Rysunek 5: Schemat XTT+]] ==== 
-====== Problemy i wnioski ====== 
-Okazuje się, że problemy Knowlege Engineering i Software Engineering pojawiają się już w trakcie próby ujednolicenia zapisu modelu. Podczas gdy dla SE potrafimy wskazać szereg technik, metod i&​nbsp;​narzędzi pomocnych przy tworzeniu modelu, w przypadku KE jesteśmy bardzo skąpo wyposażeni w te narzędzia. Ponadto okazało się wyjątkowo trudne przejście z modelowania w UML – niejako naturalnego języka SE, do postaci zapisu reguł wykorzystywanych przez KE. Trudności te zostały opisane m.in. w publikacjach ,. Podczas gdy model zapisany w XTT+ odpowiada w całości zapisowi w Prologu (w chwili obecnej jest to chyba najlepszy język KE) i na odwrót, z zapisanego programu w Prologu możemy odtworzyć model XTT+ - UML nie daje nam takiego komfortu. Model UML zawiera wiele niedomówień,​ nic nam nie mówi o przebiegu procesu modelowania,​ potrzeba wiele różnorodnych diagramów aby w pełni omówić daną funkcjonalność. Z drugiej strony w UML opieramy się o naszą intuicję tworząc tak naturalne dla człowieka obiekty i&​nbsp;​powiązania między nimi – co daje dużą swobodę projektantowi. XTT+ brakuje pojęcia obiektu jako takiego – obiektem jest pewien zbiór atrybutów i opierających się na nich reguł. Nie pozwala to na swobodne przechodzenie z projektowania w sposób obiektowy, na sposób zapisu reguł – nie pomaga w tym również skąpy zasób informacji zawarty w diagramach UML.  
- 
-Podsumowując,​ tak jak pojęcia SE i KE oznaczają całkowicie różne podejścia do rozwiązywania problemów przez komputery, tak i nie ma prostego sposobu na przejście z jednej metody do drugiej. Miejmy nadzieję, że podobnie jak w dziedzinie SE nastąpił ogromny rozwój i postęp, tak KE będzie niedługo obfitowało w dogodne narzędzia, metody i techniki. ​ 
- 
- 
-====== Materiały ====== 
-  - [[.:​miw08_xttplusapps:​pralka|Pralka]] 
-  - [[.:​miw08_xttplusapps:​webserver|Web Server]] 
-  - [[.:​miw08_xttplusapps:​notatki|Notatki]] 
-  - [[.:​miw08_xttplusapps:​linki|Linki]] 
-  - xtt, GREP (enase,​inap) FIXME 
-    * [[:​hekate:​bib:​hekate_bibliography]] ​ 
-    * gjn-enase2007.pdf 
-    * gjn-inap2007-grep.pdf 
  
pl/miw/miw08_xttplusapps.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0