Katedra Oprogramowania
Wydział Informatyki PB

Inżynieria oprogramowania
Pracownia specjalistyczna - wprawki UML


Diagram przypadków użycia:
Wprawka A. Firma Wigry zajmująca się charterem (wynajmem) jachtów na rejsy po jeziorach Warmii i Mazur rozwijała się ostatnimi czasy bardzo dynamicznie. Aby możliwie najefektywniej wykorzystywać coraz większą bazę łódek, firma postanowiła zainwestować w system informatyczny wspomagający jej podstawową działalność. W pierwszym rzędzie system ma obejmować zarządzanie rezerwacjami i wypożyczeniem jachtów, a także m.in. przerwy związane z konserwacjami łodzi. Podać diagram przypadków użycia tego systemu oraz opisz 2-3 wybrane przypadki użycia.
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka B. Firma T-Air zajmuje się pasażerskim transportem lotniczym i aby móc efektywnie walczyć z konkurencją tanich linii postanowiła zbudować system informatyczny wspomagający jej działalność, a w szczególności kontakty z klientami. Do zadań systemu należeć ma zarządzanie rozkładem lotów, zarządzanie rezerwacją i sprzedażą biletów oraz umożliwienie planowania podróży. Niektóre operacje jak np. zakup biletów dostępne klientom z poziomu przeglądarki internetowej wymagają autoryzacji (trzeba mieć założone konto), inne jak np. wyszukiwanie połączeń dostępne są bez ograniczeń. Ponadto system ma udostępniać dyrekcji informacje zarządczą związaną z efektywnością wykorzystania miejsc w samolotach, poziomem sprzedaży, itd. Opracować diagram przypadków użycia tego systemu oraz opisać wybrane przypadki.

Diagram klas:
Wprawka A. Opracować model klas (tylko nazwy klas i atrybuty oraz związki pomiędzy klasami wraz z nazwami związków i licznościami) i zapisać go w postaci diagramu klas. Projektujemy system Dziennika Ocen w Szkole. W każdej klasie uczy się nie więcej niż 25 uczniów z których jeden jest gospodarzem klasy. Cała klasa uczy się tych samych przedmiotów (w określonym wymiarze tygodniowym) oprócz języków obcych (część dzieci uczy się angielskiego a część francuskiego). Nauczyciel może uczyć kilku przedmiotów oraz klasa ma wychowawcę. Oprócz ocen cząstkowych, uczeń otrzymuje oceną końcową. Dodatkowo uczeń otrzymuje końcową ocenę ze sprawowania.
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka B. Opracować model klas (tylko nazwy klas i atrybuty oraz związki pomiędzy klasami wraz z nazwami związków i licznościam) i zapisać go w postaci diagramu klas. Projektujemy system wspomagający pracę firmy fonograficznej zajmującej się przygotowywaniem wydawnictw (płyt i kaset) z muzyką i piosenkami polskich wykonawców. Każdy utwór muzyczny ma autora muzyki oraz może mieć autora słów. Na jednej płycie może się znaleźć maksymalnie 25 utworów. Płyty są najczęściej firmowane przez jednego wykonawcę (zespół, solista, ...), ale firma wydaje również tzw. składanki a także albumy kilkupłytowe (najczęściej 2-płytowe). Możliwa jest również sytuacja gdy utwór jest wykonywany przez kilku wykonawców (np. duet).

