Hangi UML diyagramları hala yaygın olarak kullanılmaktadır? [kapalı]


19

Yazılım mühendisliğini lisans düzeyinde öğretiyorum ve UML uygulayıcılarına bir sorum var.

Çoğu yazılım mühendisliği ders kitabı UML diyagramlarını ele almak için ciddi çaba sarf etmektedir. Ancak öte yandan, pek çok mezuntan UML'nin siperlerde artık kullanılmadığını duydum.

Profesyonel uygulamada hala hangi UML diyagramları yaygın olarak kullanılmaktadır ve neden? Artık kullanılmayan diyagramlar var mı ve neden?

Not: Fikir temelli tartışmalardan ve tartışmalardan kaçınmak için, lütfen cevabınızı gerçek ve nesnel unsurlarla (mümkünse, doğrulanabilir) veya kişisel deneyimle ilgili tarafsız gözlemlerle gösterin


10
Bilmiyoruz. Bunun gibi şeyleri bulmak için anket yapmıyoruz.
Robert Harvey

3
Sorunuz öncelikle görüş temelli. UML'yi çok kullanıyorum, ancak "UML öldü" şeklinde yanıt veren çok sayıda insan bulacaksınız.
qwerty_so

1
softwareengineering.stackexchange.com/q/305031/40065 çok ilgili bir soru (neredeyse yinelenen, ancak çok farklı bir şekilde formüle edildi)
Basile Starynkevitch

1
Ama belki UML artık çok fazla kullanılmıyor (gerçek hayatta)? Demek istediğim buydu! O zaman sorunuzun cevabı: hiçbiri .
Basile Starynkevitch

1
UML gençken Martin Fowler , birçok programcı için masa referansı olan UML damıtılmış kitabını yazdı . Birkaç yıl sonra Martin UmlAsSketch , UmlAsNotes , UnwantedModelingLanguage gibi kısa pratik uygulama notları yazdı .
Nick Alexeev

Yanıtlar:


15

UML tarafından önerilen birçok diyagramdan, sınıf diyagramları ve dizi diyagramları hala yaygın olarak kullanılmaktadır, bunu kesinlikle devlet diyagramları takip etmektedir:

  • kodda atlamadan önce tasarımı ayrıntılı olarak tartışmak ve tartışmak için beyaz tahtalarda kolayca kullanılabilirler
  • kodun tek başına bu kadar kolay vermediği bir genel bakışı çok hızlı bir şekilde iletmeyi sağlarlar ve geçerli bir ikame yoktur.

Bence gerçek hayatta kullanım örneği daha nadiren kullanılıyor. Yüzlerce kullanım senaryosuna sahip büyük projelerde, diyagramlar çizmek acı verici ve tablo biçiminde çok az fayda sağlar. Proses tasarımı, kullanıcı hikayesi eşlemesi veya bir Cockburn tarzında olay sekmeli ayrıştırması için BPMN çok daha fazla kullanılır. Neden ? Çünkü gereksinimleri verimli bir şekilde çözmek için iş kullanıcılarıyla daha kolay paylaşılırlar.

Eminim UML'nin hala yoğun ve sistematik olarak kullanıldığı yerlerdir. Uzay ve havacılık yazılımlarının veya nükleer santral kontrol sistemlerinin tam UML belgeleri olmadan üretildiğini düşünmüyorum . Ama bunun kuraldan çok istisna olduğuna inanıyorum.

Kitapçılara bakarken bu ifadede onaylanmış hissediyorum. Birkaç yıl önce, UML 2.0'da birçok kitap bulabilirsiniz. Günümüzde, UML 2.5 arıyorsanız, seçim oldukça kısıtlıdır. Daha da kötüsü: birçok yazar, eski kitaplarını güncel tutmak için gözden geçirme çabası bile göstermiyor (örnek: 2003'ten itibaren hala Ambler'in Öğeleri için aynı olan UML 2.0 ile aynı tarihte olan Fowler'in güzel " UML damıtılmış " tanıtımı UML 2.0 stili "!).

Bu azalan trendin, çevikliğin genelleştirilmesine ve "Kapsamlı belgeler üzerinde çalışan yazılım" tanıtımına bakarak değişeceğini düşünmüyorum .

Sonunda, kışkırtıcı bir şekilde, modelleme yöntemlerinin darwinistik bir şema izlediğini iddia ediyorum: sadece en uygun diyagramlama tekniği hayatta kalacak, gayri resmi yaklaşımlar (örn. Peçete çizimi) ve ayrıntılı kod (örn. karşılık gelen kod bir A4 kağıda sığdığında neden bir A1 etkinlik şeması çizin?) ;-)


