|
|
pl:miw:2009:piw09_j2eecases [2009/06/21 01:01] piw09 |
pl:miw:2009:piw09_j2eecases [2019/06/27 15:50] |
====== CasesJ2EE ====== | |
===== Autorzy ===== | |
* Grzegorz Leśniakiewicz | |
* Tomasz Maruszak | |
| |
===== Opis projektu ===== | |
Projekt polega na wyszukaniu aplikacji napisanej w technologii j2ee, zrealizowanej zgodnie z modelem MVC oraz na zapisaniu logiki biznesowej w postaci reguł. | |
| |
===== Sprint - e-Protokół ===== | |
=== Wykorzystanie biznesowe === | |
Sprint jest to aplikacja stworzona na potrzeby wydziału EAIIE. Umożliwia obsługę rejestracji użytkowników, tworzenia newsów, zarządzania artykułami, zarządzania kalendarzem. Dodatkowo został stworzony moduł e-Protokół, umożliwiający automatyzację procesu obsługi protokołów w obrębie wydziału Eaiie. | |
E-protokół, obsługuje przepływ e-protokołów od momentu stworzenia, lub importu poprzez obsługę w dziekanacie, dziekanatach katedr, przez prowadzących zajęcia do momentu zamknięcia, wydruku i eksportu e-protokołu. | |
| |
Poniżej zaprezentowany jest przepływ biznesowy e-protokołu. | |
| |
{{:pl:miw:2009:eprotocol_gl_tm.jpg?550|}} | |
| |
Aplikacja obecnie jest wdrożona na środowisku developerskim. Główne funkcjonalności systemu zostaną wdrożone produkcyjnie w najbliższym czasie, natomiast wdrożenie produkcyjne modułu e-Protokołu przewidziane jest na wrzesień bieżącego roku. | |
| |
Obecny adres serwisu na środowisku developerskim (dostępny z wewnątrz sieci AGH, bez modułu e-Protokół) | |
* [[http://wwwdev.eaie.agh.edu.pl/main.seam]] | |
| |
Adres środowiska testowego (zawiera moduł e-Protokół) | |
* [[http://borg.ia.agh.edu.pl:8080/Sprint-web]] | |
| |
=== Technologia === | |
Aplikacja jest napisana w technologii j2ee. Model MVC został zaimplementowany za pomocą komponentów: | |
* Model - logika biznesowa, wykorzystane zostały sesyjne, stanowe beany | |
* View - warstwa prezentacji została stworzona w oparciu o technologie facelets | |
* Controller - za kontrole i obsługę działania aplikacji odpowiedzialny jest framework Seam | |
| |
Aplikacja jest uruchamiana na serwerze aplikacji JBoss 4.2.2. | |
| |
| |
=== Opisanie modułu e-Protokół w postaci reguł === | |
| |
Rule 1: | |
EProtocolEditForSecretariatBean.editEProtocol.rule1(EProtocolEditForSecretariatBean bean, Boolean isEditingEnabled) | |
if isEditingEnabled = true | |
then bean.cancelEditingEProtocol(). | |
| |
Rule 2: | |
EProtocolEditForSecretariatBean.enableEditingEProtocol.rule1(List assignedLecturersList, Boolean isEditingEnabled) | |
if assignedLecturersList.length > 0 | |
then isEditingEnabled is false. | |
| |
Rule 3: | |
EProtocolEditForSecretariatBean.enableEditingEProtocol.rule2(List assignedLecturersList, Boolean isEditingEnabled) | |
if assignedLecturersList.length = 0 | |
then isEditingEnabled is true. | |
| |
Rule 4: | |
EProtocolEditForSecretariatBean.chooseTheLecturer.rule1(EProtocol selectedEProtocol) | |
if selectedEProtocol.state = ACCEPTED | |
then selectedEProtocol.state is NEW. | |
| |
Rule 5: | |
EProtocolEditForSecretariatBean.prepareToDeleteTheAssigment.rule1(List lecturersMark, Boolean deletingEnabled) | |
if markToDelete.length > 0 | |
then deletingEnabled is false. | |
| |
Rule 6: | |
EProtocolEditForSecretariatBean.prepareToDeleteTheAssigment.rule2(List lecturersMark, Boolean deletingEnabled) | |
if markToDelete.length = 0 | |
then deletingEnabled is true. | |
| |
Rule 7: | |
EProtocolEditForSecretariatBean.deleteTheAssigment.rule2(List courseUserRels, EProtocol selectedEProtocol) | |
if courseUserRel.length = 0 and | |
if selectedEProtocol.state = ACCEPTED | |
then selectedEProtocol.state is NEW. | |
| |
Rule 8: | |
EProtocolEditForSecretariatBean.deleteTheAssigment.rule3(List courseUserRels, List courseUserRelsNotAccepted, EProtocol selectedEProtocol) | |
if courseUserRel.length > 0 and | |
if courseUserRelsNotAccepted.length = 0 and | |
if selectedEProtocol.state = NEW | |
then selectedEProtocol.state is ACCEPTED. | |
| |
Rule 9: | |
EProtocolEditForSecretariatBean.isChangingEnabled.rule1(EProtocol selectedEProtocol, Boolean changing) | |
if selectedEProtocol.state = CLOSED | |
then changing is true. | |
| |
Rule 10: | |
EProtocolEditForSecretariatBean.isChangingEnabled.rule2(EProtocol selectedEProtocol, Boolean changing) | |
if selectedEProtocol.state != CLOSED | |
then changing is false. | |
| |
Rule 11: | |
EProtocolEditForLecturerBean.acceptEProtocol.rule1(CourseUserRel rel, Boolean isAcceptedByLecturer) | |
if rel.state != ACCEPTED | |
then rel.state is ACCEPTED, isAcceptedByLecturer is true. | |
| |
Rule 12: | |
EProtocolEditForLecturerBean.acceptEProtocol.rule1(CourseUserRel rel, Boolean isAcceptedByLecturer) | |
if rel.state = ACCEPTED | |
then isAcceptedByLecturer is true. | |
| |
Rule 13: | |
EProtocolEditForLecturerBean.acceptEProtocol.rule2(List courseUserRels, EProtocol selectedEProtocol) | |
if courseUserRel = 0 | |
then selectedEProtocol.state is ACCEPTED. | |
| |
Rule 14: | |
EProtocolEditForLecturerBean.acceptEProtocol.rule3(List courseUserRels, List courseUserRelsNotAccepted, EProtocol selectedEProtocol) | |
if courseUserRel.length > 0 and | |
if courseUserRelsNotAccepted.length = 0 | |
then selectedEProtocol.state is ACCEPTED. | |
| |
Rule 15: | |
EProtocolEditForLecturerBean.unAcceptEProtocol.rule1(CourseUserRel rel, Boolean isAcceptedByLecturer, EProtocol selectedEProtocol) | |
if selectedEProtocol.state = ACCEPTED | |
then selectedEProtocol.state is NEW, rel.state is NEW, isAcceptedByLecturer is false. | |
| |
Rule 16: | |
EProtocolEditForLecturerBean.addMarkDateType.rule1(Mark addingMark, Utils util) | |
if addingMark.date.isSet() = false | |
then addingMark.date is util.getFormattedNowDate(). | |
| |
Rule 17: | |
EProtocolPrintBean.unlockEProtocol.rule1(EProtocol eProtocol, List courseUserRelsNotAccepted) | |
if eProtocol.state = CLOSED and | |
if courseUserRelsNotAccepted = 0 | |
then eProtocol.state is ACCEPTED. | |
| |
Rule 18: | |
EProtocolPrintBean.unlockEProtocol.rule2(EProtocol eProtocol, List courseUserRelsNotAccepted) | |
if eProtocol.state = CLOSED and | |
if courseUserRelsNotAccepted > 0 | |
then eProtocol.state is NEW. | |
| |
Rule 19: | |
EProtocolPrintBean.isClosed.rule1(EProtocol eProtocol, Boolean isClosed) | |
if eProtocol.state = CLOSED | |
then isClosed is true. | |
| |
Rule 20: | |
EProtocolPrintBean.isClosed.rule2(EProtocol eProtocol, Boolean isClosed) | |
if eProtocol.state != CLOSED | |
then isClosed is false. | |
| |
Rule 21: | |
EProtocolStudentListBean.prepareToDeleteStudent.rule1(List studentMarks, Boolean isDeleteEnabled) | |
if studentMarks.length > 0 | |
then isDeleteEnabled is false. | |
| |
Rule 22: | |
EProtocolStudentListBean.prepareToDeleteStudent.rule2(List studentMarks, Boolean isDeleteEnabled) | |
if studentMarks.length = 0 | |
then isDeleteEnabled is true. | |
| |
Rule 23: | |
EProtocolStudentListForCourseBean.prepareToDeleteStudent.rule1(List studentMarksForCourse, Boolean isDeleteEnabled) | |
if studentMarksForCourse.length > 0 | |
then isDeleteEnabled is false. | |
| |
Rule 24: | |
EProtocolStudentListForCourseBean.prepareToDeleteStudent.rule2(List studentMarksForCourse, Boolean isDeleteEnabled) | |
if studentMarksForCourse.length = 0 | |
then isDeleteEnabled is true. | |
| |
===== Podsumowanie ===== | |
| |