דילוג לתוכן ראשי

אתר המרצה מר איזנשטיין איל

תוכן ראשי

קורסים

  • הנדסת תוכנה אינטגרטיבית (10143)
  • תקציר הקורס:

    תקציר:

    מימוש תשתית מרובת תהליכים; תכנות ריאקטיבי Reactive Programming; שימוש ב-Logger; ארכיטקטורת MVC;

    בדיקות יחידה, Mocking, בדיקות אינטגרציה; חיבור לבסיסי נתונים טבלאיים (Relational Databases) ובסיסי נתונים של NoSQL;

    פיתוח Client-Server; פיתוח Web-Services; יישום IoC תוך שימוש בתשתיות תוכנה מקובלות בתעשיה.

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

    באמצעות מבחר של יישומי קצה. הפרויקט ישלב מימושים בשפת Java לנושאים שנלמדו בקורסים קודמים בתכנית הלימודים:

    מערכות הפעלה, תקשורת ובסיסי נתונים, תוך שימוש ויישום עקרונות הנדסת תוכנה.

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

    תכנות מונחה עצמים ושיטות בהנדסת תוכנה.

    כמו כן לצורך היישום פרויקט בקורס, יהיה צורך בלמידה עצמאית של מחלקות ותשתיות תוכנה לפי הנחית סגל הקורס.
  • ארכיטקטורת מערכות תוכנה (10151)
  • תקציר הקורס:

    תקציר:

    בוגרות ובוגרי הקורס ירכשו במהלכו מיומנויות בתכנון מערכות תוכנה גדולות ומורכבות,

    כך שיהיה קל ליישם, לתחזק ולשדרג אותן,

    תחת אילוצי איכות ותקציב, ובהתאם לתשתיות החומרה והתוכנה הזמינות להם.

     

    הקורס מתבסס על הידע שנרכש בקורסי הקדם לקורס זה,

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

     

    במהלך הקורס, נלמד להתאים את יישום מערכות תוכנה אלה,

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

    להגדיר את רכיבי התוכנה הנחוצים ליישומן, ואת הזיקה בין רכיבים אלה,

    כך שיישומי התוכנה, שיפותחו על בסיסם, יעמדו בדרישות של ביצועים, אמינות

    ותמיכה בתחזוקה עתידית של מערכות התוכנה.

     

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

    שלאחריהן, מיישמים את המודלים והארכיטקטורות שנבחרו ליישום מערכות תוכנה אלה.
  • הנדסת דרישות (10213)
  • תקציר הקורס:

    תקציר:

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

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

    תקציר:

    מערכות מבוזרות מאפשרות גמישות גדולה וביזור יחידות פיתוח בצורה מודולארית.

    ארכיטקטורות מחשוב ענן מקנות לתוכנה שפועלת עליהן היבטים דינאמיים שמשפיעים על ויסות העומסים על מערכות אלה (Scalability);

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

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

     

    בקורס זה נדון בהיבטי הפיתוח הקשורים לארכיטקטורות ענן, הכוללים שימוש בתבניות נפוצות לפיתוח יעיל בענן (Cloud Architecture Design Patterns),

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

    אוטומציה של תהליכי פיתוח ושימוש במתודולוגיות וכלים שיאפשרו עדכון זריז ויעיל של התוכנה (Agile Cloud Development).

     

    הקורס דורש ידע מוקדם בפיתוח מתקדם בשפת Java ובפיתוח בסביבה עתירת תקשורת ובסיסי נתונים. ידע זה מוקנה על ידי קורסי הקדם לקורס זה.

    הקורס נלמד בשפה העברית, אך חומרי הלימוד, הבחינות והפרויקט בשפה האנגלית.
  • פרויקט גמר למדעים1 (11402)
  • תקציר הקורס:

    תקציר:

    במסגרת הקורס, ייחשף הסטודנט לכל שלבי הפיתוח של אפליקציה או חבילת תוכנה כולל: עיצוב ופיתוח היישום, עיצוב הממשק, יישום אלגוריתם, בחירת ארכיטקטורה ושילוב מסדי נתונים, יישום מתודולגיה, חשיבה ביקורתית, פיתוח ובדיקות מקצה לקצה, תיעוד ומצגת, עבודת צוות וניהול פרויקטים
  • פרויקט גמר למדעים2 (11403)
  • תקציר הקורס:

    תקציר:

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