1 / 52

SCE - 1 מבוא דר’ יעקב אקסמן תשס"ו

SCE - 1 מבוא דר’ יעקב אקסמן תשס"ו. מושגים תוכנה. תיזה של Newell & Simon מערכת תוכנה היא מערכת סמלים פיזיקליים (Physical Symbols). מושגים תוכנה. סמל - שרירותי, בלתי תלוי במימוש: אלקטרוני, אופטי, ביולוגי פיזיקלי – תוכנה ניתנת להרצה מקיימת את חוקי הפיזיקה.

latoya
Download Presentation

SCE - 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. SCE-1 מבוא דר’ יעקב אקסמן תשס"ו

  2. מושגים תוכנה תיזה של Newell & Simon מערכת תוכנה היא מערכת סמלים פיזיקליים (Physical Symbols)

  3. מושגים תוכנה • סמל - שרירותי, בלתי תלוי במימוש: • אלקטרוני, אופטי, ביולוגי • פיזיקלי – תוכנה ניתנת להרצה • מקיימת את חוקי הפיזיקה. סיבית –bit –חלקיק התוכנה (יכול להיות בשני מצבים).

  4. ספרות סמלים פיזיקליים • Newell, Allen & Simon, Herbert – • “Computer Science as empirical inquiry: • Symbols and Search ” • Communications of the ACM, 19, 113-126 (March 1976) • {Turing award lecture – 1975} • Herbert A. Simon – • “The Sciences of the Artificial” • MIT Press – Cambridge, MA - 3rd ed. - 1996. • {Physical Symbol Systems - pp. 21-22}

  5. מערכת תוכנה • מרכיב – Component - חלק תוכנה עם הפרדה חדה • בין פנים לחוץ (כימוס וממשק חיצוני). • מערכת תוכנה – ניתנת למחקר אמפירי • ומדידות במעבדה. • הנדסת תוכנה – הנדסת מערכות תוכנה • החל ממרכיבי תוכנה.

  6. מערכת תוכנה הרכבה -> ארכיטקטורה רמות שונות

  7. הנדסת מרכיבי תוכנה כיוון:מהדגם אל הקוד דרישות תוכנה דגםהייררכי דגםפיזיקלי מרכיבים קוד להרצה = exe מדידות

  8. הנדסת מרכיבי תוכנה MDA MDA= Model Driven Architecture כיוון = מהדגם אל הקוד להרצה

  9. הנדסת מרכיבי תוכנה דגמים דגם Model = הפשטה של מערכת. [תמיד אידיאלי].

  10. הנדסת מרכיבי תוכנה MDA PIM = Platform Independent Model דגם בלתי-תלוי בפלטפורמה Platform Specifics מידע פרטי לפלטפורמה Transformation המרה PSM = Platform Specific Model דגם תלוי בפלטפורמה

  11. ספרות MDA • Stephen J. Mellor & Marc J. Balcer – • “Executable UML – • A Foundation for Model-Driven Architecture” • Addison-Wesley – Boston, MA – 2002. • MDA Guide – OMG – 2003.

  12. הנדסת מרכיבי תוכנה אב-טיפוס מהיר משתכלל דגםהייררכי דגםפיזיקלי מרכיבים קוד להרצה = exe מדידות Fast Prototype, Agile Methods

  13. הנדסת תוכנה הנדסה הפוכה כיוון לא אידיאלי דגםהייררכי Reverse Engineering קוד מקור קוד להרצה = exe

  14. הנדסת תוכנה עידון של אב-טיפוס דגםהייררכי הנדסה הפוכה קוד מקור Debugging קוד להרצה = exe

  15. דגמים הייררכיים • הייררכי – • רמות גם במבנה וגם בדינמיקה ! • דיסקרטי – • מספר אובייקטים בר-מנייה.

  16. דגמים הייררכיים חשיבותם • בלתי תלויים ב: • שפת תכנות • פלטפורמה (מכונה, מערכת הפעלה).

  17. דגמים הייררכיים UML UML= Unified Modeling Language דגם = Model שפה = פורמלית(בפועל רק במידה מסויימת?) תרשימים = סוג של ייצוג

  18. דגמים הייררכיים אופני תאור • מבנה (structure) • מרכיבים • דינמיקה (behavior) • אירועים, ציר הזמן

  19. דגמים הייררכיים דוגמת קוד: LongMult נפעיל הנדסה הפוכה  דגם של המבנה מהספר: J.R.Jackson & A.L.McClellan “Java 1.2 by example” Prentice-Hall – 1999 פרק 4 דוגמה: Linked Lists – sample program כפל LongMult של סידרת מספרים ארוכים Bignums

  20. דגמים הייררכיים דוגמת קוד: LongMult import … public class LongMult { public static void main (final String[ ] args) { // Check usage. Any number of Bignum arguments may be specified. if (args.length < 1) { System.err.println("Usage: java LongMult <num1> ... <numN>"); return; } try { // Initialize the total with the first argument translated intoa Bignum. Bignum total = new Bignum(args[0]); for (int i = 1; i < args.length; i++) {//Call Bignum.mul on the total and each new argument. total = total.mul(new Bignum(args[i])); } System.out.println(total); // Display the result. } catch (final Exception e) { e.printStackTrace(); return; } }

  21. דגמים הייררכיים דוגמת קוד: NumNode // The NumNode class holds a single digit of a Bignum //containsa reference to the next NumNode in a list. privatestaticclass NumNode{ NumNode(finalintintVal,finalNumNodenextNode){ val=intVal; next=nextNode; } intval; NumNodenext; }

  22. דגמים הייררכיים דוגמת קוד: BignumFormatException // Instances of the BignumFormatExceptionclass are //returned wheneverany error occurs trying to //construct a Bignum. privatestaticclass BignumFormatExceptionextendsException{} }

  23. דגמים הייררכיים UML – תרשים מחלקות הנדסה הפוכה של הקוד

  24. דגמים הייררכיים UML –מחלקות בתוך מרכיב

  25. דגמים הייררכיים תרשימי מיצוב = StateCharts  דגם של הדינמיקה שעון ספרתי

  26. דגמים הייררכיים Sequence Diagram פעולות בנקאיות

  27. דגמים הייררכיים תרשימיUML Class Diagrams דינמיקה Use Case Diagrams Object Diagrams Sequence Diagrams Component Diagrams Collaboration Diagrams Models Deployment Diagrams מבנה Activity Diagrams Statechart Diagrams

  28. דגמים הייררכיים תרשימים עיקריים מבנה תרשים מחלקות תרשים מרכיבים דינמיקה תרשים סידרתי תרשים מצבים Class Diagrams Sequence Diagrams Component Diagrams Models Statechart Diagrams

  29. דגמים הייררכיים Object Process Model - OPM מבנה ודינמיקה – באותו תרשים חיצוניים למערכת

  30. דגמים הייררכיים דוגמת OPM

  31. ספרות דגמים הייררכיים • UML • Rumbaugh, Jacobson & Booch – • “UML Reference Manual” • Addison-Wesley – 2004 – 2nd ed. • OPM • Dov Dori – • “Object-Process Methodology – • A Holistic Systems Paradigm” • Springer Verlag – 2002.

  32. דגמים הייררכיים ESC [LSC] • תרשים סידרה ניתן לביצוע • Executable Sequence Charts • LSC = Live Sequence Charts • [David Harel] • תסריטים • תנאי – • אם מתקיים, מתבצע פעולה • אם לאו, פעולה אחרת

  33. דגמים הייררכיים דוגמת ESC [LSC]

  34. דגמים הייררכיים דוגמת ESC [LSC] prechart תנאי

  35. ספרות דגמים הייררכיים • Executable Live Sequence Charts [LSC] • Marelly, R., Harel, D. and Kugler, H. • “Multiple Instances and Symbolic Variables in Executable Sequence Charts” • oopsla – 2002.

  36. דגמים הייררכיים דגם של דגם עצם דגם מטה-דגם Metamodel מגדיר תחביר מופשט של מונחי הדגם ע"י MOF = Meta-Object Facility

  37. מטה-דגם מחלקות בדגם של הדגם

  38. דגמים הייררכיים XMI XML = eXtensible Markup Language XMI = eXtensible Metadata Interchange Metadata = e.g. tags (in XML)

  39. דגמים הייררכיים XMI– מיוצר מתרשים ה-UML <Foundation.Core.Generalization xmi.id="xmi.9" xmi. uuid ="62-90-88-115-d24e3f:102203abdc7:-7fa1"> < Foundation.Core.ModelElement.name>BignumFormatException Exception </ Foundation.Core.ModelElement.name> < Foundation.Core.ModelElement.isSpecification xmi.value="false" /> < Foundation.Core.ModelElement.namespace> < Foundation.Core.Namespace xmi.idref="xmi.1" /> </ Foundation.Core.ModelElement.namespace> < Foundation.Core.Generalization.child> <Foundation.Core.GeneralizableElement xmi.idref="xmi.111" /> </ Foundation.Core.Generalization.child> < Foundation.Core.Generalization.parent> < Foundation.Core.GeneralizableElement xmi.idref="xmi.8" /> </ Foundation.Core.Generalization.parent> </ Foundation.Core.Generalization>

  40. ספרות XML • D. Box, A. Skonnard & J. Lam • “Essential XML – Beyond Markup” • Addison-Wesley –2000

  41. תבניות Design Patterns הכללה פונקציונאלית של מרכיבים: - תבנית אחת מיוצגת ע"י - תרשים מחלקות המכיל אוסף של מחלקות - תרשים סידרה בזמן כולל מספר עצמים שימוש חוזר של תבניות

  42. תבניות Design Patterns • דוגמה: Command • מניעים • מפתח ספריית כלים • (ממשק גרפי: תפריטים, כפתורים, וכו') • לא צריך להכיר את היישום שישתמש בספריה. • מטרות • פרמטריזציה • רישום log • undo/redo

  43. תבניות Design Patterns מוכנים מראש יישום menuItem ממשק מופשט דוגמה: Command שרת הופך בקשת לקוח בעצמה ל"עצם".

  44. תבניות Command - Pattern • Command • ממשק מופשט לפעולה כלשהי • Invoker • מבקש לבצע פעולה. • למשל menuItem • Client • יישום: יוצר אובייקט Concrete Command • וקובע מי השרת. • Concrete Command • מממש ביצוע • למשל PasteCommand, OpenCommand • Receiver • שרת שמבצע בקשה

  45. ספרות תבניות • . • [GoF = Gang of Four] – • Gamma, E., Helm, R., Johnson, R. and Vlissides, J. • “Design Patterns – • Elements of Reusable Object-Oriented Software” • Addison-Wesley – Boston, MA – 1995.

  46. שלבי פיתוח "מפל המים" Application Requirements Test Software Requirements Test Specifications Test Detailed Design Test Implementation Test Experimentation Debugging Test Maintenance Test

  47. שלבי פיתוח "W" Write Req. Test Req. Acceptance Test Install Test Design Build System System Test Logical Design Build Software Test Design Physical Design Integration Test Code Unit Test

  48. דרישות מהצרכן Use Cases חלקי אירגון: מכירות וחשבונות מחסן

  49. ספרות הנדסת תוכנה • Stephen R. Schach – • “Object-Oriented and Classical Software Engineering” • McGraw-Hill – Boston, MA – 5th ed. – 2002.

  50. מטרות הקורס • למידה לעומק של • גישת MDA – של הנדסת תוכנה • כלי תוכנה ל-MDA • מרכיבים – חשיבותם • תיאוריה ומדידות במעבדה • דגמים הייררכיים – נפוצים: UML, XML • תבניות תיכון – ומשמעותן

More Related