Diagram czynności:
Wprawka A. Realizacja zamówienia na komputer z oprogramowaniem realizowana jest w firmie SPRINT w następujący sposób. W przypadku nowych klientów dział sprzedaży wymaga wniesienia przedpłaty, natomiast w pozostałych przypadkach ustala warunki płatności i przekazania zestawu. W dziale sprzętu gromadzone są części a następnie montowany jest komputer. W tym czasie w dziale oprogramowania kompletowany jest system operacyjny i programy użytkowe zamówione przez klienta. Po przekazaniu sprzętu następuje instalacja oprogramowania, a dział sprzedaży wystawia fakturę. W przypadku klientów lokalnych (z siedzibą znajdującą się w odległości do 50 km od firmy) wysyłany jest samochód służbowy z zamówionym zestawem i fakturą, chyba, że klient zadecydował, że dokona odbioru w firmie. W pozostałych przypadkach zestaw jest wysyłany poprzez firmę kurierską. Podać diagram czynności.
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka B. Organizacja turystycznej wyprawy na Marsa przebiega w następujący sposób. Zgłaszający się do firmy Mars Travel kandydat na kosmicznego turystę przedstawia gwarancje finansowe w centrali firmy oraz, o ile wybiera się pierwszy raz w podróż na czerwoną planetę, poddawany jest specjalistycznym badaniom lekarskim w ośrodku przygotowawczym. Zakładając, że spełnione są powyższe warunki wstępne, po ustaleniu szczegółów lotu (termin wylotu, czas pobytu, ...) następuje podpisanie umowy. W tym momencie firma rozpoczyna bezpośrednie przygotowania promu kosmicznego w ośrodku startowym. Równocześnie w ośrodku przygotowawczym przyszły kosmonauta podnosi swoją sprawność fizyczną (zwłaszcza trening pływacki i uprawianie jogi) oraz uczestniczy w zajęciach językowych w celu poznania podstaw marsjańskiego. Na zakończenie okresu przygotowawczego podróżny przechodzi szkolenie BHP (m.in. na promie nie wolno palić tytoniu i używać telefonów komórkowych) i przenoszony jest już do ośrodka startowego. Na trzy dni przed zakładanym odlotem przewidziane jest pożegnanie z bliskimi, o ile klient jest nim zainteresowany. Następnego dnia rozpoczyna się bezpośrednie przygotowanie do startu (tankowanie paliwa, dokręcanie śrubek, procedury kontrolne i odliczanie). Start promu może być opóźniony w sytuacji problemów technicznych lub atmosferycznych lub wręcz odwołany, gdy potencjalny kosmonauta zrezygnuje. Podać diagram czynności. 

Diagram stanów:
Wprawka A1. Projektujemy system wspomagający pracę antykwariatu. Książki przyniesione przez potencjalnego sprzedającego są zostawiane do oceny przez wyznaczonego antykwariusza. O ile nie zostają odrzucone, ustalana jest pierwsza cena. Jeżeli przez 90 dni książka nie zostanie sprzedana, jest automatycznie przeceniana o 20%. Jeżeli mimo to nie uda jej się sprzedać przez kolejne 90 dni, wówczas jest wycofywana z półek i czeka na odbiór przez właściciela na zapleczu. Właściciel może sam wycofać książkę w dowolnym momencie. Jeżeli uda się sprzedać książkę to (już poprzedni) właściciel jest powiadamiany i może odebrać pieniądze pomiejszone o prowizję antykwariatu. Podać diagram stanów dla obiektów klasy Książka.
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka A2. Projektujemy system wspomagający pracę biblioteki. Każdy zakupiony egzemplarz książki przed udostępnieniem dla wypożyczających jest opracowywany (numer, zabezpieczenia, oznaczenia, ...). Okres wypożyczenie można przedłużać tylko przed upływem terminu wypożyczenia, przy czym łączny czas trwania nie może być dłuższy niż rok. Niezwrócenie książki w terminie powoduje konieczność zapłacenia kary za każdy dzień przetrzymania egzemplarza, kara jest naliczana w momencie zwrócenia książki. Jeżeli czytelnik zagubi książkę wówczas w momencie zgłoszenia tego faktu zostaje mu naliczona opłata karna, której opłacenie kończy żywot egzemplarza w bibliotece. Zagubione książki wypadają z puli udostępnianej do wypożyczeń. Każdorazowo podczas przekazywania książki do wypożyczeń bibliotekarz sprawdza jej stan i, jeżeli wykryje uszkodzenia, odkłada egzemplarz do książek uszkodzonych. Jeżeli naprawienie egzemplarza przez introligatora jest niemożliwe lub nieuzasadnione wówczas egzemplarz jest wycofywany. Podać diagram stanów dla obiektów klasy Egzemplarz.
[Propozycja rozwiązania]

