Laboratorium 8 Diagramy aktywności

Podobne dokumenty
Diagram stanów Laboratorium 9

Przykład 1 Iteracja 2 tworzenia oprogramowania Diagramy klas i sekwencji:

Diagramy klas i sekwencji Wykład5

Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML

Przykład 1 Iteracja 1 tworzenia oprogramowania

Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Laboratorium 10 Testy jednostkowe z użyciem narzędzia JUnit

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Specyfikowanie wymagań przypadki użycia

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Projekt INP Instrukcja 1. Autor Dr inż. Zofia Kruczkiewicz

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy czynności Na podstawie UML 2.0 Tutorial

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Aplikacje RMI Lab4

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Aplikacje RMI

Języki i metody programowania Java. Wykład 2 (część 2)

Modelowanie obiektowe

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Laboratorium 2_3_4 Wzorce oprogramowania zastosowane w modelu obiektowym (wg Alan Shalloway, James R.Trott)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.

Klasy i obiekty cz II

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Instrukcja 4 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwa klienta: Interfejs graficzny użytkownika

Zaawansowane aplikacje WWW - laboratorium

Diagramy klas, diagramy sekwencji

MODELOWANIE OBIEKTOWE

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Katalog książek cz. 2

Ocena6 Lab8. Ocena5 Lab7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5

Budowa aplikacji wielowarstwowych. zastosowanie walidatorów.

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Kurs programowania. Wykład 9. Wojciech Macyna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podejście obiektowe. Tablice (1) obiektów

Tworzenie aplikacji w języku Java

Instrukcja 1 Laboratorium z Podstaw Inżynierii Oprogramowania. Relacja 1 do 1..0 instrukcja z lab1

