Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
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