Информациони системи 1 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Uputstva za L2 koliko se sećam)
 
(Није приказано 16 међуизмена 4 корисника)
Ред 1: Ред 1:
{{tocright}}
{{Предмет
Информациони системи 1 је обавезан предмет из петог семестра.
| шифра    = 13С113ИС1, 13Е114ИС1
| семестар  = 5 (СИ), 8 (РТИ)
| статус    = обавезни (СИ), изборни (РТИ)
| страница  = [https://is1.etf.bg.ac.rs/ is1.etf.rs]
| одсек    = СИ, РТИ
| следећи  = Информациони системи 2
}}
'''Информациони системи 1''' је обавезан предмет из петог семестра на СИ.


== Странице ==
== Корисне везе ==
* [http://si3is1.etf.rs/ Страница предмета]
* [https://drive.google.com/open?id=11oSzQNNsC_pXCYTZirbMi4moyoi-TRqG ETF SI] (рокови)
** На ''Google'' можете наћи [https://rti.etf.bg.ac.rs/rti/temp/is1_proba/ тестирање изгледа нове странице предмета] јер је званична страница предмета јако лоше рангирана, али ово није званична страница предмета и на њој можете наћи неажурне информације.
* На ''Google'' можете наћи [https://rti.etf.bg.ac.rs/rti/temp/is1_proba/ тестирање изгледа нове странице предмета] јер је званична страница предмета јако лоше рангирана, али ово није званична страница предмета и на њој можете наћи неажурне информације.


== Корисне везе ==
== Настава ==
{{Материјали
На страници предмета доступни су директоријуми за недеље наставе, али нажалост у потпуном расулу. На предавањима се теме обрађују следећим редом:
| vuk = 11oSzQNNsC_pXCYTZirbMi4moyoi-TRqG
* Први блок:
}}
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/1/ Увод] (не долази на роковима)
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/2/ Методи функционалне декомпозиције (FD) и дијаграм токова података (DFD)] (ДТП не долази на роковима)
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/3/ Примери функционалне декомпозиције — библиотека и банка]
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/4/ Примери функционалне декомпозиције — авио компанија и компанија за превоз]
* Други блок:
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/10/ Објектно-оријентисано пројектовање] (слично као на [[Пројектовање софтвера|Пројектовању софтвера]], али једноставније)
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/11/ Објектно-релационо мапирање (ORM)] ('''може да дође на испиту уместо на другом колоквијуму''')
* Трећи блок:
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/7/ Редукција]
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/8/ Редуданса]
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/9/ Индекси]
* Следећи директоријуми на страници предмета се '''не предају више:'''
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/5/ Позициони модел ентитета и односа]
** [https://is1.etf.bg.ac.rs/Nastava/Predavanja/6/ Подмодели података]
* Доступан је и [https://is1.etf.bg.ac.rs/Nastava/Predavanja/12/ испит из 2011. године] који се не налази у директоријуму за испит.
На вежбама на предмету за први блок се обрађује област функционалне декомпозиције која долази на првом колоквијуму, док се у осталим блоковима обрађују JMS, JPA и REST које долазе на лабораторијским вежбама.


== Лабораторијске вежбе ==
== Лабораторијске вежбе ==
Од школске 2020/2021. године на предмету више не постоји лабораторијска вежба са функционалном декомпозицијом, већ само JMS (прва лабораторијска вежба), JPA и REST (друга лабораторијска вежба). Испод су излистане лабораторијске вежбе за које су сачуване поставке.
Од школске 2020/21. године на предмету више не постоји лабораторијска вежба са функционалном декомпозицијом, већ само JMS (прва лабораторијска вежба), JPA и REST (друга лабораторијска вежба). Прва лабораторијска вежба носи 8 бодова, а друга 12 бодова. Једну лабораторијску вежбу је могуће радити само једном, али тај један пут може да буде током семестра или у фебруару/јулу. Уколико се лабораторијске вежбе раде у фебруарском/јулском испитном року, могуће је сачувати бодове са испита у јануарском/јунском испитном року.
 
Након израде лабораторијске вежбе, оне се бране тако што асистент погледа да ли је добро направљен програм по захтевима и на лицу места даје бодове. За другу лабораторијску вежбу 2021. године долазили су аутоматски тестови, али је 2022. године то избачено.
 
Испод су излистане лабораторијске вежбе за које су сачуване поставке.
{{#dpl:
{{#dpl:
| titleregexp    = Информациони_системи_1/Лаб
| titleregexp    = Информациони системи 1/Лаб
| format          = ,\n* [[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦24¦-1}²]],,
| format          = ,\n* [[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦24¦-1}²]],,
| noresultsheader = Тренутно нема лабораториских вежби.
| noresultsheader = Тренутно нема лабораториских вежби.
| ordermethod    = title
}}
}}
'''Препоручено је да прочитате наредне водиче за поставку алата, са корисним саветима и идејама шта је могло да пође по злу уколико добијете неку грешку:'''
* [[Информациони системи 1/JMS|JMS]]
* [[Информациони системи 1/JPA и REST|JPA и REST]]


