Modelowanie z wykorzystaniem notacji UML
Transkrypt
Modelowanie z wykorzystaniem notacji UML
Inżynieria Oprogramowania 1 Modelowanie z wykorzystaniem notacji UML – część 1 Modelowanie z wykorzystaniem notacji UML Część 2 Wstęp Celem zajęć jest zapoznanie studentów z elementami notacji UML (ang. Unified Modeling Language) służącej do modelowania oprogramowania. W ramach części II zostaną przybliżone studentom dwa typy diagramów UML: diagram stanów oraz diagram interakcji. Szczegółowe informacje odnośnie diagramów UML można znaleźć w materiałach wykładowych oraz w prezentacjach: • http://wazniak.mimuw.edu.pl/images/7/76/Io-5-wyk.pdf • http://wazniak.mimuw.edu.pl/images/f/f3/Io-6-wyk.pdf Podstawowe informacje zostaną dodatkowo przedstawione przez osobę prowadzącą zajęcia laboratoryjne w ramach wstępu do zajęć. W trakcie zajęć studenci pracując w grupach 3-4 osobowych będą mieli za zadanie stworzyć diagramy UML opisujące fragmenty systemu do zarządzania należnościami i płatnościami. System BillMonk * jeśli pamiętasz kontekst z zeszłych zajęć możesz pominąć ten opis System BillMonk (www.billmonk.com) jest systemem do zarządzania należnościami i płatnościami. Użytkownik ma możliwość wprowadzenia rachunku. Na każdym rachunku zamieszczona jest lista kupionych pozycji oraz lista płatności. Każda pozycja rachunku to nazwa kupionego towaru lub usługi, cena oraz lista partycypantów: osób, które tę pozycję zamawiały, z przypisaną do nich częścią należności. Lista płatności to lista osób, które zapłaciły rachunek z przypisanymi do tych osób zapłaconymi kwotami. Dla każdego takiego rachunku system oblicza, ile każda z osób umieszczonych na rachunku zapłaciła, a za jaką kwotę kupiła. Dla osób, które zapłaciły mniej niż kupiły system wylicza należność, jaką muszą zapłacić tym, którzy zapłacili więcej niż kupili. Nie ma konieczności wyrównywania należności z rachunku od razu. Dla każdej z osób umieszczonych na rachunku system zapamiętuje rachunki, w których ta osoba uczestniczyła, wraz ze stanem rozliczenia. W dowolnym momencie użytkownik może sprawdzić ile ma zobowiązań i wobec jakich osób. Może też zapisać w systemie informację, że zapłacił zobowiązanie wobec innej osoby. W systemie musi być możliwe wycofanie jakiejkolwiek wprowadzonego wcześniej rachunku czy przeprowadzonej operacji zapłaty czy operacji uproszczenia rozliczeń. Efekt usunięcia operacji powinien być z punktu widzenia bilansu każdej z osób taki, jakby ta operacja nigdy nie miała miejsca. Diagram czynności przestawiający proces wprowadzenia pojedynczego rachunku oraz diagram klas dla systemu BillMonk zostały umieszczone w osobnych plikach. strona 1 / 2 Inżynieria Oprogramowania 1 Modelowanie z wykorzystaniem notacji UML – część 1 Zadanie 1. Przedstaw na diagramie stanów cykl życia rachunku. Należy uwzględnić następujące informacje o stanach i przejściach pomiędzy stanami: • Po zakończeniu zakupów rachunek zostaje wystawiony przez sprzedawcę, • Uczestnicy podejmują decyzję o rozliczeniu i rachunek przechodzi w stan rozliczany, • Rozliczany rachunek jest rozpatrywany na dwóch płaszczyznach: ◦ pierwsza dotyczy stanu zapłaty – początkowo rachunek jest niezapłacony, następnie jeśli przekazano kwotę zapłaty równą kwocie zakupu rachunek jest uznany za zapłacony, ◦ druga dotyczy rozliczenia rachunku w systemie – rachunek zostaje dodany do systemu (uwzględnij akcję, która jest wykonywana aby dodać rachunek – zgodnie z diagramem klas) i jego stan jest określany jako „wprowadzony”; następnie rachunek jest rozliczany przez system, w wyniku czego rachunek może być uważany za „zamknięty” jeśli żadna osoba nie nadpłaciła albo „do wyrównania” jeśli przynajmniej jedna osoba dokonała nadpłaty; w dowolnym momencie od wprowadzenia rachunek może zostać usunięty – jest to stan finalny (uwzględnij odpowiednią akcję). Dodatkowo wprowadzono opcję, która umożliwia zamrożenie rachunku (zamrożony rachunek nie jest brany pod uwagę w rozliczeniach, ale nadal jest obecny w systemie). Rachunek może być zamrożony w dowolnym momencie, w którym jest obecny w systemie. Zamrożony rachunek może zostać przywrócony. W takiej sytuacji rachunek wraca do stanu w jakim znajdował się przed jego zamrożeniem. • Rachunek, który został zapłacony i usunięty z systemu kończy swój cykl życia. Zadanie 2. Przeanalizuj powiązania pomiędzy diagramem czynności a diagramem stanów cyklu życia rachunku w systemie BillMonk. Zastanów się jak wykonywane czynności na diagramie czynności wpływają na zmiany stanów na diagramie stanów (dokonaj symulacji porównując diagramy dla konkretnego przypadku). Zadanie 3. Korzystając z załączonego diagramu klas przedstaw na diagramie sekwencji sposób realizacji operacji Rachunek.obliczNadplate(kto :Osoba):double. Przy konstrukcji diagramu weź pod uwagę asocjacje pomiędzy klasami oraz dostępne metody na diagramie klas; przydatne mogą być sekcje "loop", "alt" oraz "opt". Dodatkowo załóż, że operacja obliczNapdplate() zwraca liczbę ujemną jeśli osoba ma niedopłatę w ramach rachunku. Zadanie 4. Korzystając z załączonego diagramu klas przedstaw na diagramie sekwencji sposób realizacji operacji Billmonk.obliczZobowiazania(kto :Osoba):double. Wykorzystaj wcześniej opracowany fragment diagramu przedstawiający realizację operacji obliczNapdplate(). Przy konstrukcji diagramu weź pod uwagę asocjacje pomiędzy klasami oraz dostępne metody na diagramie klas; przydatne mogą być sekcje "loop", "alt" oraz "opt". strona 2 / 2