هل تستخدم MDA/MDD/MDSD أي نوع من نموذج يحركها النهج ؟ سيكون المستقبل ؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

البرمجة لغات عدة (ص)الخطوات التطورية في تاريخهم.بعض الناس يقولون أن نموذج يحركها النهج سوف يكون الشيء الكبير المقبل.هناك أدوات مثل openArchitectureWare, AndroMDA ، النحات/Fornax منصة الخ.هذا الوعد لا يصدق يعزز الإنتاجية.ومع ذلك, أنا جعلت التجربة أنه إما وليس من السهل في البداية أن تبدأ ولكن أيضا للحصول على تمسك في بعض نقطة عند محاولة شيء غير متوقع أو من الصعب جدا العثور على ما يكفي من المعلومات التي تخبرك كيفية بدء المشروع الخاص بك لأنه قد يكون هناك الكثير من الأشياء في الاعتبار.

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

ما رأيك وماذا لديك تجربة لك ؟ هل هناك مستقبل لنموذج التنمية المدفوعة باعتبارات (أو كل ما تريد أن نسميها)?

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

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

المحلول

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

تبحث في openArchitectureWare على سبيل المثال:في حين أنها قوية جدا و الوثائق الأساسية موجودة ، الوثائق على الأعمال الداخلية مفقودة و لا تزال هناك مشاكل مع قابلية أن لا يحملون وثائق - ربما هذا سوف تتحسن عندما Xtext و Xpand على إعادة كتابة.

ولكن يحتقر تلك القيود الجيل نفسه هو من السهل جدا مع oAW ، يمكنك التنقل النماذج الخاصة بك مثل السحر في Xtend و Xpand و من خلال الجمع بين عدة مهام سير العمل في أكبر سير العمل ، يمكنك أيضا القيام معقدة جدا من الأشياء.إذا لزم الأمر يمكنك اللجوء إلى جافا ، بحيث يكون لديك مجموعة كبيرة جدا من المرونة في ما يمكنك القيام به مع النماذج الخاصة بك.الكتابة الخاصة بك DSL مع Xtext في oAW أيضا بسرعة القيام به, ولكن يمكنك الحصول على الخاص بك الفوقية نموذج محلل وجميلة جدا محرر في الأساس مجانا.كما يمكنك الحصول على النماذج الخاصة بك في الأساس من كل مكان ، على سبيل المثالوهو المكون الذي يمكن تحويل قاعدة بيانات إلى التلوي نموذج و نماذج المقابلة يمكن أن تكون مكتوبة من دون جهد كبير.

لذا أود أن أقول, MDD لا يزال بناء والأدوات تجربة مع أنه يزيد.يمكن أن تستخدم بالفعل بنجاح, إذا كان لديك الخبرة اللازمة ونحن على استعداد لدفعها داخل الشركة الخاصة بك.في النهاية أعتقد أنه شيء جيد جدا, لأن الكثير من الغراء رمز (الملقب نسخ لصق) يمكن أن تكون ولدت.تفعل ذلك مع MDD هو لطيف جدا و منظم طريقة للقيام بذلك أن يسهل إعادة استخدام, في رأيي.

نصائح أخرى

تنويه:أنا مطور تطبيقات الأعمال.العرض التالي هو بالتأكيد شكل من تجاربي في الخنادق من المؤسسة.أنا على علم أن هناك مجالات أخرى من برامج التنمية.وخاصة في الصناعية و/أو تطوير النظم جزءا لا يتجزأ العالم قد تبدو مختلفة.

أعتقد MDSD لا يزال الكثير من ربط رمز جيل.

رمز الجيل هو مفيد فقط عندما الخاص بك رمز يحتوي على الكثير من الضوضاء و/أو متكررة جدا.وبعبارة أخرى, عندما التعليمات البرمجية الخاصة بك لا يمكن التركيز أساسا على الضروري التعقيد ، ولكن ملوثة مع عرضي التعقيد.

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

حتى هذه المنصات الجديدة/أطر تأخذ الكثير من الرياح أشرعة MDSD الحركة.

DSLs (نصية منها) هي اتجاه آخر أن يحاول تمكين التركيز الوحيد على الضروري التعقيد.في حين DSLs يمكن استخدامها كمصدر لتوليد رمز ، فهي ليست مرتبطة بالأساس رمز جيل.DSLs (خاصة الداخلية DSLs) أساسا إفتح تفسر/أعدم في وقت التشغيل.[وقت التشغيل رمز جيل هو في مكان ما بين].