== Алати ==
== Пројекат ==
=== Л1 ===
Пројекат носи 20 бодова и брани се у прва два испитна рока. Слично као за лабораторијске вежбе може да се ради само једном и бодови са испита у јануару/јуну могу да се пренесу у фебруар/јул уколико се тада брани пројекат. Пројекат обухвата градиво JMS, JPA и REST које је до тада било рађено на вежбама (може да дође и помало градива које није било рађено на вежбама). На одбрани пројекта могу да дођу модификације.
На првој лабораторијској вежби ради се ''Java Message Service'' (JMS). Следећи поступак би требало да вас доведе до успешне поставке како бисте били спремни за покретање пројеката са странице предмета.
# Инсталирајте JDK (''Java Development Kit'') 8. [https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html Званични сајт за инсталацију] тражи пријављивање пре преузимања, па можете преузети и са [https://studentetfbgacrs-my.sharepoint.com/:f:/g/personal/sa190595d_student_etf_bg_ac_rs/ErCx9XwbDm1Mii8hJtYSjn0BUP9_HL1PKQeoyry16kLseg следећег студентског драјва.] Препоручује се да осим ове верзије немате друге верзије JDK инсталиране на рачунару, или да вам (уколико вам то оперативни систем дозвољава) JDK 8 буде постављен као подразумевани (<code>java -version</code> команда би требало да помиње 1.8.0).
# [https://netbeans.apache.org/download/ Преузмите] ''Apache NetBeans'' са њиховог сајта. Можете преузети најновију или LTS (''Long Term Support'') верзију.
# При инсталирању ''NetBeans'', '''обавезно га инсталирајте у директоријуму без размака у путањи.''' На ''Windows'', ''NetBeans'' се подразумевано инсталира у <code>Program Files</code> директоријуму, па неке библиотеке неће моћи да се успешно увезу. Зато морате променити подразумевану путању инсталације на, на пример, <code>C:\NetBeans</code>. Путања до JDK не би требало да има ових проблема.
# Када укључите ''NetBeans'', десним кликом на одељак ''Services'' → ''Servers'' и бирањем опције ''Add Server'' можете додати ''GlassFish Server''. При додавању ће вас питати за верзију, где можете изабрати 5.1.0 или 5.0 (која има једну зачкољицу при бирању класе драјвера у трећем блоку предавања, видљиву на вежбама Стефана Тубића из 2020. године).
#* Уколико вам се овде деси грешка "''Not a valid GlassFish Server installation.''", погледајте да вам нису остале прошле инсталације ''GlassFish Server'', на пример у вашем корисничком директоријуму. Такође можете да пробате са другом верзијом ''GlassFish''.
# Уколико вам се деси да не можете да видите пројекте у ''Projects'' одељку, пробајте са [https://cdn.discordapp.com/attachments/725099951511568387/911019632436084766/unknown.png овим упутствима.]
# Уколико вам се деси да не може да се увезе пакет <code>javax.jms</code> или његови потпакети, у ''Properties'' тог пројекта, под одељком ''Libraries'', можете изабрати ''Add Library'' а затим изабрати ''Java EE 8 API Library''.
# Након што сте успешно отворили пројекат, у њему можете видети <code>@Resource</code> декларације са именима JMS ''Connection Factory'', ''Topic'' или ''Queue'' које треба да направите на ''GlassFish'' серверу. Сервер прво треба да покренете десним кликом на њега и бирањем опције ''Start'', конзола за управљање се налази на http://localhost:4848, а ресурсе можете правити под ''Resources'' → ''JMS Resources'' у левој траци.
#* Уколико сте правили више ''GlassFish'' сервера, порт можда није 4848. То можете да видите у ''DAS Port'' одељку када изаберете ''Properties'' на серверу након десног клика.
#* Не заборавите да поруке могу да остају у ''Queue'' и ''Topic'' и након гашења вашег програма. Понекад може да се деси да ваш програм чита из реда у који су послате поруке из неког од претходних пројеката или из тог истог пројекта али са неком грешком. У том случају најлакше је направити нови ''Queue'' или ''Topic'' и променити име ресурса у пројекту. Брисање и прављење ресурса са истим именом на серверу понекад може да не ради.
#* Понекад при прављењу ресурса ''GlassFish'' може да баци неочекивану серверску грешку. У том случају само се вратите на контролну таблу а ресурс би требало да остане ту.
# Уколико вам се деси грешка "''The module has not been deployed.''" праву грешку можете видети у ''GlassFish Server'' табу. Нису све грешке означене црвеном бојом.
#* Уколико тамо пише "''Specified library jar javaee-api-8.0.jar does not exist''", прочитајте корак 3.
Уколико покрећете нови пројекат, изаберите ''Java with Maven'' → ''Enterprise Application Client''.