Wprawka B. Kosmiczny turystycza ladując na Marsie automatycznie uzyskuje wizę turystyczną na okres 3 miesięcy. W tym czasie może bez ograniczeń poruszać się po czerwonej planecie podziwiając piękno krajobrazów i nasyciwszy się widokami może w dowolnym momencie powrócić na ziemię. Przedłużenie pobytu na Marsie wymaga uzyskania kolejnej wizy turystycznej, prz czym łączna długość pobytu turystycznego nie może przekroczyć 6 miesięcy. Ziemianin, który przedłuża nielegalnie swój pobyt na Marsie traktowany jest jako nielegalny imigrant i naraża się na przymusową deportację. Możliwy jest równeż legalny stały pobyt na planecie, o ile osoba wystąpi o przyznanie statusu uchodźcy i udowodni, że była prześladowana przez osobników swego gatunku na Ziemi. Uchodźca, który przez okres 5 lat marsjańskich nie wejdzie w konflit z prawem, uzyskuje obywatelstwo Marsa. Wyjątek stanowią jedynie uchodźcy, którzy poślubią rodowitego ufoka, gdyż w tej sytuacji stają się automatycznie obywatelami Marsa. Powrót na Ziemię jest jednak możliwy w dalszym ciągu, chyba, że nastąpiło zrzeczenie się obywatelstwa Ziemii. Podać diagram stanów dla obiektów klasy ZiemianinNaMarsie.

Diagram przebiegu:
Wprawka A1. W systemie wspomagającym zarządzanie miejskiej firmy kurierskiej do wyboru sposobu przewiezienia przesyłki przeprowadzana jest symulacja czasu przewiezienia różnymi środkami transportu (rower, motor, samochód, ciężarówka). W tym celu obiekt klasy Analityk chcąc poznać najlepszy śr. transportu, tworzy obiekt tymczasowy klasy Szacowanie, który po zakończeniu szacowania jest usuwany. Czas potrzebny na przewiezienie zależy od wielkości paczki i odległości (np. nie każdą paczkę można zawieźć rowerem, a do zawiezienia listu nie potrzeba ciężarówki). Narysuj diagram przebiegu dla opisanej sytuacji. Podaj wykorzystaną wersję UML.
Klasy i metody do wykorzystania:
ŚrodkiTransportu       Ilość() – zwraca ilość śr. transportu
                                        Podaj(nr) – zwraca śr. transportu z pozycji o zadanym numerze
Środek                         CzyPrzewiezie(przesyłka) – czy można przewieźć taką przesyłkę tym środkiem transportu
PlanMiasta                  Czas(start, koniec, srodek) – zwraca czas potrzebny do osiągnięcia celu zadanym śr. transportu

Szacowanie                 Szacowanie(start, koniec, przesylka) – konstruktor, oblicza czasy dla różnych możliwości
                                        PodajNajszybszy() – zwraca najszybszy środek transportu w danym przypadku
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka A2. W programie klienckim do obsługi poczty elektronicznej wysyłanie wiadomości odbywa się poprzez wywołanie metody sendMail z klasy PostAccount. Obiekt klasy PostAccount przechowuje między innymi dane serwera wysyłającego. Metoda sendMail tworzy obiekt MailMassage i ustawia nadawcę wiadomości, odbiorców, temat, treść i załączniki. Następnie tworzy obiekt SmtpClient i ustawia parametry serwera. Do nadania wiadomości służy metoda send. Po tym należy sprawdzić powodzenie operacji wywołując metodę checkStatus. W przypadku niepowodzenia wiadomość powinna zostać zapisana w folderze „Drafts”, kiedy nie będzie błędów wiadomość powinna znaleźć się w folderze podanym jako ostatni parametr wywołania sendMail (o ile ostatni parametr nie ma wartości null). Wynikiem zwracanym przez sendMail powinna być wcześniej otrzymana wartość z checkStatus. Sporządzić diagram sekwencji. Narysuj diagram przebiegu dla opisanej sytuacji. Podaj wykorzystaną wersję UML.
Klasy i metody do wykorzystania:
PostAccount smtpHost – atrybut, adres serwera SMTP
smtpUser – atrybut, nazwa użytkownika dla serwera SMTP
smtpPassword – atrybut, hasło dostępu użytkownika do serwera SMTP
boolean sendMail(String sender, List receiverList, String subject, String body, List attachmetList, Folder destFolder=null) – wysłanie wiadomości, zwraca informację o powodzeniu operacji
SmtpClient setHost(String host) – ustawia adres serwera SMTP
setUser(String user) – ustawia nazwę użytkownika SMTP
setPassword(String password) – ustawia hasło dla SMTP
send(MailMassage msg) – przekazanie wiadomości do wysłania przez serwer SMTP
boolean checkStatus() – zwraca informację o powodzeniu lub niepowodzeniu wysłania ostatnio nadanej wiadomości
MailMessage setFrom(String sender) – ustawia nadawcę wiadomości
addTo(String receiver) – dodaje odbiorcę wiadomości
setSubject(String subject) – ustawia temat wiadomości
setBody(String body) – ustawia treść wiadomości
addAttachment(String atachmentPath) – dodaje załącznik do wiadomości
Folder writeMail(MailMassage msg) – zapisuje wiadomość w folderze lokalnym
Folders Folder getFolder(String name) – zwraca folder o podanej nazwie
List int getSize() – zwraca ilość elementów na liście
Object getElement(int i) – zwraca i-ty element listy
[Propozycja rozwiązania i kryteria oceny] [Pomocnik UML]

