Cel i zakres trzeciego wykładu

Wielkość: px
Rozpocząć pokaz od strony:

Download "Cel i zakres trzeciego wykładu"

Transkrypt

1 Cel i zakres trzeciego wykładu Tytuł: Diagramy sekwencji, pakietów, stanu i wdrożenia w perspektywie implementacyjnej Cel wykładu: Zaprezentować sposób przygotowania wyżej wymienionych diagramów w perspektywie implementacyjnej. Zakres wykładu 1) Zasady tworzenia diagramów sekwencji 2) Zasady tworzenia diagramów pakietów 3) Sposoby implementacji diagramów stanów 4) Zasady tworzenia diagramów wdrożeń Projektowanie systemów informatycznych, wykład 3 1 1

2 Diagram sekwencji przedstawia sposób wymiany komunikatów pomiędzy obiektami z zachowaniem ich kolejności. Pomijają natomiast całkowicie aspekt dostępu i operacji na danych, związany z komunikacją. Uczestnikami diagramów sekwencji są obiekty, opisane nazwą obiektu i jego klasą, które wymieniają między sobą komunikaty. Diagramy sekwencji Projektowanie systemów informatycznych, wykład 3 2 Diagramy interakcji to modele opisujące, jak współpracują ze sobą grupy obiektów. UML definiuje kilka rodzajów diagramów interakcji, z których najczęściej używanym jest diagram sekwencji. Zwykle diagram sekwencji przedstawia zachowanie się systemu dotyczące jednego przypadku użycia. Diagram pokazuje kilka przykładowych obiektów i komunikaty przez nie wymieniane w ramach przypadku użycia. Pierwszy przykładowy diagram sekwencji będzie dotyczył następującego prostego scenariusza: załóżmy że mamy zamówienie i zamierzamy wywołać na nim polecenie obliczające wartość tego zamówienia. W tym celu najpierw należy wybrać wszystkie pozycje zamówienia i określić ich ceny na podstawie reguł cenowych ustalonych dla zamawianych produktów. Następnie zamówienie musi obliczyć ogólną zniżkę, obliczaną na podstawie reguł ustalonych dla danego klienta. Na rysunku został przedstawiony diagram sekwencji ukazujący jedną z możliwych implementacji tego scenariusza. Diagramy sekwencji ilustrują interakcje wymieniając każdego jej uczestnika razem z pionową linią oznaczającą czas, w którym ten uczestnik bierze udział w interakcji. Kolejno pojawiające się komunikaty są uporządkowane od góry do dołu. Widać wyraźnie, że instancja klasy Zamówienie wysyła komunikaty pobierzllość i pobierzprodukt do klasy Pozycje Zamówienia. Można też dostrzec, jak jest zapisywana metoda wywoływana przez klasę Zamówienie na sobie samej, oraz to, że inna wywoływana w ten sposób metoda wysyła komunikat pobierzinformacjeozniżkach do instancji klasy Klient. Diagram jednak nie przedstawia wszystkiego bardzo dobrze. Sekwencja komunikatów pobierzllość, pobierzprodukt, pobierzcennik oraz obliczcenę jest wysyłana dla każdej pozycji zamówienia, natomiast obliczzniżkę jest wywoływana tylko raz. Nie można na podstawie tego diagramu stwierdzić, że tak jest, chociaż można wprowadzić dodatkową notację, która to umożliwi. Na przedstawionych diagramach nadano uczestnikom nazwy składające się tylko z nazwy obiektu. Pełniejsza składnia ma postać nazwaobiektu : nazwakiasy, gdzie zarówno nazwa obiektu, jak i nazwa klasy może być pominięta. Jeśli opuści się nazwę obiektu, to trzeba pozostawić dwukropek. Na każdej linii czasu są umieszczane słupki aktywności reprezentujące chwile, w których uczestnik bierze udział w interakcji. Oznaczają one obecność jednej z metod uczestnika na stosie wywołań. Słupki aktywności są w UML-u opcjonalne. Odpowiednie nazewnictwo często pomaga w powiązaniu uczestników na diagramie. Wywołanie komunikatu pobierzprodukt zwraca Produkt mający tę samą nazwę, a więc będący tym samym uczestnikiem, co Produkt, do którego jest wysyłany komunikat pobierzcennik. Proszę zwrócić uwagę na to, że użyto strzałki zwrotnej tylko w tym wywołaniu tak aby podkreślić istnienie odpowiedniości. Można używać strzałek zwrotnych we wszystkich wywołaniach, ale lepiej stosować je tylko tam, gdzie niosą one dodatkową informację. Pierwszy komunikat nie ma wysyłającego go uczestnika i nadchodzi z nieokreślonego źródła. Jest nazywany komunikatem wykrytym. 2

