Uvod u dijagram klasa Prof dr Angelina Njegu
- Slides: 89
Uvod u dijagram klasa Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum. ac. rs Beograd, 2019/2020.
Notacije modelovanja UML Class Diagrams • information structure • relationships between data items • modular structure for the system UML Package Diagrams Use Cases user’s view Lists functions visual overview of the main requirements (UML) Statecharts Overall architecture • responses to events Dependencies between components • dynamic behavior UML Sequence Diagrams • event ordering, reachability, deadlock, etc Activity diagrams individual scenario business processes; interactions between users and system concurrency and synchronization; Sequence of messages dependencies between tasks;
Šta je dijagram klasa? U softverskom inženjerstvu, dijagram klasa prema UML-u je tip dijagrama statičke strukture koji opisuje strukturu sistema prikazujuc i: klase sistema njihove atribute operacije (ili metode) i relacije među objektima.
Šta je klasa? Klasa opisuje grupu objekata sa sličnim osobinama (atributima), zajedničkim ponašanjima (operacijama/metodama), zajedničkim relacijama ka drugim objektima, jedinstveno značenje (“semantika”). Primer: Zaposleni ima ID, ime i prezime, odelenje. ID gde radi; jedan zaposleni se može zaposliti, dobiti otkaz ili može raditi na projektima. Zaposlen Atributi Zaposleni. ID Ime Prezime Odelenje. ID zaposliti() otkaz() pridruziti. Na. Projektu() Naziv Operacije
Atributi klasa Person name : String address : Address birthdate: Date / age : Date ssn : Id • Atributi su obično navedeni u formi: attribute. Name : Type • Izvedeni (derived)atribut je onaj koji se može izračunati iz drugih atributa, ali on u stvari ne postoji. • Na primer, čovekova starost može se izračunati od datuma njegovog rođenja. • Izvedeni atribut označen je sa '/': / age : Date
Operacije (metode) klasa Person name : String address : Address birthdate: Date ssn : Id eat sleep work play Operacije opisuju ponašanje klase i pojavljuju se u trec em delu klase.
Operacije (metode) klasa Phone. Book new. Entry (n : Name, a : Address, p : Phone. Number, d : Description) get. Phone ( n : Name, a : Address) : Phone. Number Možete odrediti operaciju navođenjem njenog potpisa: navođenje imena, tipa i difoltne vrednosti svih parametara, a u slučaju funkcija, tip povratka.
Klasa u izvornom kodu 8
Relacije U UML-u se povezivanje objekata modeluju kao relacije. Tipovi relacija u UML-u su: Asocija (jednostavna asocija) Agregacija Kompozicija Zavisnosti Generalizacije (ili nasleđivanje)
Relacija asocijacije Kada dve klase u modelu treba međusobno da komuniciraju/razmenjuju podatke, mora postojati veza između njih - ta veza se naziva asocija. Asocija predstavlja relaciju između dva ili više objekata različitih klasa Većina asocija je jednostavna (između tačno dve klase) i prikazuje se kao puna linija između klasa Naziv asocijacije treba da bude glagol Student Instructor
Obična asocija u izvornom kodu
Rekurzivna asocija Ponekad klasa ima asocijaciju na samu sebe - uglavnom označava da jedna instanca klase ima asocijaciju ka drugoj instanci iste klase
Primer rekurzivne asocijacije A Company has Employees. A single manager is responsible for up to 10 workers. 1 Employee manager Responsible for 13 0. . 10 worker
Rekurzivna asocija u izvornom kodu Klasa može da ima asocijaciju sa objektima istog tipa
Usmerena asocija (Directed Association) Router Domain. Name. Server Usmerena asocija označava da se komunikacija između dva objekta odvija samo u jednom pravcu. Strelica ukazuje na relaciju u jednom pravcu Klasa A 1 koristi i sadrži instancu klase B 1, ali B 1 ne sadrži instance klase A 1. U Javi bi to izgledalo: import B 1; public class A 1 { private B 1 b 1; public B 1 get. B 1() { return b 1; } }
Usmerena asocija u izvornom kodu
Dvostruke (dual) asocijacije member of 1. . * Student Team 1 president of 1. . *
Primer višestruke asocijacije Kada postoje višestruke asocijacije između dve klase, onda bi one trebalo da prikazuju različite uloge, a ne pozivanje različitih operacija
Multiplikativnost je broj objekata klase koji se može pridružiti jednom objektu druge klase Beleži se na oba kraja relacije Multiplikativnost odgovara na dva pitanja: Da li je asocija obavezna ili opciona? – ako je nula onda je takva asocija opciona Koji je minimalni, a koji maksimalni broj instanci koje mogu biti povezane ka drugoj instanci? Student 1. . * Instructor
Indikatori multiplikativnosti Exactly one Zero or more (unlimited) 1 * (0. . *) One or more 1. . * Zero or one (optional association) 0. . 1 Specified range 2. . 4 Multiple, disjoint ranges 2, 4. . 6, 8
Association - Multiplicity A cricket team has 11 players. One of them is the captain. A player can play only for one Team. The captain leads the team members. Team Member 10 Captain Player 1 21 Leads 1 Captain 11 0. . 1 member of 1 Team
Multiplikativnost u izvornom kodu Student * has Class Student { Course enrolls[4]; } Class Course { Student have[]; } 4 enrolls Course
Multiplikativnost u izvornom kodu
Modelovanje multiplikativnosti u kodu import java. util. Array. List; import java. util. List; import B 1; public class A 1 { private List b 1 List; public A 1() { super(); b 1 List = new Array. List(); } //. . . }
Šta su role (uloge)? Asocijacije sadrže neku ulogu (rolu) u relaciji između klasa Uloga ili rola se ispisuje na krajevima linije asocijacije Rola mora imati naziv (obično imenica) teaches Student 1. . * learns from 1. . * Instructor
Primer uloga
Uloga rola u izvornom kodu
Naziv asocija membership Student 1. . * Team
Pregled elemenata asocijacije Role name Staff. Member instructor 1. . * Multiplicity Association name instructs * Navigable (uni-directional) association Student Role * Courses Reflexive association pre requisites 0. . 3 29
Šta je agregacija? Specijalni oblik asocijacije koja modeluje relacije između celine i njenih delova Prazan romb je na strani celine ukazuje na relaciju agregacije Kada je klasa u relaciji agregacije sa samom sobom, to znači da jedna instanca klase se sastoji od drugih instanci iste klase Engine Car Transmission
Asocija ili agregacija? Ukoliko su dva objekta usko povezana relacijom celina-deo, onda je relacija agregacija Ukoliko modelujete prodavnice kola, onda relacija između kola i vrata treba da bude modelovana kao agregacija, jer kola uvek dolaze sa vratima, a vrata se nikad samostalno ne prodaju Ukoliko su dva objekta nezavisna onda je relacija asocija Ukoliko modelujete prodavnicu auto delova, onda relacija između kola i vrata može da bude asocija, jer onda telo kola može da se pojavi nezavisno od vrata
Agregacija u kodu U Javi kod za agregaciju se može predstaviti npr. vektorom (vector)
Kompozicija Relacija kompozicije je slična relaciji agregacije samo što se kod uništavanja objekta uništava i klasa koja je deo tog objekta
Kompozicija u kodu
Odnos relacija
Asocijativne klase (Association Classes) Registration model. Number serial. Number warrenty. Code Product Warranty
Asocijativna klasa
Interfejsi <<interface>> Control. Panel • Interfejs je imenovani skup operacija koji specificira ponašanje objekata bez prikazivanja njihove unutrašnje strukture. • Prikazuje se bilo sa jednim ili dva dela / odeljka i stereotipom <<interface>> iznad naziva interfejsa.
Servisi interfejsa <<interface>> Control. Panel get. Choices : Choice[] make. Choice (c : Choice) get. Selection : Selection • Interfejsi se ne mogu instancirati. • Nemaju svoje atribute • Interfejsi pokazuju usluge koje nudi povezana klasa.
Realizacija (Realization) Realizacija predstavlja implementaciju interfejsa od strane klase. Klasa A 3 implementira ili realizuje interfejs B 3 U Javi ova veza bi se prikazala: import B 3; public class A 3 implements B 3 { //. . . }
Interfejsi i relacije realizacije u kodu Java ima notaciju “implements” koja se prevodi u relaciju realizacije u UMLu
Generalizacija (Generalization) Person • Generalizacija povezuje nadklasu sa njenim potklasama. • Potklase nasleđuju atribute i metode nadklase. Student
Apstrakne metode (operacije) Shape draw() Circle Rectangle draw() 43
Apstrakne klase u izvornom kodu public abstract class Shape { public abstract draw(); //declare without implementation ……… } public class Circle { public draw(){ ……. } …. . } 44
Primer generalizacije B 2 je nadklasa, a A 2 je podklasa: Nasleđivanje u Javi: Customer import B 2; public class A 2 extends B 2 { //. . . } Regular Customer Loyalty Customer
Primer generalizacije modela i koda
Generalizacija u kodu
Zavisnost (Dependency) Zavisnost ukazuje na semantičku relaciju između dva ili više elemenata. Zavisnost od Course. Schedule do Course postoji jer se Course koristi i u operacijama dodavanja i uklanjanja Course. Schedule Course add(c : Course) remove(c : Course)
Zavisnost (Dependency) Najmanje formalna relacija koja ukazuje da klasa A zavisi od klase B Klasa A koristi klasu B, ali klasa A ne sadrži instancu klase B Promene na klasi B utiču na klasu A U Javi se zavisnost može predstaviti kao: import B; public class A { public void method 1(B b) { //. . . } public void method 2() { B temp. B = new B() //. . . } } import B; public class A { private B b; // pogrešno! public B get. B() { return b; } }
Enumeracija/Nabrajanje (Enumeration) <<enumeration>> Boolean false true • Enumeracija označava korisnički definisane tipove podataka koje se sastoje od uređene liste naziva vrednosti atributa.
Moguće relacije na dijagramu klasa 51
Primer dijagrama klasa
Poređenje modela podataka (ERD) i dijagrama klasa
Primer grupisanja klasa u pakete
Dijagram klasa prema slojevima arhitekture
Primer: Dijagram klase za šoping korpu
Poređenje logičkog i fizičkog dijagrama klasa Logički dijagram klasa
Fizički dijagram klasa
Class Diagram - Example Draw a class diagram for a information modeling system for a school. School has one or more Departments. Department offers one or more Subjects. A particular subject will be offered by only one department. Department has instructors and instructors can work for one or more departments. Student can enrol in upto 5 subjects in a School. Instructors can teach upto 3 subjects. The same subject can be taught by different instructors. Students can be enrolled in more than one school.
Class Diagram - Example School has one or more Departments. School n n 1 1. . * has Department offers one or more Subjects. A particular subject will be offered by only one department. Department 1 1. . * offers Subject
Class Diagram - Example Department has Instructors and instructors can work for one or more departments. Instructor 1. . * Department assigned to Student can enrol in upto 5 Subjects. Student * 0. . 5 takes Subject
Class Diagram - Example Instructors can teach up to 3 subjects. The same subject can be taught by different instructors. Instructor 1. . * 1. . 3 Subjects teaches 62
Class Diagram - Example Students can be enrolled in more than one school. Student * 1. . * School member 63
Class Diagram Example has School Department 1 1. . * 1 1…* offeres assigned. To member Student 1. . * * attends * Subject 1. . 5 teaches 1. . 3 1. . * Instructor
Objektni dijagram je primarno alat za testiranje i verifikovanje tačnosti dijagrama klasa UML notacija objekta:
Poređenje objektnog dijagrama i dijagrama klasa
Primena objektnog dijagrama za testiranje dijagrama klasa Svaka isporuka može da ima nula ili više Proizvoda dobavljača i nula ili više kastimiziranih proizvoda (proizvoda po narudžbi) Svaki tip proizvoda može, a i ne mora biti isporučen
Primena objektnog dijagrama za testiranje dijagrama klasa Kastimizovan proizvod je sastavljen od proizvoda dobavljača. Proizvodi dobavljača 28, 38 i 72 kreiraju custom proizvod 425
Primena objektnog dijagrama za testiranje dijagrama klasa Koji je najmanji broj objekata koji čini Custom proizvod? Custom proizvod mora da se sastoji od najmanje dva proizvoda dobavljača, inače ga drugačije nećemo moći razdvojiti
Primena objektnog dijagrama za testiranje dijagrama klasa Da li postoji evidencija o tome da Custom proizvod može da bude ugrađen u drugi Custom proizvod? Mora da se podrži relacija agregacije između jednog i drugog custom proizvoda
Primena objektnog dijagrama za testiranje dijagrama klasa Da li postoje zajedničke karakteristike između objekata koji se koriste za konfigurisanje custom proizvoda? Custom proizvod i vendor proizvod mogu biti delovi custom prozvoda, tako da se generalizuju u proizvode što objašnjava da bilo koji tip proizvoda može da učestvuje u montaži kastimizovanog proizvoda
Vežbanje dijagrama klasa
Vežba 1: Kreirati dijagram klasa za aplikaciju „Upis na kurs stranih jezika“ Kreirati dijagram klasa za aplikaciju "Upis na kurs stranih jezika": Klijenti koji se upisuju na kurseve mogu biti Fizička ili Pravna lica. Zajednički atributi su: Klijent. ID, Adresa, Telefon i email. Pravna lica imaju atribute: Naziv i PIB. Fizička lica imaju atribute: Ime, prezime i JMBG. Kurs ima atribute: Kurs. ID i Opis. Metod je upis. Na. Kurs(). Usled velikog broja polaznika kursa, isti kurs može da sadrži više grupa. Grupa ima atribute: Br. Grupe. ID, Ukupan. Broj. Polaznika. Raspored. Klijenta sadrži atribute: Termin. Kursa i evidencija. Prisustva. Klijent može da ima minimum jedan, a maksimalno više rasporeda. Jedan kurs može da ima više rasporeda. Jezik sadrži atribute Jezik. ID i Naziv. Jezika. Jedan jezik može da se drži na više kurseva. Potrebno je adekvatno povezati klase i dopuniti klase sa stranim ključevima! Potrebno je za svaku relaciju prikazati odgovarajući tip veze tj. multiplikativnost.
Rešenje vežbe 1
Vežba 2: Kreirati dijagram klasa za aplikaciju "e. Knjižara" Klijenti ima atribute: Klijent. ID, Username, Password, email. Klase Porudžbina i Faktura sadrže sledeće zajedničke atribute: Br. Dok. ID, Datum, Iznos i Tip. Dokumenta, kao i sve informacije o stavkama knjiga: Poručena. Količina i Popust. e-Knjige sadrže sledeće atribute i metode: e. Knjiga. ID, Naziv, Cena, Stanje. Na. Zalihama, get. Stanje(e-knjiga. ID) i set. Cena(). Izdavač sadrži atribute: IzdavačID i Naziv. Izdavača. Potrebno je adekvatno povezati klase i dopuniti klase sa stranim ključevima! Potrebno je za svaku relaciju prikazati odgovarajući tip veze tj. multiplikativnost.
Rešenje vežbe 2
Vežba 3: Kreirati dijagram klasa za sistem elektronskog glasanja Građanin ima sledeće atribute: Građanin. ID, Korisničko. Ime, Šifra. Metode su: glasaj() i pregled. Rezultata(). Klasa Glasanje ima sledeće atribute i metode: Rbr. Glasa. ID, Vreme. Glasanja, pošalji. Glas(), otkaži. Glasanje(). Građanin može da glasa minimum 0 (može da ne glasa), a maksimalno samo jednom. Kandidat ima sledeće atribute: Kandidat. ID, Ime i Prezime. Kandidat može biti biran više puta. Politička. Partija ima sledeće atribute: Partija. ID, Naziv i Adresa.
Rešenje vežbe 3:
Vežba 4: Kreirati dijagram klasa za aplikaciju "Izdavanje recepta" Klasa Recept ima atribute Br. Recepta i Datum, kao i sve podatke o stavkama leka: rb. Stavke, količina i komentar. Lek ima atribute Lek. ID i Naziv. Leka. Recept se izdaje od strane jednog lekara. Klasa Lekar sadrži atribute Lekar. ID, ime, prezime, titula, tip. Lekara. Lekar može biti lekar specijalista ili lekar opšte prakse. Pacijent ima atribute Pacijent. ID, Ime, Prezime i Adresa i metod Izbor. Lekara(). Pacijent može da ima više od jednog Kartona. Karton. Pacijenta sadrži atribute Br. Kartona i Datum. Na kartonu pacijenta se vidi i izabrani lekar opšte prakse. Na karton pacijenta može da se izda više recepta.
Rešenje vežbe 4:
Vežba 5: Kreirati dijagram klasa za aplikaciju „Organizacija događaja“ Klasa Događaj ima atribute: Događaj. ID, Naziv, Datum. Početka, Datum. Završetka. Klasa Izlagač ima atribute: IzlagačID, Ime, Prezime, Titula, email, kratka. Bio. Za svakog izlagača se pamte i informacije o instituciji iz koje dolazi. Klasa Institucija ima atribute: Institucija. ID, Naziv, Adresa, Tip. Insitucije. Institucija može biti Kompanija ili Akademska ustanova. Za klasu Kompanija, dodatno se još pamti PIB broj, dok za Akademsku ustanovu se još dodatno pamti vrsta. Ustanove. Klasa Tema. Predavanja sadrži atribute: Tema. ID, Naziv. Svaka tema pripada određenoj oblasti, te stoga klasa Oblast sadrži atribute: Oblast. ID, Naziv. Oblasti. Izlagač može predavati više tema, jednu temu može predavati više izlagača. U nastaloj asocijativnoj klasi Izlaganja. Predavača pamte se još dodatni atributi: Datum. Izlaganja, Vreme. Od, Vreme. Do, Br. Sale. Klasa Sala sadrži atribute: Br. Sale i Naziv. Sale. Na jednom događaju ima više Izlaganja. Predavača. Jedno konkretno Izlaganje. Predavača je vezano samo za jedan konkretan događaj.
Rešenje vežbe 5
Lab 1: Draw the class diagram for University library management system Member of the University Library can be Faculty member or Student member Common attributes are: Member. ID, Name, Surname, Address, Type of Membership (active, frozen, closed), date of membership. Common operations are: update. Type(), request. For. Book(), return. Book(). For Faculty member, the attribute is Title, and operation is check. Out. Book(). For Student member, the attribute is Index. No, and operation is check. Out. Book() and return. Book(). Member can borrow min 0 or max 3 books, and librarian lent the books to the members. During this transaction the attributes that should be stored are: Date. Borrowed, Loan. Period. Librarian has the following attributes: Librarian. ID, Name, Surname and Position. The operation is loan. Book(). One specific book (with unique ISBN issued, Name, Publisher. Date, Format, Language, Num. Of. Pages), can have more copies that are differentiated by barcode, and they have RFIDtag.
Class diagram of Library Management System
Lab 2: Draw the conceptual class diagram for the Hospital System Doctor can be Consultant. Doctor or Junior. Doctor The Team can contains min 2, and max more doctors (one doctor can be a part of one team) One team is headed by one consultant doctor Consutant Doctor is responsible for patient Patient is treated by doctor The team cares for patient Patient is cared by only one team. Patient is in the Ward. • Attributes of the Classes • Ward: The unique name of the ward, type (Whether the ward is for male or female), capacity (the maximum number of patients that can be on the ward at any one time), /The number of free beds on the ward • Patient: name of the patient, the sex (M or F) of the patient, date of birth, /The age of the patient • Team: the unique code of the team • Doctor: Abstract class that generalises a junior doctor and Consultant. Doctor.
Class diagram for the Hospital System
Lab 3: Draw the class diagram for online shopping cart Draw the class diagram for the following classes: Customer Shopping. Cart Item of purchase Product Credit. Card frequent. Shopper Add attributes, and operations for each class Connect classes
Class diagram – Shoping Cart
IBM Rational Software Architect http: //publib. boulder. ibm. com/infocenter/rsahelp/v 8/index. jsp? topic=/com. ibm. xtools. modeler. doc/topics/cclassd. html
- Dijagram klasa
- Unset message angelina
- Sarah and angelina grimke apush
- Donna angelina
- Donna angelina
- Angelina varone
- Angelina pillai
- Angelina daniel
- Angelina jolie shrek
- Angelina njegus
- Angelina fabbro
- Angelina lu
- Angelina valsova
- Angelina baiden amissah
- Angelina njegus
- Angelina njegus
- Aristides de sousa mendes angelina ribeiro
- Anna garcia timeline 2021
- Valmon unife
- Golden ratio dna
- Angelina jolie was born
- Angelina njegus
- Uvod u psihologiju
- Kompozicija epskog djela
- Uvod
- Twist na bazenu kratki sadržaj
- Uvod zaplet rasplet 4 razred
- Integrativni kontroling
- Geografija se deli na
- Uvod u statistiku
- Uvod u informacione sisteme fon
- Sretni princ prepricano
- Uvod u laboratorijski rad
- Pravila ponasanja u laboratoriji
- Strah u ulici lipa uvod zaplet vrhunac rasplet
- Trojica u trnju ppt
- Uvod u teoriju računarstva fer
- Dimenzije okvira za tehnicko crtanje
- Vrste ugljenikovih atoma
- Uvod u programski jezik r
- Epika obilježja
- Uvod u rehabilitaciju
- Pravila ponasanja u laboratoriji
- Uvod zapletka
- Uvod u finansije
- Iz velegradskog podzemlja ispit
- Projektni rad primer
- Charakteristika postavy sloh
- Uvod u baze podataka
- Uvod u prezentaciju
- Kako se pise maturski rad
- Kako napraviti dobru prezentaciju
- Rečenični i pravopisni znakovi 6 razred test
- Uvod u teoriju računarstva fer
- Gdje se čuvaju slikovni povijesni izvori
- Informacija i podatak
- Uvod u ekologiju
- Uvod krst pri savici
- Ja rozprávanie príbeh
- Uvod u rehabilitaciju
- Uvod jadro zapletka
- Uvod u ekologiju
- Vonkajšia kompozícia textu
- Kako napisati razlagalni spis
- Grčki tragičari
- Znanstveni rad primjer
- Vreme
- Porok definicija
- Uvod u razvojnu psihologiju
- Informatika sta je
- Oop programiranje
- Uvod u laboratorijski rad
- Uvod u hemiju
- Uvod u baze podataka
- Uvod u digitalnu i mikroracunarsku elektroniku
- Lirika 5 razred provjera znanja
- Uvod u knjigovodstvo
- Moždanik
- Uputstvo za seminarski rad
- Uvod u web dizajn
- Uvod u excel
- Mrezni hardver
- Pytania do przymiotnika
- Pocetni bilans stanja primer
- Wpływ detergentów na rośliny
- Zjawisko fizyczne a reakcja chemiczna klasa 7
- Serijalizacija java
- Elementy muzyki klasa 6
- Zaproszenie polski wzór
- Figurat gjeometrike