=== Л2 ===
'''Препоручено је да прочитате [[Информациони системи 1/Пројекат|водич за пројекат]] током израде пројекта,''' као и горенаведене водиче за лабораторијске вежбе.
На другој лабораторијској вежби ради се JPA (''Java Persistence API'') и REST. Следећи поступак би требало да вас доведе до успешне поставке како бисте били спремни за покретање неког REST пројекта са странице предмета. Инструкције за прву лабораторијску вежбу су и даље потребне.
 
# Инсталирајте [https://dev.mysql.com/downloads/workbench/ ''MySQL Workbench''.] Алтернативно, покретање било каквог ''MySQL'' сервера на рачунару ће радити. На пример, можете инсталирати [https://www.apachefriends.org/ ''XAMPP''], покренути ''MySQL'' сервер на њему и користити ''phpMyAdmin'' као интерфејс.
== Испитни рокови ==
# Преузмите [https://dev.mysql.com/downloads/connector/j/ ''Connector/J''.] Када вас пита за верзију, изаберите ''Platform Independent'', и требало би да добијете један JAR фајл. Након тога, тај фајл можете убацити у директоријум са вашом инсталацијом ''GlassFish'' сервера, у директоријум <code>glassfish/lib</code>.
На страници предмета доступни су неки старији испитни рокови, али на консултацијама пред колоквијуме професор може урадити неки од старијих колоквијума који није са странице предмета (ти колоквијуми су такође излистани испод). На "ETF SI" драјву изнад можете пронаћи још неке рокове, а испод су излистани рокови скупљени на викију.
# Покрените ''NetBeans'' и ''GlassFish'' сервер. Уколико је био покренут пре него што сте убацили ''Connector/J'', зауставите га и поново покрените.
{{#dpl:
# Направите нови ''JDBC Connection Pool''. Параметри су следећи:
| titleregexp    = Информациони_системи_1/К\d
#* ''Resource Type:'' <code>javax.sql.DataSource</code>
| titleregexp    = Информациони_системи_1/Јануар
#* ''Database Driver Vendor:'' MySql
| titleregexp    = Информациони_системи_1/Фебруар
#** Уколико сте на ''GlassFish'' 5.0 и пређете преко текстуалног поља након ''Database Driver Vendor'', вредност ће бити избрисана.
| titleregexp    = Информациони_системи_1/Јун
#* ''Datasource Classname:'' <code>com.mysql.cj.jdbc.MysqlDataSource</code>
| titleregexp    = Информациони_системи_1/Јул
#* У додатним својствима конекције подесити:
| titleregexp    = Информациони_системи_1/Август
#** <code>password</code>: Лозинка вашег MySQL корисника, не сме да буде празна и можете је променити из ''MySQL Workbench'' → ''Admnistration'' → ''Users And Privileges'' (или користећи [https://dev.mysql.com/doc/refman/8.0/en/alter-user.html <code>ALTER USER</code>])
| titleregexp    = Информациони_системи_1/Септембар
#** <code>databaseName</code>: Назив ваше MySQL базе
| titleregexp    = Информациони_системи_1/Октобар
#** <code>serverName</code>: <code>localhost</code>
| format          = ,\n* [[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦24¦-1}²]],,
#** <code>user</code>: Назив вашег MySQL корисника, подразумевано постоји корисник са називом <code>root</code>.
| noresultsheader = Тренутно нема испитних рокова.
#** <code>portNumber</code>: Подразумевано 3306, али понекад ''MySQL Workbench'' може да постави на 3308.
}}
# Тестирати ''Connection Pool'' користећи ''Ping'' дугме.
# Направити ''JDBC Resource'' са новонаправљеним ''Connection Pool'' као конекцијом.
# Унутар ''NetBeans'' у ''Services'' → ''Databases'' кликните десним кликом на ''Drivers'' и изаберите ''New Driver''.
# Код ''Driver File(s)'' изаберите ''Add'' и онда изаберите ''Connector/J'' JAR фајл који сте убацили у <code>glassfish/lib</code> директоријум, па додајте драјвер.
# Требало би да вам постане доступна опција ''Register MySQL server'' при десном клику на ''Services'' → ''Databases''. Када то изаберете, можете додати параметре вашег ''MySQL'' сервера сличне онима које сте додавали за ''JDBC Connection Pool''.
#* Овај корак вам омогућава да изаберете ову конекцију када радите ''New'' → ''Entity Classes from Database''.
# У вашем <code>persistence.xml</code> фајлу, у ''Source'' табу, сада можете заменити садржај <code>&lt;jta-data-source></code> тага са називом вашег JDBC ресурса.
# Као додатан алат за тестирање ваше REST апликације можете преузети [https://postman.com/downloads/ ''Postman''.]
Уколико покрећете нови REST пројекат, изаберите ''Java with Maven'' → ''Web Application''. Обавезно гледајте ''GlassFish Server'' таб како бисте уочили грешке које се јављају током извршавања.


