2010-06-22 12 views
7

Şu anda test odaklı geliştirmenin savunucusu olarak, model odaklı yazılım geliştirme (MDSD)/model güdümlü mimarinin (MDA) bir savunucusu ile rekabet etmem gereken bir durumla karşı karşıyayım.Gerçek bir dünya uygulaması için bir MDSD/MDA başarı öyküsü var mı?

Kanaatimce, kod oluşturma araç kutusumda değerli bir araçtır ve gerektiğinde şablonlar ve otomasyondan yoğun olarak yararlanırım. Bunun, iç işleyişi anlamaya ya da mimariyi beyaz tahta üzerinde tartışmaya yardımcı olduğunu düşündüğümde, UML'de de diyagramlar oluşturuyorum. Bununla birlikte, UML aracılığıyla yazılım oluşturmanın (sadece kod iskeletlerini değil, çalışma kodu oluşturmak için statecharts ve dizi diyagramları oluşturmak) çok katmanlı uygulamalar (veritabanı katmanı, işletme/alan katmanı ve bir Gui, belki de dağıtılmış) için daha verimli olduğundan şüphem var. Öyle görünüyor ki MDSD'ye gelince, CASE takımı aniden artık sadece bir araç değil, aynı zamanda tatmin edici bir şey: Gördüğüm kadarıyla, bir yandan MDSDevelopers daha yüksek soyutlama UML'den kazanç sağlıyor. Aynı zamanda, araçlarını (VisualStudio, Eclipse, ...) başka bir araç kullandılarsa kolayca uygulanabilecek (ve test edilebilecek) ihtiyaçlarını karşılamak için kodjenerator/şablon/motorun değiştirilmesi ile mücadele ediyorlar.

Tüm bunlar bir başarı öyküsü olup olmadığımı merak ediyor (ürünün zaman içinde yuvarlanması, bütçede ve yalnızca birkaç hata ve yazılımın parçaları daha sonra yeniden kullanılmak üzere). Bu creteria fullfills ve sıkı bir modele dayalı bir yaklaşım kullanarak geliştirilmiştir dünyada uygulama:

  • o Object Management Group (OMG) ile veya MDSD/MDA/SOA/
  • ilgili danışmanlarla ilgisi yoktur
  • uygulama, İş Süreçleri Modellemesi ile ilgili değildir ve kendisi bir CASE aracı değildir
  • uygulama aktif olarak son kullanıcı tarafından kullanılan
  • en az üç katmana sahiptir, ham tablo değerlerini göstermenin ötesine geçen ve ortak MDA/MDSD örneklerinden biri olmayan ("bir kahve makinesinin nasıl modellenmesi trafik ışığı, bulaşık makinesi "). hala iyi Nispeten küçük uygulama geliştiriliyor

    http://www.modeldrivensoftware.net/profiles/blogs/viva-mdd-follow-up-building-a?xg_source=activity

    ama:

+0

Geçerli bir yanıt olarak HAYIR kabul edermisiniz? –

cevap

3

MDSD kullanımına ilişkin bir minik, ama yine de yararlı bir bonservis Güdümlü Yazılım Ağı yayınlanan olmuştur eylemde MDSD örneği.

