Wprowadzenie -...

Post on 02-Nov-2019

7 views 0 download

Transcript of Wprowadzenie -...

PIO. Autor -Zofia Kruczkiewicz 1

Wprowadzenie

Wstęp do inżynierii oprogramowania.

Cykle rozwoju oprogramowania

(część biznesowa aplikacji)

iteracyjno-rozwojowy cykl oprogramowania 1

Strona z materiałami do wykładu

Analiza systemów informatycznych

http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl

Instalacja aktualnej wersji NetBeans z modułem UML podana jest na stronie materiałów do wykładu

PIO. Autor -Zofia Kruczkiewicz 2

Laboratorium 1

Należy:

• wybrać projekt z podanej listy dostępnej za pomocąlinku podanego w w laboratorium 1

• sformułować wymagania funkcjonalne i niefunkcjonalne dla wybranego projektu jako zadanie domowe. Zadanie domowe będzie stanowić podstawędo zaprojektowania przypadków użycia na kolejnych laboratorium.

• Wykonać projekt UML i wykonać prosty program stanowiący realizację projektu zgodnie z materiałem zawartym na slajdach 5-54. Jest to ćwiczenie, które pozwala poznać narzędzie UML w środowisku NetBeans, wykorzystane w ramach zajęćlaboratoryjnych z przedmiotu Analiza i modelowanie systemów informatycznych

PIO. Autor -Zofia Kruczkiewicz 3

Java

język programowania

• obiektowo zorientowany

• wysokiego poziomu

platforma Javy

• z maszyny wirtualnej VM

• API (interfejs programowania aplikacji).

Rodzaje platform Javy: � Java Platform, Standard

Edition (Java SE) � Java Platform, Enterprise

Edition (Java EE) � Java Platform, Micro Edition

(Java ME) � Java Platform CARD

Rezultat

• niezaleŜność od platformy,

• duŜe moŜliwości,

• stabilność,

• łatwość rozwoju, • bezpieczeństwo

PIO. Autor -Zofia Kruczkiewicz 4

Warstwy aplikacji (Java EE)

PIO. Autor -Zofia Kruczkiewicz 5

1) Wykonanie projektu typu aplikacja Javy

PIO. Autor -Zofia Kruczkiewicz 6

PIO. Autor -Zofia Kruczkiewicz 7

PIO. Autor -Zofia Kruczkiewicz 8

PIO. Autor -Zofia Kruczkiewicz 9

2) Utworzenie projektu UML

PIO. Autor -Zofia Kruczkiewicz 10

Projekt typu UML należy utworzyć w tym samym katalogu, w którym znajduje się projekt typu Java Application

PIO. Autor -Zofia Kruczkiewicz 11

3) Utworzenie diagramu przypadków użycia (use cases)

PIO. Autor -Zofia Kruczkiewicz 12

Wykonanie diagramu przypadków użycia (use case diagram)

PIO. Autor -Zofia Kruczkiewicz 13

Otwieranie okna dokumentacji dla wybranego elementu diagramu – wykonanie opisu

biznesowego systemu oraz wymagań funkcjonalnych i niefunkcjonalnych

PIO. Autor -Zofia Kruczkiewicz 14

4) Otwieranie „niemodalnego” okna dokumentacji

PIO. Autor -Zofia Kruczkiewicz 15

PIO. Autor -Zofia Kruczkiewicz 16

PIO. Autor -Zofia Kruczkiewicz 17

Dodawanie nowego diagramu

PIO. Autor -Zofia Kruczkiewicz 18

5) Utworzenie diagramu klas

PIO. Autor -Zofia Kruczkiewicz 19

6) Wstawienie nowej klasy

PIO. Autor -Zofia Kruczkiewicz 20

7) Wstawienie nowego atrybutu - menu

PIO. Autor -Zofia Kruczkiewicz 21

8) Edycja atrybutu

PIO. Autor -Zofia Kruczkiewicz 22

9) Właściwości nowego atrybutu

PIO. Autor -Zofia Kruczkiewicz 23

10) Generowanie kodu klasy Tytul_ksiazki do projektu Katalog1

PIO. Autor -Zofia Kruczkiewicz 24

