1 / 24

כלים שימושיים 1

כלים שימושיים 1. תכנות מתקדם 89-210 תרגול מספר 7 תשע"א 2010-2011. אליהו חלסצ'י. הקדמה. לא ניתן לבנות תוכנה שתקבל תוכנה כקלט, ובאופן אוטומטי תכריע לגבי נכונותה כלומר תבצע אימות תוכנה. (הבעיה אינה ניתנת להכרעה – תלמדו על זה בחישוביות) ביצע אימות ידני בא במחיר יקר מידי לרוב המערכות.

eden
Download Presentation

כלים שימושיים 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. כלים שימושיים 1 תכנות מתקדם 89-210תרגול מספר 7 תשע"א 2010-2011 אליהו חלסצ'י

  2. הקדמה

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

  4. בעבר היו בדיקות התוכנה תחום חובבני שבוצע על ידי התוכניתנים עצמם. היום זהו נדבך עיקרי בתהליך הפיתוח. שיטה נפוצה היא "פיתוח מונחה בדיקות", אפילו פעם היה טרנד ה Extreme Programming”" של קנט בק המבוססת על פיתוח מונחה הבדיקות. פיתוח מונחה בדיקות - (Test driven development ובקיצור TDD) זו מתודולוגית פיתוח בה בדיקת היחידה נכתבת עוד לפני הקוד אותו היא בודקת. בדיקות תוכנה

  5. סוגי הבדיקות: בדיקות יחידה (Unit)- בדיקות ברמת יחידת תוכנה (מודול). לרוב מבוצעות על ידי מפתח התוכנה. בדיקות אינטגרציה (Integration) – מבוצע לאחר בדיקות היחידה, נבדקים מס' מודולים יחד או התוכנית כולה. לרוב מבוצע ע"י צוות QA. בדיקות מערכת (System) - בדיקות המערכת בכללותה, בדרך כלל בראיית המשתמש. בדיקות קבלה (Acceptance) – בדיקות שנעשות ע"י הלקוח, או צוות שמדמה אותו. היום נלמד על כלי שעוזר לנו ברמת בדיקת היחידה. בדיקות תוכנה

  6. JUnit הוא כלי חופשי שיוצר תשתית פשוטה לכתיבה ולהרצה של בדיקות חוזרות ב java. רק באמצעות תשתית ראויה ניתן לקיים את שיטת פיתוח מונחה הבדיקות, ו JUnit מספק אותה. ניתן להורדה מהאתר http://junit.org/ אך הקוד כבר מובנה ב eclipse, באתר גם דוקומנטציה מלאה. JUnit

  7. publicclass IntCalc { publicint pls(int x,int y){ return x+y; } publicint sub(int x,int y){ return y-x; } publicint mul(int x,int y){ return x*y; } }

  8. import junit.framework.TestCase; publicclass IntCalcTest extends TestCase { publicvoid testPls() { fail("Not yet implemented"); } publicvoid testSub() { fail("Not yet implemented"); } publicvoid testMul() { fail("Not yet implemented"); } }

  9. import junit.framework.TestCase; publicclass IntCalcTest extends TestCase { private IntCalc ic; protectedvoid setUp(){ ic=new IntCalc(); } publicvoid testPls() { assertEquals(5, ic.pls(3, 2)); } publicvoid testSub() { assertEquals(8, ic.sub(16, 8)); assertEquals(-8, ic.sub(8, 16)); } publicvoid testMul() { assertEquals(2147483644, ic.mul(1073741822, 2)); }

  10. ANT זה כלי לביצוע build לפרויקט ה java שלנו. מתוך דברי המחבר: In theory, it is kind of like make, without make's wrinkles. all those tools have limitations that Ant's original author couldn't live with when developing software across multiple platforms. Makefiles are inherently evil as well. Anybody who has worked on them for any time has run into the dreaded tab problem. "Is my command not executing because I have a space in front of my tab?!!" said the original author of Ant way too many times. ANT

  11. ANT שונה מ builders אחרים בכך שלצורך הבנייה לא מממשים סקריפטים שתלויים במערכת ההפעלה, אלא מממשים מסמכי XML שבאמצעותם בונים את הפרויקט. את ANT ניתן להוריד מהאתר http://ant.apache.org/ כדאי גם להיכנס ל Manual כדי ללמוד עוד, התכנים מוסברים שם היטב. ANT

  12. התקנה על חלונות לא כזו פשוטה, בצעו את הדברים הבאים: הורידו את קובץ ה zip מהאתר, ותפתחו אותו לתוך תיקייה כגון “c:\ant”. קליק ימני על המחשב שלימאפיינים מתקדם  משתני סביבה. הוסיפו את המשתנים הבאים: PATHc:\ant\bin ANT_HOMEc:\ant JAVA_HOME תיקיית ה JDK שלכם, לדוגמאC:\Program Files\Java\jdk1.6.0_05 (תוודאו שיש שם קובץ בשם tools.jar) אשרו הכל. כנסו ל Shell (התחל  הפעלה cmd) גשו ל c:\ant\bin ורשמו ant, הפקודה תפעיל את ant.bat בדיקה: אם קיבלתםBuildfile: build.xml does not exist!Build failed זה בסדר גמור. בדיקה שנייה גשו לתיקייה אחרת ותכתבו ant –version, אתם אמורים לקבל את הגרסא הנוכחית של ant ANT

  13. hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } } דוגמא לבנייה רגילה build.xml <project default="compile"> <target name="compile"> <javac srcdir="." /> </target> </project>

  14. hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } } דוגמא לבניית Jar build.xml <project default="compile"> <target name="compile"> <javac srcdir="." /> </target> <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class"/> </target> </project>

  15. דוגמא לבניית Jar והרצתו build.xml <project default="compile"> <target name="compile"> <javac srcdir="." /> </target> <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class" /> </target> <target name="run" depends="jar"> <java classname="hello"classpath="hello.jar"fork="true"/> </target> </project> ללימוד נוסף, כגון שילוב JUnit ב ANT תבקרו באתר http://ideoplex.com/focus/javaממנו נלקחו הדוגמאות.

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

  17. נעילה של קובץ: כאשר 2 מתכנתים עובדים על אותו הקובץ הם עלולים לדרוס אחד את עבודתו של השני... שיטה אחת למנוע זאת היא ע"י נעילה של הקובץ רק למשתמש אחד. שיטה שנייה, היא לאפשר לשניהם לעבוד ולמזג אח"כ. ניהול גרסאות version control

  18. אוצר מילים: Repository : מאגר, המקום בו מאוחסנים הקבצים. Working copy : עותק מקומי של הקבצים מה repository עליו מתבצעת העבודה. Check-out : פעולת חילוץ הקבצים מה repository. Commit : כאשר השינויים ב working copy נכתבים ל repository. Conflict / Resolve : קונפליקט קיים כשיש סתירה באותו הקובץ, והאדם מתערב כדי לתקן (resolve) ניהול גרסאות version control

  19. תוכנה בקוד פתוח לניהול גירסאות. עובדת על מס' רב של פלטפורמות, במס' רב של גרסאות. נפוצה מאד בתעשייה. אנו נראה דוגמא ל subclipse שהוא plug-in של SVN לתוך סביבת ה eclipse. SVN

  20. HelpSoftware UpdatesFind and inatall… Search for new features ולחיצה על next אפשר לבחור מתוך הרשימה הקיימת, או להוסיף ע"י add remote site. לחצו עליו. תקלידו את שם האתר – במקרה שלנו Subclipse 1.4.5 תקלידו את כתובתו – במקרה שלנו http://subclipse.tigris.org/update_1.4.x אשרו, סמנו את חבילת ההתקה ברשימה, והמשיכו ללחוץ next עד לסיום. הוספת plug-in ל eclipse

  21. אחרי ההתקנה נוכל להוסיף view של SVN. מצד שמאל למעלה אנו שולטים על ה view הנוכחי. הוספת plug-in ל eclipse

  22. לצורך הדוגמא אנו נשתמש בשירות של Google המאפשר ליצור שרת SVN לכל מי שרשום. וודאו שאתם מחוברים, למשל ל gmail, וכנסו לאתר http://code.google.com/hosting/ תבחרו create new project ומלאו את הטופס. למעשה יצרתם שרת SVN משלכם כששם המשתמש הוא שם המשתמש הרגיל שלכם. את הסיסמא תוציאו מ http://code.google.com/hosting/settings יצירת repository

  23. יצירת repository • נבחר את ה view של SVN • בלשונית של SVN repositories ניצור חדש • ניתן הכתובת הבאה: https://[YOUR_PROJECT_NAME].googlecode.com/svn • אשרו הכל, וחיזרו ל view של java. • כעת נוכל לבחור פרויקט ולהוסיפו למאגר. • קליק ימני על שם הפרויקט teamshare project • בחרו SVN, לחצו על next ובחרו repository קיים. • התוצאה: בלשונית ה SVN יופיעו קבצי הפרויקט. • דרך התפריט team תוכלו לבצע בקלות את כל הפעולות הקשורות ב repository.

  24. למה צריך להשתמש ב Junit? מהם היתרונות של ANT? למה משמש SVN? בדקו את מעגל הכיוונים של הרובוט Aibo באמצעות JUnit. תבצעו בנייה לחלק א' של התרגיל באמצעות ANT צרו repository ב Google ו SVN ב eclipse העתיקו לשם פרויקטים, צרו שינויים והתעדכנו מהם אח"כ, דרך התפריט team שחקו עם: Synchronize Commit update הטמעה

More Related