210 likes | 370 Views
Liburutegia. Erabilpen Kasuen Inplementazioa. Helburuak. 3 mailako inplementazio bat exekutatatzea eta ulertzea Aurkezpen maila Negozioaren logika maila Datuen maila Inportantea den kodea aztertzea Analisia eta Diseinua hobeto ulertzeko Adibide oso bat zuek edukitzea
E N D
Liburutegia Erabilpen Kasuen Inplementazioa
Helburuak • 3 mailako inplementazio bat exekutatatzea eta ulertzea • Aurkezpen maila • Negozioaren logika maila • Datuen maila • Inportantea den kodea aztertzea • Analisia eta Diseinua hobeto ulertzeko • Adibide oso bat zuek edukitzea • erabilpen kasuetatik inplementazioraino
Aplikazioa instalatu • Ekarri fitxategi hau: http://siul02.si.ehu.es/~alfredo/Liburutegia.zip • Deskonprimitu D:\ISO direktorioan • Exekutatu JDEVELOPER 9.i (jdevw) • Ireki “workspace”-a D:\ISO\Liburuaren.jws • Sortu ODBC datu iturburua • Izena: LiburutegiaDB • Aukeratu DBa: D:\ISO\Liburutegia\LiburutegiaDB.mdb
3 mailako software arkitektura 1) AURKEZPEN MAILA 2) NEGOZIOAREN LOGIKA MAILA Liburutegia.mdb ACCESS DATU-BASEA 3) DATUEN MAILA
3 mailako software arkitekturafisikoa MAIL BAKOITZA ORDENAGAILU BATEAN EGOTEA NAHI DUGU
Aplikazioa Exekutatu 3 mail logikoak MAKINA BEREAN 1 2 Run Configurazioa.java
Exekutatu Erabilpen Kasuak 3 Run Configurazioa.java
EKa: Liburu baten Kopia Mailegatu <<extends>> - Ez libre Bazkidea Liburua erreserbatu Liburu baten kopia mailegatu Gertaeren fluxua: • Bazkideak ematen du bere bazkidearen zenbakia eta mailegatu nahi duen liburuaren signatura • Sistemak egiaztatzen du liburu horren kopia libre dagoen • Kopia librerik ez badago: EXTENDS LIBURUA ERRESERBATU • Egiaztatzen da bazkidea ez duela gainditu onartutako liburuen gehienezko kopurua. Mailegu berria uneko datarekin erregistratzen da
Bazkidea EKa: Liburua Erreserbatu Liburua Erreserbatu Gertaeren fluxua: • Bazkideak ematen du bere bazkidearen zenbakia eta erreserbatu nahi duen liburuaren signatura • Sistemak egiaztatzen du liburua ez dagoela libre • Sistemak gordetzen du bazkideak liburu hori erreserbatu nahi duela Gertaeren fluxu alternatiboa: • Liburua libre badago, erreserba ez da gauzatzen
LIBURUA signatura, izenburua, egilea(k), editoriala, maileguPer, argitalpen-data,... erreserba 0..* erreserbatuta LIBURUAREN KOPIA 0..* BAZKIDE 0..12 0..1 Kopia Zbka egoera: {libre,mail,erres} nan, bazkideZb, izena, helbidea, telefonoa, maileguZbkMaximoa... mailegatuDu mailegatua 1 bereLiburua 0..* MAILEGU_LK 1..* bereKopia maileguData Exekutatu EKak zure konputagailuan dagoen DBarekin EREDUAREN DOMEINUA DATU-BASEAREN ESKEMA KONTZEPTUALA TAULA ERLAZIONALAK
Exekutatu EKak zure konputagailuan dagoen DBarekin 3 liburu (sign: 1, 2 eta 3) Bakoitzak 3 kopia ditu 10 bazkide (1etik 10era) Erreserba eta malegurik ez
Eraman DATUEN MAILA beste makina batera • Datu-basea ordenagailu honetan jarriko dut: • sipiXX • Bilatu makina hori sarean • Klik egin eskubiko botoiari • Egin “conectar a unidad de red” eta eman unitatearen izen bat • Berdefinitu DATU ITURBURUA • Aukeratu makina horretan dagoen liburutegia.mdb fitxategia
Erabili zuen ikaskideren batek duen negozioaren logika 3 mailako software arkitektura fisikoa
Exekutatu zuen ikaskideren batek duen NEGOZIOAREN LOGIKA 1: Jarri IP izena 2
Beste arkitektura bat: Web aplikazio bat 1) AURKEZPEN MAILA JSP, Web zerbitzari batean 2) NEGOZIOAREN LOGIKA MAILA JavaBean Liburutegia.mdb ACCESS DATU-BASEA 3) DATUEN MAILA
Beste arkitektura bat: Web aplikazio bat • Web zerbitzari honetan: http://sipx55.si.ehu.es:8080/alfredo/jsp/ • Exekutatu honako JSPa LibErreserbatu_EK.jsp ZORITXARREZ, teknologia hau ez dugu ikusiko irakasgai honetan
Inportantea den kodea: aurkezpenetik negozioaren logikara String sign = signatura.getText(); String bazk = bazkZbk.getText(); int kopiarenZbka = kudeatzailea.getKopiaLibre(sign); if (kopiarenZbka != kudeatzailea.EZ_DAGO_KOPIA_LIBRERIK) testuArea.setText("Ezin da erreserbatu. …."); else { boolean emaitza = kudeatzailea.erreserbaErregistratu(bazk, sign); if (emaitza) testuArea.setText("Liburua erreserbatu egin da\n"); else testuArea.setText("Ezin izan da ….");
Inportantea den kodea: negozioaren logikatik datu-basera public int getKopiaLibre(String signatura) throws RemoteException{ try{ rs=st.executeQuery("SELECT kopiaZbka FROM KOPIA WHERE signatura='"+signatura+"'"+ " AND egoera='libre'"); if (rs.next()) return rs.getInt("kopiaZbka"); else return KudeatzaileaInterfazea.EZ_DAGO_KOPIA_LIBRERIK; } catch (Exception e) {System.out.println("Errorea: "+e.toString());} return KudeatzaileaInterfazea.EZ_DAGO_KOPIA_LIBRERIK; }