lab-admin business logic

21
Lab-Admin Lab-Admin Business Logic Business Logic סססס סססס סססס סססס ססססס סססססס ססססס סססססס

Upload: astrid

Post on 09-Jan-2016

30 views

Category:

Documents


2 download

DESCRIPTION

Lab-Admin Business Logic. אלעד וייס מירון הורודי. ראשי פרקים. רקע – מצב קיים. מטרות הפרויקט. תהליך התכנון – רעיונות לפתרונות שונים. סקירת התכן. הצגת יכולות – כולל יכולות חדשות. רקע. מערכת Lab-Admin הקיימת מבוססת ממשק משתמש הפועל ישירות מול מסד הנתונים. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lab-Admin Business Logic

Lab-AdminLab-AdminBusiness LogicBusiness Logic

אלעד וייסאלעד וייס

מירון הורודימירון הורודי

Page 2: Lab-Admin Business Logic

ראשי פרקיםראשי פרקים

רקע – מצב קיים.רקע – מצב קיים.

מטרות הפרויקט.מטרות הפרויקט.

תהליך התכנון – רעיונות לפתרונות שונים.תהליך התכנון – רעיונות לפתרונות שונים.

סקירת התכן.סקירת התכן.

הצגת יכולות – כולל יכולות חדשותהצגת יכולות – כולל יכולות חדשות

Page 3: Lab-Admin Business Logic

רקערקע

הקיימת מבוססת ממשק הקיימת מבוססת ממשק Lab-AdminLab-Adminמערכת מערכת משתמש הפועל ישירות מול מסד הנתונים.משתמש הפועל ישירות מול מסד הנתונים.

היקף המערכת גדול: איתור תקלות מסורבל היקף המערכת גדול: איתור תקלות מסורבלומחייב חיפוש בכמות רבה של קוד.ומחייב חיפוש בכמות רבה של קוד.

שאילתות שאילתותSQLSQL בתוך קוד הממשק: מבנה מסד בתוך קוד הממשק: מבנה מסד הנתונים חשוף למתכנת הממשק.הנתונים חשוף למתכנת הממשק.

DatabaseDatabase GUIGUI

Page 4: Lab-Admin Business Logic

מטרות הפרויקטמטרות הפרויקט

Lab Labהוספת מערך מחלקות חדש למערכת הוספת מערך מחלקות חדש למערכת AdminAdmin:שיספק את המטרות הבאות: שיספק את המטרות הבאות

.הוצאת הגישה למסד הנתונים מממשק המשתמש.הוצאת הגישה למסד הנתונים מממשק המשתמש מודולאריות – קוד מסודר המפשט פעולות אחזקה מודולאריות – קוד מסודר המפשט פעולות אחזקה

ושדרוג.ושדרוג. גישה למסד נתונים רק באמצעות גישה למסד נתונים רק באמצעותStored Stored

ProceduresProcedures– – הסתרה של מבנה מסד הנתונים ממתכנת הממשק.הסתרה של מבנה מסד הנתונים ממתכנת הממשק.

DatabaseDatabaseSSPP

BusinessBusinessLogicLogic

GUIGUI

Page 5: Lab-Admin Business Logic

תהליך התכנוןתהליך התכנון

Page 6: Lab-Admin Business Logic

אופי האובייקטיםאופי האובייקטים

יצירת אובייקטים דומים במבנה לדפי יצירת אובייקטים דומים במבנה לדפי רעיון א':רעיון א':הממשק השונים.הממשק השונים.

:יתרון:יתרוןכל הפרטים למילוי דף ממשק באובייקט יחיד.כל הפרטים למילוי דף ממשק באובייקט יחיד.

:חיסרון:חיסרוןהבאת נתונים ממסד הנתונים מסורבלת וגורמת:הבאת נתונים ממסד הנתונים מסורבלת וגורמת:

.חוסר גמישות בשליטה על המידע הנלקח. שינוי ממשק בעייתי.חוסר גמישות בשליטה על המידע הנלקח. שינוי ממשק בעייתי.שאילתות ארוכות ומסורבלות. איתור תקלות קשה.שאילתות ארוכות ומסורבלות. איתור תקלות קשה

Page 7: Lab-Admin Business Logic

