Uvod u dijagram klasa Prof dr Angelina Njegu

  • Slides: 89
Download presentation
Uvod u dijagram klasa Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum.

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 •

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

Š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),

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

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 :

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

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

Klasa u izvornom kodu 8

Relacije U UML-u se povezivanje objekata modeluju kao relacije. Tipovi relacija u UML-u su:

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

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

Obična asocija u izvornom kodu

Rekurzivna asocija Ponekad klasa ima asocijaciju na samu sebe - uglavnom označava da jedna

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

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

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

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

Usmerena asocija u izvornom kodu

Dvostruke (dual) asocijacije member of 1. . * Student Team 1 president of 1.

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

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

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

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

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

Multiplikativnost u izvornom kodu Student * has Class Student { Course enrolls[4]; } Class Course { Student have[]; } 4 enrolls Course

Multiplikativnost u izvornom kodu

Multiplikativnost u izvornom kodu

Modelovanje multiplikativnosti u kodu import java. util. Array. List; import java. util. List; import

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

Š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

Primer uloga

Uloga rola u izvornom kodu

Uloga rola u izvornom kodu

Naziv asocija membership Student 1. . * Team

Naziv asocija membership Student 1. . * Team

Pregled elemenata asocijacije Role name Staff. Member instructor 1. . * Multiplicity Association name

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

Š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

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)

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

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

Kompozicija u kodu

Odnos relacija

Odnos relacija

Asocijativne klase (Association Classes) Registration model. Number serial. Number warrenty. Code Product Warranty

Asocijativne klase (Association Classes) Registration model. Number serial. Number warrenty. Code Product Warranty

Asocijativna klasa

Asocijativna klasa

Interfejsi <<interface>> Control. Panel • Interfejs je imenovani skup operacija koji specificira ponašanje objekata

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)

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

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

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

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 metode (operacije) Shape draw() Circle Rectangle draw() 43

Apstrakne klase u izvornom kodu public abstract class Shape { public abstract draw(); //declare

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:

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

Primer generalizacije modela i koda

Generalizacija u kodu

Generalizacija u kodu

Zavisnost (Dependency) Zavisnost ukazuje na semantičku relaciju između dva ili više elemenata. Zavisnost od

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

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

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

Moguće relacije na dijagramu klasa 51

Primer dijagrama klasa

Primer dijagrama klasa

Poređenje modela podataka (ERD) i dijagrama klasa

Poređenje modela podataka (ERD) i dijagrama klasa

Primer grupisanja klasa u pakete

Primer grupisanja klasa u pakete

Dijagram klasa prema slojevima arhitekture

Dijagram klasa prema slojevima arhitekture

Primer: Dijagram klase za šoping korpu

Primer: Dijagram klase za šoping korpu

Poređenje logičkog i fizičkog dijagrama klasa Logički dijagram klasa

Poređenje logičkog i fizičkog dijagrama klasa Logički dijagram klasa

Fizički dijagram klasa

Fizički dijagram klasa

Class Diagram - Example Draw a class diagram for a information modeling system for

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

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

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

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

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.

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

Objektni dijagram je primarno alat za testiranje i verifikovanje tačnosti dijagrama klasa UML notacija objekta:

Poređenje objektnog dijagrama i dijagrama klasa

Poređenje objektnog dijagrama i dijagrama klasa

Primena objektnog dijagrama za testiranje dijagrama klasa Svaka isporuka može da ima nula ili

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.

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

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

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

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žbanje dijagrama klasa

Vežba 1: Kreirati dijagram klasa za aplikaciju „Upis na kurs stranih jezika“ Kreirati dijagram

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

Rešenje vežbe 1

Vežba 2: Kreirati dijagram klasa za aplikaciju "e. Knjižara" Klijenti ima atribute: Klijent. ID,

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

Rešenje vežbe 2

Vežba 3: Kreirati dijagram klasa za sistem elektronskog glasanja Građanin ima sledeće atribute: Građanin.

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:

Rešenje vežbe 3:

Vežba 4: Kreirati dijagram klasa za aplikaciju "Izdavanje recepta" Klasa Recept ima atribute Br.

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:

Rešenje vežbe 4:

Vežba 5: Kreirati dijagram klasa za aplikaciju „Organizacija događaja“ Klasa Događaj ima atribute: Događaj.

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

Rešenje vežbe 5

Lab 1: Draw the class diagram for University library management system Member of the

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

Class diagram of Library Management System

Lab 2: Draw the conceptual class diagram for the Hospital System Doctor can be

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

Class diagram for the Hospital System

Lab 3: Draw the class diagram for online shopping cart Draw the class diagram

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

Class diagram – Shoping Cart

IBM Rational Software Architect http: //publib. boulder. ibm. com/infocenter/rsahelp/v 8/index. jsp? topic=/com. ibm. xtools.

IBM Rational Software Architect http: //publib. boulder. ibm. com/infocenter/rsahelp/v 8/index. jsp? topic=/com. ibm. xtools. modeler. doc/topics/cclassd. html