3 Inna wersja diagramu sekwencji z pop. slajdu Projektowanie systemów informatycznych, wykład 3 3 Inne podejście do tego samego scenariusza zostało pokazane na aktualnym slajdzie. Podstawowy problem pozostaje ten sam, ale sposób, w który uczestnicy współpracują ze sobą w celu jego rozwiązania, jest zupełnie inny. Zamówienie prosi każdą PozycjęZamówienia, aby obliczyła swoją własną Cenę. PozycjaZamówienia następnie zleca wykonanie obliczenia ceny wszystkim instancjom klasy produkt, które znajdują się na liście zamówienia. Tu warto zwrócić uwagę na to, jak jest przedstawione przekazywanie parametru. Podobnie, aby obliczyć wysokość zniżki, Zamówienie wywołuje metodę na Kliencie. Klient do wykonania swojego zadania potrzebuje dodatkowej informacji z Zamówienia, więc wywołuje na Zamówieniu metodę pobierzcenępodstawową w celu pobrania danych. Pierwsze, co można powiedzieć na temat tych dwóch ostatnich diagramów, jest to, że diagram sekwencji bardzo jasno przedstawia różnice we wzajemnej komunikacji uczestników. To jest ogromna zaleta diagramów interakcji. Nie nadają się one dobrze do przedstawiania szczegółów algorytmów, takich jak pętle lub zachowania warunkowe, ale wywołania między uczestnikami ukazują wyjątkowo przejrzyście i dają naprawdę dobry obraz działań wykonywanych przez poszczególnych uczestników. Drugą sprawą jest oczywista różnica w stylach między dwiema zaprezentowanymi interakcjami. Na poprzednim slajdzie przedstawiono sterowanie scentralizowane, w którym jeden z uczestników wykonuje zdecydowaną większość zadań, a inni uczestnicy dostarczają tylko dane. Na aktualnym slajdzie pokazano sterowanie rozproszone, w którym przetwarzanie jest rozdzielone między wielu uczestników i każdy z nich wykonuje mały fragment algorytmu. Oba style mają swoje wady i zalety. Wiele osób, zwłaszcza tych, które mają małe doświadczenie w technikach obiektowych, jest bardziej przyzwyczajonych do sterowania scentralizowanego. Z wielu względów jest ono mniej skomplikowane, ponieważ całe przetwarzanie dokonuje się w jednym miejscu. Przy sterowaniu rozproszonym można odnieść wrażenie, że ciągle skacze się po różnych obiektach, a sam program jakoś trudno uchwycić. Pomimo to, w projektowaniu obiektowym preferuje się sterowanie rozproszone. Jednym z zadań dobrego projektu jest zlokalizowanie efektów zachodzących zmian. Dane i metody, które uzyskują dostęp do tych danych, często zmieniają się równocześnie. A więc umieszczenie danych i metod ich używających razem w jednym miejscu, jest najważniejszą zasadą projektowania obiektowego. Ponadto, sterowanie rozproszone daje więcej okazji do użycia polimorfizmu zamiast logiki warunkowej. Jeśli algorytmy ustalania cen produktów są różne dla różnych typów produktów, to mechanizm sterowania rozproszonego pozwala na użycie klas pochodnych klasy Produkt w celu poprawnego uwzględnienia tych różnic. Ogólnie styl obiektowy daje możliwość użycia wielu małych obiektów z wieloma małymi metodami, dających mnóstwo okazji do zastosowania przeciążania funkcji i różnych ich wariacji. Jest to coś, czego bardzo trudno nauczyć. Wydaje się, że jedynym sposobem na zrozumienie tego podejścia jest popracowanie w środowisku obiektowym o silnie rozproszonym sterowaniu. 3

4 Tworzenie i usuwanie obiektów Projektowanie systemów informatycznych, wykład 3 4 Na diagramach sekwencji można stosować pewną dodatkową notację oznaczającą tworzenie i usuwanie uczestników. Aby utworzyć uczestnika, należy narysować strzałkę komunikatu łączącą się bezpośrednio z prostokątem uczestnika. Nazwa komunikatu jest w tym wypadku opcjonalna. Można tę nazwę opisać typem konstruktora, którego wywołuje się do tworzenia obiektu. Nazwa nowy jest uniwersalna i nie pokazuje, którego konstruktora użyto. Jeśli uczestnik zaraz po pojawieniu się wykonuje jakąś czynność, na przykład wywołuje komunikat kwerendy, to słupek aktywacji jest umieszczany bezpośrednio pod prostokątem uczestnika. Usunięcie uczestnika jest oznaczane dużym krzyżykiem w kształcie litery X. Strzałka komunikatu skierowana w stronę tego krzyżyka oznacza, że jeden uczestnik jawnie usuwa innego uczestnika. Krzyżyk umieszczony na końcu linii czasu oznacza, że uczestnik usuwa się sam. W środowisku, w którym zwalnianie pamięci przebiega automatycznie (Java,.NET) nie usuwa się obiektów bezpośrednio, ale nadal warto używać krzyżyków w celu wskazania, kiedy obiekt już przestaje być potrzebny i jest gotowy do usunięcia. Jest to również wskazane dla operacji zamykania, w celu zaznaczenia, że obiekt nie będzie już używany. 4

5 Rodzaje komunikatów Projektowanie systemów informatycznych, wykład 3 5 W nowej wersji języka UML strzałka z wypełnionym grotem oznacza komunikat synchroniczny, a strzałka z grotem otwartym należy do komunikatu asynchronicznego. Jeśli obiekt wysyła komunikat synchroniczny, to musi zaczekać na jego zrealizowanie, na przykład na wykonanie podprocedury. Jeśli natomiast obiekt wysyła komunikat asynchroniczny, to może kontynuować przetwarzanie, nie czekając na odpowiedź. Komunikaty asynchroniczne występują w aplikacjach wielowątkowych i w oprogramowaniu pośredniczącym opartym na komunikatach. Asynchroniczność umożliwia szybsze reagowanie i redukuje występowanie sprzężeń czasowych, ale utrudnia wykrywanie błędów w kodzie programu. 5