אופי האובייקטים )המשך(אופי האובייקטים )המשך(

יצירת אובייקט עבור כל טבלת מסד יצירת אובייקט עבור כל טבלת מסד רעיון ב':רעיון ב':נתונים אשר יש לה תפקיד במילוי מידע בממשק.נתונים אשר יש לה תפקיד במילוי מידע בממשק.

:יתרון:יתרוןמודולאריות רבה. ניתן להרכיב את המידע עבור דף ממשק מודולאריות רבה. ניתן להרכיב את המידע עבור דף ממשק

מתוך מגוון רחב של אובייקטים.מתוך מגוון רחב של אובייקטים.:חסרונות:חסרונות

המון אובייקטים אשר לחלקם תפקיד זניח במערכת. המון אובייקטים אשר לחלקם תפקיד זניח במערכת.

יותר מדי גישות למסד הנתונים. יותר מדי גישות למסד הנתונים.

Page 8: Lab-Admin Business Logic

אופי האובייקטים )המשך(אופי האובייקטים )המשך(

יצירת אובייקטים בעלי משמעות יצירת אובייקטים בעלי משמעות הרעיון הנבחר:הרעיון הנבחר:בעולם של מסד הנתונים )לפעמים מיותר מטבלה בעולם של מסד הנתונים )לפעמים מיותר מטבלה

