UML oklarının açıklaması


244

Son zamanlarda UML üzerinde çalışıyorum ve sınıflar arasında normal düz oklarla basit diyagramlar çiziyorum, ancak bunun yeterli olmadığını biliyorum. Şema okuyucusu için anlamı olan birçok başka ok vardır: genelleme, gerçekleştirme vb.

Her oku (sıradan, sade, noktalı, elmas dolu, elmas) açıklayabilecek güzel bir kaynak var mı?

Onlar için bazı kod örnekleri varsa en iyisi olurdu.


4
Şunu düşünmenizi şiddetle tavsiye ederim: dzone.com/refcardz/getting-started-uml
trinity

Yanıtlar:


475

Visual Studio 2015 belgelerinden bazı açıklamalar:

UML Sınıf Diyagramları: Referans : https://msdn.microsoft.com/library/dd409437%28VS.140%29.aspx

UML sınıf diyagramı

5 : İlişki : İki sınıflandırıcının üyeleri arasındaki ilişki.

5a : Toplama : Paylaşılan sahiplik ilişkisini temsil eden dernek. Sahip rolünün Toplama özelliği şu şekilde ayarlanır: Paylaşılan .

5b : Kompozisyon : Tüm bölüm ilişkisini temsil eden dernek Sahip rolünün Toplama özelliği şu şekilde ayarlanır: Kompozit .

9 : Genelleme : Spesifik sınıflandırıcı tanımının bir kısmını genel sınıflandırıcıdan devralır. Genel sınıflandırıcı, konektörün ok ucundadır. Öznitelikler, ilişkilendirmeler ve işlemler belirli bir sınıflandırıcı tarafından miras alınır. İki sınıflandırıcı arasında bir genelleme oluşturmak için Devralma aracını kullanın .

Paket şeması

13 : İçe Aktar : Paketler arasında, bir paketin diğerinin tüm tanımlarını içerdiğini gösteren bir ilişki.

14 : Bağımlılık : Ok ucu ucundaki sınıflandırıcı değiştirilirse bağımlı sınıflandırıcının tanımı veya uygulaması değişebilir.

Gerçekleşme ilişkisi

15 : Gerçekleştirme : Sınıf, arabirim tarafından tanımlanan işlemleri ve nitelikleri uygular. Kalıtım KullanSınıf ve arabirim arasında bir gerçekleştirme oluşturmak aracını .

16 : Gerçekleşme : Aynı ilişkinin alternatif bir sunumu. Lolipop sembolü üzerindeki etiket arayüzü tanımlar.

UML Sınıf Diyagramları: Yönergeler : http://msdn.microsoft.com/library/dd409416%28VS.140%29.aspx

Derneğin Özellikleri

toplanma : Bu, konektörün bir ucunda elmas şekli olarak görünür. Toplama rolündeki örneklerin, diğerinin örneklerine sahip olduğunu veya içerdiğini belirtmek için kullanabilirsiniz.

Gezilebilir mi : Yalnızca bir rol için doğruysa, gezilebilir yönde bir ok görünür. Yazılımdaki bağlantıların ve veritabanı ilişkilerinin gezilebilirliğini göstermek için bunu kullanabilirsiniz.


genelleme : Genelleme, uzmanlaşan veya türetilen türün, genel veya temel türün niteliklerini, işlemlerini ve ilişkilendirmelerini miras aldığı anlamına gelir. Genel tür, ilişkinin ok ucu sonunda görünür.

Gerçekleştirme : Gerçekleştirme, bir sınıfın arabirim tarafından belirtilen öznitelikleri ve işlemleri uyguladığı anlamına gelir. Arayüz konektörün ok ucundadır.

Eğer başka sorunuz varsa bana haber verin.


1
Güzel referans ama bana bir Menu -> MenuItem bir Order -> OrderItem gibi aynı ilişkiye sahiptir, bu yüzden ikisi de Kompozisyon.
Ignacio Soler Garcia

4
Bu her ikisi de sadece sipariş öğesinin bir siparişe ait olduğu ve taşınamayacağı anlamına gelirken, Menü Öğesi ayarlanabilir - kullanıcı Menü Öğesinin konumunu değiştirebilir. Seçilen çözümdür. Neden olmasın?
Gangnus

@Gangnus, teşekkür ederim. Bu açıklama, beni uzun zamandır kaçan farkı açıklığa kavuşturdu.
JMD

