يحتوي مجلس مراجعة البنية على رسم بياني للشبكة. تم إنشاؤه من قاعدة بيانات إدارة التكوين (CMDB) قبل ثمانية عشر شهرًا، وتم تحديثه يدويًا ثلاث مرات منذ ذلك الحين، ويُظهر الآن 847 عقدة و2,200 حافة في تخطيط موجه بالقوة حيث تتداخل كل عقدة مع كل عقدة أخرى ولا يظهر أي نمط مفيد عند أي مستوى تكبير. الرسم البياني موجود، لكنه لا يُوصل أي رسالة. يقوم أحدهم بتصديره إلى Visio كل ثلاثة أشهر، وتستغرق عملية التصدير أربعين دقيقة، ثم تُرسل النتيجة إلى مجلد حيث تبقى بجانب عمليات التصدير السبع السابقة التي لا يفتحها أحد. المحفظة غير موثقة ليس لأن أحدًا لم يرسم الرسم البياني، بل لأن الرسم البياني الذي لا يمكن لأحد قراءته يُعادل وظيفيًا عدم وجود رسم بياني على الإطلاق.
تُعدّ عجلة التبعية، وهي مخطط دائري يُرتب التطبيقات أو البرامج على محيط حلقة، وتُرسم التبعيات كأقواس تربطها عبر مركزها، حلاً لمشكلة محددة تعجز عنها الرسوم البيانية الموجهة بالقوة، والأشجار الهرمية، ومصفوفات التبعية: وهي إظهار بنية التبعية الكاملة لمحفظة كبيرة دفعة واحدة، بتنسيق يجعل كثافة الترابط، والعلاقات ثنائية الاتجاه، والمكونات ذات التداخل العالي مرئية فورًا كأنماط بصرية، دون الحاجة إلى التنقل أو التصفية أو الفحص اليدوي. على مستوى المحفظة، تُعتبر العجلة هي المخطط الذي يُقرأ فعليًا، وليس المخطط الكامل تقنيًا.
قم ببناء بيانات العجلة أولاً
SMART TS XLيُعد مخطط التبعية الخاص بـ 's الأساس الهيكلي لتصورات عجلة التبعية التي يمكن لمجالس مراجعة الهندسة المعمارية قراءتها بالفعل.
إعرف المزيد…ما هي عجلة التبعية، وما ليست عليه
عجلة التبعية (وتسمى أيضًا مخطط الوتر، أو مخطط القوس، أو تصور التبعية الدائرية) هي طريقة لتخطيط الرسم البياني حيث:
- العقد (التطبيقات، أو البرامج، أو الخدمات، أو المكونات) مرتبة حول محيط دائرة
- حواف يتم رسم (التبعيات) كأقواس منحنية عبر الجزء الداخلي من الدائرة، تربط بين العقدتين اللتين تربطهما روابط التبعية.
- عرض القوس يرمز إلى قوة الترابط، فالقوس الأكثر سمكًا بين عقدتين يشير إلى تبعية أقوى (المزيد من استدعاءات الوظائف، المزيد من تدفق البيانات، المزيد من المكونات المشتركة).
- اتجاه القوس يرمز إلى اتجاه التبعية، حيث ينشأ القوس من العقدة التابعة وينتهي عند التبعية.
والنتيجة هي مخطط يُظهر بنية الترابط للمحفظة بأكملها في آنٍ واحد. تظهر العُقد ذات التفرعات الكثيرة، وهي البنية التحتية المشتركة التي تعتمد عليها العديد من التطبيقات، بأقواس عديدة تتقارب على جزء صغير من المحيط. تظهر المجموعات المعزولة كمجموعات من العُقد التي تبقى أقواسها ضمن منطقة محلية من الدائرة. تظهر التبعيات الدائرية كأقواس ثنائية الاتجاه بين أزواج العُقد أو كحلقات أقواس مغلقة.
ما لا يُعدّ عجلة التبعية:
ليس رسمًا بيانيًا شبكيًا. الرسم البياني الشبكي الموجه بالقوة يحدد مواقع العقد بناءً على فيزياء قوة الزنبرك. وهو مناسب للرسوم البيانية الصغيرة (أقل من 100 عقدة) وغير مناسب للرسوم البيانية الكبيرة، حيث يؤدي تداخل العقد إلى إخفاء الأنماط. أما تنسيق العجلة فيثبت مواقع العقد على المحيط، مانعًا التداخل بغض النظر عن حجم الرسم البياني.
ليست مصفوفة تبعية. مصفوفة بنية التبعية (DSM) تُشفّر المعلومات نفسها في شكل جدول، حيث تمثل الصفوف والأعمدة المكونات، وتمثل الخلايا التبعيات. المصفوفة دقيقة وقابلة للفرز، لكنها ليست سهلة القراءة: فتمييز الأنماط من مصفوفة 500×500 يتطلب تدريبًا لا يتطلبه تمييز الأنماط من عجلة.
ليست شجرة هرمية. تُظهر تخطيطات الشجرة علاقات الأصل والفرع، لكنها لا تستطيع تمثيل التبعيات بين الفروع دون إحداث فوضى بصرية. تحتوي محافظ التطبيقات على العديد من التبعيات بين المجالات، مثل خدمة الفوترة التي تعتمد على خدمة المصادقة التي تعتمد بدورها على دليل LDAP الذي تستخدمه إدارة الموارد البشرية أيضًا، وهو ما لا تُمثله الأشجار بشكل جيد.
تكمن ميزة العجلة تحديدًا في الجمع بين الحجم وسهولة القراءة: فهي تستطيع تمثيل مئات العقد وآلاف الحواف في عرض واحد حيث تكون الأنماط المعمارية مرئية مباشرة دون الحاجة إلى التنقل.
لماذا تعمل العجلات بشكل أفضل من الرسوم البيانية الشبكية على نطاق المؤسسات؟
تكمن مشكلة سهولة قراءة مخططات الشبكات على نطاق المؤسسات في الجانب الهندسي، لا الجمالي. فالمخطط الموجه بالقوى، والذي يحتوي على 500 عقدة و3,000 حافة، يفتقر إلى تخطيط مستقر. إذ تُنتج قوى الزنبرك التي تحدد مواقع العقد بالنسبة لجيرانها تخطيطات مختلفة في كل عملية عرض، وذلك تبعًا للشروط الأولية. عند 500 عقدة، يصبح حساب الحد الأدنى لعدد تقاطعات الحواف غير ممكن عمليًا، فتجد خوارزمية التخطيط حدًا أدنى محليًا، وليس الحد الأدنى العالمي. والنتيجة هي مخطط تُخفي فيه قيود خوارزمية التخطيط بنية المخطط.
تتجنب العجلة هذه المشكلة من خلال موازنة مدروسة: فهي تضحي بحرية التخطيط مقابل ثبات الموقع والوضوح البصري. تقع كل عقدة على المحيط. المتغير البصري الوحيد هو القوس، عرضه واتجاهه وانحنائه. هذا القيد، الذي يبدو كقيد، هو ما يجعل العجلة قابلة للقراءة على نطاق واسع.
ثلاث مزايا محددة مقارنةً بمخططات الشبكة على نطاق محفظة المؤسسة:
تظهر كثافة الترابط بوضوح. فالعقدة التي يكون محيطها مليئًا بنقاط بداية أو نهاية الأقواس، حيث تبدأ أو تنتهي العديد من الأقواس عند قوس صغير من الدائرة، تُعتبر عقدة ذات ترابط عالٍ. ولا يتطلب تحديدها أي تنقل. في الرسم البياني الموجه بالقوة، قد تكون العقدة ذات الدرجة العالية متمركزة بصريًا (حيث تجذب التخطيطات الموجهة بالقوة العقد ذات الترابط العالي نحو المركز)، ولكن الدرجة لا تُشفّر في أي خاصية بصرية واضحة للعيان.
يمكن تمييز التبعيات ثنائية الاتجاه. في الرسم البياني الموجه بالقوة ذي الحواف الموجهة، لا يمكن قراءة اتجاه السهم إلا عند تكبير الحواف الفردية. في الرسم الدائري، تظهر التبعيات ثنائية الاتجاه بين عقدتين، حيث تعتمد A على B وتعتمد B أيضًا على A، على شكل قوسين متقاطعين في الداخل، مكونين نمط X مرئيًا عند أي مستوى تكبير. تُشكل التبعيات الدائرية على مستوى التطبيق خطرًا معماريًا كبيرًا؛ فالرسم الدائري يجعلها قابلة للكشف الهيكلي.
تظهر التجمعات بوضوح مكانيًا. فعند فرز العقد حسب المجال أو الفريق أو المنطقة الوظيفية على المحيط، تظهر تجمعات العقد المترابطة بإحكام داخل المجال على شكل أقواس تبقى في منطقة محلية من داخل الدائرة. أما التبعيات بين المجالات فتظهر على شكل أقواس تعبر المركز. وتُعد نسبة الأقواس المحلية إلى الأقواس التي تعبر المركز في أي منطقة مقياسًا بصريًا لتماسك ذلك المجال وارتباطه بالمجالات الأخرى.
كيفية قراءة عجلة التبعية: خمسة أنماط
النمط 1: العقدة المحورية
العقدة التي يمثل جزء محيطها نقطة انطلاق أو وجهة لعدد كبير من الأقواس. في نموذج عجلة المحفظة، تمثل العقد المحورية البنية التحتية المشتركة، وخدمات المصادقة، وقواعد البيانات الأساسية، ومكتبات الأدوات المساعدة، ودفاتر نسخ COBOL المشتركة، والتي تعتمد عليها العديد من المكونات الأخرى.
ما يعنيه ذلك: تُعدّ العقدة المركزية نقطة فشل وحيدة لكل مكون ينتهي عندها بقوس. وهي الهدف ذو الأولوية القصوى للاستثمار في التكرار، والمكون الأكثر خطورة لإدارة التغيير، والمكون الأهم الذي يجب ترحيله بشكل صحيح (وأولاً) في أي تسلسل تحديث.
ما يجب فعله: تحديد العقد المحورية قبل اتخاذ قرارات التحكم في التغيير. يتطلب أي تغيير مقترح على عقدة محورية تحليلًا للأثر على كل مسار ينتهي عندها، وتُظهر هذه الدائرة نطاق هذا الأثر بوضوح.
النمط 2: المجموعة المعزولة
مجموعة من العقد التي تبقى أقواسها بالكامل ضمن منطقة محلية من الشبكة، مع عدد قليل من الأقواس أو انعدامها التي تعبر إلى المناطق المجاورة. المجموعة مترابطة داخليًا ولكنها مستقلة خارجيًا.
ما يعنيه ذلك: تُعدّ المجموعات المعزولة خيارًا قويًا للتحديث. فنطاق تبعيتها المحدود يسمح بنقلها أو استبدالها أو إيقاف تشغيلها كوحدة واحدة دون الحاجة إلى تغييرات متزامنة في باقي المحفظة. وينطبق نمط "التين الخانق" مباشرةً على المجموعات المعزولة.
ما يجب فعله: تحديد المجموعات المعزولة وترحيلها كأولى مراحل برنامج التحديث التدريجي. البدء بالمجموعات المعزولة يُكسب الخبرة، ويُحقق قيمة تجارية مبكرة، ويُقلل من حجم الأنظمة القديمة دون المساس بالبنية الأساسية المترابطة بإحكام.
النمط 3: زوج الأقواس ثنائي الاتجاه (التبعية الدائرية)
قوسان بين نفس زوج العقد، يتقاطعان في الداخل. تعتمد العقدة أ على العقدة ب، وتعتمد العقدة ب على العقدة أ. في شكل أكثر تعقيدًا، تربط حلقة مغلقة من الأقواس ثلاث عقد أو أكثر في سلسلة دائرية.
ما يعنيه ذلك: تمنع التبعيات الدائرية النشر المستقل. إذا كان يجب تحديث كل من A وB عند تغيير أي منهما، فلا يمكن نشرهما بشكل مستقل. فهما مرتبطان ضمنيًا بشكل أقوى من أي واجهة موثقة، ويتشاركان الحالة أو السلوك بطريقة تجعلهما غير قابلين للفصل عمليًا على الرغم من كونهما منفصلين من الناحية المعمارية.
ما يجب فعله: توثيق ومعالجة التبعيات الدائرية قبل التخطيط للتحديث. يتطلب حل التبعيات الدائرية عادةً استخراج الحالة أو السلوك المشترك إلى مكون ثالث يعتمد عليه كلا المكونين الأصليين، مما يزيل التكرار.
النمط 4: المنطقة المركزية الكثيفة
الجزء الداخلي للعجلة مليء بالأقواس المتقاطعة، حيث تتقارب العديد من الأقواس من أجزاء مختلفة من المحيط نحو المركز وتتقاطع مع بعضها البعض. لا يوجد نمط توجيه واضح ظاهر.
ما يعنيه ذلك: تتميز المحفظة بترابط عالٍ في المتوسط مع حدود نطاق طبيعية قليلة. يشير هذا النمط عادةً إلى بنية "كرة طينية كبيرة" حيث أضاف التطوير التاريخي تكاملاً دون حوكمة معمارية. وتقاوم المحفظة التفكيك التدريجي لعدم وجود مجموعات معزولة يمكن استخلاصها.
ما يجب فعله: إجراء تحليل تجميعي على مخطط التبعية لتحديد أقل عدد من مجموعات المكونات التي لديها أقل عدد من التبعيات بين المجموعات. إعادة هيكلة المخطط بترتيب العقد حسب المجموعات المحددة للتأكد من وجود أي حدود طبيعية. إذا لم تكن هناك حدود طبيعية، فقد يكون استبدال النواة بالكامل هو استراتيجية التحديث الوحيدة الممكنة.
النمط 5: منطقة المحيط المتفرقة
منطقة من محيط العجلة تحتوي على عدد قليل من الأقواس التي تربطها ببقية العجلة. تتميز العقد في هذه المنطقة بانخفاض ارتباطها ببقية المحفظة.
ما يعنيه ذلك: هذه المكونات مرشحة للإيقاف أو الاستبدال. انخفاض الترابط يعني أن عددًا قليلاً من المكونات الأخرى يعتمد عليها. إذا كانت قيمتها التجارية منخفضة أو تعاني من ديون تقنية عالية، فمن المرجح أن يكون إيقافها دون استبدالها مناسبًا. يؤكد تحليل التعليمات البرمجية غير المستخدمة، الذي يحدد أيًا من هذه المكونات لا يوجد لها مستخدمون نشطون من أي مسار تنفيذ إنتاجي، حالة ترشيحها للإيقاف.
ما يجب فعله: إجراء تحليل للتعليمات البرمجية غير المستخدمة على العقد المحيطية المتفرقة. العقد التي لا تحتوي على أي مسارات واردة من مسارات التنفيذ الإنتاجية هي تعليمات برمجية غير مستخدمة، قم بإزالتها من المحفظة واستبعدها من نطاق التحديث.
بناء البيانات: من تحليل المصدر إلى مخطط الوتر
لا تكون عجلة التبعيات دقيقة إلا بقدر دقة البيانات التي بُنيت عليها. وتتمثل متطلبات البيانات في مصفوفة التبعيات: لكل زوج من المكونات في المحفظة، ما إذا كانت هناك تبعية بينهما ومدى قوتها. يجب أن تُستقى هذه البيانات من التحليل الهيكلي للكود الفعلي، وليس من الوثائق أو سجلات قاعدة بيانات إدارة التكوين (CMDB) أو مقابلات المطورين.
بنية البيانات المطلوبة لمخطط وتر D3.js:
جافا سكريبت
// D3 chord diagram data format
// matrix[i][j] = strength of dependency from component i to component j
// 0 = no dependency
// Positive integer = coupling strength (call count, include count, data flow volume)
const portfolioMatrix = [
// CUSTPROC TRANPROC ACCTMGR RPTGEN AUTHSVC
[ 0, 45, 12, 0, 8 ], // CUSTPROC
[ 0, 0, 28, 0, 8 ], // TRANPROC
[ 0, 0, 0, 15, 8 ], // ACCTMGR
[ 0, 0, 0, 0, 0 ], // RPTGEN
[ 0, 0, 0, 0, 0 ], // AUTHSVC
];
const componentNames = [
"CUSTPROC", "TRANPROC", "ACCTMGR", "RPTGEN", "AUTHSVC"
];
// Arc widths scale with matrix values
// AUTHSVC appears as a hub: many non-zero values in its column
// RPTGEN appears as a sink: non-zero values in its row only
تأتي قيم المصفوفة من تحليل التبعية لقاعدة التعليمات البرمجية الفعلية:
- في عمل علاقات الاتصال: احسب عدد عبارات CALL من كل برنامج إلى كل برنامج آخر
- في عمل علاقات النسخ: احسب عدد البرامج التي تتضمن كل دفتر نسخ
- في عمل علاقات تدفق البيانات: احسب عدد البرامج التي تقرأ من أو تكتب إلى كل مجموعة بيانات مشتركة
- في عمل علاقات واجهة برمجة التطبيقات: احسب عدد استدعاءات واجهة برمجة التطبيقات (API) من كل خدمة إلى كل خدمة أخرى
تُبنى مصفوفة التبعية لمجموعة برامج COBOL من ثلاثة مدخلات تحليلية: مخطط الاستدعاء (أي البرامج تستدعي أي برامج أخرى)، ومخطط النسخ (أي البرامج تتضمن أي ملفات نسخ)، ومخطط تدفق البيانات (أي البرامج تصل إلى أي مجموعات بيانات مشتركة). تُنتج هذه المخططات الثلاثة مجتمعةً صورة الترابط الكاملة التي يتطلبها مخطط الوتر.
سحق
# Pseudocode: extracting dependency matrix data from COBOL static analysis
# Each row: SOURCE_PROGRAM, TARGET_PROGRAM, DEPENDENCY_TYPE, STRENGTH
CUSTPROC -> TRANLIB CALL 12 # CUSTPROC calls TRANLIB 12 times
CUSTPROC -> CUSTMSTR COPY 1 # CUSTPROC includes CUSTMSTR copybook
CUSTPROC -> CUST.FILE DATA_READ 1 # CUSTPROC reads from CUST.FILE
TRANPROC -> TRANLIB CALL 8 # TRANPROC calls TRANLIB 8 times
TRANPROC -> CUSTMSTR COPY 1 # TRANPROC includes CUSTMSTR copybook
# ... one row per dependency across the full portfolio
تحدد قيم القوة عرض القوس في مخطط الوتر. ويؤدي توحيد هذه القيم، والتعبير عنها كنسبة مئوية من أقصى قوة اقتران في المحفظة، إلى إنتاج أقواس تعكس عروضها النسبية شدة الاقتران النسبية بدقة.
خمس حالات استخدام مؤسسية لمخططات عجلة التبعية
حالة الاستخدام 1: تسلسل موجات التحديث. فرز الشبكة لتجميع العقد حسب المجال. تحديد المجموعات المعزولة (عدد قليل من الأقواس بين المجموعات) وتسلسلها كموجات هجرة مبكرة. يتوافق النمط المرئي، الذي يحدد المجموعات الكثيفة داخليًا والمتباعدة خارجيًا، بشكل مباشر مع المجموعات التي يمكنها الهجرة كوحدات مستقلة.
الحالة الثانية: التواصل بشأن تأثير التغيير. قبل اجتماع مجلس استشاري التغيير، اعرض مخطط التبعيات مع تمييز هدف التغيير المقترح. تمثل الأقواس المتصلة بهذا العقدة تمثيلاً مرئياً لنطاق التغيير، أي كل مكون يجب اختباره أو إخطاره أو تحديثه. لا يُغني الشرح اللفظي "هذا المكون له 47 تابعاً" عن عرض قوس من 47 عقدة تتقارب على جزء محيطي واحد.
حالة الاستخدام 3: تحديد أولويات ترشيد المحفظة. يتم عرض درجات الديون التقنية (التعقيد الحلقي، عمر الكود، كثافة العيوب) على ألوان العقد. المكونات ذات درجات الديون التقنية العالية والروابط الداخلية المنخفضة (عدد قليل من الأقواس الواردة) هي أهداف للترشيد، وتتطلب تكلفة صيانة عالية، ومخاطر منخفضة للتوقف عن العمل. أما المكونات ذات الديون التقنية العالية والروابط الداخلية العالية فهي ضرورات للتحديث، وتتطلب تكلفة صيانة عالية، ومخاطر عالية لتركها دون تغيير.
الحالة الرابعة: تحليل تكامل محفظة الاستحواذ. بعد عملية اندماج أو استحواذ، يتم دمج دوائر التبعية بين المؤسستين. تمثل الأقواس المشتركة بين المؤسستين، أي الروابط بين تطبيقات إحداهما والأخرى، نقاط التكامل التي يجب إدارتها أثناء ترشيد المحفظة. أما المجموعات المعزولة في أي من الدائرتين والتي لا تحتوي على أقواس مشتركة بين المؤسستين، فهي مرشحة للإلغاء أو الدمج دون الحاجة إلى تنسيق مشترك بين المؤسستين.
حالة الاستخدام 5: تخطيط استمرارية الأعمال. تمثل العقد المحورية في النموذج نقاط فشل حرجة. وتمثل العقد ذات أعلى كثافة من الأقواس الواردة الأهداف ذات الأولوية القصوى للاستثمار في أنظمة النسخ الاحتياطي. يوفر النموذج دليلاً مرئياً لقرارات الاستثمار في استمرارية الأعمال، مستبدلاً الأوصاف اللفظية للأهمية بمخطط هيكلي يوضح، في الوقت نفسه، المكونات التي يعتمد عليها كل مكون آخر.
مجموعة برامج كوبول: حيث لا يوجد منافس لعجلات التبعية
تكتشف أدوات تصور محافظ التطبيقات التي تُنتج مخططات التبعية، مثل LeanIX وVirima وServiceNow CSDM، التبعيات من خلال تحليل حركة مرور الشبكة وسجلات قاعدة بيانات إدارة التكوين (CMDB) ومراقبة استدعاءات واجهة برمجة التطبيقات (API). وتُنتج هذه الأدوات مخططات ممتازة لمحافظ التطبيقات الحديثة حيث تُعد حركة مرور الشبكة آلية الربط الأساسية.
لا ينتجون أي شيء لمحفظات COBOL.
يحتوي برنامج COBOL الدفعي الذي يستدعي اثني عشر برنامجًا فرعيًا عبر أوامر CALL، ويُضمّن خمسة عشر ملف نسخ عبر أوامر COPY، ويقرأ من أربع مجموعات بيانات VSAM مشتركة، على بنية تبعية معقدة تُنشئ أنماطًا ترابطية ذات دلالة في عجلة التبعية. هذه البنية غير مرئية لتحليل حركة مرور الشبكة لأن برامج COBOL الدفعية لا تتواصل عبر بروتوكولات الشبكة، بل تتواصل عبر ربط الاستدعاءات المُجمّعة، ومجموعات بيانات المكتبات المشتركة، وربط نظام الملفات. الطريقة الوحيدة لاكتشاف بنية التبعية لمجموعة برامج COBOL هي تحليل شفرة المصدر.
تكشف عجلة التبعية لمجموعة برامج COBOL المبنية من تحليل المصدر الثابت عن أنماط لم تظهرها عقود من صيانة قاعدة بيانات إدارة التكوين (CMDB) ومقابلات المطورين:
مراكز ملفات النسخ. يظهر ملف نسخ مُستخدم بكثرة، مُضمّن في 200 برنامج COBOL، في الرسم البياني الدائري كعقدة تتقارب حولها 200 قوس. يُحدد هذا النمط بنية البيانات المشتركة التي تُمثل هدف التغيير الأكثر عرضة للمخاطر في المحفظة. يتطلب أي تغيير في ملف النسخ هذا تنسيق 200 برنامج. يُتيح الرسم البياني الدائري رؤية ذلك دون الحاجة إلى معرفة مسبقة بأن ملف النسخ مُشترك على نطاق واسع.
تُصنّف البرامج حسب مجال العمل. عند فرز البرامج وفقًا لانتمائها إلى وظائف JCL، أي البرامج التي تعمل ضمن نفس مسار معالجة الدفعات، تظهر مجموعات البرامج التي تتفاعل بشكل أساسي ضمن مسار معالجة واحد على شكل أنماط أقواس محلية. تمثل الأقواس التي تعبر حدود المجموعات تبعيات البيانات بين مسارات المعالجة، أي الملفات التي ينتجها مسار ويستهلكها مسار آخر.
جزر البرامج المهجورة. تظهر البرامج التي لا تحتوي على مسارات واردة، ولا يستدعيها أي برنامج آخر، ولا تستدعيها أي مهمة JCL بشكل مباشر، كعُقد محيطية ذات مسارات صادرة فقط أو بدون مسارات على الإطلاق. هذه برامج مرشحة لتكون مهجورة. تُسهّل هذه الأداة تمييزها بصريًا عن باقي البرامج المتصلة دون الحاجة إلى فحص يدوي لمخطط استدعاء كل برنامج.
حلقات التبعية الدائرية. تظهر برامج COBOL التي تستدعي بعضها البعض بشكل دائري، وهو نمط يُسبب مشاكل في ترتيب الترجمة وترابطًا منطقيًا يُصعّب الاختبار، على شكل أزواج أقواس ثنائية الاتجاه أو حلقات أقواس مغلقة. نادرًا ما تُوثّق هذه المشاكل المعمارية؛ إذ تكشفها بنية البرنامج المصدرية.
كيفية SMART TS XL يوفر بيانات التبعية لعجلات المحفظة
تُعدّ عجلة التبعية طبقةً للتصور. تتطلب هذه الطبقة بيانات دقيقة، وتحديداً مصفوفة التبعية الكاملة للمحفظة، المستمدة من التحليل الهيكلي للكود الفعلي بدلاً من الوثائق أو اكتشاف الشبكة.
SMART TS XLالصورة رسم خرائط تبعية التطبيق يُنتج هذا البرنامج مصفوفة التبعية هذه للغات COBOL وJCL وJava وPython وRPG وPL/I، بالإضافة إلى جميع اللغات الأخرى في بيئة التطوير. ويُظهر الناتج مخطط التبعية الكامل: كل علاقة استدعاء (أي البرامج تستدعي أي برنامج آخر)، وكل علاقة نسخ (أي البرامج تتضمن أي ملفات نسخ)، وكل علاقة تدفق بيانات (أي البرامج تصل إلى أي مجموعات بيانات مشتركة)، وكل علاقة تشغيلية في JCL (أي خطوات العمل تستدعي أي برامج بالتسلسل المطلوب).
هذا الرسم البياني هو المدخل لتصور عجلة التبعية: تصبح كل عقدة في الرسم البياني عقدة على محيط العجلة، ويصبح كل ضلع قوسًا في داخل العجلة، مع عرض القوس الذي يتناسب مع قوة الاقتران المشفرة في وزن الضلع.
إن إمكانية تحليل التأثير تجعل عجلة التبعية قابلة للتنفيذ: فعند تحديد عقدة في تصور العجلة وتظليل أقواسها الواردة، ينتج تحليل التأثير قائمة منظمة بكل برنامج متأثر، وهي البيانات التي تدعم مراجعة مجلس استشاري التغيير، وتخطيط موجة الترحيل، وتقييم استمرارية الأعمال.
تُضيف إمكانية تحليل الكود الثابت طبقةً إضافيةً للجودة: إذ يُنتج ربط مخطط التبعية بمقاييس التعقيد الحلقي، وعمر الكود، ونسبة الكود غير المستخدم، والديون التقنية، عجلة التبعية الملونة، حيث يُشير لون العقدة إلى سلامة الكود التقنية، بينما يُشير عرض القوس إلى قوة الترابط في آنٍ واحد. هذا التصور المُدمج هو ما يجعل قرارات ترشيد المحفظة مبنيةً على الأدلة لا على الآراء، حيث تظهر العقد شديدة الترابط وغير السليمة تقنيًا كأكثر العقد سطوعًا من حيث اللون، مع أعلى كثافة للأقواس.
تتيح خاصية البحث المؤسسي تفاعلية عجلة التبعيات من الناحية التشغيلية: إذ يحصل المستخدم الذي ينقر على عقدة مركزية في العجلة ويسأل "ما البرامج التي تتضمن هذا الملف؟" على إجابة في غضون ثوانٍ. تحدد العجلة النمط، بينما يوفر البحث قائمة مُفهرسة بالعناصر التي يمثلها هذا النمط.
بالنسبة للمؤسسات التي تقوم بإنشاء تصورات لعجلة التبعية لعرضها على مجالس مراجعة البنية، أو القيادة التقنية، أو لجان المخاطر على مستوى مجلس الإدارة، SMART TS XL يوفر التحليل الهيكلي الذي يجعل العجلة دقيقة، والفرق بين الرسم البياني الذي يمثل المحفظة الفعلية والرسم البياني الذي يمثل ما اعتقدت قاعدة بيانات إدارة رأس المال (CMDB) أن المحفظة تبدو عليه قبل ثمانية عشر شهرًا.
الرسم البياني الذي يُقرأ فعليًا
لا يكمن سبب فشل تصور بنية المؤسسة في غياب المخططات، بل في إنتاج مخططات موجودة ولكنها غير مستخدمة، إما لأنها معقدة للغاية بحيث يصعب قراءتها على النطاق الذي صُممت من أجله، أو لأنها قديمة لدرجة لا يمكن الاعتماد عليها في القرارات التي صُممت لدعمها، أو لأنها تُشفّر المعلومات بتنسيق يتطلب التنقل والتصفية قبل أن يظهر أي نمط.
تتفوق عجلة التبعية حيث تفشل الرسوم البيانية الموجهة بالقوة على نطاق المؤسسة، لأنها تجعل الأنماط الهيكلية، والعقد المحورية، والمجموعات المعزولة، والتبعيات الدائرية، والمراكز الكثيفة، مرئية كخصائص مكانية وبصرية للمخطط، بدلاً من كونها خصائص ناشئة تتطلب البحث. يصبح هيكل ترابط المحفظة واضحًا بنظرة سريعة. ويمكن اتخاذ القرارات التي تعتمد على هذا الهيكل، مثل تسلسل الترحيل، وتحديد نطاق تأثير التغيير، وتحديد أولويات الترشيد، وتخطيط استمرارية الأعمال، استنادًا إلى الأدلة البصرية بدلاً من الأوصاف السردية لهيكل لا يمكن للجمهور رؤيته.
بالنسبة لبرامج COBOL وأنظمة الحواسيب المركزية تحديدًا، تُعدّ عجلة التبعية المُنشأة من تحليل المصدر الثابت التمثيل المرئي الوحيد الذي يُجسّد بنية الترابط الفعلية، تلك الموجودة في الشيفرة البرمجية وملفات النسخ ولغة التحكم في الوظائف (JCL)، وليس تلك التي يُمكن لتقنية اكتشاف الشبكة في قاعدة بيانات إدارة التكوين (CMDB) الوصول إليها. هذه الدقة هي ما يجعل الرسم البياني مفيدًا بدلًا من مجرد عرضه.