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:
[Propozycja rozwiązania i kryteria
oceny] [Pomocnik UML]
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
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.
Copyright © 2004-7 Marek Krętowski, Tomasz Łukaszuk, Marek Grześ, Krzysztof
Jurczuk.
Revised:
2007-02-22