Metacase sitesinde (http://www.metacase.com/cases/index.html) daha fazla başarı öyküsü listelenmektedir. Metacase, DSM'yi (Etki Alanı'na Özel Modelleme) uygulayan MetaEdit + satıyor. DSM sadece bir MDSD formudur.

Ayrıca, DSM'ye çok yakın bir başka MDSD formu olan ABSE (Atom Tabanlı Yazılım Mühendisliği) geliştiriyorum. ABSE, http://www.abse.info'da özetlenmiştir.

+0

+1 Cevabınız için teşekkür ederiz. Belki bu proje hakkında daha fazla ayrıntı biliyorsunuzdur. Örneğin. Kaç tane insanın katıldığı, ilk sürenin tamamlanması için ne kadar sürdüğü, modelde tutulan gereklilikler, hangi tipteki diyagramlar/UML'ler kullanıldı (ör. Davranış kodu oluşturmak için gerekli olan statecharts?)? – tobsen

+0

@tobsen Bu bilgilere sahip değilim, ancak yine de forumda Peter Adriaenssens'e doğrudan soru sorabilirsiniz ... –

+0

@RuiCurado cevabınızdaki 1. bağlantı bozuk. Daha güncel bir bağlantı sağlayarak bunu düzeltebilir misiniz? (senin ikinci bağlantı sadece iyi çalışıyor :) – xmojmr

2

Ayrıca önceki Kod Üretimi konferanslardan slaytlar bir göz sürebilir. Bu görüşmelerin birkaçı, başarılı örnek olaylardan örn. http://www.codegeneration.net/cg2009/slides.php

+0

Bağlantı için teşekkürler, kesinlikle bir göz atacağım. Ancak, sadece bazı isimleri/şirketleri araştırdım ve denediğim bütün dosyalar MDSD-Tools'un oluşturulmasına katılan şirketlere geri döndü. MDSD ile gömülü yazılımın ötesinde gerçek bir dünya uygulaması yapmanın mümkün olduğuna dair bağımsız kanıtlara ihtiyacım var. Belki de bunu yerine getiren bir konuşma işaret edebilir misin? – tobsen

+1

Evangelize Kod Üretimi: Artan Evlat Edinme Örneği (Brooke Hamilton) 2008'den PDF (3.00 Mb). Http://www.codegeneration.net/conference/sessions/slides/bernier.pdf IIRC bu, finansal alandan alınmıştır. Aynı yıldan itibaren 'Hepsini bir araya getirmek' aynı zamanda finansal alan IIRC'den de çıktı. Ayrıca bkz. Http://www.slideshare.net/HeikoB/mastering-differentiated-mdsd-requirements-at-deutsche-boerse-ag Code Generation 2009'dan itibaren. FWIW herkes UML kullanmıyor. Alternatif yaklaşımlar için Google’ın 'Alan Adı Özel Dilleri' veya 'Alan Adı Özel Modelleme'. –

3

CAN yoluyla bağlanan 4 işlemciyi kullanarak gömülü sistem projesinde MDA ve kod üretimi kullanmıştım. 20'den fazla hareket ekseni ve birçok sensörümüz vardı. Sistem, mekanik bileşenler değerlendirildi ve modifiye edildiğinden son derece sağlam ve sürdürülebilirdi.

Biz modellerinde çalıştı ve modeller hep bu yüzden kod oluşturulan yukarı güncel. Konu yalıtımı elde etmek için dikkatli bir alan analizi yaptık.Motor kontrolü çok yüksek performans gerektirir ve bu yüzden modellenmemiştir veya üretilmemiştir. Ağ sürücülerimiz de el ile kodlanmıştı ve köprü hizmetlerinin sistemde herhangi bir yere herhangi bir hizmete ihtiyaç duyduğunu bildiren arayüzler yazdık (süreçler arası bağımlılıkları en aza indirgemek için sıkı bir şekilde kontrol edilmesine rağmen).

Yöntemi kullanmak biraz disiplin aldı, ancak çalışma modellerine sahip olmak harikaydı çünkü bunlar yazılım dışı türler tarafından gözden geçirilebilir.

Modellerin sürüm kontrolü ve farklılıkları biraz zorlayıcıydı, ancak küçük, yerelleştirilmiş bir ekibimiz vardı, böylece birleştirme sorunlarından kaçınabildik.

Pathfinder Solutions numaralı telefondan (takım satıcımız) iyi insanlar projeden mentorluk yapmanıza yardımcı olabilir.

+1

Cevabınız için teşekkürler, ancak kullanıcı arayüzü de dahil olmak üzere en az üç katman var mı? Açıklamanızdan dolayı, bunun için bir çeşit robot/gömülü yazılım oluşturmuşsunuz gibi görünüyor ?! Kulağa ilginç geliyor! – tobsen

+0

Bir kullanıcı arabirimi vardı, ancak genel olarak devlet tabanlı olmadıklarından UI modellemede çok fazla kazanç yok. Sparx'dan Enterprise Architect gibi bir araç, bir UI'nin kullanabileceği gibi basit sınıf yapılarını yakalamakta çok iyidir. Meslektaşım bunu kod üretimi için kullanıyor ama ben hiç sahip olmadım. – Bruce

1

Eski modernizasyon ve Bluage adlı MDA aracını kullanarak projenin birinde çalışıyorum. Onun için büyük bir sağlık kuruluşu ve onun yapımında başarılı olduğunu söyleyebilirim. MDA, desteklenmeyecek olan pacbase gibi bazı teknolojilerden KDM modeli üretebildiğinden eski modernizasyon durumunda daha iyidir.

1

Google Closure'da yönetici stili web uygulamaları oluşturan bir MDSD sistemi üzerinde çalıştım. Senin sorununun zorlayıcı olduğuna inanıyorum. Çok fazla karmaşıklık ve MDSD sisteminizin kullanımı çok zor. Çok basit ve gerçek dünyada kullanışlı uygulamalar üretmeyeceksiniz. MDSD'nin gerçekten parladığı yerlerde, pek çok sıhhi tesisat stili kodu yazarak geliştirici zaman tasarrufu sağlanıyor, ancak MDSD birden fazla sürümde nasıl etkin kalabilir? Gereksinimler birçok yöne gidebilir. Bu gerçek bir meydan okuma. Son zamanlarda bu projeyle ilgili MDSD lessons learned hakkında blog yazdım.

İlgili konular