Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
Univerzitet u Novom Sadu
Tehnički fakultet »MihajloPupin«
Zrenjanin
PRVI DOMAĆI RAD
Predmet: Programski prevodioci
Tema: Analiza aplikativnog softvera primenom UML
Predmetni nastavnik: Dr. Ljubica Kazi Primer realizovao: predmetni nastavnik
Zrenjanin, 2020. godina
__________________________________________________________
1
Sadržaj:
1. Zadatak
2. Dijagram slučajeva korišćenja
3. Dijagram komponenti 4. Dijagram klasa
5. Dijagram sekvenci za snimanje nove narudžbe
6. Specifikacija slučaja korišćenja za unos podataka
7. Dijagram aktivnosti za segment koda btnSnimi_Click
__________________________________________________________
2
1. ZADATAK
Dat je aplikativni softver kao potpuno funkcionalno resenje, koji se odnosi na evidentiranje
narucivanja robe.
Analizirati dati softver:
a. Kreirati UML dijagram slucajeva koriscenja, komponenti, dijagram klasa. NAPOMENA: Ovde
nije naglaseno da se radi deo samo za unos, tako da se radi za celu aplikaciju.
b. Kreirati UML dijagram sekvenci za snimanje nove narudzbe. c. Kreirati specifikaciju slucaja koriscenja za unos podataka i dijagram aktivnosti za segment koda
btnSnimi_Click.
__________________________________________________________
3
2. Dijagram slučajeva korišćenja
Prva varijanta koja nije dobra:
Snimanje i odustajanje su sastavni delovi celine koja se
odnosi na unos podataka.
Provera i ponistavanje su dodatne funkcije koje su sadrzane u
unosu i uvek se izvrsavaju, ali ne moraju biti ukljucene uvek,
pa se zato naglasavaju prikazom i odnosom include.
<<use>><<extend>>
<<extend>>
<<extend>>
<<include>>
<<include>>
<<include>>
<<extend>>
<<extend>>
Korisnik
<<IMA SPECIFIKACIJU>>
Unos podataka
Prikaz svih podataka tabelarno
Filtriranje podataka
Snimanje unetih podataka
Odustajanje od unetih podataka
Provera unetih podataka
Eksport podataka u XML
Ponistavanje unetih podataka
Tabelarni prikaz podataka
__________________________________________________________
4
Druga, bolja varijanta u skladu sa definicijom slucaja koriscenja. Naglasavamo u include opcije koje jesu bitne, ali se automatski uvek realizuju, nisu opcione. Zato sto zelimo da ih
naglasimo, stavljamo ih posebno sa include.
Napomene:
Usmerenje strelice ide kao citanje recenice:
1) X include Y (X sadrzi u sebi Y)
2) X extend Y (X prosiruje mogucnosti Y)
3) X use Y (X koristi rezultate rada Y)
NAPOMENA: Moguce
je imati 2 i l i vise veza
izmedju slucajeva
koriscenja.
NAPOMENA: Ovo je slucaj koriscenja koji predstavlja zaokruzenu celinu.
Prema definicij i slucaja koriscenja, to predstavlja funkciju koju pruza
korisniku, kao uslugu. Znaci, ukljucuje i snimanje i odustajanje, jer
predstavljaju sastavni deo celine posla.
<<extend>>
<<extend>><<extend>>
<<include>>
<<include>>
<<use>>
<<IMA SPECIFIKACIJU>>
Unos podataka KAO SLUCAJ KORISCENJA
Tabelarni prikaz podataka OPSTI
Filtriranje
Export XML
Izdvajanje svih
Korisnik
Provera podataka
Ponistavanje sadrzaja
INCLUDE - obavezno automatski u sebi sadrzi poziv druge
softverske funkcije
EXTEND - prosiruje osnovnu softversku funkciju i nije
obavezno da se izvrsi, samo ako korisnik zeli
__________________________________________________________
5
3. Dijagram komponenti
Napomene:
U okviru aplikacije u bin/debug folderu se nalazi exe fajl, dll biblioteka klasa i XML fajl
koji nastaje eksportom podataka. MDF je ekstenzija MS SQL Server fajla baze podataka i u SQL skriptu koji je dat u
okviru fajla OsnovnaBP.txt dat je naziv baze podataka u okviru create database SQL
naredbe, a to je PP2020_Narucivanje.
__________________________________________________________
6
4. Dijagram klasa Na ovom dijagramu su prikazane sve klase koje su primenjene u okviru desktop aplikacije, ali i u okviru pratećih biblioteka klasa. Vrste
veza između klasa su nasleđivanje (generalizacija), asocijacija (klasa kao atribut sadrži objekat druge klase) i zavisnost (dependency
– klasa koristi objekat druge klase u telu metode ili u parametru metode). Ovde nisu podešeni kardinaliteti i druge karakteristike veza.
Atributi i metode su date samo one koje se koriste u primeru. Nisu uneti parametri metoda, već su metode date samo
nazivom.Atributima uglavnom nisu definisani tipovi podataka, osim kada atributi predstavljaju zapravo objekte klasa.
System.Data biblioteka
Opsta System Data
biblioteka
Standardni elementi desktop aplikacije
Standardni elementi desktop aplikacije
Klase iz biblioteke SQLDBUtils
Klase iz standardne biblioteke SQLClient
SQLDBUtils biblioteka
Standardne graficke kontrole sa forme desktop aplikacije
Graficke kontrole standardne Windows forms biblioteke
veza tipa
generalizacije
je nasledjivanje
veza tipa asocijacije - jedna
klasa sadrzi kao svoj atribut
objekat druge klase
Dependency
vrsta veze -
koristi se u
pozivu
metode kao
parametar i l i
u telu
metoda
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..10..*
0..10..*
0..10..*
Application
+ Run ()
Form
frmNarucivanje
-
-
-
objSqlKonekcija
objSqlTabela
dsNarucivanje
: clsSQLKonekcija
: clsSQLTabela
: DataSet
+
+
+
+
+
+
+
+
+
+
+
frmNarucivanje ()
InicializeComponent ()
btnSnimi_Click ()
NapuniGrid ()
IsprazniKontrole ()
DajSveNarudzbe ()
DajNarudzbePremaRobi ()
frmNarucivanje_Load ()
btnFilter_Click ()
btnOdustani_Click ()
btnExportXML_Click ()
clsSQLKonekcija
+
+
new ()
OtvoriKonekciju ()
clsSQLTabela
+
+
+
new ()
IzvrsiAzuriranje ()
DajPodatke ()
DataSet
+
+
new ()
WriteXML ()
TextBox
- Text : Text
+ Focus ()
LabelGroupBox
DateTimePicker
ButtonDataGridView
- DataSource : int
+ Refresh ()
SQLClient biblioteka
SQLConnection
SQLDataAdapter
SQLCommand
SQLTransacion
0..1
0..*
0..1
0..*
Text
+ Equals ()
MessageBox
+ Show ()
Kontrole za unos
{abstract}
Dodatni bodovi – ako student odrede metodama odrede parametre, atributima tip podatka…
__________________________________________________________
7
Detaljniji dijagram sa suštinskim klasama koje se koriste u celoj aplikaciji:
NAPOMENA: Veza tipa
asocijacije znaci da objekat
jedne klase cini atribut
druge klase. Kada se postavi
na dijagramu to je
dovoljno da se smatra da ce
pril ikom generisanja
programskog koda na
osnovu dijagrama klasa da
se pojavi kao atribut u toj
klasi i zato nema potrebe da
se pisu kao atributi. Ipak,
ovde je stavljeno da su
atributi.
0..10..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
clsSQLKonekcija
+
+
new ()
OtvoriKonekciju ()
clsSQLTabela
+
+
+
new ()
IzvrsiAzuriranje ()
DajPodatke ()
frmNarucivanje
-
-
-
objSqlKonekcija
objSqlTabela
dsNarucivanje
: clsSQLKonekcija
: clsSQLTabela
: DataSet
+
+
+
+
+
+
+
+
+
+
+
frmNarucivanje ()
InicializeComponent ()
btnSnimi_Click ()
NapuniGrid ()
IsprazniKontrole ()
DajSveNarudzbe ()
DajNarudzbePremaRobi ()
frmNarucivanje_Load ()
btnFilter_Click ()
btnOdustani_Click ()
btnExportXML_Click ()
DataSet
+
+
new ()
WriteXML ()
MessageBox
+ Show ()
TextBox
- Text : Text
+ Focus ()
Text
+ Equals ()
DataGridView
- DataSource : int
+ Refresh ()
__________________________________________________________
8
5. Dijagram sekvenci za snimanje nove narudžbe
Мoguće je realizovati dijagram sekvenci za više alternativnih scenarija,u skladu sa action
steps iz specifikacije slucaja koriscenja. Alternativni scenariji su: NIJE SVE POPUNJENO,
KORISNIK JE IZABRAO taster ODUSTANI. Osnovni scenario – sve je popunjeno i korisnik je
izabrao dugme Snimi.
Alternativni SCENARIO – NIJE SVE POPUNJENO
__________________________________________________________
9
OSNOVNI SCENARIO – kada je sve popunjeno i korisnik je izabrao opciju SNIMI.
__________________________________________________________
10
6. Specifikacija slučaja korišćenja za unos podataka
PRVO REŠENJE – NIJE KOREKTNO
U odnosu na prvi dijagram slučajeva korišćenja, specifikacija za objekat UNOS PODATAKA:
__________________________________________________________
11
Ovo rešenje nije dobro, jer po definiciji slučaj korišćenja mora imati neko završno stanje,
tj. Treba da vodi nekom rezultatu. Prema definiciji, slučaj korišćenja se odnosi na jasno
definisanu funkcionalnost koju nudi I realizuje deo softvera. Unos podataka sadrži u sebi
alternativno nekoliko završnih stanja: nije sve popunjeno, snimanje ili prazne kontrole
zbog odustajanja.
DRUGO REŠENJE - KOREKTNO
U odnosu na drugi dijagram slucaja koriscenja, unos podataka se posmatra nedeljivo sa
jasno definisanim zavrsnim stanjima. Specifikacija sledi:
__________________________________________________________
12
__________________________________________________________
13
7. Dijagram aktivnosti za segment koda btnSnimi_Click
Apstraktno rešenje, koje ne bi bilo korektno, jer nije dovoljno precizno u odnosu na urađenu
aplikaciju (nije tako implementirano):
__________________________________________________________
14
PRECIZNO REŠENJE (Korektno, jer je cilj dokumentovanje urađenog softvera):