Upload
eden
View
51
Download
4
Embed Size (px)
DESCRIPTION
כלים שימושיים 1. תכנות מתקדם 89-210 תרגול מספר 7 תשע"א 2010-2011. אליהו חלסצ'י. הקדמה. לא ניתן לבנות תוכנה שתקבל תוכנה כקלט, ובאופן אוטומטי תכריע לגבי נכונותה כלומר תבצע אימות תוכנה. (הבעיה אינה ניתנת להכרעה – תלמדו על זה בחישוביות) ביצע אימות ידני בא במחיר יקר מידי לרוב המערכות. - PowerPoint PPT Presentation
Citation preview
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
11כלים שימושיים כלים שימושיים
אליהו חלסצ'י
89-21089-210תכנות מתקדם תכנות מתקדם 7תרגול מספר
2010-2011תשע"א
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
הקדמה
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
בדיקות תוכנהלא ניתן לבנות תוכנה שתקבל תוכנה כקלט, ובאופן •
אוטומטי תכריע לגבי נכונותה כלומר תבצע אימות תוכנה. )הבעיה אינה ניתנת להכרעה – תלמדו על זה
בחישוביות(ביצע אימות ידני בא במחיר יקר מידי לרוב המערכות.•(, שמטרתן להגביר את testingלכן מבצעים בדיקות )•
הביטחון שלנו בנכונות התוכנה ע"י סדרה של הרצות ומציאת פגמים.
הבדיקות לא מוכיחות נכונות, אבל מועילות באופן •מעשי להקטנת הפגמים.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
בדיקות תוכנהבעבר היו בדיקות התוכנה תחום חובבני שבוצע על •
ידי התוכניתנים עצמם.
היום זהו נדבך עיקרי בתהליך הפיתוח. •
שיטה נפוצה היא "פיתוח מונחה בדיקות", אפילו •" של ”Extreme Programmingפעם היה טרנד ה
קנט בק המבוססת על פיתוח מונחה הבדיקות.
Test driven developmentפיתוח מונחה בדיקות - )•בדיקת ( זו מתודולוגית פיתוח בה TDDובקיצור נכתבת עוד לפני הקוד אותו היא בודקת.היחידה
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
בדיקות תוכנהסוגי הבדיקות:•
בדיקות ברמת יחידת תוכנה - (Unit )בדיקות יחידה –)מודול(. לרוב מבוצעות על ידי מפתח התוכנה.
( – מבוצע לאחר בדיקות Integrationבדיקות אינטגרציה )–היחידה, נבדקים מס' מודולים יחד או התוכנית כולה.
.QAלרוב מבוצע ע"י צוות ( - בדיקות המערכת בכללותה, System)בדיקות מערכת –
בדרך כלל בראיית המשתמש. – בדיקות שנעשות ע"י (Acceptance)בדיקות קבלה –
הלקוח, או צוות שמדמה אותו.
היום נלמד על כלי שעוזר לנו ברמת בדיקת היחידה.•
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
JUnit•JUnit הוא כלי חופשי שיוצר תשתית פשוטה
.javaלכתיבה ולהרצה של בדיקות חוזרות ב רק באמצעות תשתית ראויה ניתן לקיים את •
מספק JUnitשיטת פיתוח מונחה הבדיקות, ו אותה.
אך /http://junit.orgניתן להורדה מהאתר •, באתר גם eclipseהקוד כבר מובנה ב דוקומנטציה מלאה.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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;
}
}
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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");
}
}
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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(2147483644, ic.mul(1073741822, 2));
}
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
ANT•ANT שונה מ builders אחרים בכך שלצורך
הבנייה לא מממשים סקריפטים שתלויים במערכת ההפעלה, אלא מממשים מסמכי
XML.שבאמצעותם בונים את הפרויקט
.http://ant ניתן להוריד מהאתר ANTאת •apache.org/
כדי ללמוד עוד, Manualכדאי גם להיכנס ל •התכנים מוסברים שם היטב.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
ANTהתקנה על חלונות לא כזו פשוטה, בצעו את הדברים הבאים:•
.”c:\ant“ מהאתר, ותפתחו אותו לתוך תיקייה כגון zipהורידו את קובץ ה – משתני סביבה.מתקדם מאפיינים קליק ימני על המחשב שלי–הוסיפו את המשתנים הבאים:–
•PATH c:\ant\bin•ANT_HOME c:\ant•JAVA_HOME תיקיית ה JDKשלכם, לדוגמא
C:\Program Files\Java\jdk1.6.0_05 תוודאו שיש שם קובץ בשם( tools.jar)אשרו הכל.•
( cmd הפעלה )התחל Shellכנסו ל –ant.bat, הפקודה תפעיל את ant ורשמו c:\ant\binגשו ל –
בדיקה: אם קיבלתם• Buildfile: build.xml does not exist!
Build failed.זה בסדר גמור , אתם אמורים ant –versionבדיקה שנייה גשו לתיקייה אחרת ותכתבו •
antלקבל את הגרסא הנוכחית של
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
build.xml<project default="compile"> <target name="compile"> <javac srcdir="." /> </target> </project>
hello.javapublic class hello { public static void main) String[] args ({ System.out.println) "Hello World" (; }}
דוגמא לבנייה רגילה
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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>
hello.javapublic class hello { public static void main) String[] args ({ System.out.println) "Hello World" (; }}
Jarדוגמא לבניית
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
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>
Jarדוגמא לבניית והרצתו
http://ideoplex.com/focus/java תבקרו באתר ANT ב JUnitללימוד נוסף, כגון שילוב ממנו נלקחו הדוגמאות.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
version controlניהול גרסאות
משמש לניהול פיתוח מתמשך של מסמכים דיגיטליים •שעובדים עליהם צוות של מפתחים.
השינויים מזוהים כמספר גרסא.•כלים לניהול גרסאות מאפשרים:•
יכולת לחזור לכל מצב קודם כשהקוד נפגם.–בקרה על השינויים שבקוד.–ניהול תוכנה בכמה גרסאות. )תיקון באגים וכו'(–
מערכת ריכוזית: כולם עובדים על אותו מאגר משותף•מערכת ביזורית: כל אחד עובד על מאגר משלו ואח"כ •
משתף במאגר הכללי.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
version controlניהול גרסאות
נעילה של קובץ:• מתכנתים עובדים על אותו הקובץ הם 2כאשר –
עלולים לדרוס אחד את עבודתו של השני...שיטה אחת למנוע זאת היא ע"י נעילה של הקובץ –
רק למשתמש אחד.שיטה שנייה, היא לאפשר לשניהם לעבוד ולמזג –
אח"כ.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
version controlניהול גרסאות
אוצר מילים:•–Repository.מאגר, המקום בו מאוחסנים הקבצים : –Working copy עותק מקומי של הקבצים מה :
repository.עליו מתבצעת העבודה –Check-out פעולת חילוץ הקבצים מה : repository.–Commit כאשר השינויים ב : working copy
.repositoryנכתבים ל –Conflict / Resolve קונפליקט קיים כשיש סתירה :
(resolve)באותו הקובץ, והאדם מתערב כדי לתקן
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
SVN
תוכנה בקוד פתוח לניהול גירסאות.•
עובדת על מס' רב של פלטפורמות, במס' רב •של גרסאות.
נפוצה מאד בתעשייה.•
plug-in שהוא subclipseאנו נראה דוגמא ל •.eclipse לתוך סביבת ה SVNשל
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
eclipse ל plug-inהוספת
•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ללחוץ
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
eclipse ל plug-inהוספת
.SVN של viewאחרי ההתקנה נוכל להוסיף •
viewמצד שמאל למעלה אנו שולטים על ה •הנוכחי.
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
repositoryיצירת
Googleלצורך הדוגמא אנו נשתמש בשירות של • לכל מי שרשום.SVNהמאפשר ליצור שרת
, וכנסו לאתר gmailוודאו שאתם מחוברים, למשל ל •http://code.google.com/hosting/
ומלאו את הטופס.create new projectתבחרו • משלכם כששם המשתמש SVNלמעשה יצרתם שרת •
הוא שם המשתמש הרגיל שלכם./http://code.google.comאת הסיסמא תוציאו מ •
hosting/settings
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
repositoryיצירת SVN של view נבחר את ה • ניצור חדשSVN repositories בלשונית של • ניתן הכתובת הבאה:• https://[YOUR_PROJECT_NAME].googlecode.com/svn.java של view אשרו הכל, וחיזרו ל • כעת נוכל לבחור פרויקט ולהוסיפו למאגר.•
team share project קליק ימני על שם הפרויקט • קיים.repository ובחרו next, לחצו על SVN בחרו •
יופיעו קבצי הפרויקט.SVN התוצאה: בלשונית ה •
תוכלו לבצע בקלות את כלteam דרך התפריט •.repository הפעולות הקשורות ב
הקדמהJunitANTSVN
הטמעה
תכנות מתקדם - תרגול 89-2107
הטמעה?Junitלמה צריך להשתמש ב •?ANTמהם היתרונות של •?SVNלמה משמש •.JUnit באמצעות Aiboבדקו את מעגל הכיוונים של הרובוט •ANTתבצעו בנייה לחלק א' של התרגיל באמצעות • העתיקו לשם eclipse ב SVN ו Google ב repositoryצרו •
פרויקטים, צרו שינויים והתעדכנו מהם אח"כ, דרך התפריט teamשחקו עם :
–Synchronize–Commit–update