אחת(, אשר ניתן להרכיב מהם תצורות שונות לפי צרכי אחת(, אשר ניתן להרכיב מהם תצורות שונות לפי צרכי הממשק )מעיין לגו(. בנוסף, השליטה על הממשק )מעיין לגו(. בנוסף, השליטה על

פתיחת/סגירת קשר למסד הנתונים הועברה לממשק.פתיחת/סגירת קשר למסד הנתונים הועברה לממשק.:יתרונות:יתרונות

מודולאריות מלאה, הבאת כל המידע שצריך ורק אותו.מודולאריות מלאה, הבאת כל המידע שצריך ורק אותו.

פתיחת קשר למסד הנתונים וסגירתו רק לאחר ביצוע כל הפעולות.פתיחת קשר למסד הנתונים וסגירתו רק לאחר ביצוע כל הפעולות.:חסרונות:חסרונות

הממשק אחראי על פתיחת/סגירת קשר – הוספת אחריות.הממשק אחראי על פתיחת/סגירת קשר – הוספת אחריות.

Page 9: Lab-Admin Business Logic

תפעול האובייקטיםתפעול האובייקטים

לכל אובייקט יהיה אוסף קבוע של מתודות לכל אובייקט יהיה אוסף קבוע של מתודות רעיון א':רעיון א':שכולל מתודת טעינה, מתודת שמירה ומתודת שכולל מתודת טעינה, מתודת שמירה ומתודת

מחיקה.מחיקה.:יתרון:יתרון

כל הפעולות הקשורות לאובייקט הן במקום אחד.כל הפעולות הקשורות לאובייקט הן במקום אחד.:חסרונות:חסרונות

פעולות בעלות אופי פעולה דומה מפוזרות בין הרבה פעולות בעלות אופי פעולה דומה מפוזרות בין הרבה אובייקטים שונים.אובייקטים שונים.

Page 10: Lab-Admin Business Logic

תפעול האובייקטים )המשך(תפעול האובייקטים )המשך(

איגוד כל מתודות התפעול איגוד כל מתודות התפעול רעיון הנבחר:רעיון הנבחר:לאובייקטי תפעול. כל מתודות הטעינה באובייקט לאובייקטי תפעול. כל מתודות הטעינה באובייקט אחד, מתודות השמירה באובייקט אחר, וכן הלאה.אחד, מתודות השמירה באובייקט אחר, וכן הלאה.

:יתרונות:יתרונותהפרדה ברורה בין אובייקטים שתפקידם להחזיק מידע לבין הפרדה ברורה בין אובייקטים שתפקידם להחזיק מידע לבין אובייקטים המתפעלים את הקשר בינם לבין מסד הנתונים.אובייקטים המתפעלים את הקשר בינם לבין מסד הנתונים.

ריכוז כל הפעולות מאותו אופי במקום אחד. נוחות באחזקה.ריכוז כל הפעולות מאותו אופי במקום אחד. נוחות באחזקה.

..Aspect OrientedAspect Orientedכל היתרונות הנובעים מתכנון שהוא כל היתרונות הנובעים מתכנון שהוא :חסרונות:חסרונות

סרבול מסוים בהוספת אובייקט חדש. נדרש עדכון של מספר סרבול מסוים בהוספת אובייקט חדש. נדרש עדכון של מספר אובייקטים.אובייקטים.

Page 11: Lab-Admin Business Logic

סקירת התכןסקירת התכן

Page 12: Lab-Admin Business Logic

Business LogicBusiness Logicמחלקות ה-מחלקות ה-

Business LogicBusiness Logicניתן לחלק את מחלקות ה-ניתן לחלק את מחלקות ה-לשלושה סוגים עיקריים:לשלושה סוגים עיקריים:

אובייקטים בדידים אובייקטים בדידים((ObjectsObjects)) כל אובייקט מייצג – כל אובייקט מייצג – ישות/תת-ישות נפרדת כגון סטודנט, מעבדה, ישות/תת-ישות נפרדת כגון סטודנט, מעבדה,

הרשמה...הרשמה... קבוצות קבוצות((CollectionsCollections)) מחלקות המאגדות בתוכן – מחלקות המאגדות בתוכן –

אובייקטים רבים מאותו סוג, ומאפשרות בין השאר אובייקטים רבים מאותו סוג, ומאפשרות בין השאר מילוי נוח של אובייקטי ממשק המציגים רשימות.מילוי נוח של אובייקטי ממשק המציגים רשימות.

אובייקטי תפעול אובייקטי תפעול((BLBL)) אובייקטים אלה מאפשרים – אובייקטים אלה מאפשרים – לכותב הממשק לבצע פעולות שונות על האובייקטים לכותב הממשק לבצע פעולות שונות על האובייקטים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים

וכדומה.וכדומה.

Page 13: Lab-Admin Business Logic

((ObjectsObjects))אובייקטים בדידים אובייקטים בדידים

EmployeeTypeEmployeeType

FacultyFaculty

FinalCheckListItemFinalCheckListItem

KdamKdam

LAProjectDisplayLAProjectDisplay

LAStudentDisplayLAStudentDisplay

LAStudentReportLAStudentReport

LASupervisorDisplayLASupervisorDisplay

LASupervisorReportLASupervisorReport

LabLab

LabStudentLabStudent

PersonPerson

ProjectProject

ProjectProposalProjectProposal

ProjectStatusProjectStatus

ProjectTypeProjectType

RegistrationRegistration

SeasonSeason

SemesterSemester

StudentStatusStudentStatus

SupervisorSupervisor

, כלומר זהו LabAdmin משמעותה LAקידומת אובייקט שמטרתו היחידה היא להציג מידע כללי

, בדרך-כלל ייכנס לתוך LabAdminבמערכת Collection ויוצג בתוך datagrid או drop-down-list.

Page 14: Lab-Admin Business Logic

((CollectionsCollections))קבוצות אובייקטים קבוצות אובייקטים

EmployeeTypeCollectionEmployeeTypeCollection

FacultyCollectionFacultyCollection

FinalCheckListCollectionFinalCheckListCollection

KdamCollectionKdamCollection

LabCollectionLabCollection

LAProjectDisplayCollectionLAProjectDisplayCollection

LAStudentDisplayCollectionLAStudentDisplayCollection

LAStudentReportCollectionLAStudentReportCollection

LASupervisorDisplayCollectionLASupervisorDisplayCollection

LASupervisorReportCollectionLASupervisorReportCollection

ProjectStatusCollectionProjectStatusCollection

ProjectTypeCollectionProjectTypeCollection

RegistrationCollectionRegistrationCollection

SemesterCollectionSemesterCollection

Page 15: Lab-Admin Business Logic

אובייקטי תפעולאובייקטי תפעול

BL – Base class for all Objects classesBL – Base class for all Objects classesBLCollection – Base class for all collectionsBLCollection – Base class for all collectionsBLCommonProceduresBLCommonProceduresDBDB DBLoaderDBLoader DBSaverDBSaver DBDeleterDBDeleter

Page 16: Lab-Admin Business Logic

דוגמת מילוי ממשקדוגמת מילוי ממשקטבלת סטודנטיםטבלת סטודנטים

private void bSearch_Click)object sender, System.EventArgs e({

LoadDataGrid)(;dgRegistrations.SelectedIndex = -1;

}

private void LoadDataGrid)({

dgRegistrations.CurrentPageIndex = currentPageIndex;LAStudentDisplayCollection collection = new

LAStudentDisplayCollection)this.ddlLab.SelectedValue,this.ddlSearchCriteria.SelectedValue,this.tbSearchValue.Text (;

DB.OpenConnection)(;DB.Loader.Load)collection(;DB.CloseConnection)(;collection.sort)eDirection.d_Increasing, this.ddlSortCriteria.SelectedValue(;dgRegistrations.DataSource = collection;dgRegistrations.DataBind)(;

}

Page 17: Lab-Admin Business Logic

דוגמת מילוי ממשקדוגמת מילוי ממשקדף סטודנט – הדף מייצג הרשמת סטודנט בסמסטר.דף סטודנט – הדף מייצג הרשמת סטודנט בסמסטר.

….Registration registration = new Registration)tbRegistrationID.Text(;DB.OpenConnection)(;DB.Loader.Load)registration(;DB.Loader.Load)registration.Student(;DB.Loader.Load)registration.Student.Kdams(;DB.Loader.Load)registration.Student.Faculty(;DB.Loader.Load)registration.Semester(;DB.Loader.Load)registration.ProjectType(;DB.Loader.Load)registration.Lab(;DB.Loader.Load)registration.Lab.Kdams(;DB.Loader.Load)registration.Status(;DB.CloseConnection)(; בדוגמה זו תשעה אובייקטים שונים נטענו ממסד

, ויוצרים יחדיו DB.Loaderהנתונים באמצעות ה-את מכלול המידע הנחוץ לממשק.

שלב א' : טעינת המידע ממסד הנתונים לאובייקטים

Page 18: Lab-Admin Business Logic

ddlSFaculty.SelectedValue = registration.Student.Faculty.Number;…tbSFirstNameHeb.Text = registration.Student.FirstNameHeb;tbSLastNameHeb.Text = registration.Student.LastNameHeb;tbSLoginRequest.Text = registration.Studenta.LoginRequest;tbSAcademicPoints.Text = registration.Student.AcademicPoints;tbSAddress.Text = registration.Student.Address;tbSAverage.Text = registration.Student.Average;tbSCellPhone.Text = registration.Student.CellPhone;tbSEmail.Text = registration.Student.Email;…tbGrade.Text = registration.Grade;ddlRPreference1.SelectedValue = registration.Request1;ddlRPreference2.SelectedValue = registration.Request2;ddlRPreference3.SelectedValue = registration.Request3;…foreach)Kdam k in registration.Student.Kdams( {

ListItem item = lbKdams.Items.FindByValue)k.Number(;if )item != null(

lbKdams.Items[lbKdams.Items.IndexOf)item(].Selected = true;}

שלב ב' : הצגת המידע מהאובייקטים בממשק המשתמש

Page 19: Lab-Admin Business Logic

+ID : string+TeudatZeut : string+FirstName : string+LasrName : string+Email : string+HomePhone : string+CellPhone : string+Address : string+GradeAverage : string+AcademicPoints : string+Faculty : Faculty+LoginRequest : string+PasswordRequest : string+StudentNotes : string+FirstNameEng : string+LastNameEng : string+IsSubmittedToAnam : bool+Kdams : Kdam

LabStudent

+ID : string+Student : LabStudent+Semester : Semester+Lab : Lab+Requests : string+StudentStatus : StudentStatus+Project : ProjectProposal

Registration

1

*

+ID : string+Season : Season+Year : short+StartDate : string+EndDate : string+Status : EStatus

Semester

**

+Name : string+Number : string+BudgetNumber : string+Kdams : Kdam+FinalCheckList : FinalCheckListItem

Lab

*

* 1*

+ID : string+Number : string+Name : string

ProjectType+Number : string+NameEng : string+NameHeb : string

Kdam

1*

+ID : string+Number : string+Name : string

Faculty

-End3

1

-End4

*

-End5

1

-End6

*

+NameHeb : string+NameEng : string

Season

+Name : string+Number : string

StudentStatus

-End7

1

-End8

*

-End11

1

-End12

*

+ID : string+Number : string+Name : string+Notes : string

FinalCheckListItem

1

*

1

*

Project

החלקים שטענוהחלקים שטענו

1

2

3

4

5

6

7

8

9

Page 20: Lab-Admin Business Logic

הצגת יכולותהצגת יכולות

הפרויקט מוגש עם כלי להערכת ביצועים הפרויקט מוגש עם כלי להערכת ביצועים הכולל ממשק משתמש צבעוני, נוח וקל הכולל ממשק משתמש צבעוני, נוח וקל

לתפעול המספק את כל הפונקציונאליות של לתפעול המספק את כל הפונקציונאליות של הקיימת, וקצת יותר... הקיימת, וקצת יותר...Lab AdminLab Adminמערכת מערכת

Page 21: Lab-Admin Business Logic

יכולות חדשותיכולות חדשות

תיקון תעודת זהות של מנחה.תיקון תעודת זהות של מנחה.

תיקון תעודת זהות של סטודנט.תיקון תעודת זהות של סטודנט.

מיון טבלאות לפי סמסטרים בסדר כרונולוגי )לא מיון טבלאות לפי סמסטרים בסדר כרונולוגי )לא לקסיקוגרפי(.לקסיקוגרפי(.

בחירת כל קורס טכניוני כקדם* לביצוע פרויקט במעבדה.בחירת כל קורס טכניוני כקדם* לביצוע פרויקט במעבדה.

אפשרות הצלבה בין קדמים נדרשים לקורסים שביצע אפשרות הצלבה בין קדמים נדרשים לקורסים שביצע סטודנט*.סטודנט*.

הרכבת מערך אובייקטים וטעינתם ללא הכרות עם מסד הרכבת מערך אובייקטים וטעינתם ללא הכרות עם מסד הנתונים.הנתונים.

* מתאפשר בזכות תמיכת מסד נתונים אודות לרמי ורומן.* מתאפשר בזכות תמיכת מסד נתונים אודות לרמי ורומן.