6 Pętle i instrukcje warunkowe procedure wysłanie foreach (pozycjazamówienia) if (produktwartość > zł) ostrożny.wysłanie else zwykły.wysłanie end if end for if (wymaganepotwierdzenie) komunikator.potwierdzenie end procedurę Projektowanie systemów informatycznych, wykład 3 6 Częstym problemem towarzyszącym diagramom sekwencji jest to, jak pokazać pętle i zachowania warunkowe. Przede wszystkim warto od razu zaznaczyć, że nie jest to coś, przy czym diagramy sekwencji dobrze się spisują. Aby pokazać tego typu struktury sterujące, znacznie lepiej użyć diagramu czynności lub nawet samego kodu programu. Diagramy sekwencji należy traktować jako sposób wizualnego przedstawienia, w jakie interakcje wchodzą ze sobą obiekty, a nie jako sposób modelowania logiki sterującej systemem. Jeśli chodzi o samą notację, to zarówno pętle, jak i instrukcje warunkowe korzystają z ramek interakcji, które służą do wyróżnienia fragmentu diagramu sekwencji. Na slajdzie zilustrowano nieskomplikowany algorytm oparty na pseudokodzie zaprezentowanym na lewo od diagramu. Ogólnie, ramki składają się z pewnego obszaru diagramu sekwencji, który może być dodatkowo podzielony na kilka fragmentów. Każda ramka ma operator a każdemu wydzielonemu fragmentowi ramki może towarzyszyć warunek. Aby przedstawić pętlę, używa się operatora loop i jednego fragmentu ramki, a podstawę iteracji umieszcza się w warunku. Dla instrukcji warunkowej można użyć operatora alt, a w każdym fragmencie ramki umieścić warunek. Zostaje wykonany tylko ten fragment, którego warunek jest prawdziwy. Jeśli istnieje tylko jeden obszar, to rządzi nim operator opt. Ramki interakcji są nowością w UML-u 2.0. Na diagramach przygotowanych przed pojawieniem się UML-a 2.0 stosowano inne podejścia. 6

7 Operatory ramek interakcji alt (od alternative) określający warunek wykonania bloku operacji, odpowiadający instrukcji if-else; warunek umieszcza się wówczas wewnątrz bloku w nawiasach kwadratowych opt (od optional) reprezentujący instrukcję if (bez else). Fragment zostaje wykonany tylko wówczas, gdy zawarty w nim warunek jest prawdziwy. Jest to odpowiednik operatora alt z jednym wyjściem. par (od parallel) nakazujący wykonać operacje równolegle Loop - definiujący pętlę typu for (o określonej z góry liczbie iteracji) lub while (wykonywanej dopóki pewien warunek jest prawdziwy) critical oznaczający obszar krytyczny. Fragment może mieć tylko jeden wątek uruchomiony w danej chwili. neg (od negation)negacja. Fragment przedstawia niepoprawną interakcję. W ten sposób opisujemy niepożądane interakcje w systemie. ref (od reference) Referencja. Odwołuje się do interakcji zdefiniowanej na innym diagramie. Ramka jest rysowana tak, aby przykrywać linie czasu biorące udział w interakcji. Można zdefiniować parametry i wartość zwrotną. sd (od sequence diagram) Diagram sekwencji. Używany do otoczenia ramką całego diagramu sekwencji, w miarę potrzeby. Projektowanie systemów informatycznych, wykład 3 7 7

8 Kiedy używać diagramów sekwencji Należy stosować diagramy sekwencji, aby spojrzeć na zachowanie się kilku obiektów w ramach jednego przypadku użycia systemu. Diagramy sekwencji są użyteczne do przedstawiania współpracy obiektów nie są jednak najlepsze do podawania ścisłej definicji zachowań. Do obserwowania zachowania się jednego obiektu w ramach kilku przypadków użycia należy zastosować diagram stanów. Do badania zachowania w wielu przypadkach użycia lub wielu wątkach należy rozważyć zastosowanie diagramów czynności. Projektowanie systemów informatycznych, wykład 3 8 8

9 Diagramy pakietów (1) Pakiet jest elementem grupującym pozwalającym na pogrupowanie dowolnych bytów UML-a w jednostki wyższego poziomu. Najczęstszym sposobem użycia pakietów jest grupowanie klas. Właśnie to użycie zostanie zaprezentowane w tym fragmencie wykładu. W modelu UML: Każda klasa jest składnikiem jednego pakietu Pakiety mogą być składnikami innych pakietów. Umożliwia to utworzenie hierarchicznej struktury, w której pakiety najwyższego poziomu są podzielone na mniejsze pakiety mające swoje własne podpakiety itd., aż hierarchia osiągnie najniższy poziom w postaci klas. Pakiet może zawierać zarówno pakiety podrzędne, jak i klasy. W językach programowania pakiety odpowiadają takim elementom, jak pakiety w Javie i przestrzenie nazw w językach C++ i.net. Projektowanie systemów informatycznych, wykład 3 9 Klasy są podstawowym składnikiem struktury systemu obiektowego. Są bardzo przydatne, jednak do tworzenia struktury ogromnych systemów, mających po kilkaset klas, potrzeba czegoś więcej. UML umożliwia grupowanie klas w pakiety. Diagramy pakietów służą do bardzo ogólnej prezentacji systemu. Pakiety są wykonywane w perspektywie projektowej lub implementacyjnej stąd na wykładzie z modelowania systemów informatycznych tego typu diagramy nie były prezentowane. Każdy pakiet reprezentuje przestrzeń nazw, co oznacza, że każda klasa musi mieć jednoznaczną nazwę wewnątrz zawierającego ją pakietu. Jeśli chcemy utworzyć klasę o nazwie Data i klasa Data już istnieje w pakiecie System, to nadal możemy mieć klasę Data, jeśli umieścimy ją w odrębnym pakiecie. Aby rozpoznać, która jest która, można użyć w pełni kwalifikowanej nazwy, tzn. nazwy uwzględniającej również zawierający klasę pakiet. Do określania nazw pakietów w UML-u używa się podwójnych dwukropków, więc na przykład klasy Data mogłyby mieć nazwy System::Data oraz MartinFowler::Użytkil::Data. 9