1
@ JMD, sipariş öğeleri de taşınabilir. Kompozit toplama, UML spesifikasyonunda aşağıdaki gibi tanımlanır: Kompozit toplama, bir seferde en fazla bir kompozit nesneye dahil edilecek bir parça nesnesinin dahil edilmesini gerektiren güçlü bir toplama şeklidir. Kompozit bir nesne silinirse, nesne olan tüm partikülleri onunla silinir. Bir parça nesne (aksi takdirde izin verilirse) bileşik nesne silinmeden önce bileşik nesneden çıkarılabilir ve böylece bileşik nesnenin bir parçası olarak silinemez.
www.admiraalit.nl

2
@aGer Teşekkürler, konuyu ve resim bağlantılarını güncelledim.
Esther Fan - MSFT 22:17

154

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Bu resimlerin anlaşılabilir olduğunu düşünüyorum.


Bu kavramların bazıları örtüşmüyor mu? A, B'ye bağlıdır. A'nın B'ye erişimi vardır.
EresDev

1
Diyagramda, Gerçekleştirme iki kez tekrarlanır, ancak farklı resim ile. Lütfen farkı ayrıntılandırabilir misiniz?
değişkeni


13

En sevdiğim UML "hile sayfası" Martin Fowler tarafından yazılan UML Distile . Kitaplarında okuduğum tek tavsiye ettiğim tek kişi.


1
İlginç, Refactoring'i çok beğendim. Üzerinde görüşün var mı?
djna

Evet, her şeyi biraz açık buldum ve Java'daki konsantrasyonu beğenmedim. Ayrıca, lütfen diğer kitaplarının saçma olduğunu söyleyerek cevabımı almayın.

Fowler'ın kitabında ayrıca kitap kapaklarının içinde bir hile sayfası var. Başlamak için gerçekten iyi, özellikle bir sonraki sorunuzda oklar hangi yöne gidecek?
Ted Johnson

12
185 sayfa "hile sayfası" için biraz fazla görünüyor!
cdyson37

12

İşte basitleştirilmiş öğretici:

Pratik UML

Daha fazlası için biraz edebiyat almanızı öneririm.


9

Açık ve kısa örneklerle birlikte hızlı referans için Allen Holub'un UML Hızlı Referansı mükemmel:

http://www.holub.com/goodies/uml/

(Tablonun ilk sütununda, ikinci sütunda açıklamalarla birlikte ok ve işaretçilerin birkaç spesifik örneği vardır.)


İlk örneğini beğendim ve temel olarak aynı satırlarda kademeli olarak gitmesini umuyordum, ama iyi bir okuma
killjoy

6

Anlaması çok kolay bir açıklama, sınıf diyagramları, kullanım örnekleri ve aktiviteler için örneklerle yuml'un belgelenmesidir .


Bu listeye giderken muhtemelen en iyi aptallar için UML; not: Bu site ayrıca kendi UML'lerinizi ücretsiz olarak çizmenize izin verir (5).
killjoy

5

Kabul edilen cevap söyleniyor, Bazı açıklamalar eksik . Örneğin, tek yönlü ve çift yönlü bir ilişki arasındaki fark nedir? Verilen örnekte her ikisi de var. (Her ikisi de '5'ler oklarda)

Daha eksiksiz bir cevap arıyorsanız ve daha fazla zamanınız varsa, işte ayrıntılı bir açıklama.



0

Toplamalar ve kompozisyonlar biraz kafa karıştırıcıdır. Ancak, kompozisyonlar gibi düşünün, toplamanın daha güçlü bir versiyonudur. Bu ne anlama geliyor? Bir örnek verelim: (Toplama) 1. Bir sınıf ve öğrenciler alın: Bu durumda aralarındaki ilişkiyi analiz etmeye çalışırız. Bir sınıf vardır bir öğrenci ile ilişki. Yani sınıf bir veya daha fazla öğrenciden oluşur. Classroom sınıfını kaldırsak bile, Students sınıfının yok olması gerekmez, yani Student sınıfını bağımsız olarak kullanabiliriz.

(Beste) 2. Sayfalara ve Kitap Sınıfına bir göz atın. Bu durumda, sayfa olan bir sayfaların koleksiyonları kitap yapar demektir kitabı. Kitap sınıfını kaldırırsak, tüm Page sınıfı yok edilir. Bu, sayfanın sınıfını bağımsız olarak kullanamayacağımız anlamına gelir.

Bu konu hakkında hala emin değilseniz, toplama işlemini daha açık bir şekilde açıklayan bu kısa harika videoyu izleyin.

https://www.youtube.com/watch?v=d5ecYmyFZW0

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.