public enum Environment { Development("Deweloperskie"), Test("Testowe"), Production("Produkcyjne"); private String name;

Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Modelowanie i analiza. warstwy biznesowej aplikacji

Builder (budowniczy) Cel: Przykład:

Wzorce logiki dziedziny

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Te atrybuty wewnętrzne są wyrażane za pomocą tzw. metryk, czyli prostych wyrażeń, wiążących pewne elementy programu (projektu, kodu źródłowego itp.).

Instrukcja Wprowadzenie do tworzenia oprogramowania. Relacja 1 do 1..0 instrukcja z lab1

Programowanie obiektowe

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Iteracyjno-rozwojowy cykl oprogramowania 4

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Metody Metody, parametry, zwracanie wartości

Wykład 4_2 część druga. Iteracyjno-rozwojowy cykl oprogramowania 4

Algorytmy z powrotami. Algorytm minimax

Java: interfejsy i klasy wewnętrzne

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie komponentowe 5

Języki i metody programowania Java Lab2 podejście obiektowe

forma cząstkowy grupy Dane Dane grupy Dane grupy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Współbieżność w środowisku Java

Technologie obiektowe

Programowanie obiektowe

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz

Programowanie obiektowe

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Język UML w modelowaniu systemów informatycznych

Programowanie obiektowe

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Stanowe komponenty sesyjne

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

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

Programowanie w Internecie. Java

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Transkrypt:

Laboratorium 8 Diagramy aktywności Zofia Kruczkiewicz Zofia Kruczkiewicz Lab_INP002017_8 1

Modelowanie zachowania obiektów za pomocą diagramów aktywności. Modelowanie zachowania obiektów za pomocą diagramów sekwencji i aktywności - porównanie Zofia Kruczkiewicz Lab_INP002017_8 2

Modelowanie zachowania obiektów za pomocą diagramów aktywności. Cel laboratoriów: Modelowanie procesów biznesowych procesów realizowanych przez tworzone oprogramowanie w celu zautomatyzowania procesów świata rzeczywistego kontynuacja tworzenia modelu przypadków użycia z wykorzystaniem diagramów czynności (aktywności) (wykład4, instrukcja bieżąca). Uwaga: Należy rozwijać projekt UML, wykonany podczas lab3-7. Definiowane zachowania wybranych przypadków użycia za pomocą diagramów czynności kontynuacja tworzenia modelu przypadków użycia (wg bieżącej instrukcji). Wybrane przypadki użycia muszą realizować procesy biznesowe świata rzeczywistego z p.1. Grupa dwuosobowa realizuje diagram dla jednego złożonego przypadku użycia. Złożony przypadek użycia powinien zawierać relacje <<include>>, lub/i <<extend>>, lub/i <<use>>. Scenariusze poszczególnych torów powinny odpowiadać scenariuszom modelowanych za pomocą diagramów sekwencji (z lab5-7); Uwagi: 1. Należy zastosować elementy diagramów czynności przedstawione na wykładzie 4 2. Diagramy powinny zawierać tzw. partycje (tory). 3. W diagramie czynności reprezentującym scenariusze przypadku użycia głównego i powiązanych podanymi wyżej relacjami należy partycje zdefiniować jako typy obiektów (klasy) używanych w tworzonym oprogramowaniu i realizujących logikę biznesową scenariuszy. Partycja wywołująca logikę biznesową umieszczoną w kolejnych partycjach powinna reprezentować interfejs graficzny użytkownika np. GUI, Warstwa prezentacji itp. 4. Przejścia łączące elementy typu: Object Node, Central Buffer Node oraz Data Store Node z innymi elementami diagramu powinny być typu Object Flow. Przejścia pomiędzy pozostałymi elementami diagramu powinny być typu Control Flow. Pozostale informacje podano w Dodatku do iinstrukcji (str.27-28)

Modelowanie zachowania obiektów za pomocą diagramów aktywności Przykłady z wykładów 4-6 Przykład tworzenia diagramu aktywności w środowisku Visual Paradigm Drawing activity diagrams (https://www.visualparadigm.com/support/documents/vpuserguide/94/2580/6713_drawingactiv.html) Zofia Kruczkiewicz Lab_INP002017_8 4

Diagram przypadków użycia (wykład 4 część 1, przykład 3) wybrany fragment 5

Początkowa definicja diagramu klas zdefiniowano powiązania między klasami 6

Rezultat diagram klas uzyskany w procesie projektowania (przebieg pokazany w dodatku do wykładu 5) 7

Klasa Facade udostępnia metody logiki biznesowej implementacja przypadków użycia wywoływanych przez aktorów na diagramie przypadków użycia package subbusinesstier; import java.time.localdate; import java.time.month; import java.util.arraylist; import java.util.arrays; import java.util.list; import subbusinesstier.entities.client; import subbusinesstier.entities.titlebook; public class Facade { List<TitleBook> titlebooks; List<Client> clients; public Facade() { public List<TitleBook> gettitlebooks() { public void settitlebooks(list<titlebook> titlebooks) { public List<Client> getclients() { public void setclients(list<client> clients) {

public TitleBook searchtitlebook(titlebook titlebook) { public Client searchclient(client client) { public String addclient(string data[]) { PU Operacje_Na_Ksiazkach PU Rejestracja_Klienta public String addtitlebook(string data[]) { PU Dodaj_Tytul_Ksiazki public ArrayList<String> addbook(string data1[], String data2[]) { public String addreservation(string data1[], String data2[], LocalDate date) { //pomocnicze metody PU Dodaj_Ksiazke PU Rezerwacja public ArrayList<String> searchbooksoftitle(string data[]) { public Object[][] gettitlebooksmodel() { public String PrintBooks() { public String PrintTitleBooks() { public static void main(string t[]) {

1. Diagram aktywności dla PU Dodaj_ksiazke DS 1 DS 2 10

(DS1) Wstawianie nowej książki o podanym tytule 1-y etap public ArrayList<String> addbook(string data1[], String data2[]) 9 3 12 11 11

//class Facade List<TitleBook> titlebooks; List<Client> clients; public Facade() { titlebooks = new ArrayList<>(); clients = new ArrayList(); public ArrayList<String> addbook(string data1[], String data2[]) { TitleBook help1, titleexist; Factory fabryka = new Factory(); help1 = fabryka.createtitlebook(data1); if ((titleexist = searchtitlebook(help1))!= null) { return titleexist.addbook(data2); return null; Zofia Kruczkiewicz Lab_INP002017_8 12 12

(DS2) Wstawianie nowej książki o podanym tytule 2-i etap public ArrayList<String> addbook(string data[]) 13 Zofia Kruczkiewicz Lab_INP002017_8 13

//class TitleBook List<Book> books; public TitleBook() { books = new ArrayList(); public ArrayList<String> addbook(string data[]) { Factory factory = new Factory(); Book newbook; newbook = factory.createbook(data); if (searchbook(newbook) == null) { books.add(newbook); newbook.settitlebook(this); return getbooksmodel(); return null; 14

2. Diagram aktywności dla PU Rezerwacja DS 1 DS 2 DS 3, DS 5 DS 4

(DS1) Rezerwacja ksiązki: public String addreservation(string data1[], String data2[], LocalDate date) 16

Identyfikacja torów na diagramie aktywności dla procesu Rezerwacja //class Facade public String addreservation(string data1[], String data2[], LocalDate date) { String result; Factory factory = new Factory(); TitleBook helptitlebook = factory.createtitlebook(data1), titlebook; titlebook = this.searchtitlebook(helptitlebook); if (titlebook!= null) if (titlebook.searchfreebook(date)) { //book.isfree(date) Client helpclient = factory.createclient(data2), client; client = this.searchclient(helpclient); if (client!= null) { client.addreservation(titlebook.getbook(), date); result = "reserved"; else result = "no such a client"; else result = "no free book"; else result = "no such a title"; return result; 17

(DS2) Wyszukiwanie wolnej książki do rezerwacji public boolean searchfreebook(localdate date) 17 Zofia Kruczkiewicz Lab_INP002017_8

//class TitleBook List<Book> books; public TitleBook() { books = new ArrayList(); private Book book; //atrybut book przechowuje obiekt typu //Book wyszukany do rezerwacji public boolean searchfreebook(localdate date) { for (int i = 0; i < books.size(); i++) { book = books.get(i); if (book.isfree(date)) return true; return false; 19

(DS3) Sprawdzanie przez książkę, czy ma wolny termin rezerwacji public boolean isfree(localdate date) 5 Zofia Kruczkiewicz Lab_INP002017_8

//class Book private List<Reservation> reservations; public Book() { reservations = new ArrayList(); public boolean isfree(localdate date) { Reservation reservation; for (int i = 0; i < reservations.size(); i++) { reservation = reservations.get(i); if (!reservation.isfree(date)) { return false; return true; 21

(DS4) Wykonanie rezerwacji przez obiekt typu Client 1-y etap public void addreservation(book book, LocalDate date) 22

//class Client private List<Reservation> reservations; public Client() { reservations=new ArrayList(); public void addreservation(book book, LocalDate date) { Factory factory=new Factory(); Reservation reservation= factory.createreservation(number++, date); reservation.setclient(this); reservations.add(reservation); book.addreservation(reservation); 23

(DS5) Wykonanie rezerwacji przez obiekt typu Book 2-i etap public void addreservation(reservation reservation) 24

// class Book private List<Reservation> reservations; public Book() { reservations = new ArrayList(); public void addreservation(reservation reservation) { reservation.setbook(this); reservations.add(reservation); 25

Dodatek informacja tworzeniu diagramu aktywności

Informacja tworzeniu diagramu aktywności część 1

Informacja tworzeniu diagramu aktywności część 2