Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel...

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

Transcript of Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel...

Page 1: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Laboratorium 8Diagramy aktywności

Zofia Kruczkiewicz

Zofia Kruczkiewicz – Lab_INP002017_8 1

Page 2: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

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.

Page 3: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Cel laboratoriów:

Modelowanie procesów biznesowych procesów realizowanych przez tworzone oprogramowanie wcelu zautomatyzowania procesów „świata rzeczywistego” – kontynuacja tworzenia modeluprzypadków użycia z wykorzystaniem diagramów czynności (aktywności) (wykład4, instrukcjabieżą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życiamuszą realizować procesy biznesowe „ świata rzeczywistego” z p.1. Grupa dwuosobowa realizujediagram 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 powinnyodpowiadać 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ązanychpodanymi wyżej relacjami należy partycje zdefiniować jako typy obiektów (klasy) używanych wtworzonym oprogramowaniu i realizujących logikę biznesową scenariuszy. Partycja wywołującalogikę biznesową umieszczoną w kolejnych partycjach powinna reprezentować interfejs graficznyużytkownika np. GUI, Warstwa prezentacji itp.

4. Przejścia łączące elementy typu: Object Node, Central Buffer Node oraz Data Store Node z innymielementami diagramu powinny być typu Object Flow. Przejścia pomiędzy pozostałymi elementamidiagramu 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.

Page 4: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Przykłady z wykładów 4-6

Przykład tworzenia diagramu aktywności w środowisku Visual Paradigm

Drawing activity diagrams(https://www.visual-

paradigm.com/support/documents/vpuserguide/94/2580/6713_drawingactiv.html)

Zofia Kruczkiewicz – Lab_INP002017_8 4

Modelowanie zachowania obiektów za pomocą diagramów aktywności

Page 5: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

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

5

Page 6: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

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

6

Page 7: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

7

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

Page 8: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

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) { }

Klasa Facade udostępnia metody logiki biznesowej – implementacja przypadków użycia wywoływanych przez aktorów na diagramie przypadków użycia

Page 9: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

public TitleBook searchTitleBook(TitleBook titleBook) {}

public Client searchClient(Client client) {}

public String addClient(String data[]) {}

public String addTitleBook(String data[]) {}

public ArrayList<String> addBook(String data1[], String data2[]) {}

public String addReservation(String data1[], String data2[], LocalDate date) {}

//pomocnicze metody

public ArrayList<String> searchBooksOfTitle(String data[]) {}

public Object[][] getTitleBooksModel() {}

public String PrintBooks() {}

public String PrintTitleBooks() {}

public static void main(String t[]) {}}

PU Operacje_Na_Ksiazkach

PU Rejestracja_Klienta

PU Dodaj_Tytul_Ksiazki

PU Dodaj_Ksiazke

PU Rezerwacja

Page 10: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

1. Diagram aktywności dla PU Dodaj_ksiazke

10

DS 1 DS 2

Page 11: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

11

(DS1) Wstawianie nowej książki o podanym tytule – 1-y etappublic ArrayList<String> addBook(String data1[], String data2[])

9

3

1211

Page 12: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

12

//class FacadeList<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_812

Page 13: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

(DS2) Wstawianie nowej książki o podanym tytule – 2-i etappublic ArrayList<String> addBook(String data[])

13

Zofia Kruczkiewicz – Lab_INP002017_8 13

Page 14: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

14

//class TitleBookList<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;

}

Page 15: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

2. Diagram aktywności dla PU Rezerwacja

DS 2DS 1 DS 3, DS 5 DS 4

Page 16: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

16

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

Page 17: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

17

//class Facadepublic 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;

}

Identyfikacja torów na diagramie aktywności dla procesu Rezerwacja

Page 18: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

(DS2) Wyszukiwanie wolnej książki do rezerwacjipublic boolean searchFreeBook(LocalDate date)

17

Zofia Kruczkiewicz – Lab_INP002017_8

Page 19: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

19

//class TitleBookList<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;

}

Page 20: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

(DS3) Sprawdzanie przez książkę, czy ma wolny termin rezerwacji public boolean isFree(LocalDate date)

5

Zofia Kruczkiewicz – Lab_INP002017_8

Page 21: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

21

//class Bookprivate 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;

}

Page 22: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

22

(DS4) Wykonanie rezerwacji przez obiekt typu Client – 1-y etappublic void addReservation(Book book, LocalDate date)

Page 23: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

23

//class Clientprivate 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);

}

Page 24: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

24

(DS5) Wykonanie rezerwacji przez obiekt typu Book – 2-i etappublic void addReservation(Reservation reservation)

Page 25: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

25

private List<Reservation> reservations;public Book() {

reservations = new ArrayList();}

public void addReservation(Reservation reservation) {reservation.setBook(this);reservations.add(reservation);

}

// class Book

Page 26: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Dodatek – informacja tworzeniu diagramu aktywności

Page 27: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Informacja tworzeniu diagramu aktywności – część 1

Page 28: Laboratorium 8 Diagramy aktywnościzofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/... · Cel laboratoriów: Modelowanie procesówbiznesowych procesówrealizowanych przez tworzone

Informacja tworzeniu diagramu aktywności – część 2