حتى لو DSLs غالبا ما يذكر مع MDSD, أعتقد أنهم حقا بديل MDSD.و بالنظر إلى الضجة الحالية ، كما أنها تأخذ الزخم من MDSD الحركة.

إذا كنت قد وصلت إلى هدف في نهاية المطاف إزالة عرضي التعقيد من التعليمات البرمجية الخاصة بك (وأنا أعلم هذا هو وهمية), ثم كنت قد وصلت في النصوص نموذج الأعمال التجارية الخاصة بك المشكلة.هذا لا يمكن أن يكون كذلك مبسطة!

لطيفة صناديق المخططات لا نقدم آخر تبسيط أو ارتفاع مستوى التجريد!أنها قد تكون جيدة بالنسبة التصور ، ولكن حتى هذا أمر مشكوك فيه.الصورة ليست دائما أفضل تمثيل لفهم التعقيد!

من الوضع الحالي من الأدوات المعنية في MDSD يضيف مستوى آخر من عرضي التعقيد (أعتقد:التزامن ، diffing/دمج إعادة بيع ديون ...) الأساس الذي يلغي الهدف النهائي من التبسيط!

ننظر في ما يلي ActiveRecord نموذج كمثال نظريتي:

class Firm < ActiveRecord::Base
   has_many   :clients
   has_one    :account
   belongs_to :conglomorate
end

لا أعتقد أن هذا يمكن أن يكون أي أكثر بساطة.أيضا أي تمثيل رسومي مع مربعات وخطوط لن يكون هناك تبسيط و لا تقدم المزيد من الراحة (التفكير في تصميم, بناء, البحث, diffing ...).

نموذج التنمية القائم قد حول لفترة طويلة جدا.

الأكثر سوكيسفول من المحاولات المبكرة كان جيمس مارتينز الهندسية المتكاملة المرافق" الذي لا يزال في جميع أنحاء وتسويقها من قبل CA تحت بجدية بارد "Coolgen" اسم العلامة التجارية.

إذا لماذا لم يستغرق أكثر من العالم إذا كان ذلك جيد ؟

حسنا هذه هي أدوات جيدة في صنع أشياء بسيطة بساطة, لكن, أنها لا تجعل الأمور أسهل, و في كثير من الحالات تجعل الأمور أكثر صعوبة!

يمكنك قضاء ساعات في محاولة لإقناع الرسم 4GL لغة النمذجة إلى "فعل الشيء الصحيح" عندما تعرف أن الترميز في Java/C/SQL أو أيا كان قد تكون تافهة.

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

ولكن أنا شخصيا لدي تجربة مختلطة مع MDA.المرة الوحيدة التي كان تجربة جيدة مع أدوات رائعة - اعتدت على استخدام TogetherSoft (أعتقد أنها انتهت بطريقة أو بأخرى حتى في borland) - كانت واحدة من أول من أدخل التحرير الذي لم يكن "إنشاء رمز" ولكن في الواقع التحرير رمز/نموذج مباشرة (حتى يمكنك تحرير التعليمات البرمجية أو نموذج ، كان كل شيء واحد).لديهم أيضا إعادة بيع ديون (الذي كان أول مرة أتذكر أنه بعد smalltalk البيئات).

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

بالطبع شعبية ليس كل شيء, والأشياء لديهم ميل إلى العودة ، ولكن في الوقت الراهن أعتقد MDA+أدوات ينظر إليها من قبل العديد من "معالج بناء جيل رمز" أدوات (بغض النظر عن ما هو عليه حقا) لذلك اعتقد انه سوف يكون هناك بعض الوقت أو ربما أبدا أن تقلع حقا.

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

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

أعتقد المساهمين هنا هي جزء من "لا يوجد حل سحري" مخيم (أنا بالتأكيد).إذا MDA عملت (يساوي "وفورات ضخمة") ، ونحن نعرف ذلك بالتأكيد.السؤال هو:مدى "الفوقية" التي يمكن أن تذهب مع الحفاظ على النظام الخاص بك يمكن التحكم فيها ؟ وكانت هذه نقطة تحول في UML 2.0 عندما عرض رسمي أكثر الفوقية الفوقية نموذج.حتى الآن لم أر استخدام العالم الحقيقي من modelisation قوة UML 2.0 (ولكن بلدي العالم محدودة).بجانب أن لديك اثنين فقط من الخيارات مع نموذج النهج القائم:توليد رمز ، أو وجود وقت استغلال النموذج الخاص بك.في نهاية المطاف القيد الحرة رمز مولد يسمى "الإنسان" ، في حين أنه في نهاية المطاف أوقات التشغيل حيث وجدت في 4GLs (ما هو العدد الحالي في الوقت الحاضر؟).ربما هذا يفسر عدم وجود انثوسياسم.

