ما هو التجريد مقابل.الرسم البياني لعدم الاستقرار؟

StackOverflow https://stackoverflow.com/questions/1031135

سؤال

لقد استخدمت مؤخرًا NDepend وأنتج تقريرًا جيدًا عن تجميعات .net الخاصة بي وpdbs ذات الصلة.

الشيء الأكثر إثارة للاهتمام الذي وجدته في التقرير هو التجريد مقابل التجريد.الرسم البياني لعدم الاستقرارأردت أن أفهم هذا بالتفصيل الحقيقي، لقد قرأت مستنداتهم ومقاييسهم عبر الإنترنت ولكن ذلك لا يمكن أن يساعد إلا إلى حد ما.

أود في المقام الأول أن أفهم كيفية تقييم الرسم البياني بشكل صحيح وتقنيات التحكم في التجريد مع الاستقرار.

هناك مقالة جيدة جدا هنا هذا يتحدث عن هذا ولكن ما أحتاجه بالإضافة إلى هذا هو "كيف يمكنني التحكم في هذا؟"[التحكم في التجريد بالثبات]'

alt text

هل كانت مفيدة؟

المحلول

التجريد هو مقياس لصلابة نظام البرمجيات.كلما زاد التجريد، قل الصلابة (أو زادت المرونة) والعكس صحيح.إذا كانت مكونات النظام تعتمد على فئات أو واجهات مجردة، فإن هذا النظام أسهل في التوسع والتغيير مما لو كان يعتمد بشكل مباشر على فئات ملموسة.

الاستقرار هو مقياس لتحمل التغيير كما هو الحال في مدى سماح نظام البرنامج بالتغييرات عليه دون كسره.ويتم تحديد ذلك من خلال تحليل الترابط بين مكونات النظام.

روبرت سي.مارتن شرط على مقاييس OO يصف هذه المفاهيم بمصطلحات كمية أكثر.

مقتطف من المقال:

يمكن قياس المسؤولية والاستقلال واستقرار الفئة عن طريق حساب التبعيات التي تتفاعل مع تلك الفئة.تم تحديد ثلاثة مقاييس:

كاليفورنيا :وصلات وارد :عدد الفئات الموجودة خارج هذه الفئة والتي تعتمد على الفئات الموجودة ضمن هذه الفئة.

م :الوصلات الصادرة :عدد الفئات الموجودة داخل هذه الفئة والتي تعتمد على الفئات الموجودة خارج هذه الفئات.

أنا :عدم الاستقرار :(Ce ÷ (Ca+Ce)) :هذا المقياس له النطاق [0،1].I=0 يشير إلى فئة مستقرة إلى أقصى حد.يشير I=1 إلى فئة غير مستقرة إلى أقصى حد.

أ :التجريد :(# فصول مجردة في الفئة ÷ إجمالي عدد الفصول في الفئة).هذا النطاق المتري هو [0،1].0 يعني ملموسة و 1 يعني مجردة تماما.

في أي نظام برمجي، وخاصة الأنظمة الكبيرة، يعد التوازن أمرًا بالغ الأهمية.في هذه الحالة، يجب على النظام أن يوازن بين التجريد والاستقرار حتى يكون "جيدًا".يوضح الموضع على الرسم البياني A-I هذا.الرجاء قراءة المقال للتوضيح.

نصائح أخرى

يمكن استخدام كل من التجريد وعدم الاستقرار بمفرده لتقييم التعليمات البرمجية الخاصة بك.أنت تعرف مسبقًا مدى تجريد أو استقرار بعض الوحدات.على سبيل المثال، تريد أن تكون طبقة العرض التقديمي مجردة إلى حد ما ومستقرة للغاية، لأن الوحدات الأقل تعتمد عليها.من ناحية أخرى، تريد أن تكون طبقة البنية التحتية ملموسة للغاية (منخفضة التجريد) وغير مستقرة إلى حد كبير، لأنها يجب أن تنفذ ما تتطلبه الطبقات العليا.

بمجرد أن يصبح ذلك واضحًا، يمكنك الجمع بين التجريد وعدم الاستقرار في رسم بياني واحد، وهو الرسم البياني لعدم الاستقرار والتجريد.تريد أن تظهر التعليمات البرمجية الخاصة بك قدرًا كبيرًا من التجريد بقدر ما تكون مستقرة، من أجل موازنة الاحتياجات لدعم التغييرات المستقبلية في المتطلبات.

ولكن على أي حال، يجب أن يكون لديك فهم قوي لمقاييس عدم الاستقرار والتجريد وحدها قبل محاولة فهمها عند العمل معًا.يمكنك العثور على بعض الأمثلة حول معنى عدم الاستقرار في هذه المقالة: كيفية استخدام مقاييس اقتران الوحدة وعدم الاستقرار لتوجيه عملية إعادة البناء

هناك مقالة ذات صلة تشتق استعلام CQLinq الذي يقيس عدم استقرار جميع الوحدات في التطبيق: كيفية قياس اقتران الوحدة وعدم الاستقرار باستخدام NDepend

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top