Ayrıca bkz. Agilemodeling.com
xmojmr

4
"Karşılık gelen kod bir A4 kağıda sığdığında neden bir A1 etkinlik diyagramı çizelim?" Mükemmel.
nbubis

Kendi tecrübelerime göre, bazı şirket modellemelerinde testere zaman kaybı var, sadece kodlama ...
Walfrat

@Christophe "Peçete çizimi" nedir?
rugk

Ben öğle vakti tasarım tartışırken çizdiğiniz o basitleştirilmiş gayri şemalar atıfta bulundu @rugk ( Ben kötü bir alışkanlık olduğunu biliyorum bazen ofiste zaman geri alması herkesin anladığını ve bu, bir kağıt peçete veya kağıt masa örtüsü üzerine) bunun gerçekten probleminizi çözdüğünün farkındasınız.
Christophe

7

Öte yandan, birçok mezundan UML'nin siperlerde artık kullanılmadığını duydum.

Hepsi pratikte kullanılır. Ama herkes onları kullanmıyor. Bazı insanlar tasarımdan tamamen kaçınır ve doğrudan kodlamaya atlar. "Herkes" in ne yaptığını bilmek için fıkralara dayanan kanıtlara güvenemezsiniz.

UML gibi araçlar, değer eklediklerinde kullanırsanız en iyi sonucu verir ; Örneğin

  • daha büyük projeler için
  • bir projenin karmaşık kısımları için
  • proje tasarımı birden fazla kişiden girdi gerektirdiğinde

Onları sadece yapmak için (ya da işlem yapmanız gerektiğini söylediği için) üretmek üretken değildir. En iyi uygulama, neyi çizdiğiniz ve ne tür kullandığınız konusunda seçici olmaktır. Ne zaman ve nerede yardımcı olursa olsun UML kullanın ... ve kullandığınız UML diyagramlarının türlerinden seçici olmayı içerir.

Ayrıca ... UML öncelikle bir tasarım aracı olarak tasarlandı. Bir dokümantasyon aracı olarak (günümüzde) etkili değildir. Tipik IDE'ler, bir kod temel yapısı anında olduğunda birçok yönü görselleştirmenize yardımcı olur. Bu genellikle eski / yanlış olmuş olabilecek UML diyagramlarına güvenmekten daha iyidir.


3

UML hala siperlerde kullanılmaktadır. Ancak, her zaman olduğu gibi, insanlar bunun bir alt kümesini kullanır. Hangi altküme mevcut sorunlara tabidir.

UML birçok versiyonda gelir. Ancak, her zaman olduğu gibi, insanlar sembollerini gayri resmi ve tutarsız kullanırlar.

UML, orada desen kitaplarının çoğunu nasıl anladığımızdır. Aynı zamanda beyaz tahta üzerinde iletişim kurma yollarımızdan biridir. Gitmedi. Ancak asla resmi olarak kod olarak kullanılmayacaktır.

UML sürüm 2.5'e veya en son sürümüne uymak için herhangi bir UML diyagramını düzeltebilen öğrenciler üretmek yerine , belirli bir UML sürümüyle tamamen tutarlı olmasa bile diyagramın ne iletişim kurmaya çalıştığını anlayabilen öğrenciler üretin, çünkü hendeklerde UML'nin nasıl kullanıldığı. Diğer sistemlerle karıştırılmış garip yerel lehçelerde gelir ve bazen sadece kendi sembollerimizi oluştururuz.

Onlara, şeylerin ne anlama geldiğini sormanın uygun olduğunu öğretin. Onlara bazı hayali kuralları ihlal eden başkalarını düzeltmeyi öğretmeyin. Sadece burada iletişim kurmaya çalışıyoruz.

Uml'yi gördüğüm en iyi kullanım, yeni bir programcının bize bir sorunu çözme planlarını göstermesine izin vermektir. Hızla bize ihmal ettikleri veya var olduklarını fark etmedikleri kısımlarını gösterdi.

Ayrıca ihtiyaç duyulmasa bile UML gerektiren yerlerde çalıştım. Hep aynı kalıbı kullanıyorduk bu yüzden sadece bir formalite idi. Yeni isimleri eski diyagramlara çektiğimiz noktaya geldik. Bu tür bir kullanımı teşvik etmeyin.

Ama bence hepimiz normal ok başı ile açık ok başı arasında bir fark olduğunu biliyoruz. Sağ?


0

Deneyimlerime göre spesifik olacağım: - Dağıtım şeması - Sıra şeması - Sınıf şeması Bu üç proje herhangi bir projede en çok kullanılanlardır, farklı seviyelerde ekiple gerçek iletişim değeri sağlarlar.

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.