== Начин оцењивања ==
== Начин оцењивања ==
* <math>K_1, K_2</math> — Бодови са колоквијума (0-15). '''На сваки колоквијум је могуће изаћи само једном.'''
* <math>K_1, K_2</math> — Бодови са колоквијума (0-20). '''На сваки колоквијум је могуће изаћи само једном''' (у термину колоквијумске недеље или првом испитном року).
* <math>L_1</math> — Бодови са прве лабораторијске вежбе (0-8). '''Могуће је изаћи само једном.'''
* <math>PR</math> — Бодови са пројекта (0-30). '''Пројекат се може бранити само једном''' (крајем семестра или после другог испитног рока).
* <math>L_2</math> — Бодови са друге лабораторијске вежбе (0-12). '''Могуће је изаћи само једном.'''
* <math>I</math> — Бодови са испита (0-30). <!-- Не брините се, испит може да се ради више пута. -->
* <math>PR</math> — Бодови са пројекта (0-20). '''Пројекат се може бранити само једном.'''
* Укупни бодови: <math>P = K_1 + K_2 + PR + I</math>
* <math>I</math> — Бодови са испита (0-30)
* Укупни бодови: <math>P = K_1 + K_2 + L_1 + L_2 + PR + I</math>
{| class="wikitable"
{| class="wikitable"
! Бодови
! Бодови
Ред 80: Ред 84:
=== Рачунање ===
=== Рачунање ===
<div class="calculator">
<div class="calculator">
* <math>K_1</math>: <span data-variable="K1" data-max="15"></span>
* <math>K_1</math>: <span data-variable="K1" data-max="20"></span>
* <math>K_2</math>: <span data-variable="K2" data-max="15"></span>
* <math>K_2</math>: <span data-variable="K2" data-max="20"></span>
* <math>L_1</math>: <span data-variable="L1" data-max="8"></span>
* <math>PR</math>: <span data-variable="PR" data-max="30"></span>
* <math>L_2</math>: <span data-variable="L2" data-max="12"></span>
* <math>PR</math>: <span data-variable="PR" data-max="20"></span>
* <math>I</math>: <span data-variable="I" data-max="30"></span>
* <math>I</math>: <span data-variable="I" data-max="30"></span>
* <math>P</math>: <span data-variable="P" data-expression="K1 K2 L1 L2 PR I + + + + +"></span>
* <math>P</math>: <span data-variable="P" data-expression="K1 K2 PR I + + +"></span>
* Оцена: <span data-expression="P 10 / ceil 5 max 10 min"></span>
* Оцена: <span data-expression="P 10 / ceil 5 max 10 min"></span>
</div>
</div>
Ред 92: Ред 94:
== Потребна помоћ ==
== Потребна помоћ ==
* {{zadaci|postavke}}
* {{zadaci|postavke}}
[[Категорија:Пети семестар]]
[[Категорија:Обавезни предмети]]
[[Категорија:Информациони системи 1]]

Тренутна верзија на датум 25. фебруар 2026. у 03:57

Информациони системи 1 је обавезан предмет из петог семестра на СИ.

Корисне везе

Настава

На страници предмета доступни су директоријуми за недеље наставе, али нажалост у потпуном расулу. На предавањима се теме обрађују следећим редом:

На вежбама на предмету за први блок се обрађује област функционалне декомпозиције која долази на првом колоквијуму, док се у осталим блоковима обрађују JMS, JPA и REST које долазе на лабораторијским вежбама.

Лабораторијске вежбе

Од школске 2020/21. године на предмету више не постоји лабораторијска вежба са функционалном декомпозицијом, већ само JMS (прва лабораторијска вежба), JPA и REST (друга лабораторијска вежба). Прва лабораторијска вежба носи 8 бодова, а друга 12 бодова. Једну лабораторијску вежбу је могуће радити само једном, али тај један пут може да буде током семестра или у фебруару/јулу. Уколико се лабораторијске вежбе раде у фебруарском/јулском испитном року, могуће је сачувати бодове са испита у јануарском/јунском испитном року.

Након израде лабораторијске вежбе, оне се бране тако што асистент погледа да ли је добро направљен програм по захтевима и на лицу места даје бодове. За другу лабораторијску вежбу 2021. године долазили су аутоматски тестови, али је 2022. године то избачено.

Испод су излистане лабораторијске вежбе за које су сачуване поставке.

Препоручено је да прочитате наредне водиче за поставку алата, са корисним саветима и идејама шта је могло да пође по злу уколико добијете неку грешку:

Пројекат

Пројекат носи 20 бодова и брани се у прва два испитна рока. Слично као за лабораторијске вежбе може да се ради само једном и бодови са испита у јануару/јуну могу да се пренесу у фебруар/јул уколико се тада брани пројекат. Пројекат обухвата градиво JMS, JPA и REST које је до тада било рађено на вежбама (може да дође и помало градива које није било рађено на вежбама). На одбрани пројекта могу да дођу модификације.

Препоручено је да прочитате водич за пројекат током израде пројекта, као и горенаведене водиче за лабораторијске вежбе.

Испитни рокови

На страници предмета доступни су неки старији испитни рокови, али на консултацијама пред колоквијуме професор може урадити неки од старијих колоквијума који није са странице предмета (ти колоквијуми су такође излистани испод). На "ETF SI" драјву изнад можете пронаћи још неке рокове, а испод су излистани рокови скупљени на викију.

Начин оцењивања

  • — Бодови са колоквијума (0-20). На сваки колоквијум је могуће изаћи само једном (у термину колоквијумске недеље или првом испитном року).
  • — Бодови са пројекта (0-30). Пројекат се може бранити само једном (крајем семестра или после другог испитног рока).
  • — Бодови са испита (0-30).
  • Укупни бодови:
Бодови
Оцена 5 6 7 8 9 10

Рачунање

  • :
  • :
  • :
  • :
  • :
  • Оцена:

Потребна помоћ

  • На овом предмету фале поставке рокова. Помозите викију памћењем/преписивањем рокова и постављањем на вики.