نحن في itemis (www.itemis.com) استخدام نموذج يحركها تطوير البرمجيات الكثير.حتى الآن كان لدينا حقا تجارب جيدة.شور أنها ليست حلا سحريا ، ولكنه يساعد على تحسين نوعية البرامج ومن ثم استخدام أكثر لعملائنا.

نموذج التنمية القائم سوف يكون في المستقبل إذا وفقط إذا كانت النماذج التي تستخدمها يمكن أن تكون مرنة قدر كتابة التعليمات البرمجية التي من المفترض أن يتم إنشاء.اعتقد السبب انها لا تفعل ذلك بشكل جيد الآن هو أنك من الصعب أن تفعل الشيء نفسه "جولة تنطلق" أن يستند إلى نص لغات البرمجة تم القيام منذ عقود.

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

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

هذا هو وقت متأخر جدا الرد لكن أنا حاليا البحث عن MDD أدوات استبدال ارتفع RT ، والتي للأسف يتم حل محل من افتتان.ونحن في الوقت الحقيقي, جزءا لا يتجزأ من توزيع C++ الفضاء نحصل على الكثير من MDD.نحن نحاول أن ننتقل إلى أداة أفضل والحصول على مزيد من انتشار استخدام أداة لدينا كبيرة جدا من الشركة.إنها معركة شاقة بسبب بعض من الغرامة الأسباب المذكورة هنا.

أعتقد من MDD فقط مستوى واحد فوق مترجم ، كما أن المترجم هو أعلاه.أريد أداة تسمح لي مهندس تطوير تطبيق الإطار على نطاق واسع تحرير رمز جيل (مخطوطات) لاستخدام هذا الإطار ومهما الوسيطة لا توجد رسالة عابرة.أريد المطورين صنع كاملة UML حصص الدولة الرسوم البيانية التي تشمل كافة التعليمات البرمجية اللازمة لتوليد التطبيق و/أو مكتبة.

صحيح أنه يمكنك أن تفعل أي شيء مع رمز ، ولكن أود أن ألخص ما يقرب من فوائد MDD مثل هذا:

  1. عدد قليل من الناس تجعل تطبيق الإطار الوسيطة محولات الغراء أن MDD أداة.بناء "البيت".
  2. الآخرين إنشاء فصول كاملة ، الرسوم ، و آلة الدولة الانتقالية رمز.هذا يتيح لهم التركيز على التطبيق بدلا fo "البيت".
  3. من السهل أن نرى عندما بوبل يكون غريب التصميم منذ البياني هو رمز.ليس لدينا جميع الخبراء المطورين و لطيفة لجلب صغار الناس بهذه الطريقة.
  4. في الغالب لها سيئة الدولة رمز الجهاز الذي يمكن أن يحدث في ما يشبه المحمول الروبوتات المشروع.أريد من الناس مما يجعل الدولة المخططات التي أستطيع أن أفهم ، انتقاد والعمل عليها مع.
  5. هل يمكن أن يكون أيضا لطيفة إعادة بيع ديون مثل سحب العملية و الصفات حتى الإرث سلاسل أو إلى غيرها من الطبقات ، وما إلى ذلك.أنا أحب ذلك أفضل من حفر في الملفات.

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

المشكلة الرئيسية التي واجهت أنني لا أملك إجابة على أنه لا يوجد أي معيار مجموعة من الوظائف و تنسيق ملف مثل هذه النماذج.الناس تقلق عن بائع الذهاب بعيدا ثم تمسك يجري.(نحن bascially كان هذا يحدث مع روز RT.) ليس لديك مع التعليمات البرمجية المصدر.ومع ذلك, سيكون لديك أحدث إصدار من أداة وبالطبع التعليمات البرمجية التي تم إنشاؤها الماضي :).أنا على استعداد للمراهنة على أن المنافع تفوق المخاطر.

لم تجد أداة مثل هذا, ولكن أنا أحاول أن تحصل على عدد قليل من البائعين للاستماع لي و ربما يقبل المال لجعل هذا يحدث.

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