Modele dayalı yazılım mühendisliği (MDSE) tam olarak nedir?


10

Ben bugün infoq üzerinde MDSE accronym genelinde geldi ve bilgi oldukça belirsiz ne bulabilirim ve açıklama buzzwords doluydu:

MDSE, yazılım mühendislerinin gereksinimler, mimari ve tasarım bilgilerinin en üst düzeyde (bilgi "entropi" açısından) sipariş edildiği ve korunduğu bir soyutlama düzeyinde çalışmasını sağlamakla ilgilidir. (Buna "tasarım iş ürünü" deyin). Ayrıca, MDSE mühendislere tasarımlarını öncelikle "tasarım iş ürünü" terimleriyle doğrulama ve onaylama imkânı sağlamalıdır.

Ve görünüşe göre, herkes yapıyor: (makaleden tekrar)

MDSE çağının başlangıcındayız. Önümüzdeki 5 - 10 yıl içinde, yazılımın belki de% 60-80'inin model tabanlı teknikler kullanılarak tasarlanacağına inandığım ölçüde MDSE'ye doğru önemli bir değişim göreceğiz.

MDSE'nin ne olduğuyla ilgili somut, terimsiz bir açıklama istiyorum. Rasyonel Gül ile 90'larda olduğu gibi UML kutuları çiziyor ve kod üretiyor mu?

(bir yandan bu teknikler kullanılarak oluşturulmuş bir yazılım örneği varsa, gerçekten somut bir örnek görmek isterim).


2
Bu, Etki Alanına Dayalı Tasarım'a benziyor. Temel olarak, iş mantığını modellerinize koyun. İlgili kelime: Yağ Modeli, Sıska Denetleyici.
Greg Burghardt

Kavramın özünün ayrılmaz gözüktüğü için, tereddüt etmeyen bir açıklamanın pek mümkün olmadığından şüpheleniyorum.
whatsisname

Yanıtlar:


1

"model güdümlü yazılım mühendisliği (MDSE)", yazılım aracı üreticilerinin yazılımın önemli parçalarının yazılım modellerinden "yakında" üretilebileceğine dair pazarlama vaadidir.

Bahsettiğiniz makaledeki görüşme ortağı Robert Howe bir araç üreticisidir ( ayrıntılar için http://www.verum.com/ adresine bakın)

Ancak alet üreticisinin vaatlerine karşı mdse henüz ana akım haline gelmedi.

Hybris internet mağazası sistemi "MDSE" bir çalışma örneğidir: siz xml-model dosyaları korumak developper bir yazılım ( "* -items.xml") ve codegenerators / tercümanlar oluşturmak db-modell / java kod için kalıcılık / GUI Bunun dışında. Ek bir özelliğe ihtiyacınız varsa, sadece xml-modeline ekleyin ve jeneratör / yorumlayıcı işi yaptıktan sonra iş mantığını uygulamak için bu özelliği kullanabilirsiniz.


0

IMHO "model tahrikli ", özellikle "tasarım" veya "yazılım mühendisliği" gibi terimlerle kullanıldığında ("geliştirme" yerine) büyük bir abartıdır. Muhtemelen "yazılım tasarımı" yanılgısı olan bazı insanlar tarafından icat edildi, çünkü bir mimar bir ev için bir plan çiziyor gibi UML ile bazı grafik modeller çizerek yapıldı ve "kodlama" tıpkı tuğlaları döşemek gibi, planın ardından. (Umarım burada bunun neden yanlış olduğunu açıklamak zorunda değilim, farklı bir fikriniz varsa, lütfen beni indirmeden önce Jack Reeves tarafından "Tasarım Olarak Kodla " yı okuyun .)

Bu, beş yıl bilgisayar bilimi çalışmış, ancak en fazla yarım yıllık gerçek programlama deneyimi ("maksimum" ), ve şimdi kodlama olmadan "yazılım tasarımı" içeren yazılım sektöründe bir iş arıyor. Sanırım bu "model güdümlü" terimler bu kadar popüler olmasının gerçek nedeni budur.

Beni yanlış anlamayın, manüel olarak kazan plakası yazma ihtiyacını azaltmak için modeller ve kod jeneratörlerinin büyük hayranıyım. Örneğin, veritabanları (veri) modelleri gibi bazı kısıtlı alanlarda alan adları ile iletişim kurmak için gerçekten iyi bir araç olabilir. Eskiz veri modelleri tarafından bileşenleri arasındaki akış bir yazılım sistemine yapıyı getiren en önemli tekniklerden IMHO biridir (maalesef UML insanlar unuttum veriler kendi gösterimde diyagramlar akış dahil etmeme kararı; bunun yerine, gereksiz şeyler yedekli bir demet eklendi ki hiç kimse pratikte kullanmaz).

Ancak , modellemenin sadece ana faaliyetin kendisini geliştirmek yerine gelişimdeki ana faaliyetleri desteklediğini açıkça ortaya koyan "model odaklı yazılım mühendisliği" değil, bu "model destekli yazılım geliştirme" olarak adlandırırım .


Hummm ... Bazı BT uzmanları hakkındaki kötü görüşlere dayanarak çok indirgeyici bir cevap ...
Rénald

@ Rénald: Cevabımda kişisel deneyime dayanmayan hiçbir şey yok. Ve bunun tecrübeli mimarlar, BA'lar veya tasarımcılar olmadığını söylemiyorum - ama gerçekten deneyimlendiklerinde, muhtemelen MDSE'nin sahte vaatlerine inanmıyorlar.
Doc Brown

-1

Bu bana bir sürü Yağ modelini, sıska kontrolör kavramını hatırlatıyor .
Bu kavramın ana fikri, iş mantığının çoğunu modele yerleştirmek ve denetleyiciyi ve bir görünümü çok basit tutmaktır.
Kişisel olarak, bunu çok ilginç bir fikir buluyorum, ancak kullanma şansım olmadı.
Şaşırtıcı bir şekilde, Google aramadaki en iyi 10 bağlantıdan 8'i buna karşı konuşuyor.
Ancak, bir modeli tek bir sınıf olarak değil, birden fazla iç sınıfın bir cephesi olarak düşünüyorsanız, iş mantığını modelde tutmak mükemmel mantıklıdır.


1
MVC'de olduğu gibi model demek değil, sistem tasarımında olduğu gibi 'modelleme' olduğunu düşünüyorum.
gbjbaanb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.