Wprawka B1. W systemie wspomagającym pracę hotelu rezerwacja pokoju jest realizowana następująco: Obiekt klasy Recepcjonista wywołuje metodę PokażWolnePokoje. Sprawdza ona kolejno wszystkie pokoje pod względem ich dostępności w podanym terminie. Jeżeli pokój nie jest zarezerwowany, w tymczasowym OknieWynikowym (utworzonym w trakcie wykonywania funkcji) umieszczana jest odpowiednia informacja. Po tym Recepcjonista dokonuje rezerwacji pokoju i zamyka OknoWynikowe. Narysuj diagram przebiegu obrazujący opisaną interakcję. Podaj wykorzystaną wersję UML.
Klasy i metody do wykorzystania:
Hotel OknoWynikowe* PokażWolnePokoje(od_kiedy, do_kiedy) – wyświetla w tymczasowym oknie listę pokoi dostępnych w podanym terminie
Pokój bool CzyWolny(od_kiedy, do_kiedy) – pozwala na stwierdzenie dostępności pokoju w określonym terminie
OknoWynikowe (<<transient>>) void DodajWpis(pokój, od_kiedy, do_kiedy) – wyświetla kolejny wpis dotyczący określonego pokoju i terminu jego dostępności
void DokonajRezerwacji(nr_wpisu) – dokonanie rezerwacji zgodnie z informacją z wpisu, utworzenie nowego obiektu klasy Rezerwacja
void Zamknij() – destruktor
Wprawka B2. Wirtualny tomograf rezonansu magnetycznego służy do symulacji procesu skanowania metoda jądrowego rezonansu magnetycznego. W celu wykonania takiego eksperymentu obiekt klasy CAplikacja tworzy tymczasowy obiekt klasy CSkanowanie, do którego w konstruktorze przekazywane są: wirtualny fantom (obiekt klasy CFantom stworzony wcześniej przez obiekt klasy CAplikacja) oraz parametry skanowania (TE, TR). Proces skanowania jest inicjowany poprzez metodę skanuj(). Polega ona na iteracyjnym przeglądaniu trzywymiarowego fantomu, warstwa po warstwie, z których każda jest analizowana oddzielnie. Natomiast analiza każdej warstwy polega na pobraniu sygnału od każdego jej elementu (woksela) poprzez metodę getSignal i zapisanie otrzymanego sygnału w obiekcie klasy CImage (metoda setSignal). Obiekt klasy CImage jest tworzony wewnątrz metody skanuj i jest także przez nią zwracany. Narysuj diagram przebiegu dla opisanej sytuacji. Podaj wykorzystaną wersję UML.
Klasy i metody do wykorzystania:
CAplikacja -
CSkanowanie CSkanowanie(CFantom fantom, float TE, float TR), ~CSkanowanie(), skanuj(), float getSignal(CWoksel woksel)
CFantom CFantom(), int getLiczbaWarstw() - zwraca liczbę warstw fantomu
CWarstwa getWarstwa(int ktora) - zwraca warstwę o numerze "ktora"
CImage CImage(), setSignal(int numerWarstwy, numerWoksela, float signal)
CWarstwa int getLiczbaWokseli() - zwraca liczbę wokseli w warstwie
CWoksel getWoksel(int ktory) - zwraca woksel o numerze "ktory"
CWoksel -

