“UML MDB'nin başına gelebilecek en kötü şey.” Neden?


17

Bir tweet'teki William Cook şunu yazdı:

" UML MDB'nin başına gelebilecek en kötü şey. Neyse ki birçok insan bunu anlıyor ... "

Bu iddianın ardındaki mantığı bilmek istiyorum (görünüşe göre, onun kişisel görüşüne atıfta bulunmuyorum).

Dışarıdaki birçok insanın UML'yi bu kadar sevmediğini fark ettim. Ayrıca, UML'nin etkili tasarım ve modellemenin kutsal kâsesi olduğunu önceden belirttiği akademide olduğunu belirtmek gerekir.


15
MDD'nin MDD'ye olan en kötü şey olduğunu söyleyebilirim .
Michael Borgwardt

Yanıtlar:


39

Ben orijinal tweet'i gönderen akademisyenim. Tweetler bilimsel makale değildir. Onlar reklamlar ve bence tartışmalı da olabilirler. İşte benim takip ettiğim tweetler:

1) UML, OO tasarımlarını modellemek için oluşturuldu. Bu, sistemin davranışını değil, bir sistemin kodunu modellemiş olmanızdır. UML yanlış seviyede.

2) UML'deki 7 (veya 13) diyagram formatının her şeyi kapsayabileceği fikri çılgınca. GUI'ler, web tel çerçeveleri, yetkilendirme vb.

3) UML, modellerin grafik olması gerektiği fikrini teşvik etmiştir. Saçma! Metin ve grafik modeller hem yararlıdır hem de sıklıkla değiştirilebilir

4) UML bir kerede çok büyük ve karmaşıktır ve aynı zamanda çok sınırlıdır. Stereotip ve profiller kullanılabilir uzantılar için etkili değildir.

UML'nin kötü olduğunu söylemediğimi unutmayın. Ben sadece bunun "model güdümlü kalkınma" hedefine yardımcı olmadığını söylüyorum, bu benim ilgilendiğim şeydir. "Kutsal Kase" hakkındaki yorumu anlamıyorum.


10
Prog ile ilgili bir soruyu bulmak ve cevaplamak için +1.
Warren P

Bu yüzden, modele dayalı gelişim her zaman bana görsel bir model oluşturmakla ilgili görünüyordu. Ve UML değilse, o zaman ne? (not, MDD'yi hiç sevmedim ve UML'den nefret ediyorum. Ama MDD-sans-UML'yi denemeye hazırım. Ne denemeliyim?
Warren P

1
@Warren P: MDD ve UML hakkında neyi sevmiyorsunuz?
dan_l

1
Cevabımı kaldırdım çünkü ne demek istediğin konusunda yanılmışım. Ancak UML'nin, herhangi bir dil gibi, bir tasarım aracı değil, bir iletişim aracı olduğunu ifade ediyorum. 'Pek çok programlama dilinin adında "dil" kelimesi var, ancak bu sadece iletişim için değil, yürütme için değil anlamına geldiği anlamına gelir. - Bence yürütmenin bir bilgisayarla iletişim olduğu noktasını kaçırıyorsunuz. COBOL'u tasarım aracı olarak da kullanamazsınız.
pdr

"Kutsal Kase" yorumu öğretilme sıklığı ile ilgili olduğunu düşünüyorum.

8

UML, bir tornavida ve bir çekiç alıp bunları bir araya getirip "Evrensel Sabitleme Aracı" olarak adlandırmaya eşdeğerdir. Teorik olarak, bir ton şeyi çok ayrıntılı olarak temsil etmek için kullanılabilir, pratikte, tek bir araç olduğunu iddia eden bir dizi zayıf entegre araç, herhangi bir görevi yapmanın uygun bir araca sahip olmaktan çok daha zor olmasını sağlar.



3

Sanırım MDD'nin UML'ye gelen en kötü şey olduğu da bir vaka var (neden sahip olduğumuz UML2'ye sahip oluruz?), Ama şu an için bunu görmezden geliyor ...

MDD = Modele Dayalı <Tasarım | Geliştirme>. Fikir, problem alanına uygun bir soyutlama düzeyinde çözümler geliştirebilmektir - yani, bu çözümleri ifade etmek için en doğal sözdizimindeki sorunlara çözümler ifade etme girişimidir. Sorunlu alanın kendisi operasyonel bir modelle (yani bilgisayar tarafından çalıştırılabilen bir modelle) karakterize edilir. Bu nedenle, MDD iki önemli gereksinime sahip olsa da çok çekici bir yaklaşım olabilir:

  1. Bu dili bilgisayar uygulaması için uygun bir biçimde derleyebilmelidir (model işlevsel olmalıdır ); ve
  2. Sorunlu etki alanı için bir modelleme dili oluşturulmalıdır.

Muhtemelen UML2 çabasının, muhtemelen UML ile endüstriyel deneyimin, nokta 2'nin bazı büyük sorunlu etki alt kümeleri için tatmin olduğunu gösterdiğine inanarak, 1. noktaya yönelik olması amaçlandığını düşünüyorum. Ne yazık ki, bu William Cook'un başlamış olduğunu düşünüyorum, UML düşünülen sorunların kapsamına yakın herhangi bir yer için 2. noktayı tatmin etmiyor. Kişisel deneyimden bahsetmiyorum, ancak MDD'yi UML ile kullanma endüstriyel deneyiminin iki ortak sonucu olduğunu düşünüyorum:

  • UML tasarımı ve program gereksinimleri arasındaki bu küçük boşlukları gidermek için UML'den oluşturulan kaynak kodunun değiştirilmesi gerekir (geliştiricileri, sürdürülebilirlik için farklı standartlara sahip oluşturulan kodla çalışmaya zorlamak ve UML eserlerinin uygulamaya uygulanabilirliğini azaltmak için) ); VEYA
  • UML, tasarım hakkında iletişim kurmak için bir dil olarak kullanılabilirliğini azaltan çok fazla ayrıntıyla doludur.

    Her iki durumda da, MDD vaadi yerine getirilmemiştir. UML, MDD'nin başına gelen en kötü şey olarak kabul edilebilir, çünkü MDD aracı geliştiricilerinin dikkatini, gerçekten işe yarayabilecek modellerin (daha küçük bir yazılım problemleri seti de olsa) hariç tutmaya dikkat etti.


  • -2

    UML, sadece bir modelleme dili olduğu sürece harika. Grafik görünüm elde etmek için MDD'yi UML'ye bağlamaya çalışırsanız işe yaramaz. MDD, UML'siz ve MDD'siz UML olmadan harika olurdu.

    Diyelim ki UML ve MDD artık birlikte değil daha iyi bir yaşam sürmek için boşandı :-)


    Hiçbir düzeyde "harika" değil. Felaketli ADA programlama dilinin (Booch) bir kullanıcısı bazı çocuksu diyagramlar oluşturdu ve UML oluşturmak için birkaç daha ciddi sınıf diyagramı yaklaşımıyla bağlandı. UML hemen büyük bir yazılım satıcısı gelir üreticisine dönüştü. Korkunçtu, ancak sekans, veri akışı vb.Gibi yeni diyagram türlerine (bu eski UML'ye) düşerek kurtarıldı. Veritabanı şeması yok, katman diyagramı yok, boşluklarla dolu ve aynı zamanda yararsız diyagramlarla dolu.
    Rick O'Shea
    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.