11)Wybór projektu Javy jako miejsca do generowania kodu

Uwaga: Należy zawsze zachować projekt typu UML (saveAll)

oraz skompilować (Build) projekt typu Java Application po

wygenerowaniu kodu o nazwie Katalog1

PIO. Autor -Zofia Kruczkiewicz 25

PIO. Autor -Zofia Kruczkiewicz 26

12) Wygenerowany kod

PIO. Autor -Zofia Kruczkiewicz 27

public class Tytul_ksiazki {private String wydawnictwo;private String ISBN;private String tytul;private String nazwisko;private String imie;public Tytul_ksiazki() { }public String getWydawnictwo() { return wydawnictwo; }public void setWydawnictwo(String val) { this.wydawnictwo = val; }public String getISBN() { return ISBN; }public void setISBN(String val) { this.ISBN = val; }public String getTytul() { return tytul; }public void setTytul(String val) { this.tytul = val; }public String getNazwisko() { return nazwisko; }public void setNazwisko(String val) { this.nazwisko = val; }public String getImie() { return imie; }public void setImie(String val) { this.imie = val; }

}

PIO. Autor -Zofia Kruczkiewicz 28

13) Wstawienie klasy fasadowej Uchwyt – będzie zastosowana do

obsługi wywołań przypadków użycia.

PIO. Autor -Zofia Kruczkiewicz 29

14) Wstawienie powiązania typu Association

PIO. Autor -Zofia Kruczkiewicz 30

15) Określenie liczności związku typu Association i– 1 do 1

PIO. Autor -Zofia Kruczkiewicz 31

PIO. Autor -Zofia Kruczkiewicz 32

16) Wstawianie nowego diagramu – menu

PIO. Autor -Zofia Kruczkiewicz 33

17) Wstawianie nowego diagramu typu sekwencji - wybór

PIO. Autor -Zofia Kruczkiewicz 34

Wstawianie linii życia - Life line (wybór typu obiektu z listy Representing Clasifier)

PIO. Autor -Zofia Kruczkiewicz 35

Wstawianie linii życia - Life line (wybór typu obiektu z listy Representing Clasifier)

PIO. Autor -Zofia Kruczkiewicz 36

PIO. Autor -Zofia Kruczkiewicz 37

18) Wstawienie synchronicznej wiadomości („Synchronous Message”) – metody

klasy Tytul_ksiazki

PIO. Autor -Zofia Kruczkiewicz 38

19) Nadawanie nazwy nowej metodzie w klasie Tytul_ksiazki (1)

PIO. Autor -Zofia Kruczkiewicz 39

Nadawanie nazwy nowej metodzie w klasie Tytul_ksiazki (2)

PIO. Autor -Zofia Kruczkiewicz 40

20) Wstawienie wiadomości typu „Synchronous Message” do jednej linii życia

reprezentującej wywołanie własnej metody przez linię życia – ciało metody toString

PIO. Autor -Zofia Kruczkiewicz 41

21) Kojarzenie wiadomości z konkretną metodą klasy Tytul_ksiazki

PIO. Autor -Zofia Kruczkiewicz 42

PIO. Autor -Zofia Kruczkiewicz 43

22) Pojawienie się nowej metody toString w klasie Tytul_ksiazki – z diagramu

sekwencji

PIO. Autor -Zofia Kruczkiewicz 44

23) Wygenerowanie nowej metody toString do kodu klasy Tytul_ksiazki (podobnie jak na slajdzie 23)

PIO. Autor -Zofia Kruczkiewicz 45

24) Wstawienie ręczne kodu nowej metody toString do klasy Tytul_ksiazki na

podstawie diagramu sekwencji tej metody

46

public class Tytul_ksiazki

