Table of Contents
תפקידה של אספקת התוכנה המודרנית ל-Moderting Legacy בחברות הנדסה
בעולם המתפתח במהירות של הנדסה, תוכנה ממלאת תפקיד יסוד בעיצוב, ניתוח וניהול פרויקטים מורכבים.מניתוח מבני וגורם סופי מודלים ל- CAD / CAM ופלטפורמות ניהול פרויקטים, חברות הנדסה מסתמכות על תוכנה מיוחדת כדי לספק תוצאות מדויקות על לוחות זמנים הדוקים.אבל רבים מהחברות האלה עדיין תלויים במערכות מורשת - קודים שנכתבו לפני עשרות שנים בשפות כמו פורטרן, BO, מוקדם יותר, ו- ++F, לעתים קרובות, כדי לשמור על יעילות מערכת אבטחה מודרנית ותפקודים.
מה זה Refactoring?
(ה) [ה]ההבנה של קוד מחשב קיים, ללא שינוי התנהגותו הבלתי ניתנת לערעור:2 Martin Fowler מגדירה את זה מחדש של גישה מבוססת-הקודש הקיימת, מבלי לשנות את התנהגותה הבלתי-נראית:2 Martin Fowler מגדירה את זה FLT:3, ומספקת מחדש "טכניקה מבוקרת לשיפור העיצוב של בסיס קוד קיים" (השאיפה של מערכת ניהולית חדשה יותר, ליתר דיוק, של שיפור של שיפור של מערכת ניהולית) יעילה יותר, תוך שיפור של מערכת הפעלה מחדש, אך יעילה יותר, היא שיפור תפקוד מחדש, אך יעילה יותר, כלומר: 4.
שינוי שונה מ"כתב" או "התאוששות" בכך שהיא מצטברת.במקום למחוק את המערכת הישנה ולבנות חדש מאפס (שנושא סיכון עצום ועלויות), ומספקת מחדש סדרה של שינויים קטנים, ראויים להתנהגות.כל צעד מאומת על ידי בדיקות ריצה, ולהבטיח כי ההתנהגות החיצונית של המערכת תישאר ללא שינוי לאורך זמן, לצבור צעדים קטנים לשיפור קוד משופר באופן משמעותי.
החשיבות של הגשמה במודרניזציה
התוכנה מורשת מודרנית אינה אופציונלית עבור חברות הנדסה שרוצים להישאר תחרותית. דרישות רישום, ציפיות הלקוח לשיתוף פעולה דיגיטלי, ואת העלייה של FLT:0BIMigFLT:1 (בניית מודלing מידע) ו- FLT:2דיגיטליות תאוםFLT 3: טכנולוגיות דורשות פלטפורמות שהן מודולריות, מדרגיות וקלות לעדכן באופן ישיר את המטרות האלה באמצעות מספר יתרונות עיקריים:
שמירה על יכולת
קוד מורשת מאופיין לעתים קרובות על ידי מבנים "ספגטי", לוגיקה משוכפלת, ומוסכמות שמות עניים.מספק ניקוי המבנה הפנימי - הפעלת שיטות ניתנות להחלפה, שוברים פונקציות מונוליטיות גדולות לקטנים יותר, וחיסול קוד מת.זה הופך הרבה יותר קל עבור מפתחי ההווה והעתיד להבין את המערכת, לתקן, להוסיף יכולות חדשות.
שיפור ביצועים
מערכות מורשת רבות נכתבו כאשר מגבלות חומרה היו שונות מאוד.הספק יכול להחליף אלגוריתמים לא יעילים, אופטימיזציה שאילתות מסד נתונים, וחיסול פעולות IO מיותרות.לדוגמה, מפתר מספרי מספרי מספרי מספרי מספרי המספריים מבוסס פורטרן עשוי להיות מספק כדי לנצל את ספריות העיבוד המקבילות המודרניות (למשל, OpenMP או CUDA), צמצום דרמטי של ביצועים בהנדסת תוכנה יכול לתרגם ישירות לתבניות מהירות יותר ולהפחית את הזמן לשוק.
שילוב
מערכות אקולוגיות הנדסיות מודרניות מסתמכות על ממשקי API, מיקרו-שירותים וכלים מבוססי ענן.יישומים מונוליטיים של Legacy לעיתים קרובות חסרים ממשקים נקיים, מה שהופך את השילוב עם מערכות מודרניות כואבות ומחכמות.הספק יכול להציג גבולות מוגדרים היטב, פורטלים RESTful Endpoints, או תורי הודעות IoT, המאפשר למערכת המורשת להשתתף בארכיטקטורה מודרנית של IT.זה קריטי עבור חברות צריכות לחבר את הכלים שלהן עם מערכות ERP, או נתונים, או מחשבים.
צמצום הסיכונים והעלויות
תוכנה שאינה נשמרת מצטברת באגים ופגיעות אבטחה.הפחתת הסיכון לכשלים קטסטרופליים על ידי הפיכת בסיס הקוד לפשוט יותר וטעייה פחות.יתר על כן, היא מורידה את העלות הכוללת של בעלות על פני זמן: כל שיפור קטן מקטין את החיכוך של שינויים עתידיים, כך העלות השולית של הוספת תכונות מופחתות.
ניהול החוב הטכני
החוב הטכני הוא מטאפורה שטבעה במקור על ידי וורד Cunningham: נטילת קיצור דרך בקוד עכשיו עולה "אינטרס" בצורה של מאמץ תחזוקה נוסף מאוחר יותר.הפצה היא הדרך העיקרית לשלם את החוב הטכני.עבור חברות הנדסה, שבו תוכנה היא לעתים קרובות קריטי משימה ויש לו תוחלת חיים ארוכה, מתעלם החוב הטכני מוביל ל"ספירלה מוות" שבו המערכת הופכת כל כך לערעור כי אפילו שינויים קטנים, תחת שליטה על החוב הרגיל.
צעדים בתהליך ה-Refactoring
הגשמה יעילה אינה מודגשת; היא באה בעקבות גישה שיטתית שמשנה שיפור עם רציפות מבצעית.חברות הנדסה צריכות לאמץ מתודולוגיה שלב הכוללת הערכה, תכנון, פיצוי, בדיקות, פריסה זהירה.
הערכה וזיהוי ריח
הצעד הראשון הוא להבין את המצב הנוכחי של בסיס הקוד.זה כרוך בניתוח האדריכלות, זיהוי מודולים שהם בעייתיים ביותר, וקטלוג:0code SmellsFLT:1 -symptoms של בעיות עיצוב עמוקות יותר. ריחות נפוצים בתוכנה הנדסית כוללים גם FLT:2god ClassFLT 3 (של שיעורים מורכבים אשר מנסים לעשות), רשימות ארוכות, כגון חלקי תמיכה מאוישים, או פרמטרים, לעתים קרובות, כלומר, או כלי תמיכה אוטומטית, אשר ניתן לבחון את כל כך, כגון כלי תמיכה).
2 תכנון ועדיפות
לא כל שיפור הוא שווה ערך.הצוות חייב לפתח אסטרטגיה הממזערת את השיבוש בפרויקטים הנדסיים מתמשכים.לדמיין אזורים בסיכון גבוה, גבוה-אימפריאלקט הראשון - לדוגמה, מודולים שלעתים קרובות גורמים לתאונות או לחסום אינטגרציה עם כלים חדשים. ליצור מפת דרכים שרצף של פעולות להגדלת נתחים קטנים, ניהוליים, כל אחד עם קריטריונים להצלחה ברורה.
3.הספק של בדיקה אוטומטית
זה המקום שבו הקוד בפועל מחדש של תהליך זה, כל שינוי צריך להיות קטן, התנהגות ראוי שינוי - שינוי שינוי, תמצית שיטות, או החלפת תנאים עם פולימורפיזם.המפתח הוא להיות חבילת בדיקה מקיפה במקום לפני תחילתו. במערכות מורשת רבות, בדיקות הן לא מספיקות או לא קיימות.במקרה זה, השלבים הראשונים של שינוי צריך להיות להציג את הקטלוג המלאכה: LTacteration יכול לבצע באופן אוטומטי כדי ליישב שינויים משמעותיים (ת) אם לבצע בדיקות הפעלה מחדש של פעולה אחת, אז, אם כך לא קיימות או לא קיימות.
בדיקה רציפה ואימות
לאחר כל שינוי, הפעלת חבילת המבחן המלאה כדי לאשר כי ההתנהגות של המערכת אינה משתנה.עבור תוכנה הנדסית, זה אומר לא רק בדיקות יחידה אלא גם בדיקות אינטגרציה ואימות נגד זוגות קלט / ⁇ ידועים (למשל, חישובים מבניים כי חייב להתאים ערכי הלחץ הצפויים) FLT:0Continentאינטגרציה אינטגרציה FLT:1 (CI) יכול להתאים את זה, הפעלת כל מטרה שהיא תוקפת באופן מיידי, כי אין שינוי קריטי יותר, כי אין צורך לבצע בדיקה עסקית.
5.הפצה ו- Rollout
לאחר מודול מספק עבר את כל הבדיקות, יש לשלב את זה במערכת חיים. השתמש אסטרטגיות פריסה כמו משחררים צנריים או פריסות כחול / ירוק כדי למזער את הסיכון. בחברות הנדסה, שבו זמן למטה יכול להוביל מועדים פספס, לעתים קרובות עדיף לגלגל שינויים במהלך חלונות תחזוקה מתוכנן. לשמור על היכולת לגלול בחזרה לגרסה הקודמת במהירות.
אתגרים וכיצד להתגבר עליהם
מתן תוכנה הנדסית מורשת לעולם לא קל.חברות להתמודד עם כמה מכשולים נפוצים שיש לטפל בהם כדי להצליח.
חוסר בדיקות ותיעוד
רבים קוד מורשת בסיסי יש כמה, אם בכלל, בדיקות אוטומטיות, ותיעוד הוא לעתים קרובות מיושן או חסר.זה עושה את זה קשה לוודא כי סיפוק לא השתנה התנהגות ללא בדיקות, מפתחים חייבים להסתמך על בדיקות ידניות, שהוא זמן-consuming ו-prone-prone.FLT:0Solution: צוות 1 החל על ידי כתיבת בדיקות אופי כי ללכוד את התפוקה הנוכחית עבור רשומות דיבידנדים כגון: "תיקים" (reatives) אשר יהיה גם כן," בדיקות התפלגות" התפלגות ה-upited.
התנגדות מקבוצת ההנדסה
חלק מהצוותים אינם מעוניינים לשנות כיוון שהם רואים את זה כ"כתב" או חוששים להציג חוסר יציבות.יש גם "תמיד עשינו את זה ככה" חשיבה:0 Solution:FLT:1 לחנך את הצוות על היתרונות של שינוי ושילובם בתהליך התכנון.
לחץ זמן ולחצים
חברות הנדסה פועלות על מועדי הפרויקט הדוקים.הספק יכול להרגיש כמו הסחת דעת מאספקת תכונות חדשות.עם זאת, התעלמות החוב הטכני בסופו של דבר מאטה את הפיתוח של תכונה.FLT:0.0.Solution: FigFLT:1 השתמש ב"כלל הצופים של הילד": להשאיר את הקוד קצת יותר נקי ממה שמצאת אותו. אפילו 15 דקות של תגמול ליום מוסיף לוח זמנים ייעודי או "לפתור" ימים" לחץ על ההשפעה הטכנית מופחתת יותר.
תלות ב Obsolete Technologies
(הקוד של מורשת עשוי להסתמך על ספריות ישנות, מסגרות או אפילו מערכות הפעלה שאינן נתמכות עוד.הספק בתוך מגבלות כאלה יכול להיות קשה.FLT:0Solution:veF1: 1LT:1 Isolate את התלויות המורשת מאחורי שכבות מופשטות (למשל, ליצור ממשק עבור מסד נתונים או צד שלישי DLL).
סיכון להצגת באגים
גם עם בדיקות, תגמול יכול להציג באגים עדינים, במיוחד באלגוריתמים מספריים שבהם נושאים מדויקים צפים-נקודותיים.FLT:0Solution: irFLT:1 השתמש בתכנות זוג עבור השיפוץ הקריטי ביותר. Run בדיקות רגרסציה ארוכות טווח על נתונים מרובים.
הפרקטיקה הטובה ביותר לשיפוץ מוצלח
כדי למקסם את היתרונות ולמזער את הסיכונים, חברות הנדסה צריך לאמץ את התרגילים הטובים הבאים.
- (FLT:0) ניסויים אוטומטיים תחילה.FLT:1 לפני כל פיצוי, לבנות חבילת בדיקה מקיפה המכסה את הליבה של לוגיקה עסקית. השתמש בפיתוח מונחה מבחן בעת כתיבת קוד חדש.
- (FLT:0) שיפור בצעדים קטנים, הפיכה מחדש; כל שינוי צריך להיות אטומי ותפקודי-היתר. Commit לעתים קרובות, ולהשתמש הודעות מביצועים תיאוריים כך שתוכל לעקוב אחר הסיבה לשינוי נעשה.
- (FLT:0) גרסה שליטה ביעילות.FLT:1 הזרוע עבור מאמצים מספקים, להתמזג לעתים קרובות כדי למנוע ענפים ארוכים, אשר הופכים קשים להשתלב.
- (FLT:0) ,Maintain תיעוד מקיף.FLT:1 בעוד הקוד משתפר, לעדכן דיאגרמות אדריכליות, קבצי WANME ו- API docs.זה עוזר לחברי צוות חדשים להבין את המערכת ומפחית את עקומת הלמידה.
- (FLT:0Engage מנוסים מפתחים.FLT:1) קוד מורשת דורש הבנה עמוקה של תבניות התחום ועיצוב התוכנה. pair זוטר מפתחים עם מהנדסים בכירים שיש להם ניסיון עם מערכת המורשת.
- (FLT:0) כלי תגמול אוטומטיים.FIRLT:1 , IDEs מודרניים מציעים תכונות רבות של סיפוק אוטומטי (למשל, תמצית שיטת, שם מחדש). השתמש בהם כדי להפחית שגיאות ידניות ולהגביר את התהליך.
- (FLT:0)Measure Progress.FLT:1 , Track metrics כגון מורכבות מחזורית, כיסוי קוד, בניית זמן, צפיפות פגומה.
- (FLT:0) אלרגי עם מטרות עסקיות.FLT:1u, מספק תוצאות עסקיות קונקרטיות: משלוח תכונה מהירה יותר, פחות מ בחוץ, עמידה קלה יותר עם תקנות חדשות.
מסקנה
(FLT:0) מספקת מערכות אינה פרויקט חד פעמי – זהו משמעת מתמשכת של מפתח ו-Auto1 עבור חברות הנדסה שתלויות בתוכנה מורשת, מתן מחדש מציע את הדרך הפרגמטית ביותר למודרניזציה.הוא מקטין את החוב הטכני, משפר את הביצועים והתחזוקה של החברה, ומסלול את הדרך לשילוב עם פלטפורמות מודרניות כגון מחשוב ענן, IoT, סימולציה בעלת ערך על ידי תהליך שיטתי, תוך מיפוי מהיר של נכסים טכניים, תוך שמירה עלות, וקידום עצמי, תוך שמירה על איכות גבוהה יותר, תוך שמירה על עצמה, תוך כדי שיפור איכות גבוהה יותר, וחדשנות גבוהה יותר, תוך כדי שיפור איכות גבוהה יותר, וחדשנות יעילה יותר, מאשר שיפור איכות גבוהה יותר, תוך כדי שיפור איכות גבוהה יותר של נכסים מתקדמת של נכסים מתקדמים, מאשר שיפור עצמי.