UML'yi kullanmanın farklı yolları vardır. Martin Fowler bu UML modlarını çağırır : ve tanımlar dört Notes gibi UML'yi , Sketch olarak UML , Blueprint olarak UML ve bir Programlama Dili olarak UML .
Bir Programlama Dili olarak UML hiçbir zaman gerçekten kalkmadı. Bu alanda Model Driven Architecture veya Model Based Software Engineering gibi farklı isimler altında bazı çalışmalar yapılmıştır . Bu yaklaşımda, yazılım sisteminizin oldukça ayrıntılı modellerini yaratır ve bu modellerden kodu oluşturur. Bu yaklaşımın faydalı olduğu bazı durumlar olabilir, ancak genel yazılım için değil, özellikle de bu yaklaşıma güç sağlayan araçları sağlayabilecek büyük şirketlerin dışında değil. Aynı zamanda zaman alıcı bir işlemdir - bir sınıfın kodunu, uygulamak için gerekli tüm grafik modelleri oluşturabileceğimden daha hızlı yazabilirim.
Blueprint olarak UML, genellikle "önden büyük tasarım" projesinin bir göstergesidir. Tabii ki olmak zorunda değil. Model, belirli bir artış için de tamamen tanımlanabilir. Ancak fikir, zamanın UML modelleri biçiminde bir tasarım oluşturmak için harcanması ve daha sonra koda dönüştürülmesi için birine teslim edilmesidir. Tüm detaylar açıklanmıştır ve koda dönüşüm daha mekanik olma eğilimindedir.
Çizim olarak UML ve Notlar olarak UML doğaya benzer, ancak ne zaman kullanıldıklarına göre farklılık gösterir. Taslak olarak UML'yi kullanmak, UML notasyonlarını kullanarak tasarımları taslak haline getireceğiniz anlamına gelir; Notes olarak UML benzerdir, ancak modeller kod tabanını anlamada yardımcı olmak için koddan sonra oluşturulur.
Bunu düşündüğünüz zaman, yukarıdaki her şeyin herhangi bir modelleme gösterimi için doğru olduğunu düşünüyorum. Bunu varlık-ilişki şemalarına, IDEF şemalarına, iş süreci modelleme notasyonuna vb. Uygulayabilirsiniz. Modelleme gösterimi ne olursa olsun, ne zaman uygulayacağınızı (şartnameden önce, alternatif gösterimlerden sonra) ve ne kadar detayı (anahtar yönlerin tam detayı) seçebilirsiniz.
Bunun diğer tarafı açık kaynak kültürü.
Genellikle, açık kaynaklı projeler, bir bireyin (veya bugün bir şirketin) yaşadığı bir sorunu çözmeye başlar. Bir birey tarafından piyasaya sürülürse, geliştiricilerin sayısı 1'dir. Bu durumda, iletişim yükü son derece düşüktür ve gereksinimler ve tasarım hakkında iletişim kurmaya çok az ihtiyaç vardır. Bir şirkette küçük bir takım olması muhtemeldir. Bu durumda, muhtemelen tasarım olanaklarını aktarmanız ve takasları tartışmanız gerekecektir. Ancak, tasarım kararlarınızı verdikten sonra, kod tabanınız zaman içinde değiştiği için modellerinizi korumanız veya onları atmanız gerekir. In Çevik Modelleme açısından, "Belge sürekli" ve korumak "bilginin tek kaynağı" .
Kısaca, kodun tasarım olduğu ve modellerin tasarımın alternatif görüntüleri olduğu fikri var. Jack Reeves tasarım olarak kod üzerinde üç denemeler yazdı , ve C2 wiki tartışmaları bu fikirleri tartışırken, hem de orada kaynak kod tasarım , tasarım kaynak kodu ve kaynak kodu ve modelleme . Bu inanca (benim yaptığım) abone olursanız, kaynak kod doğrudur ve herhangi bir şema sadece kodu ve daha da önemlisi kodun ne olduğunun ardındaki mantığı anlamak için mevcut olmalıdır.
Bahsettiğiniz gibi başarılı bir açık kaynaklı projenin, dünya genelinde katkıları var. Bu katkı sağlayanlar, yazılımı destekleyen teknolojilerde teknik olarak yetkin olma eğilimindedir ve muhtemelen yazılımın kullanıcıları da olabilirler. Katkıda bulunanlar, kaynak kodunu modeller kadar kolay okuyabilen kişilerdir ve kodu anlamak için araçları (IDE'ler ve tersine mühendislik araçları) kullanabilirler (ihtiyaç duyarlarsa modelleri oluşturma dahil). Ayrıca, akışın eskizlerini kendi başlarına da oluşturabilirler.
Fowler'ın açıkladığı dört moddan, modelleme dillerini programlama dilleri veya planları olarak kullanan açık kaynaklı bir proje veya pek çok yerde proje bulacağınızı sanmıyorum. Bu not bırakır ve UML için mümkün olduğu kadar eskiz. Katkıda bulunan için katkıda bulunan tarafından notlar oluşturulacak, muhtemelen onları hiçbir yere yüklemeyeceksiniz. Kodlar daha eksiksiz hale geldiğinden ve katılımcılar için çaba sarf edeceğinden, muhtemelen sürdürülmeyeceğinden eskizler değer olarak azalır.
Açık kaynak kodlu birçok projede, katma değer yaratmadığı için uygun modeller bulunmaz. Ancak, bu, modellerin projenin başlarında biri tarafından yaratılmadığı veya bireylerin sistemin kendi modellerini oluşturmadığı anlamına gelmez. Kaynak kodu: Bir tasarım bilgisi kaynağını korumak sadece daha etkilidir: kaynak kodu.
Tasarım bilgisi alışverişinde bulunan kişileri bulmak istiyorsanız, katkıda bulunanlar tarafından kullanılan herhangi bir foruma veya posta listesine bakmanızı tavsiye ederim. Genellikle, bu forumlar ve posta listeleri projeler için tasarım dokümantasyonu görevi görür. Resmi UML'yi bulamayabilirsiniz, ancak burada tasarım bilgilerinin ve modellerin bir tür grafik gösterimini bulabilirsiniz. Proje için sohbet odalarına veya diğer iletişim kanallarına da girebilirsiniz - insanları tasarım kararları hakkında konuşurken görürseniz, grafik modellerle iletişim kuruyor olabilirler. Fakat iletişimdeki amaçlarına hizmet ettiklerinde değerli olmadıklarından büyük olasılıkla havuzun bir parçası olmayacaklar.