Clever DropBox

23
ההההה ההההה ההההההה ההההה הההההה ההההה ההההה ההההה הההההJDK1.7.0 89-211 םםםםם םםםםם2 םםםםם1 Clever DropBox Clever DropBox ההההה הההה'ה םםםםם םםםםם םםםםם םםםםם2 2 89-211 89-211 ההההה הההה1 ההה"ה2010-2011

description

Clever DropBox. תכנות מתקדם 2 89-211 תרגול מספר 1 תשע"א 2010-2011. אליהו חלסצ'י. בסמסטר א' הגשתם מטלות: שהגדירו את ה " איך צריך " ובהדרגה עברו לניסוח חופשי יותר שהגדיר רק את " מה צריך " החלוקה להגשות היתה קשיחה רמת החופשיות שלכם עלתה בהדרגה אך נותרה די קטנה עבדתם בצורת bottom up. הקדמה. - PowerPoint PPT Presentation

Transcript of Clever DropBox

Page 1: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

Clever DropBoxClever DropBox

אליהו חלסצ'י

89-21189-211 22תכנות מתקדם תכנות מתקדם 1תרגול מספר

2010-2011תשע"א

Page 2: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

הקדמה

בסמסטר א' הגשתם מטלות:" ובהדרגה איך צריךשהגדירו את ה "•

עברו לניסוח חופשי יותר שהגדיר רק את "מה צריך"

החלוקה להגשות היתה קשיחה•רמת החופשיות שלכם עלתה בהדרגה אך •

נותרה די קטנהbottom upעבדתם בצורת •

Page 3: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

הקדמה

מטלות הקורס:

פרויקט אחד גדול•

(milestonesהגשה בשני חלקים )•

עובדים על התרגיל בזוגות )לא שלשות(•

Top downגישת •

שימוש בכלים ובשיטות מהתעשייה•

צריךמה ועל designשליטה שלכם על ה •

Page 4: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

מטרות הפרויקטתיקייה משותפת המסנכרנת קבצים אוטומטית על פני

האינטרנט לכמה משתמשיםtop downעבודה בשיטת •high level designעבודה ע"פ •version controlעבודה כחלק מצוות תכנות ושימוש ב •

git או ב mercurialבונוס לשימוש ב –

ביצוע בדיקות קוד תוך כדי בניית הפרויקט•library \ plug-inשימוש ב •שימוש בכלים נוספים שנלמד במהלך הסמסטר•התמודדות עם הגדרות מתווספות לפרויקט•

Page 5: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכת

Clever DropBox:dropboxתיקייה מקומית מוגדרת כתיקיית •כאשר נעשה שם שינוי כלשהו לקבצים•

העתקה, מחיקה, העברה, שינוי שם, שינוי תוכן וכו'–

על המערכת לזהות את השינוי•ולעדכן את שאר המשתמשים המשתפים •

תיקייה זו בשינוי שקרהכך שלכל המשתמשים תהיה תיקייה זו •

מעודכנת ומסונכרנת

Page 6: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכת

המערכת מורכבת ממס' רכיבים•שרת•

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

למעשה מודיע להם שהם לא מסונכרנים•

להורדה של הקבציםweb interfaceהשרת מספק –

Page 7: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכתמחשב אישי )קליינט(•

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

•Event driven )פרטים בסוף המצגת(JDK 7דורש •

בכל שינוי הוא דואג שהשרת יהיה מסונכרן–יש לנהל את העדכונים של השרת בצורה חכמה•

...plug-inהגדרות משתמש, –

השירות אף מאזין לשרת למקרה של קבלת הודעה של –חוסר סנכרון

במקרה זה השירות יעדכן את התיקייה ע"פ הנתונים הקיימים •בשרת

יש לחשוב מהי הארכיטקטורה שעל פיה הקליינט יידע על שינויים•

Page 8: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכת??clever DropBox ב cleverאז מה •כדי למצוא קובץ לא נחפש אותו בתיקיות שבתוך •

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

למצוא קבצים מבוקשיםכל קובץ חדש מקבל תיוג אוטומטי )או מס' תיוגים(•plug-inהתיוג נקבע ע"פ מדיניות שאותחלה כ • כאלו3עליכם ליצור לפחות •

Page 9: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכת בפועל עליכם להחזיק טבלה הממפה תיוג •

לרשימת הקבצים שהתיוג הזה חל עליהםלמה לא להיפך?–

, זו תהיה hashingאת הטבלה ניתן לממש באמצעות •עבודה מיותרת

באמצעות מסד נתוניםבמקום, עליכם לעבוד מעל •ORM - Hibernateשכבת

כך, תוכלו למצוא בקלות חיתוכים כגון • ולא שייכים ל ”BIU“" ול workכל הקבצים השייכים ל "–

"2006"

Page 10: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

תיאור המערכתפרט לשירות עליכם ליצור:

•GUI המאפשר את חיפוש הקבצים ע"פ תיוגים DropBoxבתיקיית ה

•GUIקטן המהווה שלט רחוק עבור השירות המאפשר להפעיל, לעצור, להמשיך ולהפסיק את השירות–

נושאים למחשבה:•כיצד יודעים מתי תוכן של קובץ השתנה?–מה עשוי להתווסף לפרויקט?–

Page 11: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

מטלות להגשה ותשתית קוד:designמטלה ראשונה

high-level designעליכם להגיש תרשים • design לכל אחת מתתי המערכות, ע"פ umlתרשימי •

patternsעליכם לתאר אלו תוספות עתידיות צפיתם והיכן •

designהשארתם להם מקום ב כשהמימוש הפנימי רק interfacesתשתית הקוד – •

מדפיס למסך שביצע את המוטל עליוכשמריצים את הקוד צריך לראות בהדפסות למסך •

את אתחול המחלקות השונות שיצרתם

Page 12: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

מטלות להגשה

מטלה שנייה: יתפרסמו תוספותdesignלאחר הגשת ה •

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

השינויים כדי שלא תחכו עם כתיבת הקודעליכם לבצע בדיקות יחידה כדי לוודא •

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

בהמשך

Page 13: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

דגשים

לצורך אחידות בבדיקה ושימוש בכלים •scala או ב javaמסוימים התרגיל ייכתב ב

ניתן ואף רצוי להשתמש בכלים מוכנים• וניתן להשתמש GUI orientedהתוכנית אינה •

net beansבעורכים וויזואליים כגון העורך של swingל

ואף version controlעליכם להשתמש ב •להציג זאת בדו"ח הפרויקט

mercurial או gitבונוס ל –

Page 14: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

דגשיםעליכם לחלק את העבודה בצורה הוגנת•

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

תכננו מראש את העבודה על פני הסמסטר לתוך לוח •זמנים

תשאירו טווח ביטחון, ותשדלו לעמוד בזמנים •שקבעתם

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

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

Page 15: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

/https://jdk7.dev.java.netהורדה מתוך •

Latest JDK 7 binary snapshotsנבחר ב •

נבחר את הגרסא המתאימה למערכת •(bit 64ההפעלה שלנו )יש גרסאות גם ל

לדוגמא עבור לינוקס נוריד את•jdk-7-ea-bin-b85-linux-i586-04_mar_2010.bin

ועבור חלונות נוריד את•jdk-7-ea-bin-b85-windows-i586-04_mar_2010.exe

Page 16: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

התקנהwizardעבור חלונות ייפתח לנו •

עבור לינוקס נבצע את הצעדים הבאים:• במקום בו שמרנו את הקובץterminalנפתח את ה –sh jdk-7-ea-bin-b85-linux-i586-04_mar_2010.binנפעיל: –

לאישורyes ליציאה ו Qתנאי הרישיון יופיעו נלחץ –jdk1.7.0ההתקנה תיצור לנו את התיקייה –עדיף לפתוח לה את כל ההרשאות ע"י–

chmod 777 jdk1.7.0 –Rאפשר להעביר את התיקייה לאן שרוצים–

Page 17: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

, ונרצה eclipseניצור פרויקט חדש ב •1.7 ב JRE 1.6להחליף את ה

לכן נכנס למאפייני הפרויקט לתוך ה •build path ונבצע remove ל JRE1.6

Page 18: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

add libraryכעת נבחר •

בחלון שיפתח נבחר• JRE System Library

Page 19: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

Alternate JREנסמן את •

installed JREsונלחץ על •

Page 20: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

אם אין לנו את האופציה לבחור •add אז נלחץ על JRE 1.7.0את

next ונלחץ standard VMנבחר •

Page 21: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

directoryנלחץ על •

בלינוקס נבחר את מיקום התיקייה •jdk1.7.0שבחרנו קודם

בחלונות נבחר את•C:\Program Files\Java\jre7

Page 22: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

ונאשרjdk1.7.0כעת נסמן את •

נוודא שגם בחלון הקודם ה •alternate jre הוא jdk1.7.0

Page 23: Clever DropBox

הקדמהמטרות הפרויקטתיאור המערכתמטלות להגשה

דגשיםJDK1.7.0הוספת

– תרגול 2 תכנות מתקדם 89-2111

JDK1.7.0הוספת

JREכעת הפרויקט שלנו מוגדר לעבוד עם • ולכן אנו יכולים להשתמש בכל 1.7.0בגרסא

javaהכלים החדשים שנוספו \ השתפרו ב

המאפשרות לנו האזנה NIOבפרט בספריות •יעילה למערכת ההפעלה

מגיעה גם עם תיקייה בשם ubuntuהגרסא ל •sample ובה דוגמאות קוד מועילות ביותר

לפרויקט )ניתן גם למצוא אותן באינטרנט(