10 Diagramy pakietów (2) Projektowanie systemów informatycznych, wykład 3 10 Na diagramach pakiety są oznaczane za pomocą folderów z zakładkami. Na rysunku pokazano przykład takiego diagramu. Można uwidocznić tylko nazwę pakietu lub też jego zawartość. Wszędzie można używać zamiennie w pełni kwalifikowanych nazw lub zwykłych nazw prostych. Zawartość pakietu można przedstawić za pomocą ikon klas i uwzględnić wszystkie szczegóły klasy, nawet do poziomu diagramu klasy. Wypisanie samych nazw klas ma sens wtedy, gdy chcemy jedynie wskazać, jakie klasy znajdują się w poszczególnych pakietach. Znacznie częściej spotyka się krótkie nazwy klas, takie jak Datę (z pakietu java.util), niż nazwy w pełni kwalifikowane. W UML-u klasy w pakietach mogą być publiczne lub prywatne. Klasa publiczna jest częścią interfejsu pakietu i może być używana przez inne pakiety. Klasa prywatna jest ukryta. W różnych środowiskach programistycznych stosuje się różne reguły dotyczące zakresów widoczności występujących między poszczególnymi elementami pakietów. Należy przestrzegać konwencji środowiska programistycznego, nawet jeśli wymaga to nagięcia zasad UML-a. Dobrą praktyką jest ograniczenie interfejsu pakietu do niewielkiego podzbioru operacji klas publicznych. Można to osiągnąć, nadając wszystkim klasom prywatny zasięg widoczności, tak aby były one widziane tylko przez inne klasy tego pakietu, i dorzucając do pakietu dodatkowe klasy publiczne dla definicji zachowania publicznego. Te dodatkowe klasy, zwane fasadami, zlecają wykonanie operacji publicznych ich prywatnym partnerom w ramach pakietu. W jaki sposób zdecydować, które klasy umieścić w poszczególnych pakietach? Jest to dość trudne pytanie i aby umieć na nie odpowiadać, trzeba posiąść duże umiejętności w dziedzinie projektowania. Pakiety powinny być tworzone tak aby były jak najbardziej spójne wewnętrznie i aby było jak najmniej zależności między pakietami. Każdy nowy element wstawiany do pakietu powinien stanowić pełną całość wraz z pozostałymi elementami w pakiecie (powinien być z nimi w pewien sposób powiązany). Dobrym testem na sprawdzenie czy pakiet jest spójny może być próba nadania krótkiej nazwy pakietowi. Jeżeli istnieją problemy z nadaniem takiej nazwy to prawdopodobnie można dodać do pakietu niepowiązane elementy. 10

11 Zależności między pakietami Diagram pakietów przedstawia pakiety i zależności między nimi. Pojęcie zależności wprowadziłem na poprzednim wykładzie slajd 20. Jeżeli w pakiecie A istnieje przynajmniej jedna klasa, która jest zależna od przynajmniej jednej klasy pakietu B to mówimy, że pakiet A jest zależny od pakietu B. W ten sposób zależności między pakietami podsumowują zależności między zawartościami tych pakietów. Projektowanie systemów informatycznych, wykład 3 11 UML wymienia wiele różnych zależności, z których każda ma własną semantykę i słowo kluczowe. Zwykle jednak łatwiej jest zaczynać od ogólnych zależności bez słów kluczowych, a dopiero później, w miarę potrzeb, stosować bardziej wyrafinowane, jeżeli oczywiście jest to potrzebne. W średnich i dużych systemach narysowanie diagramu pakietów może być jedną z najbardziej wartościowych czynności, którą można wykonać w celu skontrolowania wielkoskalowej struktury systemu. W idealnej sytuacji diagram taki powinien zostać wygenerowany z samego kodu, tak aby można było zobaczyć, co rzeczywiście znajduje się w systemie. Dobra struktura pakietów charakteryzuje się przejrzystym przepływem zależności. Tę cechę trudno zdefiniować, ale często łatwiej rozpoznać. Na rysunku pokazano przykładowy diagram pakietów dla aplikacji przedsiębiorstwa, który ma dobrą strukturę i przejrzysty przepływ zależności. Często przejrzysty przepływ zależności można rozpoznać po tym, że wszystkie zależności podążają w jednym kierunku. Mimo że jest to dobry wyznacznik, to widać na rysunku, że pakiety warstwy odwzorowania danych nie są zgodne z tą regułą. Pakiety te stanowią warstwę izolacyjną między pakietami domeny i bazy danych. Im więcej zależności dochodzi do pakietu, tym stabilniejszy musi być interfejs tego pakietu, ponieważ każda zmiana w interfejsie przeniesie się na wszystkie zależne pakiety. A zatem na rysunku pakiet warstwy domeny aktywów musi mieć stabilniejszy interfejs niż pakiet warstwy odwzorowania danych leasingu. Aby pakiet był bardziej stabilny powinien zawierać możliwie dużo interfejsów i klas abstrakcyjnych (patrz slajd 25 z poprzedniego wykładu). Relacje zależności nie są przechodnie (poprzedni wykład slajd 20). Aby dostrzec, dlaczego jest to istotne w wypadku zależności, spójrzmy ponownie na rysunek na slajdzie. Zmiana w klasie pakietu aktywa-domena może pociągnąć za sobą zmianę w pakiecie leasing-domena. Ale ta zmiana niekoniecznie przeniknie do warstwy prezentacji dziedziny leasingu. (Stanie się tak tylko wtedy, gdy dziedzina leasingu zmieni swój interfejs.) 11

