prvi domaĆi rad predmet: programski prevodioci · writexml messagebox + show textbox - text : text...

15
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

Upload: others

Post on 28-Jun-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

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

Page 2: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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

Page 3: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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.

Page 4: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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

Page 5: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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

Page 6: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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.

Page 7: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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…

Page 8: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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 ()

Page 9: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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

Page 10: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

9

OSNOVNI SCENARIO – kada je sve popunjeno i korisnik je izabrao opciju SNIMI.

Page 11: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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:

Page 12: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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:

Page 13: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

12

Page 14: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

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):

Page 15: PRVI DOMAĆI RAD Predmet: Programski prevodioci · WriteXML MessageBox + Show TextBox - Text : Text + Focus Text + Equals DataGridView - DataSource : int + Refresh _____ 8 5. Dijagram

__________________________________________________________

14

PRECIZNO REŠENJE (Korektno, jer je cilj dokumentovanje urađenog softvera):