Diagram wdrożenia:
Wprawka A. W systemie rozliczenia zużycia wody wykorzystywanym przez firmę wodociągową Zdrowa Woda infrastruktura jest następująca. Stacje robocze (w liczbie 15) podłączone są do serwera (PIV 2GHz, 1GB) poprzez sieć lokalną (Ethernet), natomiast wskazania liczników przekazywane są z komputerów przenośnych (50 osób odczytujących wskazania) przy wykorzystaniu modemów. Na serwerze rezydują następujące komponenty: BazaRozliczenia udostępniający interfejsy IOdczyt oraz IPłatność oraz RozliczenieZużycia korzystające z IPłatność. Na 5 stacjach roboczych zainstalowana jest aplikacja Rozrachunki wykorzystująca  oba interfejsy BazaRozliczenia, na pozostałych RozliczenieKosztów wykorzystujące  interfejs IPłatność. Zainstalowany na komputerach przenośnych program Odczyty korzysta z IOdczyt. Podać diagram wdrożenia powyższego systemu.
[Propozycja rozwiązania i kryteria oceny]

Wprawka B1. W systemie rozliczania zużycia energii elektrycznej wykorzystywanym przez Zakład Energetyczny Świetlik  infrastruktura jest następujaca. Serwer operacyjny Opera (2 razy Xeon 1.6GHz, 1GB RAM) połączony jest z serwerem bazodanowym Bazar (PIV 2GHz, 1GB RAM) lokalną siecią Ethernet. Do serwera Opera podłączonych jest 10 stacji roboczych (PIV 1.6GHz, 256MB RAM) również siecią Ethernet. Stany liczników przesyłane są przez kontrolerów z przenośnych komputerów (100 sztuk) do serwera Opera za pośrednictwem publicznej sieci Internet. Na serwerze Bazar znajdują się bazy danych BazaRozliczen i BazaAdmin. Każda baza udostępnia własne interfejsy ICzyt i IZapis. Na serwerze Opera zainstalowano aplikacją Administrator udostepniającą interfejs IAdmin i komunikującą się z BazaAdmin poprzez udostępniane przez nią interfejsy oraz aplikację Rozliczenia udostępniająca interfejs IStany i korzystającą z Administrator (interfejs IAdmin) i BazaRozliczen (oba interfejsy). Na wszystkich stacjach roboczych zainstalowany jest program RozliczenieZuzycia korzystajacy z Rozliczen poprzez interfejs IStany, na dwóch stacjach roboczych dodatkowo znajduje sie program AdministracjaSerwisem korzystający z Administrator poprzez interfejs IAdmin. Na komputerach przenośnych umieszczono programy Licznik korzystające z IStany. Podać diagram wdrożenia powyższego systemu.

Wprawka B2. W systemie Klaster udostępniającym użytkownikowi własną moc obliczeniową infrastruktura jest następująca. Główna Stacja Obliczeniowa (GSO) (4x Xeon 2GHz, 8GB RAM) udostępnia swoje usługi na zewnątrz za pośrednictwem serwera Entry Point (EP) (Athlon 1.6 Ghz, 512 MB RAM). Protokołem komunikacji pomiędzy GSO a EP jest SOAP (ang. Simple Object Access Protocol). Za pośrednictwem sieci Internet i protokołu SSH z EP komunikują się Portale Dostępowe (PD). Może ich być dowolna ilość i konfiguracja sprzętowa też może być dowolna. Z portali dostępowych PD korzystają poprzez protokół HTTP stacje użytkowników końcowych (SUN). Na GS0 rezydują następujące komponenty: serwer HTTP, główny moduł wykonawczy MPI udostępniający interfejs SOAP. Na EP znajdują się: BazaUżytkowników, ModułBezpieczeństwa, ModułKolejkowaniaZadań, serwer SSH udostępniający interfejs ICommandLine. Na każdym PD zainstalowana jest aplikacja GridSphere korzystająca z interfejsu ICommandLine a udostępniająca Interfejs Graficzny IGraphic poprzez portlety. Podać diagram wdrożenia systemu Klaster.

Powrót   


Copyright © 2004-7 Marek Krętowski, Tomasz Łukaszuk, Marek Grześ, Krzysztof Jurczuk.
Revised:
2007-02-22