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

Slides:



Advertisements
Similar presentations
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Advertisements

בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book); Z.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
MC365 Ant. Today We Will Cover: Overview of Ant Installing Ant Using the Ant command line tool Various Ant commands available Using Ant in Eclipse.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
1 תוכנה 1 לפני שמתחילים תוכנה נדרשת כל התוכנות הנדרשות לקורס מותקנות במעבדות המחשבים בבניין שרייבר המעבדות פתוחות 7 ימים בשבוע, 24 שעות ביממה הכניסה.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מרצה: פרופסור דורון פלד
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
– Introduction to Computer Science1 הצטרפות לרשימת התפוצה של הקורס.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
SSDL פרויקט שנתי בהנדסת תוכנה שחר דג אודות שירותים מחשבים (מי הכי מהיר) הדפסה תוכנה עזרה שאלות נפוצות באתר המעבדה
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
Galileo Navigation System Software Systems lab Software Systems lab סמסטר חורף תשס " ט סמסטר חורף תשס " ט מנחה: ולדימיר זדורנוב משה חיות מבצעים: גליה סימנובסקי.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
About apache ant. Hello world with ant HelloWorldWithAnt.htmlhttp://ant.apache.org/manual/tutorial- HelloWorldWithAnt.html.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
1 הצטרפות לרשימת התפוצה של הקורס. 2 היכנסו לאתר תעודת זהותסיסמת שמונה ספרות ( אותה אחת.
מתמטיקה בדידה תרגול 2.
A. Frank File Organization Hardware Size Parameters.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Write-N-Cite הוספת הפניות ביבליוגרפיות בתוך מסמכי Word © 2012 All rights reserved to the Mechanical Engineering Library, Technion – Israel Institute of.
Ant Presentation by: Bart Taylor. What is Ant? The simple definition: A Java-based build tool The Official Definition: “Apache Ant is a Java-based build.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
 Client, Supplier ומה שביניהם ( ADT!).  שאלה 1: יצירת ADT עבור מעגל במישור נניח שלקוח מעוניין בפעולות הבאות : הזזת מעגל וחישוב שטח מעגל. הספק יספק ללקוח.
Installing SPHINX by: COLLEGE OF ART & SCIENCE UNIVERSITI UTARA MALAYSIA STIW5023 ADVANCED PROGRAMMING.
Visual Studio Team System Visual Studio Team System הילה להב רייס מנהלת תחום Life Cycle Management מנהלת תחום Life Cycle
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
הקדמה Comparator Containers שימושיים Iterator Factory Pattern Trove הטמעה תכנות מתקדם - תרגול 3 Containers ב Java אליהו חלסצ'י תכנות מתקדם
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 נתבונן בפונקציה הבאה public static int min(int[] a,int n) { int min = a[0]; for (int i = 1; (i < n ) && (i < a.length) ; i++) if (min > a[i]) min = a[i];
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
An Introduction to Ant. What is Ant? How do you use it? Why would you want to?
אחסן, סנכרן ושתף את הקבצים שלך
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Object Oriented Programming
Object Oriented Programming
מחלקות classes.
Computer Programming Fall 2014 תרגול 2
תוכנה 1 תרגול 13 – סיכום.
Computer Programming Fall 2012 תרגול
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
מבוא לתכנות בWINDOWS ב#C
כתבה וערכה: קרין רוזנר.
למה.
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
תוכנה 1 תרגול 13 – סיכום.
Computer Programming Fall 2015 תרגול 2
Mendeley - תוכנה חינמית לניהול ביבליוגרפיה
Presentation transcript:

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 כלים שימושיים 1 אליהו חלסצ'י תכנות מתקדם תכנות מתקדם תרגול מספר 7 תשע"א

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 הקדמה

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

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

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

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 JUnit JUnit הוא כלי חופשי שיוצר תשתית פשוטה לכתיבה ולהרצה של בדיקות חוזרות ב java. רק באמצעות תשתית ראויה ניתן לקיים את שיטת פיתוח מונחה הבדיקות, ו JUnit מספק אותה. ניתן להורדה מהאתר אך הקוד כבר מובנה ב eclipse, באתר גם דוקומנטציה מלאה.

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 public class IntCalc { public int pls(int x,int y){ return x+y; } public int sub(int x,int y){ return y-x; } public int mul(int x,int y){ return x*y; }

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 import junit.framework.TestCase; public class IntCalcTest extends TestCase { public void testPls() { fail("Not yet implemented"); } public void testSub() { fail("Not yet implemented"); } public void testMul() { fail("Not yet implemented"); }

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 import junit.framework.TestCase; public class IntCalcTest extends TestCase { private IntCalc ic; protected void setUp(){ ic=new IntCalc(); } public void testPls() { assertEquals(5, ic.pls(3, 2)); } public void testSub() { assertEquals(8, ic.sub(16, 8)); assertEquals(-8, ic.sub(8, 16)); } public void testMul() { assertEquals( , ic.mul( , 2)); }

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 ANT 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.

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 ANT ANT שונה מ builders אחרים בכך שלצורך הבנייה לא מממשים סקריפטים שתלויים במערכת ההפעלה, אלא מממשים מסמכי XML שבאמצעותם בונים את הפרויקט. את ANT ניתן להוריד מהאתר כדאי גם להיכנס ל Manual כדי ללמוד עוד, התכנים מוסברים שם היטב.

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 ANT התקנה על חלונות לא כזו פשוטה, בצעו את הדברים הבאים: –הורידו את קובץ ה 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

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 build.xml hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } דוגמא לבנייה רגילה

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 build.xml <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class" /> hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } דוגמא לבניית Jar

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 build.xml <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class" /> דוגמא לבניית Jar והרצתו ללימוד נוסף, כגון שילוב JUnit ב ANT תבקרו באתר ממנו נלקחו הדוגמאות.

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

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

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

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

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 הוספת plug-in ל eclipse Help  Software Updates  Find and inatall… Search for new features ולחיצה על next אפשר לבחור מתוך הרשימה הקיימת, או להוסיף ע"י add remote site. לחצו עליו. תקלידו את שם האתר – במקרה שלנו Subclipse תקלידו את כתובתו – במקרה שלנו אשרו, סמנו את חבילת ההתקה ברשימה, והמשיכו ללחוץ next עד לסיום.

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

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 יצירת repository לצורך הדוגמא אנו נשתמש בשירות של Google המאפשר ליצור שרת SVN לכל מי שרשום. וודאו שאתם מחוברים, למשל ל gmail, וכנסו לאתר תבחרו create new project ומלאו את הטופס. למעשה יצרתם שרת SVN משלכם כששם המשתמש הוא שם המשתמש הרגיל שלכם. את הסיסמא תוציאו מ

הקדמה Junit ANT SVN הטמעה תכנות מתקדם - תרגול 7 יצירת repository נבחר את ה view של SVN בלשונית של SVN repositories ניצור חדש ניתן הכתובת הבאה: אשרו הכל, וחיזרו ל view של java. כעת נוכל לבחור פרויקט ולהוסיפו למאגר. קליק ימני על שם הפרויקט  team  share project בחרו SVN, לחצו על next ובחרו repository קיים. התוצאה: בלשונית ה SVN יופיעו קבצי הפרויקט. דרך התפריט team תוכלו לבצע בקלות את כל הפעולות הקשורות ב repository.

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