2010-04-22 34 views
9

Ben ve diğer bazı geliştiriciler, çoğunlukla görsel ve veri katmanlarını ayıran eski kod tabanımızı temizliyor. Geliştiricilerin bu yeniden düzenleme sürecine dahil edilmemesine yardımcı olmak için modeli anlamak, her sınıf için kapsam ve istenen kullanım hakkında yorumlarla (oldukça gayri resmi) bir sınıf diyagramı tanıtmak istiyorum. Tembel olduğum için, bunun için UMLGraph'ı kullanmak isterim.UML ile nasıl bir mixin/role/trait'i doğru şekilde temsil edebilirim?

Ancak küçük bir sorun var: bir perl kod tabanımız var ve yeniden oluşturmayı Moose rollerini kapsamlı olarak kullanıyoruz. Şimdi UML rolleri için uygun bir abstaction bulmak için yeterince iyi bilmiyorum - ilk tahminim arayüzler olurdu, ama aynı zamanda uygulama içerir; Birden fazla kalıtım da onu kesmez.

Bir sınıf diyagramında rolleri doğru şekilde nasıl (veya nasıl) temsil edersiniz?

cevap

3

gibi temsil edilmiştir. Rolü oluşturan sınıf, daha sonra «does» klişesi olan role bir ilişki içerecektir.

Simple Composition http://img820.imageshack.us/img820/5665/simplecomposition.png

ben daha çok takma ad veya hariç tutarak, rol uyum Gerekirse, düzgün açıklamalı üyeleri ve «adaptation» klişe ile bir dernek sınıf olarak o oluşturmak istiyorum. İlişkilendirme sınıfının adı önemli değil çünkü tasarımda gerçek bir tip olmayacak; böylece isimsiz bırakırım.

Composition with Conflict Resolution http://img828.imageshack.us/img828/244/conflictcomposition.png

(Ben adaptasyon gerçekten MyComposition ve MyRole1 arasındaki ilişki bağlamak oldu yapmak istedim ne kompozisyon ve onu adapte rolü. Bağlanmış "sınıf" göstermiştir unutmayın. Bu sadece Kullandığım aracın ilişkilendirme sınıflarını desteklemediğini).

+0

Jordão, Bu şemaların görünümünü seviyorum. Onları oluşturmak için hangi aracı kullandınız? –

+0

@WayneConrad: [YUML] kullandım (http://yuml.me/), kontrol et! –

+0

Bu, UML için grafikvizite benzer. Çok hoş! –