12 Pakiet jak zbiór klas abstrakcyjnych i interfejsów Aplikacja Bramka Bazy danych Bramka Oracle Bramka SQL Server Bramka Test Stub Projektowanie systemów informatycznych, wykład 3 12 Zdarza się, że jeden pakiet definiuje interfejs implementowany przez kilka innych pakietów, na przykład tak jak na zaprezentowanym rysunku. W takim wypadku relacja implementacji wskazuje na to, że bramka bazy danych definiuje Merfejs, a inne klasy bramek bazodanowych zapewniają implementację. W praktyce oznaczałoby to, że pakiet bramki bazodanowej zawiera interfejsy i klasy abstrakcyjne zaimplementowane całkowicie przez inne pakiety. Bardzo częstą praktyką jest umieszczanie interfejsu i jego implementacji w osobnych pakietach. 12

13 Przykład pakietu z interfejsem Ogrzewanie::Grzejnik Oświetlenie::Lampa Projektowanie systemów informatycznych, wykład 3 13 Załóżmy, że należy zaprojektować element interfejsu użytkownika do włączania i wyłączania różnych urządzeń. Element ten powinien współpracować z wieloma różnymi urządzeniami, takimi jak grzejniki i światła. Musi wywoływać metodę na przykład dla grzejnika, ale nie powinien być od niego zależny. Powstania zależności między grzejnikiem a elementem sterującym można uniknąć, definiując w pakiecie elementu sterującego interfejs, który następnie zostanie zaimplementowany przez dowolną klasę, która zechce współpracować z tym elementem sterującym. Ilustruje to rysunek na slajdzie 13

14 Używanie diagramów pakietów Diagramy pakietów są przydatne w dużych systemach, gdyż pozwalają na uzyskanie obrazu zależności między głównymi elementami. Diagramy pakietów dobrze odpowiadają często stosowanym strukturom programistycznym. Rysowanie diagramów pakietów i zależności pomaga w utrzymywaniu pod kontrolą zależności występujących w aplikacji. Diagramy pakietów reprezentują mechanizm grupowania w czasie kompilowania programu. Projektowanie systemów informatycznych, wykład

15 Diagram stanów Diagram stanów przedstawia maszynę stanową składającą się ze stanów, przejść, zdarzeń i czynności. Opisuje on stany pewnego procesu, które są istotne z punktu widzenia modelu pojęciowego tego procesu, oraz przejścia pomiędzy stanami wymuszane poprzez wywoływane usługi obiektu. Określa też reakcje obiektu na zdarzenia zachodzące podczas jego użycia. Diagram stanów odnosi się do modelowania dynamicznych aspektów systemu. Projektowanie systemów informatycznych, wykład 3 15 Zasady tworzenia diagramów stanów zaprezentowano na wykładzie dotyczącym modelowania systemów informatycznych w poprzednim semestrze. W celu przypomnienia podstawowych informacji dotyczących diagramów stanów proszę przeczytać odpowiedni fragment kursu modelowania systemów informatycznych. Na niniejszym wykładzie zamierzam zaprezentować jedynie sposoby implementacji diagramów stanów na podstawie przykładu. Będąc studentem, a nie było to tak dawno (niestety za kilka lat to ostatnie wtrącenie będę musiał wykreślić), namiętnie grałem w gry strategiczne typu Heroes of Might and Magic, Age of Empires, Red Alert. Niestety teraz nie mam już czasu na tego typu intelektualne przygody. Ponieważ jednak darze sentymentem gry strategiczne to mój przykład będzie związany z pewnym aspektem tego typu gier. Załóżmy, że gramy w grę gdzie musimy rozbudowywać osadę. Pierwszym budynkiem jaki należy zbudować aby stworzyć wioskę jest chata sołtysa. Następnie rozbudowujemy wioskę tworząc kolejne chaty i zakłady rzemieślnicze, koszary itd. Kiedy liczba mieszkańców przekroczy 100 wtedy możemy zlecić rozbudowanie (upgrade) chaty sołtysa do ratusza. Wydanie zlecenia rozbudowy chaty sołtysa pod warunkiem osiągnięcia liczby 100 mieszkańców oznacza przekształcenie wioski w miasto. Miasto rozbudowujemy dalej o nowe budynki również takie których nie mogliśmy tworzyć we wiosce. Wydanie zlecenia rozbudowy ratusza do zamku królewskiego pod warunkiem osiągnięcia liczby 1000 mieszkańców oznacza przekształcenie miasta w stolicę. Status stolicy oznacza dodatkowe przywileje oraz umożliwia budowanie nowych budynków, których nie można było budować w mieście (zwłaszcza budynki obronne). Oczywiście nasza osada może zostać zaatakowana przez obcą armię. Wtedy może stracić status stolicy jeżeli liczba mieszkańców spadnie poniżej 1000 lub status miasta jeżeli liczba mieszkańców spadnie poniżej 100. Jeżeli natomiast we wiosce zostanie zburzona chata sołtysa, w mieście ratusz, a w stolicy zamek królewski to osada przestaje istnieć. Oczywiście jest to przykład uproszczony i z punktu widzenia logiki gry można by się do niego w kilku miejscach przyczepić. Przykład uprościłem specjalnie aby stworzyć w miarę prosty i czytelny diagram stanów zaprezentowany na następnym slajdzie. 15