{ private String wydawnictwo;private String ISBN;private String tytul;private String nazwisko;private String imie;

public Tytul_ksiazki() {} /** @ generated */

public String getWydawnictwo() { return wydawnictwo; } /** @ generated */

public void setWydawnictwo(String val) { wydawnictwo = val; }

public String getISBN() { return ISBN; } /** @ generated */

public void setISBN(String val) { ISBN = val; } /** @ generated */

public String getTytul() { return tytul; } /** @ generated */

public void setTytul(String val) { tytul = val; } /** @ generated */

public String getNazwisko() { return nazwisko; } /** @ generated */

public void setNazwisko(String val) { nazwisko = val; } /** @ generated */

public String getImie() { return imie; } /** @ generated */

public void setImie(String val) { imie = val; } /** @ generated */

public String toString() // your code here

{ String pom="Tytul: "+getTytul();pom+=" Autor:"+getNazwisko() +" "+getImie();

pom+=" ISBN: "+getISBN();pom+=" Wydawnictwo:"+getWydawnictwo();

return pom;}

}

PIO. Autor -Zofia Kruczkiewicz 47

25) Wstawienie diagramu sekwencji dla przypadku użycia dodaj_tytul: użycie wiadomości

typu („Asynchronous Message” oraz „Create Message” – konstruktor klasy Tytul_ksiazki).

Należy wykonac nową linię życia typu Tytul_ksiazki za pomocą „Create Message”

PIO. Autor -Zofia Kruczkiewicz 48

25 cd) Wstawienie diagramu sekwencji dla przypadku użycia dodaj_tytul: użycie wiadomości

typu („Asynchronous Message” oraz „Create Message” – konstruktor klasy Tytul_ksiazki)

PIO. Autor -Zofia Kruczkiewicz 49

26) Wygenerowanie nowej metody dodaj_tytul w klasie fasadowej

Uchwyt z diagramu sekwencji

PIO. Autor -Zofia Kruczkiewicz 50

27) Transformacja związku między klasą Uchwyt a klasą Tytul_ksiazki - Navigable

1. Należy lewym

klawiszem myszy

zaznaczyć relację

typu Association.

2. Należy ustawić

w okienku

Properties dla

właściwości

Participant równej

Tytul_ksiazki

właściwość

.avigable

PIO. Autor -Zofia Kruczkiewicz 51

28) Implementacja związku między klasą Uchwyt a klasą Tytul_ksiazki – w klasie Uchwyt

PIO. Autor -Zofia Kruczkiewicz 52

29) Generowanie kodu z poziomu wybranej klasy

PIO. Autor -Zofia Kruczkiewicz 53

PIO. Autor -Zofia Kruczkiewicz 54

30) Wygenerowanie kodu nowej metody dodaj_tytul w klasie Uchwyt

Referencja do obiektu klasy

Tytul_ksiazki reprezentuje

relację 1 do 1 po stronie klasy

Uchwyt, która jest „właścicielem”

relacji

PIO. Autor -Zofia Kruczkiewicz 55

31) Wstawienie ręczne kodu nowej metody dodaj_tytul na podstawie

diagramu sekwencji tej metody oraz metody main testującej

działanie wykonanego przypadku użycia

PIO. Autor -Zofia Kruczkiewicz 56

package katalog1;

public class Uchwyt {

private Tytul_ksiazki mTytul_ksiazki;

public Uchwyt() { }

public void dodaj_tytul(String a, String b, String c, String d, String e) // your code here

{ mTytul_ksiazki=new Tytul_ksiazki();

mTytul_ksiazki.setTytul(a);

mTytul_ksiazki.setNazwisko(b);

mTytul_ksiazki.setImie(c);

mTytul_ksiazki.setISBN(d);

mTytul_ksiazki.setWydawnictwo(e); }

public Tytul_ksiazki getTytul_ksiazki()

{ return mTytul_ksiazki; }

public void setTytul_ksiazki(Tytul_ksiazki val)

{ this.mTytul_ksiazki = val; }

public static void main(String t[]) // your code here

{ Uchwyt ap=new Uchwyt();

ap.dodaj_tytul("1","1","1","1","1");

String lan=ap.getTytul_ksiazki().toString();

System.out.println(lan); }

}

PIO. Autor -Zofia Kruczkiewicz 57

32) Uruchomienie programu

PIO. Autor -Zofia Kruczkiewicz 58

33) Wykonanie dokumentacji UML typu strona HTML

PIO. Autor -Zofia Kruczkiewicz 59

PIO. Autor -Zofia Kruczkiewicz 60