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

Slides:



Advertisements
Similar presentations
Object Oriented 33 MCSD DORON AMIR
Advertisements

ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
קורס Java מתקדם Design Patterns
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
ActiveX Data Objects (ADO) מרצה : דורון אמיר MCSD Doron Amir
אקסס מבוא למערכות מידע.
היכרות עם אקסל 1. 2 נושאי המפגש היכרות עם אקסל – אלכסוני הקסם שימושים בהוראה: מחשבון סודי ופעילות לחנוכה שימושים נוספים: ממוצע.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
Graph Toolkit G-2 group Volansky Vered Hadas Yaron Ben Ezra Asaf Sharov Artyom.
תמחיר תהליך. מערכת תמחיר תהליך מערכת זו נועדה לספק מידע, כמו מערכת תמחיר הזמנה, על עלות המוצרים שיוצרו בתקופה ועל עלות המוצרים שבתהליך הייצור בסוף התקופה.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
RSS אוקטובר RSS – Really Simple Syndication תקן שמשמש להפצת תכנים ברשת – חדשות והודעות למעקב אחר עדכונים חדשים מוזן ב- XML - Extensible Markup Language.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מצגת פרויקט עקיבה אחרי גוף נע פרויקט סמסטריאלי סטודנטים : וסילי גנקין מראט אקולוב מנחה : אריה נחמני סמסטר אביב תשס " ז.
מטרה: בניית אתר אינטרנט לניהול הפרויקטים במעבדה לתוכנה: 1. ממשק לסטודנט: - הגשת הצעה לפרויקט (כולל בחירת בן זוג). - מעקב אחרי הפרויקטים המבוצעים ע"י הסטודנט.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. סביבת העבודה הפרוייקט יפותח בסביבת המערכת תהיה נגישה כ - plug in ל - Eclipse.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
שילוב SQL & Keywords ממילות-חיפוש לטפסי-חיפוש מוטי פורת.
ספריה וירטואלית בטכנולוגית J2EE הטכניון – מכון טכנולוגי לישראל הפקולטה להנדסת חשמל המעבדה למערכות תוכנה עזרן אייל טרבלסי אורדן סמסטר חורף תשס " ד מנחה.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
השוואה בין מערכות למסדי נתונים בשקפים אלו נשווה בין מסד הנתונים של רכבת ישראל למסד של רכבת גרמניה. בהרבה מקרים, המסד של מערכת הרכבות הישראלית לא יכול למצוא.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
פרויקט שנתי במערכות מידע /6
מגישים עמיחי פוקס לליב גפן מנחה ארי טוטפלד מערכת GPS קולית.
רישום חומרי למידה והסטנדרט הישראלי: ISRACORE יהודית בר אילן, אוניברסיטת בר-אילן אלי שמואלי, מיט"ל.
Galileo Navigation System Software Systems lab Software Systems lab סמסטר חורף תשס " ט סמסטר חורף תשס " ט מנחה: ולדימיר זדורנוב משה חיות מבצעים: גליה סימנובסקי.
עקרון ההכלה וההדחה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
Bus Project Yaniv Stern Rachel Stahl Instructor: Ari Todtfeld.
מגישות: עדי שנפיר נטליה פברמן, ויקטור קוליקוב מנחה:
A. Frank File Organization Introduction to Pile File.
מה היום ? - - חזרה מהירה. - קריאה וכתיבה לקבצים. - בניית תוכנית כתיבה low-level - בניית ערוץ גלובלי והדגמה מול חומרה - low-level DAQ, פולימורפיזם וטריגר.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מערכת הקבצים  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Copyright © 2003 Fair Isaac Corporation and Ness AT Corp. All rights reserved. מנוע חוקים עסקיים Blaze Advisor מציג: גיל ששון, מנהל המוצר
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים פולימורפיזם מתקדם ממשקים בג ' אווה 1.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
הקדמה Comparator Containers שימושיים Iterator Factory Pattern Trove הטמעה תכנות מתקדם - תרגול 3 Containers ב Java אליהו חלסצ'י תכנות מתקדם
Combo Box שלושה סוגים של Combo Box: Style 0 (default) - drop-down combo box המשתמש יכול להוסיף אפשרויות לרשימה או ללחוץ על החץ לבחירה מרשימת האפשרויות.
דוח אמצע סמסטר אביב תשס"ב 2002 שם הפרויקט :סביבת בדיקה ל PCIX PCIX environment מנחה : איתי אדר מגישים : שמיל ניסימוב גוילי יואב הטכניון.
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
האוניברסיטה העברית בירושלים
Tirgul 12 Trees 1.
Structured Query Language
Operators Overloading
מערכות בסיסי נתונים ספרות Database System Concepts/ Korth, Siberschatz
עבודה עם נתונים באמצעות ADO.NET
ניתוח ועיצוב אובייקטים תהליכים ממשק משתמש התאמת המודל לסביבת הפיתוח.
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מערכות מסדי נתונים 1. הקדמה.
חדוה מילוא, ספריה מכון ויצמן למדע
מסדי נתונים מסד נתונים הינו אוסף של טבלאות המכיל לפחות טבלה אחת. כל טבלה הינה אוסף של רשומות (לפחות רשומה בודדת) וכל רשומה מכילה אוסף של שדות ולבסוף.
תכנות מכוון עצמים ושפת JAVA
Shell Scripts בסביבת UNIX
מבוא למערכות מידע פרק 1.
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Presentation transcript:

Lab-Admin Business Logic אלעד וייס מירון הורודי

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

רקע מערכת Lab-Admin הקיימת מבוססת ממשק משתמש הפועל ישירות מול מסד הנתונים. היקף המערכת גדול: איתור תקלות מסורבל ומחייב חיפוש בכמות רבה של קוד. היקף המערכת גדול: איתור תקלות מסורבל ומחייב חיפוש בכמות רבה של קוד. שאילתות SQL בתוך קוד הממשק: מבנה מסד הנתונים חשוף למתכנת הממשק. שאילתות SQL בתוך קוד הממשק: מבנה מסד הנתונים חשוף למתכנת הממשק. Database GUI

מטרות הפרויקט הוספת מערך מחלקות חדש למערכת Lab Admin שיספק את המטרות הבאות: הוצאת הגישה למסד הנתונים מממשק המשתמש. הוצאת הגישה למסד הנתונים מממשק המשתמש. מודולאריות – קוד מסודר המפשט פעולות אחזקה ושדרוג. מודולאריות – קוד מסודר המפשט פעולות אחזקה ושדרוג. גישה למסד נתונים רק באמצעות Stored Procedures – הסתרה של מבנה מסד הנתונים ממתכנת הממשק. גישה למסד נתונים רק באמצעות Stored Procedures – הסתרה של מבנה מסד הנתונים ממתכנת הממשק. Database SPSPSPSP Business Logic GUI

תהליך התכנון

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

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

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

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

תפעול האובייקטים (המשך) רעיון הנבחר: איגוד כל מתודות התפעול לאובייקטי תפעול. כל מתודות הטעינה באובייקט אחד, מתודות השמירה באובייקט אחר, וכן הלאה. יתרונות: יתרונות: הפרדה ברורה בין אובייקטים שתפקידם להחזיק מידע לבין אובייקטים המתפעלים את הקשר בינם לבין מסד הנתונים. ריכוז כל הפעולות מאותו אופי במקום אחד. נוחות באחזקה. כל היתרונות הנובעים מתכנון שהוא Aspect Oriented. חסרונות: חסרונות: סרבול מסוים בהוספת אובייקט חדש. נדרש עדכון של מספר אובייקטים.

סקירת התכן

מחלקות ה-Business Logic ניתן לחלק את מחלקות ה-Business Logic לשלושה סוגים עיקריים: אובייקטים בדידים (Objects) – כל אובייקט מייצג ישות/תת-ישות נפרדת כגון סטודנט, מעבדה, הרשמה... אובייקטים בדידים (Objects) – כל אובייקט מייצג ישות/תת-ישות נפרדת כגון סטודנט, מעבדה, הרשמה... קבוצות (Collections) – מחלקות המאגדות בתוכן אובייקטים רבים מאותו סוג, ומאפשרות בין השאר מילוי נוח של אובייקטי ממשק המציגים רשימות. קבוצות (Collections) – מחלקות המאגדות בתוכן אובייקטים רבים מאותו סוג, ומאפשרות בין השאר מילוי נוח של אובייקטי ממשק המציגים רשימות. אובייקטי תפעול (BL) – אובייקטים אלה מאפשרים לכותב הממשק לבצע פעולות שונות על האובייקטים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים וכדומה. אובייקטי תפעול (BL) – אובייקטים אלה מאפשרים לכותב הממשק לבצע פעולות שונות על האובייקטים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים וכדומה.

אובייקטים בדידים (Objects) EmployeeTypeFacultyFinalCheckListItemKdamLAProjectDisplayLAStudentDisplayLAStudentReportLASupervisorDisplayLASupervisorReportLabLabStudentPersonProjectProjectProposalProjectStatusProjectTypeRegistrationSeasonSemesterStudentStatusSupervisor קידומת LA משמעותה LabAdmin, כלומר זהו אובייקט שמטרתו היחידה היא להציג מידע כללי במערכת LabAdmin, בדרך-כלל ייכנס לתוך Collection ויוצג בתוך datagrid או drop-down-list.

קבוצות אובייקטים (Collections) EmployeeTypeCollectionFacultyCollectionFinalCheckListCollectionKdamCollectionLabCollectionLAProjectDisplayCollectionLAStudentDisplayCollectionLAStudentReportCollectionLASupervisorDisplayCollectionLASupervisorReportCollectionProjectStatusCollectionProjectTypeCollectionRegistrationCollectionSemesterCollection

אובייקטי תפעול BL – Base class for all Objects classes BLCollection – Base class for all collections BLCommonProceduresDB DBLoader DBLoader DBSaver DBSaver DBDeleter DBDeleter

דוגמת מילוי ממשק טבלת סטודנטים 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(); }

דוגמת מילוי ממשק דף סטודנט – הדף מייצג הרשמת סטודנט בסמסטר. …. 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, ויוצרים יחדיו את מכלול המידע הנחוץ לממשק. שלב א' : טעינת המידע ממסד הנתונים לאובייקטים

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; tbS .Text = registration.Student. ; … 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; } שלב ב' : הצגת המידע מהאובייקטים בממשק המשתמש

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

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

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