16 Przykład diagramu stanów Wybud. chaty sołtysa [odpowiednia ilość miejsca na planszy] Wioska Zburzenie chaty sołtysa [lm < 100]/ Zablokowanie budowania budynków miasta i niemożność korzystania z bud. miasta Zlecenie wybud. ratusza [lm 100]/ Możliwość budowania budynków miejskich Zburzenie ratusza Miasto Zlecenie wybud. ZK [lm 1000 ]/ Możliwość budowania budynków stolicy [lm < 1000]/Zablokowanie budowania budynków stolicy i niemożność korzystania z bud. stolicy Stolica Legenda: Zburzenie ZK ZK zamek królewski lm liczba mieszkańców Projektowanie systemów informatycznych, wykład

17 Implementacja diagramu stanów - switch void Osada::ObslugaPrzejścia(ZdarzenieOsady Zd) { switch (StanAktualny){ case StanOsady.Wioska: switch(zd){ case ZdarzenieOsady.ZlecenieWybudRatusza: if(lm>=100) StanAktualny = StanOsady.Miasto; break; case ZdarzenieOsady.ZburzenieChatySoltysa: StanAktualny = StanOsady.Zburzona; break; } break; case StanOsadyMiasto: switch(zd){ case ZdarzenieOsady.ZlecenieWybudZK: if(lm>=1000) StanAktualny = StanOsady.Stolica; break; case ZdarzenieOsady.ZburzenieRatusza: StanAktualny = StanOsady.Zburzona; break; case StanOsadyStolica: switch(zd){ case ZdarzenieOsady.ZburzenieZK: StanAktualny = StanOsady.Zburzona; } if(lm < 1000) StanAktualny = StanOsady.Miasto; }// Koniec switch(stanaktualny) }//koniec funkcji Obsluga zdarzenia } if(lm < 100) StanAktualny = StanOsady.Wioska; break; Projektowanie systemów informatycznych, wykład 3 17 Najbardziej bezpośrednim podejściem jest zaimplementowanie diagramu stanów za pomocą zagnieżdżonej instrukcji switch. Na aktualnym slajdzie zaprezentowano przykład takiej implementacji dla diagramu ze slajdu 16. Proszę zauważyć, że funkcja ObsługaPrzejścia obsługuje tzw. przejścia automatyczne czyli takie, które zachodzą automatycznie przy spełnieniu określonego warunku. Przejścia takie nie są rezultatem generacji jakiegokolwiek zdarzenia Zd. Stąd czy funkcja będzie działać poprawnie dla tego typu przejść? Funkcja ta będzie działać poprawnie dla przejść automatycznych wtedy gdy będzie wywoływana przy każdym obiegu pętli komunikatów niezależnie czy wygenerowano ZdarzenieOsady czy nie. Można również postąpić inaczej i obsługę przejść automatycznych umieścić w osobnej funkcji, która będzie wywoływana w każdym obiegu pętli obsługi komunikatów. Wtedy funkcję ObsługaPrzejścia będzie można wywoływać tylko wtedy gdy wygenerowano ZdarzenieOsady. W powyższym pseudokodzie nie uwzględniono przejścia realizowanego przez zdarzenie wybudowania chaty sołtysa. Przejście to prowadzi od pseudostanu do stanu Wioska i jest związane z utworzeniem obiektu klasy Osada stąd nie może być obsłużone w funkcji z klasy Osada. Przejście to powinno być obsłużone w globalnej funkcji obsługi przejść. Rezultatem tego przejścia będzie utworzenie obiektu klasy Osada, ustawienie jej parametrów początkowych i dodanie obiektu do kolekcji wszystkich obiektów gry. Proszę również zauważyć, że w niniejszym kodzie nie zaprezentowano akcji typu odblokowania, zablokowania budowania budynków miasta lub stolicy przy odpowiednich przejściach. Dzieje się tak dlatego, że w kodzie możliwość budowania budynków miasta lub stolicy rozpoznaje się po stanie osady. Mimo że podejście z instrukcją switch wydaje się najbardziej oczywiste prowadzi do powstania długiego i nieczytelnego kodu nawet w prostych przypadkach. 17

18 Implementacja diagramu stanów klasa abstrakcyjna Kontroler ZmianaStanuNa(StanOsady ) ObsZlecenieWybudRatusza(Kontroler* K) ObsZburzenieChatySoltysa(Kontroler* K) ObsZlecenieWybudZK(Kontroler* K) ObsZburzenieRatusza(Kontroler* K) ObsZburzenieZK(Kontroler* K) ObsZdAutomatycznych() stan 1 StanOsady ObsZlecenieWybudRatusza(Kontroler* K) ObsZburzenieChatySoltysa(Kontroler* K) ObsZlecenieWybudZK(Kontroler* K) ObsZburzenieRatusza(Kontroler* K) ObsZburzenieRatusza(Kontroler* K) ObsZburzenieZK(Kontroler* K) ObsZdAutomatycznych(Kontroler* K) stan->obszdautomatycznych(this) StanWioska StanMiasto StanStolica StanKoniec ObsZlecenieWybudRatusza(Kontroler* K) ObsZburzenieChatySoltysa(Kontroler* K) ObsZdAutomatycznych(Kontroler* K) ObsZlecenieWybudZK(Kontroler* K) ObsZburzenieRatusza(Kontroler* K) ObsZdAutomatycznych(Kontroler* K) ObsZburzenieZK(Kontroler* K) ObsZdAutomatycznych(Kontroler* K) If(lm >= 100) K->ZmianaStanuNa(StanMiasto); If(lm < 100) K->ZmianaStanuNa(StanWioska); Projektowanie systemów informatycznych, wykład 3 18 W metodzie ze wzorcem klasy stanów tworzy się hierarchię klas stanów do obsługi zachowania się tych stanów. Każdy stan na diagramie ma jedną podklasę stanów. Kontroler ma metody dla każdego zdarzenia, które po prostu powodują odesłanie do odpowiedniej klasy stanów. Na szczycie hierarchii zdarzeń znajduje się klasa abstrakcyjna (StanOsady), która implementuje wszystkie możliwe metody obsługi zdarzeń tak aby nic nie robiły. Każda klasa konkretnego stanu przeciąża metody obsługujące przejścia wychodzące z tego stanu. Powyższy przykład pokazuje diagram klas UML, z fragmentami kodu w C++, prezentujący klasy implementacyjne diagramu stanów ze slajdu

19 Implementacja diagramu stanu tablica stanów Stan źródłowy Stan docelowy Zdarzenie Dozór Procedura Pseudostan Wioska WybudChatySołtysa Odpowiednia ilość miejsca na planszy Umożliwienie rozbudowy osady Wioska Koniec ZburzenieChatySoltysa Wioska Miasto ZlecenieWybudRatusza lm 100 Umożliwienie budowy budynków miasta Miasto Koniec ZburzenieRatusza Miasto Wioska lm < 100 Zablokowanie budowania budynków miejskich oraz możliwości korzystania z nich Miasto Stolica ZlecenieWybudZK lm 1000 Umożliwienie budowy budynków stolicy Stolica Koniec ZburzenieZK Stolica Miasto lm < 1000 Zablokowanie budowania budynków miejskich oraz możliwości korzystania z nich Projektowanie systemów informatycznych, wykład 3 19 Tabela stanów to trzecie podejście polegające na zakodowaniu informacji z diagramu stanów w postaci tabeli danych. Przykładowemu diagramowi ze slajdu 16 odpowiada tabela zaprezentowana na niniejszym slajdzie. Po sporządzeniu tabeli tworzy się interpreter, który używa tablicy stanów w czasie wykonywania programu, albo generator kodu, który tworzy klasy na podstawie tabeli stanów. Tabela ma taką zaletę, że może być modyfikowana bez ponownej kompilacji programu. Wzorzec stanów jest łatwiejszy do przygotowania, gdy jest potrzebny doraźnie, chociaż potrzeba nowej klasy dla każdego stanu, to nie ma przy tym zbyt dużo kodowania. Niezależnie od tego jaki sposób implementacji stosujemy to zwykle w realnych zadaniach implementacja stanów prowadzi do bardzo skomplikowanego kodu stąd zastosowanie narzędzi CASE w postaci generatorów kodu jest tu ze wszech miar uzasadnione. 19

20 Diagramy wdrożenia Diagramy wdrożenia przedstawiają fizyczny układ systemu. Pokazują, w których częściach sprzętu działają poszczególne fragmenty oprogramowania. Klient-przeglądarka Znacznik z wartością Serwer aplikacji przeglądarka Klient dedykowany {OS=Windows} ReaClient.exe http/internet http/sieć lokalna Węzeł urządzenia Serwer WWW {OS=Linux} {serwer WWW = apache} {Obsługa konta} {liczba wdrożeń = 5} Ścieżka komunikacyjna Zapytanie SQL SQL server System bazodanowy kont klientów Oracle Wdrożony artefakt Węzeł środowiska wykonawczego Projektowanie systemów informatycznych, wykład 3 20 Diagramy wdrożeń przygotowywane są na etapie projektowania systemu i pokazują miejsca wdrożeń poszczególnych fragmentów systemu, więc okazują się bardzo pomocne w wypadku dużych systemów oraz systemów rozproszonych. Na rysunku znajduje się prosty przykład diagramu wdrożenia. Głównymi elementami diagramu są węzły połączone za pomocą ścieżek komunikacyjnych Węzeł jest to coś, co może utrzymywać jakąś część oprogramowania. Są dwa rodzaje węzłów. Pierwszym jest węzeł urządzenia, czyli sprzęt. Węzeł urządzenia może reprezentować komputer albo mniej złożoną część sprzętu komputerowego podłączoną do systemu. Drugim rodzajem jest węzeł środowiska wykonawczego. Reprezentuje on oprogramowanie, które samo się uruchamia lub zawiera inne oprogramowanie Przykładem może tu być system operacyjny. Węzły zawierają artefakty, czyli oprogramowanie w fizycznej postaci najczęściej pliki. Pliki mogą być zbiorami wykonywalnymi (na przykład.exe, pliki binarne, biblioteki DLL, pliki JAR, asemblacje lub skrypty) lub plikami danych, plikami konfiguracyjnymi, dokumentami HTML itp. Wpisanie artefaktu do węzła oznacza, że artefakt ten jest wdrożony do tego węzła w działającym systemie. Artefakty można przedstawić albo za pomocą ramek klas, albo wypisując ich nazwy w węźle. W wypadku użycia pierwszego sposobu można dodać ikonę dokumentu lub słowo kluczowe «artifact». Węzły lub artefakty można oznaczyć za pomocą znaczników z wartościami. W ten sposób można podać różne interesujące informacje o węźle, takie jak producent, system operacyjny, lokalizacja itd. Często w systemach istnieje kilka fizycznych węzłów wykonujących to samo logiczne zadanie. Można to pokazać za pomocą kilku ramek węzłów lub za pomocą znacznika z liczbą wdrożeń (Przykładowo na rysunku 5 serwerów WWW). Ścieżki komunikacyjne między węzłami ilustrują, w jaki sposób poszczególne elementy komunikują się ze sobą. Ścieżki te można oznaczyć etykietami i zapisać w nich informacje o użytych protokołach komunikacyjnych. 20

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 5 Diagram sekwencji - wprowadzenie I Diagram sekwencji (ang. sequence

Bardziej szczegółowo

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4

Bardziej szczegółowo

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji. Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji. Wymiar pionowy: oś czasu przedstawiajaca ułożone chronologicznie komunikaty Podstawowe notacje graficzne Konceptualny

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

UML cz. III. UML cz. III 1/36

UML cz. III. UML cz. III 1/36 UML cz. III UML cz. III 1/36 UML cz. III 2/36 Diagram współpracy Diagramy współpracy: prezentują obiekty współdziałające ze sobą opisują rolę obiektów w scenariuszu mogą prezentować wzorce projektowe UML

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

Podstawy programowania III WYKŁAD 4 Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji Analiza i programowanie obiektowe 2016/2017 Wykład 6: Projektowanie obiektowe: diagramy interakcji Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Przejście

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 10 Diagramy wdrożenia I Diagramy wdrożenia - stosowane do modelowania

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Diagramy sekwencji. wymienianych między nimi

Diagramy sekwencji. wymienianych między nimi Diagramy sekwencji Graficzne przedstawienie interakcji pomiędzy instancjami klasyfikatorów systemu w postaci sekwencji komunikatów wymienianych między nimi Przykład diagramu sekwencji Układ diagramu wymiar

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Inżynieria oprogramowania

Inżynieria oprogramowania Inżynieria oprogramowania Wykład 8 Inżynieria wymagań: analiza przypadków użycia a diagram czynności Patrz: Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski, Język UML 2.0 w modelowaniu systemów

Bardziej szczegółowo

Spis treúci. 1. Wprowadzenie... 13

Spis treúci. 1. Wprowadzenie... 13 Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Diagramy czynności Na podstawie UML 2.0 Tutorial

Diagramy czynności Na podstawie UML 2.0 Tutorial Diagramy czynności Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy czynności 1. Diagramy czyności UML http://sparxsystems.com.au/resources/uml2_tutorial/

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów

Bardziej szczegółowo

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu: klasami,

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram

Bardziej szczegółowo

TECHNOLOGIE OBIEKTOWE. Wykład 3

TECHNOLOGIE OBIEKTOWE. Wykład 3 TECHNOLOGIE OBIEKTOWE Wykład 3 2 Diagramy stanów 3 Diagram stanu opisuje zmiany stanu obiektu, podsystemu lub systemu pod wpływem działania operacji. Jest on szczególnie przydatny, gdy zachowanie obiektu

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Diagramy czynności. Widok logiczny. Widok fizyczny

Diagramy czynności. Widok logiczny. Widok fizyczny Diagramy czynności System widoków 4+1 Kruchtena Widok logiczny Widok fizyczny Widok procesu Widok przypadków użycia Widok konstrukcji Diagramy czynności są jedynym diagramem w widoku procesu modelowanego

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania. Adrian Skalczuk Szymon Kosarzycki Spis Treści Wstęp [1/2] Wzorce projektowe są nieodłącznym przyjacielem programisty pozwalają pisać czystszy kod, łatwiejszy do zrozumienia przez innych i zapewniają pewien

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI DIAGRAMY INTERAKCJI DIAGRAMY STEROWANIA INTERAKCJĄ Diagramy sterowania interakcją dokumentują logiczne związki między fragmentami interakcji. Podstawowe kategorie pojęciowe diagramów sterowania interakcją

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

C++ Przeładowanie operatorów i wzorce w klasach

C++ Przeładowanie operatorów i wzorce w klasach C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje

Bardziej szczegółowo

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA Przygotował: mgr inż. Radosław Adamus Wprowadzenie Podstawą każdego projektu, którego celem jest budowa oprogramowania są wymagania, czyli warunki,

Bardziej szczegółowo

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView Wykonali: Krzysztof Przybyłek Piotr Misiuda IVFDS Istotę programowania obiektowego

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

ECDL Podstawy programowania Sylabus - wersja 1.0

ECDL Podstawy programowania Sylabus - wersja 1.0 ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 4 Diagramy aktywności I Diagram aktywności (czynności) (ang. activity

Bardziej szczegółowo

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 11 Diagramy struktur złożonych Klasyfikator - definiuje cechy strukturalne

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Analiza i projektowanie obiektowe 2016/2017 Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe

Projektowanie obiektowe Wzorce projektowe Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce

Bardziej szczegółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykład Ćwiczenia Laboratorium Projekt Seminarium WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Podstawy inżynierii oprogramowania

Podstawy inżynierii oprogramowania Podstawy inżynierii oprogramowania Modelowanie. Podstawy notacji UML Aleksander Lamża ZKSB Instytut Informatyki Uniwersytet Śląski w Katowicach aleksander.lamza@us.edu.pl Zawartość Czym jest UML? Wybrane

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) Projektowanie obiektowe Wzorce projektowe Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) 1 Roadmap Adapter Bridge Composite Facade 2 Pojęcia obiekt interfejs typ klasa 3 Co to jest delegacja?

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo