מבוא להנדסת תוכנה / ניתוח מערכות מידע

Download Report

Transcript מבוא להנדסת תוכנה / ניתוח מערכות מידע

‫מבוא להנדסת תוכנה ‪ /‬ניתוח מערכות מידע‬
‫הרצאת מבוא‬
‫‪1‬‬
‫תוכן ההרצאה‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫מהי מערכת תוכנה‬
‫תוכנית הלימודים של הקורס‬
‫תפקידה המרכזי של מערכת תוכנה בארגון‬
‫מחזור חיים של מערכת תוכנה‬
‫גישות ומודלים לפיתוח מערכות תוכנה‬
‫סוגי מערכות מידע‬
‫בעלי התפקידים במערכות תוכנה‬
‫סיכום‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪2‬‬
‫מהי מערכת מידע‪/‬תוכנה ארגונית?‬
‫• מערכת‪ :‬קבוצה של רכיבים הקשורים ביניהם‬
‫ופועלים יחד כדי להשיג מטרה משותפת‬
‫• ארגון‪ :‬מורכב מאוסף של תת‪-‬מערכות – אחד‬
‫מהם הוא מערכת המידע‪.‬‬
‫מערכת מידע‪/‬תוכנה‬
‫אוסף של תתי רכיבים‪ :‬חומרה‪ ,‬תוכנה‪ ,‬נתונים‪ ,‬אנשים ונהלים‪,‬‬
‫שמטרתה לתמוך בתהליכי הארגון‬
‫‪3‬‬
‫נתונים‪ ,‬מידע‪ ,‬ידע ומה שביניהם‬
‫• נתונים (‪ :(Data‬הם עובדות המיוצגות ע"י מילים‪,‬‬
‫מספרים‪ ,‬תמונות או צלילים שעשוי להיות להם‬
‫שימוש בביצוע משימה מסוימת – חומר גלם‬
‫• מידע )‪ :(information‬נתונים שעובדו ויש להם‬
‫משמעות למשתמש‬
‫• ידע )‪ :(knowledge‬שילוב של מידע שהופנם‬
‫ונקלט ושל אינסטינקטים‪ ,‬רעיונות‪ ,‬כללים‬
‫ופרוצדורות שמדריכים את הפרט מה להחליט‬
‫וכיצד לפעול‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪4‬‬
‫שלושת המימדים של תוכנה‬
‫• סטטי (‪ – )Static‬מייצג את נקודת המבט המבנית‬
‫(של הנתונים) על המערכת‬
‫• דינמי (‪ – )Dynamic‬מייצג את נקודת המבט‬
‫ההתנהגותית (של הבקרה) על המערכת‬
‫• פונקציונלי (‪ - )Functional‬מייצג את ההתמרות‬
‫המתבצעות במערכת‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪5‬‬
‫מצבי עיבוד של מערכת תכנה‬
‫• עיבוד מקוון (‪)Online processing‬‬
‫– הנתונים מעדכנים את מצב המערכת עם קליטתם‬
‫– עדכני יותר‪ ,‬מורכב יותר לניתוח‪ ,‬לתכן ולתכנות‪ ,‬דורש‬
‫יותר משאבי מחשוב ומקל על השגת איכות טובה של‬
‫נתונים‬
‫• עיבוד אצווה (‪)Batch processing‬‬
‫– אוסף של טרנזקציות מאוגדות יחד ומבוצעות בשלב‬
‫שהוגדר מראש‬
‫– יעיל יותר מבחינת ניצול משאבי מחשב ולפעמים גם‬
‫מבחינת ניצול משאבי אנוש‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪6‬‬
‫פלטים של מערכות תכנה‬
‫• מערכות תכנה מספקות מידע ע"י דו"חות (‪)Reports‬‬
‫ושאילתות (‪)Queries‬‬
‫• דו"ח מוצא בד"כ מדי תקופה מסוימת (יום‪ ,‬שבוע‪,‬‬
‫חודש‪)..‬‬
‫– סוגי דו"חות‪ :‬מפורטים (‪ ,)Detailed‬מסכמים (‪,)Aggregate‬‬
‫וחריגים (‪.)Exceptions‬‬
‫– לצורך הפקת דו"חות חריגים יש להגדיר תקנים שאליהם יושוו‬
‫ביצועי המערכת‬
‫• שאילתות מופעלות בדרך כלל באופן אקראי ובהן‬
‫מדווחים על פעילויות שגרתיות ועל מצבים משתנים‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪7‬‬
‫מטרת הקורס‬
‫• הקורס מציג את השלבים השונים הקיימים‬
‫בתהליך פיתוח מערכת מידע‬
‫– בתחילת הקורס נציג את שלב הניתוח הכולל את‬
‫איסוף הדרישות‪ ,‬חקר המצב הקיים‪ ,‬ניתוח תהליכים‬
‫עסקיים וחקר הישימות‪.‬‬
‫– לאחר מכן נתמקד בשלב אפיון המערכת באמצעות‬
‫שפות ומתודולוגיות לבניית מודלים למערכות‬
‫• בקורס נלמד להשתמש במודלים‪,EPC ,DFD :‬‬
‫‪ OPM‬ובמתודולוגיית‪UML :‬‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪8‬‬
‫סילבוס‬
‫שבוע‬
‫פרסום‬
‫תרגיל בית‬
‫פרסום‬
‫תרגיל בית‬
‫פרסום‬
‫תרגיל בית‬
‫פרסום‬
‫תרגיל בית‬
‫תרגול‬
‫הרצאה‬
‫‪1‬‬
‫מבוא‪ ,‬מחזור חיי מערכת מידע‬
‫נרמול‬
‫‪2‬‬
‫‪DFD‬‬
‫נרמול‬
‫‪3‬‬
‫‪DFD‬‬
‫‪DFD‬‬
‫‪4‬‬
‫‪ – EPC‬תיאור תהליך עסקי‬
‫‪DFD‬‬
‫‪5‬‬
‫מבוא לתכנות מוכוון עצמים‬
‫‪Use Case‬‬
‫‪EPC‬‬
‫‪6‬‬
‫‪Class‬‬
‫‪USE CASE‬‬
‫‪7‬‬
‫‪Class, Sequence‬‬
‫‪CLASS‬‬
‫‪8‬‬
‫‪Sequence‬‬
‫‪CLASS‬‬
‫‪9‬‬
‫‪Statechart‬‬
‫‪SEQUENCE‬‬
‫‪10‬‬
‫‪Statechart‬‬
‫‪STATECHART‬‬
‫‪11‬‬
‫‪ - OPM‬תיאור מבני של מערכת‬
‫‪STATECHART‬‬
‫‪12‬‬
‫‪ - OPM‬תיאור דינמי של מערכת‬
‫‪OPM‬‬
‫‪13‬‬
‫השוואה בין מודלים‬
‫מבחן לדוגמא‬
‫ניתוח‬
‫אפיון‬
‫ניתוח ואפיון‬
‫‪9‬‬
‫דרישות הקורס‬
‫• תרגילי בית‬
‫– בקורס ‪ 4‬תרגילים שמשקליהם‪ 4% ,7% ,6% :‬ו ‪3%‬‬
‫– חובה להגיש את כל תרגילי הבית ולקבל בהם ציון‬
‫ממוצע של לפחות ‪( 55‬ואז הציון מגן)‬
‫• בחינה סופית‬
‫– תכלול את כל החומר הנלמד בקורס‬
‫– ישנה חובה לקבל ציון מעל ‪ 55‬על מנת לעבור את‬
‫הקורס‬
‫– ניתן להביא לבחינה הסופית שקפי הרצאות ושקפי‬
‫תרגולים בלבד‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪10‬‬
‫מבנה הארגון‬
‫מה זה מבנה הארגון?‬
‫מבנה הארגון‬
‫מערך מורכב ומוגדר היטב של תפקידים וקשרי הגומלין‬
‫ביניהם‪ .‬המבנה משמש בסיס להגדרת אופי הפריסה של‬
‫הפעילות הארגונית למחלקות‪ ,‬לתפקידים ולתחומי סמכויות‬
‫והוא מנתב ותוחם באופן רשמי ומחייב את התנועה של אנשים‬
‫וחומרים בארגון‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪11‬‬
‫פונקציות ארגוניות ותהליכים עסקיים‬
‫הארגון‬
‫ייצור‬
‫חשבונאות‬
‫תהליך‬
‫עסקי‬
‫לקוחות‬
‫סביבת הארגון‬
‫כספים‬
‫ספקים‬
‫כ"א‬
‫שיווק‬
‫ומכירות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪12‬‬
‫סווג הבעיות הארגוניות‬
‫• בעיות מובנות‬
‫– המאפיינים החשובים ניתנים לניסוח מתמטי כך שניתן לנסח‬
‫מודל המתאר את רמת הבצוע של המערכת בתלות בדרכי‬
‫הפעולה‪ ,‬והפעולה הנבחרת משיאה את רמת הביצוע‬
‫– ניתן לעיתים למכן את תהליך קבלת ההחלטות‪ .‬דוגמאות‪:‬‬
‫תהליך ניהול מלאי‪ ,‬קביעת מסלול קצר ביותר ברשת‬
‫• בעיות מובנות למחצה‬
‫– רק חלק מהן ניתנות לניסוח מתמטי כך שבונים מודל המייצר‬
‫מספר חלופות והחלופה הנבחרת נקבעת באופן אינטואיטיבי‬
‫לדוגמה‪ :‬בחירת מיקום מפעל‪ ,‬תכנון קו אוטובוסים‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪13‬‬
‫סווג הבעיות הארגוניות )המשך(‬
‫• בעיות לא מובנות‬
‫– לא ניתן לנסח בהן את המאפיינים החשובים שלהן‬
‫– בבעיות מסוג זה יש לעיתים מידה רבה של אי‪-‬ודאות‬
‫ומקובל להיעזר במומחים בקביעת ההחלטה‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪14‬‬
‫קבלת החלטות‬
‫• מודל קבלת החלטות ע"פ הרברט סיימון‬
‫האם קיימת‬
‫בעיה או‬
‫הזדמנות?‬
‫פתרונות‬
‫חלופיים‬
‫לבעיה או‬
‫להזדמנות‬
‫מתקבלת‬
‫החלטה‪,‬‬
‫הפתרון נבחר‪.‬‬
‫שלב הזיהוי‬
‫שלב הניתוח והעיצוב‬
‫לכל שלב בתהליך‬
‫קבלת ההחלטות‬
‫דרושים‬
‫סוגים שונים של מידע‬
‫שלב הבחירה והבקרה‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪15‬‬
‫רמות לקבלת החלטות‬
‫• על פי מודל אנתוני קיימות שלוש רמות של קבלת‬
‫החלטות‬
‫החלטות‬
‫אסטרטגיות‬
‫בעיות לא מובנות‬
‫תכנון‬
‫אסטרטגי (‪)3‬‬
‫בקרה ניהולית (‪)2‬‬
‫בקרה על ביצוע‬
‫מטלות‬
‫בעיות מובנות‬
‫החלטות טקטיות‬
‫בעיות מובנות‬
‫למחצה‬
‫בקרה תפעולית (‪)1‬‬
‫ביצוע‬
‫מטלות‬
‫דרג תפעולי (‪)0‬‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪16‬‬
‫דרג ארגוני וצרכי המידע שלו‬
‫• הדרג התפעולי‪:‬‬
‫– מדווח על ביצוע מטלות יומיומיות וכולל אנשי מכירות‪ ,‬פועלי‬
‫יצור‪ ,‬מחסנאים ועוד‬
‫– דיווחים אופייניים‪ :‬מכירה‪ ,‬תעודת משלוח‪ ,‬תחילת בצוע פק"ע‬
‫– תדירות הדיווח גבוהה מאד‬
‫• בקרה תפעולית‪:‬‬
‫– עוסקת בעיקר בפעולות בקרה בטווח המיידי‬
‫– נדרש מידע בעל פירוט גבוה בתחום צר של עיסוק‬
‫– תדירות השימוש במידע גבוהה‬
‫‪17‬‬
‫דרג ארגוני וצרכי המידע שלו (המשך)‬
‫• בקרה ניהולית‪:‬‬
‫– עוסק בקביעת תוכניות שמטרתן ביצוע התכנון של הרמה מעל‬
‫וכולל תכנון‪ ,‬הקצאת משאבים ובקרה על עמידה במטרות‬
‫ובמשימות ארגוניות‬
‫– נדרש מידע תחומי ממוקד (שיווק‪ ,‬ייצור‪)..,‬‬
‫– תדירות בינונית‪ ,‬בעל פרוט בינוני בטווח קצר‬
‫• תכנון אסטרטגי‪:‬‬
‫– נקבע הכיוון שאליו מתקדם הארגון וכולל את המשימות‬
‫הארגוניות ואת האסטרטגיות והתוכניות לביצוען‬
‫– נדרש מידע שברובו מגיע ממקורות חיצוניים‪ ,‬בעל פרוט נמוך‪,‬‬
‫בתחום רחב ולטווח ארוך‬
‫– תדירות השימוש במידע נמוכה‬
‫‪18‬‬
‫מחזור חיי פיתוח מובנה‬
‫‪SDLC – Structured Development Life Cycle‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫פיתוח מערכת תכנה הוא תהליך רב שלבי‬
‫בכל שלב מבצעים אנשי פיתוח חלק מתהליך הפיתוח‬
‫תוך שימוש בשיטות‪ ,‬טכניקות ובכלים המתאימים לאותו‬
‫שלב‪ ,‬ומפיקים תוצרי בינים שישמשו לשלב הבא‬
‫משתמשים במונח ‪ SDLC‬על מנת להדגיש שהפיתוח‬
‫נעשה בשלבים מוגדרים‬
‫על אף ההבדלים הקיימים בהגדרות של שלבי הפיתוח‬
‫אפשר להבחין בכמה שלבים עיקריים שלגביהם יש‬
‫הסכמה‪:‬‬
‫הגדרה‪ ,‬בנייה‪ ,‬יישום‪ ,‬ותפעול‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪19‬‬
‫‪SDLC‬‬
‫‪ .8‬תחזוקה‪ ,‬בקרה וסיום‬
‫תפעול‬
‫‪ .7‬הדרכה והטמעה‬
‫הטמעה‬
‫‪ .6‬יישום המערכת‬
‫בנייה‬
‫‪ .5‬עיצוב המערכת‬
‫‪ .4‬אפיון המערכת‬
‫‪ .3‬הגדרת דרישות וחקר ישימות‬
‫‪ .2‬איסוף נתונים וחקר מצב קיים‬
‫הגדרה (ניתוח‬
‫ואפיון)‬
‫‪ .1‬ייזום המערכת‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪20‬‬
‫‪ .1‬ייזום המערכת‬
‫• מטרה‬
‫– סקר ראשוני‬
‫• פעולות‬
‫– זיהוי הבעיה‪/‬צורך‬
‫– זיהוי גבולות המערכת‬
‫– זיהוי נפח הנתונים והמקורות שלהם‬
‫• תוצרים‬
‫– מסמך ייזום‬
‫• מבצעים‬
‫– משתמש‪/‬לקוח‬
‫– אופציונאלי‪ :‬מנתח מערכות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪21‬‬
‫‪ .2‬איסוף נתונים וחקר מצב קיים‬
‫• מטרה‬
‫– למידת מצב קיים ואיתור הבעיות וצורכי המידע הנוספים‬
‫• פעולות‬
‫– איסוף נתונים‪ :‬הארגון‪ ,‬הדרישות‪ ,‬האילוצים‪ ,‬הביצועים נדרשים‪ ,‬הסביבה‪...‬‬
‫– ניתוח ותיעוד מצב קיים‪ ,‬זיהוי בעיות במצב קיים‪ ,‬הגדרת אילוצים‬
‫וסיכונים‪....‬‬
‫• תוצרים‬
‫– סיכומי ראיונות ותצפיות‪ ,‬הקלטות‪ ,‬שאלונים ממולאים‪ ,‬מסמכים מהארגון‬
‫– מסמך חקר מצב קיים‪ :‬תיאור כללי של הארגון וסביבתו‪ ,‬מערכות קיימות‪,‬‬
‫משתמשים‪ ,‬תהליכים‪ ,‬בעיות‪...‬‬
‫• מבצעים‬
‫– משתמש‪/‬לקוח‬
‫– מנתח מערכות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪22‬‬
‫‪ .3‬הגדרת דרישות וחקר ישימות‬
‫• מטרה‬
‫– זיהוי הדרישות ובדיקת ישימות המערכת‬
‫• פעולות‬
‫–‬
‫–‬
‫–‬
‫–‬
‫הגדרת הדרישות מהמערכת‬
‫זיהוי דרישות חסרות‪ ,‬קונפליקטים‪ ,‬ויתירות‬
‫הגדרת סדר עדיפויות‬
‫הערכת חלופות וישימות המערכת‬
‫• בחינת ובחירת דרך פעולה‬
‫• תוצר‬
‫– מסמך דרישות (‪) ?Request For Proposal‬‬
‫– דוח ישימות (‪) ?Request For information‬‬
‫• מבצעים‬
‫– מנתח מערכות‬
‫– משתמש‪/‬לקוח‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪23‬‬
‫‪ .4‬אפיון המערכת‬
‫• מטרה‬
‫– אפיון מפורט‬
‫• פעולות‬
‫– הגדרה מפורטת ומדויקת של הפונקציות שתבצע המערכת‬
‫– תהליכי עבודה ואפיון לוגי‬
‫• תוצרים‬
‫– מפרט המערכת (מסמך אפיון)‬
‫– ‪?Request For Proposal‬‬
‫– אופציונאלי ‪ :‬אב טיפוס‬
‫• מבצעים‬
‫– מנתח מערכות‬
‫– משתמש‪/‬לקוח (לקבלת משוב)‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪24‬‬
‫‪ .5‬עיצוב המערכת‬
‫• מטרה‬
‫– עיצוב )‪ (design‬התוכנה‬
‫• פעולות‬
‫– הגדרה של רכיבי המערכת‪ ,‬ממשקים וטיפוסי הנתונים‬
‫– הגדרה של פונקציונאליות הרכיבים והאלגוריתמים‬
‫• תוצרים‬
‫– מסמך עיצוב (‪ – )Design‬כולל ארכיטקטורה פיזית‪ ,‬ממשקים‪ ,‬מבני נתונים‪,‬‬
‫אלגוריתמים‬
‫– תוכנית בדיקות‬
‫• מבצעים‬
‫– מעצב בסיס הנתונים‬
‫– מעצב ממשקים ומסכים‬
‫– מעצב תוכניות (ארכיטקט תוכנה)‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪25‬‬
‫‪ .6‬יישום המערכת‬
‫• מטרה‬
‫– תכנות המערכת ובדיקתה‬
‫• פעולות‬
‫– כתיבת קוד‪ ,‬קומפילציה‪ ,‬קישור תוכניות וכ"ב‬
‫– אימות (‪ - )Verification‬בדיקה שהתכנה מבצעת את מה שהיא תוכננה‬
‫לבצע‬
‫– תיקוף (‪ - )Validation‬בדיקה שהתכנה עונה על‬
‫הדרישות מהמערכת‬
‫• תוצרים‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫קוד של התוכנה‬
‫תוכניות שירות‬
‫קבצים להרצה‬
‫קבצים לבדיקות‬
‫תיעוד‬
‫• מבצעים‬
‫– תוכניתן‪/‬תכנת‬
‫– איש בקרת איכות (‪)QA‬‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪26‬‬
‫‪ .7‬הדרכה והטמעה‬
‫• מטרה‬
‫– הטמעת המערכת בארגון‬
‫• פעולות‬
‫– הדרכה‬
‫– כתיבת נהלים‪ ,‬והסבת קבצים‬
‫– בדיקות קבלה‬
‫• תוצרים‬
‫– מערכת מידע עובדת‬
‫– חוברות הדרכה‪ ,‬קורסים‬
‫• מבצעים‬
‫–‬
‫–‬
‫–‬
‫–‬
‫איש הדרכה‬
‫מפעיל‬
‫משתמש‪/‬לקוח‬
‫אנשי הפיתוח‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪27‬‬
‫‪ .8‬תחזוקה‪ ,‬בקרה וסיום‬
‫• מטרה‬
‫– לאפשר למערכת לעבוד ולשרת את המשתמשים‬
‫• פעולות‬
‫–‬
‫–‬
‫–‬
‫–‬
‫תפעול המערכת‬
‫טיפול בשינויים‬
‫תחזוקה‬
‫בקרת מערכת‬
‫• תוצרים‬
‫• מבצעים‬
‫– מפעיל‬
‫– משתמש‬
‫– אנשי הפיתוח לפי הצורך‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪28‬‬
‫חסרונות ‪SDLC‬‬
‫• זמן פיתוח ארוך‬
‫• ראייה סדרתית של תהליך הפיתוח‬
‫• נתק מסוים בין המפתחים למשתמשים‬
‫• מערכת המידע מתקבלת בסוף תהליך הפיתוח‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪29‬‬
‫גישת "בנה ותקן"‬
‫בנה מוצר‬
‫ראשוני‬
‫עדכן עד שהלקוח‬
‫מרוצה‬
‫שימוש במערכת‬
‫פרישה‬
‫פיתוח‬
‫תחזוקה‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪30‬‬
‫גישת "בנה ותקן" ‪ -‬תכונות‬
‫• יתרונות‬
‫– מנקודת מבט של המשתמשים‪ :‬הם מקבלים מ"מ עובדת בשלב‬
‫מוקדם‬
‫– מנקודת מבט של המתכנתים‪:‬הם מעדיפים לתכנת ולתקן‬
‫שגיאות תוכנה ולא לעסוק בתכנון וניתוח מערכת‪.‬‬
‫• חסרונות‬
‫– אין מפרט‬
‫– אין תכן‬
‫יעיל בכתיבת‬
‫תוכניות קטנות‬
‫• לכל תוכנה בגודל סביר נדרשים‪ ,‬לפחות‪:‬‬
‫– תכנית פעולה ("‪)"game plan‬‬
‫– שלבים בפיתוח‬
‫– אבני‪-‬דרך (‪)milestones‬‬
‫‪31‬‬
‫מודל "מפל המים"‬
‫‪Royce, 1970‬‬
‫דרישות‬
‫אימות‬
‫ניתוח‬
‫אימות‬
‫פיתוח‬
‫פיתוח תחת תקלה‬
‫תחזוקה‬
‫תיכון‬
‫אימות‬
‫יישום‬
‫אימות‬
‫אינטגרציה‬
‫אימות‬
‫מצב תפעולי‬
‫פרישה‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪32‬‬
‫מודל "מפל המים" ‪ -‬תכונות‬
‫• "חוגי משוב" בין שלבים עוקבים‬
‫• תהליך מונחה‪-‬תיעוד‪:‬‬
‫– המעבר לשלב הבא מותנה (ותלוי!) בתיעוד השלב הקודם‬
‫• יתרונות‬
‫– תהליך מתועד‬
‫– אחזקה קלה יותר‬
‫• חסרונות‬
‫– פורמאליות‪-‬יתר (המוצר מאופיין אך ורק באמצעות התיעוד)‬
‫– הארכת זמן הפיתוח (לעתים שנים אחדות)‬
‫• עלות פיתוח גבוהה‬
‫• חריגות בתקציב‬
‫• שינויים בדרישות המשתמשים במהלך הפיתוח והיווצרות נתק‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪33‬‬
‫גישת "אב‪-‬טיפוס"‬
‫זיהוי ראשוני של‬
‫דרישות משתמשים‬
‫פיתוח אב‪-‬טיפוס‬
‫שימוש באב‪-‬טיפוס‬
‫והערכתו‬
‫שיפור האב‪-‬טיפוס‬
‫האם האב טיפוס‬
‫מספק?‬
‫לא‬
‫כן‬
‫המשך תהליך הפיתוח‬
‫לפי שלבי מחזור החיים‬
‫‪34‬‬
‫גישת "אב‪-‬טיפוס" ‪ -‬תכונות‬
‫אב‪-‬טיפוס לזריקה‬
‫אב‪-‬טיפוס מתפתח‬
‫• אב‪-‬טיפוס נועד להדגים‬
‫את המוצר הסופי ולא‬
‫לממש אותו‪:‬‬
‫– אין להפוך אב‪-‬טיפוס‬
‫למוצר!‬
‫– אב‪-‬טיפוס יכול לשמש‬
‫כמפרט‪ ,‬אבל לא כתכן!‬
‫– עדכן‪ ,‬שנה‪ ,‬בדוק ‪ -‬אבל‬
‫בסוף השלך לפח!‬
‫• מפתחים סידרת אבי‬
‫טיפוס‬
‫• אב טיפוס ממוצע יעבור ‪4‬‬
‫עד ‪ 6‬איטרציות עם‬
‫המשתמשים‬
‫• אב‪-‬הטיפוס הסופי הוא‬
‫המערכת הדרושה!‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪35‬‬
‫מודל אינקרמנטלי א'‬
‫דרישות‬
‫אימות‬
‫תכן מפורט‬
‫ניתוח ואפיון‬
‫אימות‬
‫פיתוח‬
‫תחזוקה‬
‫הנדסת‬
‫מערכת‬
‫ארכיטקטורה‬
‫אימות‬
‫מבנה‪i‬‬
‫הקמתמבנה‬
‫הקמת‬
‫‪i‬‬
‫הקמת מבנה ‪i‬‬
‫מימוש‬
‫שילוב‬
‫בדיקות‬
‫מסירה‬
‫מצב תפעולי‬
‫פרישה‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪36‬‬
‫מודל אינקרמנטלי ב'‬
‫מבנה ‪1‬‬
‫מבנה ‪2‬‬
‫אפיון‬
‫אפיון‬
‫תכן‬
‫מבנה ‪n‬‬
‫אפיון‬
‫תכן‬
‫מימוש‬
‫תכן‬
‫מימוש‬
‫שילוב‬
‫מסירה‬
‫שילוב‬
‫מסירה‬
‫מימוש‬
‫שילוב‬
‫מסירה‬
‫קבוצת אפיון‬
‫קבוצת תכן‬
‫קבוצת מימוש‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪37‬‬
‫תכנות קיצוני‬
‫)‪(Extreme Programming‬‬
‫• עבודת צוות‬
‫– צוות הפרויקט יושב יחד‪ ,‬אחד מהצוות הוא נציג הלקוח‪.‬‬
‫• משחק תכנון‬
‫– תכנון גרסאות ( אחת ל ‪ 4-6‬חודשים)‬
‫– תכנון איטרציות ( אחת ל ‪ 3-4‬שבועות)‬
‫• שחרור גרסאות קטנות‬
‫• עבודה בזוגות‬
‫• פיתוח מונחה‪-‬בדיקות‬
‫• שיפור עיצוב כחלק אינטגראלי של עבודת הפיתוח‬
‫• הקוד שייך לצוות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪38‬‬
‫גישות לפיתוח מערכות תכנה‬
‫• גישה פונקציונלית‬
DFD (Data Flow Diagram) –
ADDISA (Architectural Design of Information –
Systems based on Structured Analysis
‫• גישה מבנית‬
ERD (Entity-Relationship Diagram) :‫– רלציונית‬
UML (Unified Modeling Language) :‫– מכוונת עצמים‬
‫מבנית‬-‫• גישה פונקציונלית‬
FOOM (Functional Object-Oriented Methodology) –
OPM (Object-Process Methodology) –
39
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫סוגי מערכות מידע‬
‫מערכת עיבוד עסקאות ‪TPS -‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫עסקה ‪ -‬כל פעולה המשנה את המצב של הארגון‬
‫העסקות מהוות את המרכיב הבסיסי של הפעילות‬
‫הארגונית‬
‫תזרים עסקאות בארגון כולל‪ :‬אישור‪ ,‬ביצוע‪ ,‬רישום‬
‫ואחריות לנכסים (ערכים)‬
‫העסקה הממוחשבת נקראת תנועה ונועדה לשמש כלי‬
‫אמין לרישום הפעולות העסקיות במערכות המחשוב‬
‫תנועה היא יחידת עבודה‪/‬ביצוע בלתי נחלקת‪,‬‬
‫הגורמת לרישום נתונים במאגרים‪ ,‬אשר יכולה‬
‫להסתיים רק בהצלחה מלאה או בכישלון מלא‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪40‬‬
‫סוגי מערכות מידע‬
‫מערכת עיבוד עסקאות (המשך)‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫המערכת אוספת‪ ,‬מצרפת‪ ,‬מפצלת ומעבדת נתונים‬
‫יומיומיים שיוצרים את הבסיס להערכת הפעילות של‬
‫הארגון‬
‫המערכת מונעת ע"י התרחשות של אירועים המשנים את‬
‫מצב הארגון‪ .‬דוגמאות‪ :‬הזמנת מוצר‪ ,‬קבלת משלוח ח"ג‪,‬‬
‫הספקת מוצר‬
‫המערכת מתוכננת לעקוב אחר זרימת העסקאות בארגון‪.‬‬
‫המערכת מטפלת בבעיות שהן לרוב מובנות ומטופלות‬
‫בפרקי זמן קצרים‬
‫הפלט של מערכת ה ‪ TPS‬הנו בד"כ קריטי לקיום הארגון‬
‫ה ‪ TPS‬הנה הבסיס למערכות המידע הארגוניות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪41‬‬
‫סוגי מערכות מידע‬
‫מערכות תומכות ניהול ‪MSS -‬‬
‫• המערכת תומכת בבקרה על הפעילויות הארגוניות‬
‫• הנתונים למערכת נאספים ברובם במערכת עיבוד‬
‫התנועות (‪)TPS‬‬
‫– לדוגמא – נתוני מספרי הפגמים שמיצר כל עובד משמשים‬
‫לקביעת תוכנית הדרכה לעובדים‬
‫• דו"חות אופייניים‪ :‬מוצרים שיש לספקם בתקופה נתונה‪,‬‬
‫השקעות משאבים במוצרים‪ ,‬מספר תקלות במוצרים‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪42‬‬
‫סוגי מערכות מידע‬
‫מערכות תומכות החלטה ‪DSS -‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫המערכת משמשת כלי עזר לתכנון‬
‫המערכת מטפלת בבעיות שהן ברובן מובנות‬
‫למחצה ולכן היא בוחנת לעיתים קרובות את‬
‫ההשלכות של החלטות ניהוליות על מצב הארגון‬
‫(‪)what if‬‬
‫המערכת מצטיינת במנשק משתמש ידידותי‬
‫במיוחד המאפשר הפעלה פשוטה ע"י מנהלים‬
‫מסד הנתונים של המערכת הנו בד"כ בעל אופי‬
‫אינטגרטיבי והוא נגזר ומסוכם ממערכות ה‪TPS-‬‬
‫של הארגון וממערכות חיצוניות נוספות‬
‫ניתוח מערכות מידע ומבוא להנדסת תכנה‬
‫‪43‬‬