UML dilinin genel özellikleri. UML diyagramı. UML diyagramı türleri uml katman diyagramı

UML, OO sistemlerini tanımlamak, görselleştirmek, tasarlamak ve belgelemek için birleşik bir grafik modelleme dilidir. UML, OO yaklaşımına dayalı PS modelleme sürecini desteklemek, kavramsal ve program kavramları arasındaki ilişkiyi düzenlemek ve karmaşık sistemleri ölçeklendirme sorunlarını yansıtmak için tasarlanmıştır. UML modelleri, iş analizinden sistem bakımına kadar yazılım yaşam döngüsünün tüm aşamalarında kullanılır. Farklı kuruluşlar, sorun alanlarına ve kullanılan teknolojilere bağlı olarak UML'yi kendi yöntemleriyle kullanabilirler.

UML'nin Kısa Tarihi

1990'ların ortalarında, her biri kendi grafik notasyonunu kullanan çeşitli yazarlar tarafından birkaç düzine OO modelleme yöntemi önerildi. Aynı zamanda, bu yöntemlerden herhangi birinin güçlü yanları vardı, ancak yeterince eksiksiz bir PS modeli oluşturmaya, onu "her yönden", yani gerekli tüm tahminleri göstermeye izin vermedi (1. maddeye bakın). Ek olarak, bir OO modelleme standardının olmaması, geliştiricilerin en uygun yöntemi seçmesini zorlaştırdı ve bu da bir OO yaklaşımının yazılım geliştirmede yaygın olarak kullanılmasını engelledi.

Nesne teknolojileri ve veritabanları alanında standartları benimsemekten sorumlu bir kuruluş olan Nesne Yönetimi Grubunun (OMG) talebi üzerine, acil birleştirme ve standardizasyon sorunu, en popüler üç OO yönteminin yazarları tarafından çözüldü - G. Booch , D. Rambo ve Efforts'u birleştiren A. Jacobson, 1997'de OMG tarafından standart olarak onaylanan UML sürüm 1.1'i oluşturdu.

UML bir dildir

Herhangi bir dil, bir sözlükten ve anlamlı yapılar oluşturmak için sözcükleri birleştirme kurallarından oluşur. Bu nedenle, özellikle programlama dilleri düzenlenmiştir, UML böyledir. Ayırt edici özelliği, dilin söz varlığının grafik öğelerden oluşmasıdır. Her grafik sembolünün belirli bir anlamı vardır, bu nedenle bir geliştirici tarafından oluşturulan bir model, UML'yi yorumlayan bir aracın yanı sıra bir diğeri tarafından net bir şekilde anlaşılabilir. Buradan, özellikle, UML'de sunulan bir PS modelinin otomatik olarak bir OO programlama diline (Java, C ++, VisualBasic gibi) yani UML'yi destekleyen iyi bir görsel modelleme aracıyla şu şekilde çevrilebileceği sonucu çıkar: bir model oluşturmak , ayrıca bu modele karşılık gelen program kodunun boş bir kısmını alacağız.

UML'nin bir yöntem değil, bir dil olduğu vurgulanmalıdır. Hangi unsurlardan model oluşturulacağını ve bunların nasıl okunacağını açıklar, ancak hangi modellerin ve hangi durumlarda geliştirilmesi gerektiği hakkında hiçbir şey söylemez. UML'ye dayalı bir yöntem oluşturmak için, onu PS geliştirme sürecinin bir açıklamasıyla desteklemek gerekir. Böyle bir sürecin bir örneği, daha sonraki makalelerde tartışılacak olan Rational Unified Process'tir.

UML sözlüğü

Model, diyagramlarda gösterilen varlıklar ve aralarındaki ilişkiler şeklinde temsil edilir.

Esanslar modellerin ana unsuru olan soyutlamalardır. Dört tür varlık vardır - yapısal (sınıf, arayüz, bileşen, kullanım durumu, işbirliği, düğüm), davranışsal (etkileşim, durum), gruplama (paketler) ve açıklamalı (yorumlar). Her varlık tipinin kendi grafik gösterimi vardır. Diyagramlar incelenirken varlıklar ayrıntılı olarak tartışılacaktır.

İlişki varlıklar arasındaki farklı ilişkileri gösterir. UML'de aşağıdaki ilişki türleri tanımlanmıştır:

  • Bağımlılık iki varlık arasındaki böyle bir ilişkiyi gösterir, bunlardan birinde - bağımsız - bir değişiklik diğerinin - bağımlı - anlamını etkileyebilir. Bağımlılık, bağımlı varlıktan bağımsız varlığa işaret eden noktalı bir okla temsil edilir.
  • Dernek bir varlığa ait nesnelerin başka bir varlığa ait nesnelerle ilişkili olduğunu gösteren yapısal bir ilişkidir. Grafiksel olarak, bir ilişkilendirme, ilgili varlıkları birleştiren bir çizgi olarak gösterilir. İlişkiler, nesneler arasında gezinmek için kullanılır. Örneğin, "Sipariş" ve "Ürün" sınıfları arasındaki ilişki, bir yandan belirli bir siparişte belirtilen tüm ürünleri veya bu ürünü içeren tüm siparişleri bulmak için kullanılabilir. Karşılık gelen programların böyle bir navigasyonu sağlayan bir mekanizmayı uygulaması gerektiği açıktır. Navigasyon yalnızca bir yönde gerekliyse, ilişkilendirmenin sonunda bir okla gösterilir. Özel bir ilişkilendirme durumu toplamadır - "bütün" - "parça" biçiminde bir ilişki. Grafiksel olarak, varlık-bütünün yanında uçta bir eşkenar dörtgen ile vurgulanır.
  • genelleme bir üst varlık ile bir alt varlık arasındaki bir ilişkidir. Temel olarak, bu ilişki, sınıflar ve nesneler için kalıtım özelliğini yansıtır. Genelleme, ana varlığa doğru işaret eden bir üçgenle biten bir çizgi olarak gösterilir. Çocuk, ebeveynin yapısını (niteliklerini) ve davranışını (yöntemlerini) devralır, ancak aynı zamanda yeni yapı öğelerine ve yeni yöntemlere sahip olabilir. UML, bir varlık birden fazla ana varlıkla ilişkili olduğunda çoklu kalıtıma izin verir.
  • uygulama- davranış spesifikasyonunu (arayüz) tanımlayan varlık ile bu davranışın uygulanmasını tanımlayan varlık (sınıf, bileşen) arasındaki ilişki. Bu ilişki, bileşen modellemede yaygın olarak kullanılır ve sonraki makalelerde daha ayrıntılı olarak açıklanacaktır.

diyagramlar. UML aşağıdaki şemaları sağlar:

  • Sistemin davranışını açıklayan diyagramlar:
    • Durum diyagramları (Durum diyagramları),
    • Aktivite diyagramları,
    • Nesne diyagramları,
    • Dizi diyagramları,
    • İşbirliği diyagramları;
  • Sistemin fiziksel uygulamasını açıklayan diyagramlar:
    • Bileşen diyagramları;
    • Dağıtım şemaları.

Model kontrol görünümü. paketler.

Bir modelin bir kişi tarafından iyi anlaşılması için, onu hiyerarşik olarak düzenlemek ve hiyerarşinin her seviyesinde az sayıda varlık bırakmak gerektiğini zaten söylemiştik. UML, bir modelin - paketlerin hiyerarşik bir temsilini düzenlemenin bir yolunu içerir. Herhangi bir model, sınıfları, kullanım durumlarını ve diğer varlıkları ve diyagramları içerebilen bir dizi paketten oluşur. Bir paket, hiyerarşi oluşturmanıza izin veren başka paketleri içerebilir. UML ayrı paket diyagramları sağlamaz, ancak diğer diyagramlarda görünebilirler. Paket, sekmeli bir dikdörtgen olarak görüntülenir.

UML'nin sağladığı şey.

  • paketleri vurgulayarak karmaşık bir sistemin hiyerarşik açıklaması;
  • kullanım durumları aparatını kullanarak sistem için fonksiyonel gereksinimlerin resmileştirilmesi;
  • faaliyet şemaları ve senaryolar oluşturarak sistem gereksinimlerinin detaylandırılması;
  • veri sınıflarının seçimi ve sınıf diyagramları şeklinde kavramsal bir veri modelinin oluşturulması;
  • kullanıcı arayüzünü tanımlayan sınıfların seçimi ve bir ekran gezinme şemasının oluşturulması;
  • sistem işlevlerinin performansında nesnelerin etkileşim süreçlerinin tanımı;
  • faaliyetlerin ve durumların diyagramları şeklinde nesnelerin davranışının tanımı;
  • yazılım bileşenlerinin tanımı ve arayüzler aracılığıyla etkileşimleri;
  • sistemin fiziksel mimarisinin tanımı.

Ve son…

UML'nin tüm çekiciliğine rağmen görsel modelleme araçları olmadan gerçek PS modellemede kullanmak zor olacaktır. Bu tür araçlar, diyagramları ekranda hızlı bir şekilde sunmanıza, bunları belgelemenize, çeşitli OO programlama dillerinde program kodlarından boşluklar oluşturmanıza ve veritabanı şemaları oluşturmanıza olanak tanır. Çoğu, program kodlarının yeniden yapılandırılması olasılığını içerir - programların kaynak kodlarını otomatik olarak analiz ederek PS modelinin belirli projeksiyonlarını geri yükleme; bu, model ve kodların eşleşmesini sağlamak için ve önceki sistemlerin işlevselliğini devralan sistemler tasarlarken çok önemlidir. .

UML diyagramı, çeşitli yazılımların geliştirilmesinde nesne modellemesi için tasarlanmış özel bir grafik tanımlama dilidir. Bu dil geniş bir profile sahiptir ve bir sistemin soyut bir modelini oluşturmak için çeşitli grafik notasyonları kullanan açık bir standarttır. UML, her türlü yazılım sisteminin tanımlanmasını, görselleştirilmesini, belgelenmesini ve tasarlanmasını sağlamak için oluşturulmuştur. UML diyagramının kendisinin bir programlama dili olmadığını, ancak buna dayalı olarak ayrı bir kod oluşturma imkanı sağladığını belirtmekte fayda var.

Neden ona ihtiyaç var?

UML kullanımı her türlü yazılımın modellenmesi ile bitmez. Ayrıca, bu dil günümüzde çeşitli iş süreçlerinin modellenmesi, sistem tasarımının yürütülmesi ve organizasyon yapılarının görüntülenmesi için aktif olarak kullanılmaktadır.

UML'nin yardımıyla yazılım geliştiriciler, bileşen, genelleme, sınıf, davranış ve toplama gibi ortak kavramları temsil etmek için kullanılan grafik notasyonda tam anlaşma sağlayabilirler. Bu, mimarlık ve tasarım üzerinde daha fazla konsantrasyon sağlar.

Ayrıca, bu tür tabloların birkaç türü olduğunu da belirtmekte fayda var.

sınıf diyagramı

Bir UML sınıf diyagramı, bir sistemin yapısını tanımlamanın yanı sıra birkaç farklı sınıf arasındaki öznitelikleri, yöntemleri ve bağımlılıkları göstermek için tasarlanmış statik bir yapı diyagramıdır.

Nasıl kullanılacağına bağlı olarak, bu tür diyagramların oluşturulmasıyla ilgili birkaç bakış açısı olduğu gerçeğini belirtmekte fayda var:

  • Kavramsal. Bu durumda, UML sınıf diyagramı belirli bir konu alanının modelini açıklar ve yalnızca uygulama nesneleri sınıfları sağlar.
  • Özel. Diyagram, çeşitli bilgi sistemlerini tasarlama sürecinde kullanılır.
  • Uygulama. Sınıf diyagramı, doğrudan program kodunda kullanılan her türlü sınıfı içerir.

Bileşen Şeması

UML bileşen diyagramı tamamen statik bir yapı diyagramıdır. Belirli bir yazılım sisteminin çeşitli yapısal bileşenlere dağılımını ve aralarındaki ilişkileri göstermeyi amaçlar. Bir UML bileşen diyagramı, her türden modeli, kitaplığı, dosyayı, paketi, yürütülebilir dosyayı ve bunun gibi birçok başka öğeyi kullanabilir.

Bileşik/kompozit yapı diyagramı

UML bileşik/kompozit yapı diyagramı aynı zamanda statik bir yapı diyagramıdır, ancak sınıfların iç yapısını göstermek için kullanılır. Mümkünse, bu şema, sınıfın iç yapısında bulunan öğelerin etkileşimini de gösterebilir.

Bunların bir alt türü, bir işbirliği kapsamında farklı sınıfların rollerini ve etkileşimlerini göstermek için kullanılan UML işbirliği diyagramıdır. Tasarım kalıplarını modellemeniz gerekiyorsa oldukça kullanışlıdırlar.

UML sınıf diyagramları ile bileşik yapı diyagramlarının aynı anda kullanılabileceğini belirtmekte fayda var.

Dağıtım Şeması

Bu diyagram, çalışan düğümlerin yanı sıra üzerlerinde dağıtılan her türlü yapıtı modellemek için kullanılır. UML 2'de yapılar çeşitli düğümlerde dağıtılırken, ilk sürümde yalnızca bileşenler dağıtıldı. Bu nedenle, UML konuşlandırma diyagramı öncelikle ikinci sürüm için kullanılır.

Bir yapı ve uyguladığı bileşen arasında bir tezahür bağımlılığı oluşur.

Nesne Diyagramı

Bu görünüm, belirli bir zamanda oluşturulan sistemin tam veya kısmi anlık görüntüsünü görmenizi sağlar. Belirli bir sistemin sınıflarının tüm örneklerini, parametrelerinin mevcut değerlerini ve aralarındaki ilişkileri gösteren tam olarak görüntüler.

Paket şeması

Bu diyagram doğası gereği yapısaldır ve ana içeriği her türlü paket ve aralarındaki ilişkilerdir. Bu durumda, birkaç yapısal diyagram arasında kesin bir ayrım yoktur, bunun sonucunda kullanımları çoğunlukla yalnızca kolaylık sağlamak için kullanılır ve herhangi bir anlamsal anlam taşımaz. Farklı öğelerin diğer UML diyagramlarını sağlayabileceğini belirtmekte fayda var (örnekler: paketler ve paket diyagramlarının kendileri).

Kullanımları, yapıyı basitleştirmek ve bu sistemin modeliyle çalışmayı organize etmek için belirli bir niteliğe göre birkaç öğenin gruplar halinde düzenlenmesini sağlamak için gerçekleştirilir.

etkinlik şeması

UML etkinlik diyagramı, belirli bir etkinliğin birkaç bileşen parçasına ayrılmasını gösterir. Bu durumda, "etkinlik" kavramı, belirli bir yürütülebilir davranışın paralel biçimde belirtilmesinin yanı sıra çeşitli alt öğelerin koordineli sıralı yürütülmesini ifade eder - iç içe geçmiş etkinlik türleri ve çeşitli eylemler, akışlardan gelen akışlarla birleşir. Belirli bir düğümün çıktıları diğerinin girdilerine.

UML etkinlik diyagramı genellikle çeşitli iş süreçlerini, paralel ve sıralı hesaplamayı modellemek için kullanılır. Diğer şeylerin yanı sıra, her türlü teknolojik prosedürü modellerler.

otomat diyagramı

Bu görüş, biraz farklı bir şekilde - UML durum diyagramı olarak adlandırılır. Geçişlerin yanı sıra basit ve bileşik durumlarla sunulan bir durum makinesine sahiptir.

Bir sonlu durum makinesi, belirli bir nesnenin içinden geçtiği farklı durumlar dizisinin veya yaşamındaki bazı olaylara tepki olarak bir etkileşimin yanı sıra bir nesnenin bu tür olaylara tepkisinin bir özelliğidir. UML durum diyagramının kullandığı durum makinesi, orijinal öğeye eklenir ve örneklerinin davranışını tanımlamak için kullanılır.

Sözde ejderha diyagramları, bu tür diyagramların analogları olarak kullanılabilir.

Kullanım Örneği Diyagramları

UML Kullanım Durumu Şeması, farklı kullanım durumlarının yanı sıra aktörler arasında meydana gelen tüm ilişkileri gösterir. Ana görevi, müşterinin, son kullanıcının veya bazı geliştiricilerin belirli bir sistemin davranışını ve işlevselliğini ortaklaşa tartışabilecekleri tam teşekküllü bir araç sağlamaktır.

Bir sistem modelleme sürecinde bir UML kullanım durumu diyagramı kullanılıyorsa, analist şunları yapacaktır:

  • Modellenen sistemi çevresinden açıkça ayırın.
  • Aktörleri, bu sistemle etkileşim yollarını ve beklenen işlevselliğini tanımlayın.
  • Sözlükte, bu sistemin işlevselliğinin ayrıntılı bir açıklamasıyla ilgili çeşitli kavramları konu alanı olarak ayarlayın.

UML'de bir kullanım şeması geliştiriliyorsa, prosedür müşteri ile çalışırken elde edilen metinsel bir açıklama ile başlar. Aynı zamanda, kullanım senaryosu modelinin derlenmesi sürecinde işlevsel olmayan çeşitli gereksinimlerin tamamen göz ardı edildiğini ve bunlar için zaten ayrı bir belge oluşturulacağını belirtmekte fayda var.

İletişim

İletişim diyagramı tıpkı UML dizi diyagramı gibi geçişlidir yani etkileşimi ifade eder ama aynı zamanda bunu farklı şekillerde gösterir ve gerekirse gerekli doğruluk derecesi ile biri diğerine dönüştürülebilir. .

İletişim şeması, bileşik yapının çeşitli öğeleri arasında meydana gelen etkileşimlerin yanı sıra işbirliğinin rollerini yansıtır. Sekans diyagramından temel farkı, birkaç öğe arasındaki ilişkiyi açıkça göstermesi ve zamanın ayrı bir boyut olarak kullanılmamasıdır.

Bu tür, bir nesne diyagramında yapıldığı gibi, birkaç nesneyi ve ilişkiyi sıralamanın tamamen ücretsiz bir biçimiyle ayırt edilir. Bu serbest formattaki mesajların sırasını korumak gerekirse, kronolojik olarak numaralandırılırlar. Bu diyagramın okunması ilk mesaj 1.0 ile başlar ve ardından mesajların bir nesneden diğerine iletildiği yön boyunca devam eder.

Çoğunlukla, bu tür diyagramlar, bir dizi diyagramının bize sağladığı bilgilerin tam olarak aynısını gösterir, ancak bilgiyi sunmanın farklı bir yolunu kullandığından, bir diyagramdaki bazı şeyleri belirlemek diğerine göre çok daha kolay hale gelir. Ayrıca, bir iletişim diyagramının, her bir elemanın hangi öğelerle etkileşime girdiğini daha açık bir şekilde gösterirken, bir dizi diyagramının, etkileşimlerin hangi sırayla gerçekleştirildiğini daha net bir şekilde gösterdiğini belirtmek gerekir.

dizi diyagramı

UML dizi diyagramı, oluşum zamanına göre sıralanan çeşitli nesneler arasındaki etkileşimleri gösterir. Böyle bir diyagram, birkaç nesne arasındaki zaman sıralı bir etkileşimi gösterir. Özellikle, etkileşimde yer alan tüm nesneleri ve bunlar tarafından değiş tokuş edilen tüm mesaj dizisini görüntüler.

Bu durumda ana unsurlar, çeşitli nesnelerin tanımlarının yanı sıra, zamanın geçişini gösteren dikey çizgiler ve belirli bir nesnenin etkinliğini veya onun tarafından bazı işlevlerin performansını temsil eden dikdörtgenlerdir.

işbirliği şeması

Bu tür bir diyagram, mesaj çeviri dizisinden soyutlayarak, çeşitli nesneler arasındaki etkileşimleri göstermenize olanak tanır. Kompakt formdaki bu tür diyagramlar, belirli bir nesnenin iletilen ve alınan tüm mesajlarını ve bu mesajların biçimlerini kesinlikle görüntüler.

Sekans diyagramları ve iletişim şemaları aynı prosedürlerin farklı görünümleri olduğundan, Rational Rose bir sekans diyagramından bir iletişim sekans diyagramı oluşturma veya bunun tersini yapma yeteneği sağlar ve ayrıca bunları tamamen otomatik olarak senkronize eder.

Etkileşime Genel Bakış Diyagramları

Bunlar, bir tür etkinlik diyagramına ait olan ve hem Sıra öğelerini hem de kontrol akışı yapılarını içeren UML diyagramlarıdır.

Bu formatın, sistemdeki çeşitli nesneler arasındaki etkileşimi farklı bakış açılarından değerlendirme fırsatı sağlayan İşbirliği ve Sıra diyagramını birleştirdiğini belirtmekte fayda var.

zamanlama tablosu

Belirli bir zaman ölçeğiyle yaşam çizgisindeki durum değişikliğini açıkça gösteren dizi diyagramının alternatif bir sürümünü temsil eder. Çeşitli gerçek zamanlı uygulamalarda oldukça yararlı olabilir.

faydaları nelerdir?

UML kullanım şemasını diğerlerinden ayıran birkaç avantajı belirtmekte fayda var:

  • Dil, nesne yönelimlidir, bunun sonucunda yürütülen analiz ve tasarımın sonuçlarını açıklayan teknolojiler, modern tipteki her türlü nesne yönelimli dilde programlama yöntemlerine anlamsal olarak yakındır.
  • Bu dili kullanarak, sistem hemen hemen her bakış açısıyla açıklanabilir ve davranışının çeşitli yönleri aynı şekilde açıklanır.
  • Sözdizimine nispeten hızlı bir şekilde aşina olduktan sonra bile tüm diyagramları okumak nispeten kolaydır.
  • UML, yalnızca yazılım mühendisliğinde kullanılmasına katkıda bulunmayan kendi grafik ve metin klişelerinizi genişletmenize ve tanıtmanıza olanak tanır.
  • Dil oldukça yaygınlaştı ve aynı zamanda oldukça aktif bir şekilde gelişiyor.

Dezavantajları

UML diyagramlarının oluşturulmasının birçok avantajı olmasına rağmen, genellikle aşağıdaki eksiklikler nedeniyle eleştirilirler:

  • fazlalık Eleştirmenler, vakaların büyük çoğunluğunda UML'nin çok büyük ve karmaşık olduğunu ve çoğu zaman bunun haksız olduğunu söylüyor. Oldukça fazla gereksiz veya neredeyse işe yaramaz yapı ve şemalar içerir ve çoğu zaman bu tür eleştiriler birinciye değil ikinci versiyona gider, çünkü daha yeni revizyonlarda daha fazla "komite tarafından tasarlanmış" uzlaşmalar vardır.
  • Anlambilimde çeşitli yanlışlıklar. UML, kendisi, İngilizce ve OCL'nin bir kombinasyonu ile tanımlandığından, kesin olarak resmi açıklama teknikleriyle tanımlanan dillerin doğasında bulunan katılıktan yoksundur. Bazı durumlarda, OCL, UML ve İngilizce'nin soyut sözdizimi birbiriyle çelişmeye başlarken, diğer durumlarda eksiktir. Dilin tanımındaki yanlışlık, hem kullanıcıları hem de araç sağlayıcıları benzer şekilde etkiler ve sonunda farklı özelliklerin benzersiz bir şekilde ele alınmasından dolayı araç uyumsuzluklarına yol açar.
  • Uygulama ve çalışma sürecindeki sorunlar. Yukarıdaki sorunların tümü, UML'yi uygulama ve öğrenme sürecinde belirli zorluklar yaratır ve bu, özellikle yönetim, mühendisleri önceden becerilere sahip olmadıklarında onu kullanmaya zorladığında doğrudur.
  • Kod, kodu yansıtır. Bir diğer görüş de önemli olan güzel ve çekici modeller değil, doğrudan çalışan sistemler yani kod projedir. Bu görüşe göre, yazılım yazmanın daha verimli bir yolunun geliştirilmesine ihtiyaç vardır. Yürütülebilir veya kaynak kodu yeniden oluşturmak için modelleri derleyen yaklaşımlarda UML'ye değer verilir. Ancak gerçekte bu yeterli olmayabilir çünkü dil, Turing tamlık özelliklerinden yoksundur ve üretilen her kod, sonunda UML yorumlama aracının varsayabileceği veya belirleyebileceği şeylerle sınırlı olacaktır.
  • Yük uyuşmazlığı. Bu terim, belirli bir sistemin girdisinin diğerinin çıktısını algılamadaki yetersizliğini belirlemek için sistem analizi teorisinden gelir. Herhangi bir standart gösterimde olduğu gibi, UML belirli sistemleri diğerlerinden daha verimli ve özlü bir şekilde temsil edebilir. Bu nedenle, geliştirici, diğer programlama dillerinin yanı sıra UML'nin tüm güçlü yönlerini birleştirmek için daha rahat olan çözümlere daha meyillidir. Geliştirme dili, nesne yönelimli ortodoks doktrinin ana ilkelerine uymuyorsa, yani OOP ilkelerine göre çalışmaya çalışmıyorsa, bu sorun daha belirgindir.
  • Çok yönlü olmaya çalışır. UML, şu anda var olan herhangi bir işleme diliyle uyumlu olmayı amaçlayan genel amaçlı bir modelleme dilidir. Belirli bir proje bağlamında, tasarım ekibinin nihai hedefe ulaşması için bu dilin uygulanabilir özelliklerini seçmek gerekir. Ek olarak, belirli bir alanda UML kullanımının kapsamını sınırlamanın olası yolları, tam olarak formüle edilmemiş ancak kendisi eleştiri konusu olan bir biçimcilikten geçer.

Bu nedenle, bu dilin kullanımı her durumda geçerli değildir.

UML, 1997 sonbaharında Object Management Group (OMG) tarafından benimsenen ve birçok nesne yönelimli CASE ürünü tarafından desteklenen yazılım sistemlerinin görsel modellemesi için artık standart notasyondur.

UML standardı, modelleme için aşağıdaki diyagram setini sunar:

Kullanım durumu diyagramı (kullanım durumu diyagramı) - bir kuruluşun veya kuruluşun iş süreçlerini modellemek ve oluşturulan bilgi sistemi için gereksinimleri belirlemek için;

sınıf diyagramı (sınıf diyagramı) - sistem sınıflarının statik yapısını ve aralarındaki ilişkileri modellemek için;

sistem davranış diyagramı (davranış diyagramları);

etkileşim diyagramları;

Sıra diyagramları - tek bir kullanım durumunda nesneler arasındaki mesajlaşma sürecini modellemek için;

işbirliği diyagramı (işbirliği diyagramı) - aynı kullanım durumundaki nesneler arasındaki mesajlaşma sürecini modellemek için;

durum çizelgesi diyagramı - bir durumdan diğerine geçiş sırasında sistem nesnelerinin davranışını modellemek için;

etkinlik diyagramı - çeşitli kullanım durumları veya modelleme etkinlikleri çerçevesinde sistemin davranışını modellemek için;

uygulama şeması (uygulama şemaları):

Bileşen diyagramları (bileşen diyagramları) - bir bilgi sisteminin bileşenlerinin (alt sistemler) hiyerarşisini modellemek için;

dağıtım şeması (dağıtım şeması) - tasarlanan bilgi sisteminin fiziksel mimarisini modellemek için.

Şek. 1.1, bu kurs projesinde geliştirilecek ana diyagramlar dahil olmak üzere bilgi sisteminin entegre bir modelini sunar.

Pirinç. 1. UML dilinin gösteriminde entegre bir bilgi sistemi modeli

4.2. Kullanım örneği diyagramı

Kullanım durumu, bazı harici nesneler (aktör) tarafından tetiklenen bir olaya yanıt olarak sistem tarafından gerçekleştirilen bir eylemler dizisidir. Bir kullanım durumu, bir kullanıcı ile bir sistem arasındaki tipik bir etkileşimi tanımlar. En basit durumda, kullanım durumu, kullanıcı ile bu bilgi sisteminde uygulamak istediği işlevleri tartışma sürecinde belirlenir. UML'de bir kullanım durumu aşağıdaki gibi tasvir edilmiştir:

İncir. 2. Kullanım Örneği

Bir aktör, bir kullanıcının sistemle ilgili olarak oynadığı bir roldür. Aktörler, belirli kişileri veya iş unvanlarını değil, rolleri temsil eder. Kullanım senaryosu diyagramlarında stilize edilmiş insan figürleri olarak tasvir edilseler de aktör, sistemden bazı bilgilere ihtiyaç duyan harici bir bilgi sistemi de olabilir. Aktörleri yalnızca bazı kullanım durumlarına gerçekten ihtiyaç duyduklarında bir diyagramda göstermelisiniz. UML'de aktörler şekiller olarak temsil edilir:



Şekil 3. Karakter oyuncusu)

Aktörler üç ana türe ayrılır:

Kullanıcılar

sistemler;

Bununla etkileşime giren diğer sistemler;

Sistemdeki herhangi bir olayın tetiklenmesi ona bağlıysa, zaman bir aktör haline gelir.

4.2.1. Kullanım Durumları ve Aktörler Arasındaki İlişkiler

UML'de, kullanım durumu diyagramları, diyagram öğeleri arasındaki çeşitli ilişki türlerini destekler:

İletişim (iletişim),

Dahil etme (dahil etme),

uzatma (uzatma),

genelleme.

iletişim iletişim kullanım durumu ile aktör arasındaki ilişkidir. UML'de, iletişim bağlantıları tek yönlü bir ilişki (düz çizgi) kullanılarak gösterilir.

Şekil 4. İletişim bağlantısı örneği

Dahil etme bağlantısı birden fazla kullanım durumunda tekrarlanan bazı sistem davranışının olduğu durumlarda kullanılır. Bu tür bağlantıların yardımıyla, genellikle yeniden kullanılabilir bir işlev modellenir.

Uzatma bağlantısı Bir sistemin normal davranışındaki değişiklikleri tanımlamak için kullanılır. Bir kullanım durumunun gerektiğinde başka bir kullanım durumunun işlevselliğini kullanmasına izin verir.

Şekil 5. Dahil etme ve genişletme ilişkisine bir örnek

İletişim genellemesi birkaç aktörün veya sınıfın ortak özelliklere sahip olduğunu gösterir.

Şekil 6. Genelleme ilişkisine bir örnek

4.3.



Etkileşim diyagramları Etkileşen nesne gruplarının davranışını tanımlar. Tipik olarak, bir etkileşim diyagramı yalnızca tek bir kullanım durumundaki nesnelerin davranışını kapsar. Böyle bir diyagram, bir dizi nesneyi ve bunların birbirleriyle değiş tokuş ettikleri mesajları görüntüler.

İleti gönderici nesnenin, alıcı nesneden işlemlerinden birini gerçekleştirmesini talep ettiği araçtır.

Bilgi (bilgilendirici) mesajı alıcı nesneye durumunu güncellemesi için bazı bilgiler sağlayan bir mesajdır.

İstek mesajı (sorgulayıcı) alıcı nesne hakkında bazı bilgilerin çıktısını isteyen bir mesajdır.

Zorunlu Mesaj alıcıdan bir eylem gerçekleştirmesini isteyen bir mesajdır.

İki tür etkileşim diyagramı vardır: sıra diyagramları ve işbirliği diyagramları.

4.3.1. Sıra diyagramları

dizi diyagramı tek bir kullanım durumunda meydana gelen olayların akışını yansıtır.

Belirli bir senaryoda (kullanım durumu) yer alan tüm aktörler (aktörler, sınıflar veya nesneler) diyagramın üst kısmında gösterilir. Oklar, bir aktör ile bir nesne arasında veya gerekli işlevleri yerine getirmek için nesneler arasında iletilen mesajlara karşılık gelir.

Bir dizi diyagramında, bir nesne, noktalı bir dikey çizginin aşağıya doğru çizildiği bir dikdörtgen olarak tasvir edilir. Bu hat denir bir nesnenin yaşam çizgisi . Etkileşim sürecindeki bir nesnenin yaşam döngüsünün bir parçasıdır.

Her mesaj, iki nesnenin yaşam çizgileri arasında bir ok olarak temsil edilir. Mesajlar, sayfada yukarıdan aşağıya doğru göründükleri sırayla görünür. Her mesaj en az mesaj adıyla etiketlenir. İsteğe bağlı olarak, bağımsız değişkenler ve bazı kontrol bilgileri de ekleyebilirsiniz. Aynı cankurtaran çizgisini işaret eden mesaj okuyla, bir nesnenin kendisine gönderdiği bir mesaj olan öz-delegasyonu gösterebilirsiniz.

Pirinç. 7. Dizi Diyagramı Örneği

4.3.2. işbirliği diyagramı

İşbirliği Diyagramları belirli bir senaryo (kullanım durumu) içindeki olayların akışını görüntüler. İletiler zamana göre sıralanır, ancak işbirliği diyagramları daha çok nesneler arasındaki ilişkilere odaklanır. Bir işbirliği diyagramı, bir dizi diyagramının sahip olduğu tüm bilgileri gösterir, ancak bir işbirliği diyagramı, olayların akışını farklı bir şekilde açıklar. Ondan nesneler arasında var olan bağlantıları anlamak daha kolaydır.

Sıralama diyagramında olduğu gibi bir işbirliği diyagramında oklar, belirli bir kullanım durumunda değiş tokuş edilen mesajları temsil eder. Zaman sıraları, mesajların numaralandırılmasıyla belirtilir.

Pirinç. 8. Bir işbirliği şeması örneği

4.4. sınıf diyagramı

4.4.1. Genel bilgi

sınıf diyagramı sistem sınıflarının türlerini ve aralarında var olan çeşitli statik bağlantı türlerini tanımlar. Sınıf diyagramları ayrıca sınıf özniteliklerini, sınıf işlemlerini ve sınıflar arasındaki ilişkilere yerleştirilen kısıtlamaları gösterir.

UML'deki bir sınıf diyagramı, düğümleri projenin statik yapısının (sınıflar, arayüzler) öğeleri olan ve yaylar, düğümler arasındaki ilişkiler (ilişkiler, kalıtım, bağımlılıklar) olan bir grafiktir.

Sınıf diyagramı aşağıdaki öğeleri gösterir:

· Paket (paket) - modelin mantıksal olarak birbiriyle ilişkili bir dizi öğesi;

· Sınıf (sınıf) - benzer nesnelerden oluşan bir grubun ortak özelliklerinin açıklaması;

· Arayüz (arayüz) - belirli bir arayüzle ilişkili rastgele bir sınıfa ait bir nesnenin diğer nesnelere sağladığı bir dizi işlemi belirten soyut bir sınıf.

4.4.2. Sınıf

Sınıf veri ve davranış gibi benzer özelliklere sahip varlıklar (nesneler) grubudur. Bir sınıfın bireysel bir üyesi, sınıfın bir nesnesi veya sadece bir nesne olarak adlandırılır.

UML'de bir nesnenin davranışı, bir nesnenin dış dünyayla ve nesnenin kendi verileriyle etkileşimi için herhangi bir kuralı ifade eder.

Diyagramlarda, bir sınıf, yatay çizgilerle 3 bölüme ayrılmış, düz kenarlı bir dikdörtgen olarak tasvir edilmiştir:

En üstteki bölüm (ad bölümü), sınıfın adını ve diğer genel özellikleri (özellikle klişe) içerir.

Orta bölüm, özelliklerin bir listesini içerir

En altta, davranışını (sınıf tarafından gerçekleştirilen eylemler) yansıtan sınıf işlemlerinin bir listesi bulunur.

Öznitelik ve işlem bölümlerinden herhangi biri gösterilmeyebilir (veya her ikisi de). Eksik bölüm için, bir bölme çizgisi çizmenize ve içindeki öğelerin varlığını veya yokluğunu bir şekilde belirtmenize gerek yoktur.

İstisnalar gibi ek bölümler, belirli bir uygulamanın takdirine bağlı olarak tanıtılabilir.

Pirinç. 9. Sınıf Diyagramı Örneği

4.4.2.1.Sınıf klişeleri

Sınıf klişeleştirme, sınıfları kategorilere ayırmak için kullanılan bir mekanizmadır.

UML, üç ana sınıf klişesini tanımlar:

Sınır (sınır);

Varlık (varlık);

Kontrol (yönetim).

4.4.2.2.Sınır sınıfları

Sınır sınıfları, sistemin ve tüm ortamın sınırında bulunan sınıflardır. Bunlar, ekranlar, raporlar, donanımla (yazıcılar veya tarayıcılar gibi) arayüzler ve diğer sistemlerle arayüzlerdir.

Sınır sınıflarını bulmak için kullanım durumu diyagramlarını keşfetmeniz gerekir. Bir aktör ile bir kullanım durumu arasındaki her etkileşimin en az bir sınır sınıfı olması gerekir. Aktörün sistemle etkileşime girmesini sağlayan bu sınıftır.

4.4.2.3.Varlık sınıfları

Varlık sınıfları saklanan bilgileri içerir. Kullanıcı için en büyük anlamı taşırlar ve bu nedenle adlarında genellikle konu alanındaki terimler kullanılır. Genellikle, her varlık sınıfı için veritabanında bir tablo oluşturulur.

4.4.2.4.Kontrol sınıfları

Kontrol sınıfları, diğer sınıfların eylemlerini koordine etmekten sorumludur. Tipik olarak, her kullanım durumu, o kullanım durumu için olayların sırasını kontrol eden bir kontrol sınıfına sahiptir. Kontrol sınıfı koordinasyondan sorumludur, ancak diğer sınıflar ona çok sayıda mesaj göndermediğinden kendi içinde herhangi bir işlevsellik taşımaz. Bunun yerine, kendisi birçok mesaj gönderir. Yönetici sınıfı, sorumluluğu diğer sınıflara devreder, bu nedenle genellikle yönetici sınıfı olarak anılır.

Sistemde, çeşitli kullanım durumlarında ortak olan başka kontrol sınıfları olabilir. Örneğin, güvenlikle ilgili olayları izlemekten sorumlu bir SecurityManager sınıfı olabilir. TransactionManager sınıfı, veritabanı işlemleriyle ilgili mesajların koordinasyonunu yönetir. Kaynak paylaşımı, dağıtılmış veri işleme veya hata işleme gibi sistemin işleyişinin diğer öğeleriyle ilgilenecek başka yöneticiler olabilir.

Yukarıda belirtilen klişelere ek olarak, kendinizinkini de oluşturabilirsiniz.

4.4.2.5.Öznitellikler

Nitelik, bir sınıfla ilişkili bir bilgi parçasıdır. Nitelikler, kapsüllenmiş sınıf verilerini depolar.

Öznitelikler sınıfın içinde bulunduğundan, diğer sınıflardan gizlenirler. Bu nedenle, hangi sınıfların öznitelikleri okuma ve değiştirme hakkına sahip olduğunu belirtmek gerekebilir. Bu özelliğe öznitelik görünürlüğü adı verilir.

Öznitelik, bu parametre için dört olası değere sahip olabilir:

Herkese açık (genel, açık). Bu görünürlük değeri, özniteliğin diğer tüm sınıflar tarafından görülebileceğini varsayar. Herhangi bir sınıf, bir özniteliğin değerini görüntüleyebilir veya değiştirebilir. UML notasyonuna göre, ortak bir özelliğin önünde bir "+" işareti bulunur.

Özel (kapalı, gizli). Karşılık gelen öznitelik başka hiçbir sınıf tarafından görülmez. Özel bir öznitelik, UML gösterimine göre "-" işaretiyle gösterilir.

Korumalı (korumalı). Böyle bir öznitelik yalnızca sınıfın kendisi ve soyundan gelenler tarafından kullanılabilir. Korumalı bir öznitelik için UML gösterimi "#" işaretidir.

Paket veya Uygulama (toplu). Verilen özniteliğin paylaşıldığını, ancak yalnızca kendi paketi içinde olduğunu varsayalım. Bu görünürlük türü herhangi bir özel simge ile gösterilmez.

Kapalılık veya güvenlik yardımıyla, öznitelik değerinin sistemin tüm sınıfları tarafından değiştirildiği durumdan kaçınmak mümkündür. Bunun yerine, öznitelik değiştirme mantığı, özniteliğin kendisiyle aynı sınıfa sarılacaktır. Ayarladığınız görünürlük seçenekleri, oluşturulan kodu etkileyecektir.

4.4.2.6.Operasyonlar

İşlemler, sınıfla ilgili davranışı uygular. Bir işlemin üç bölümü vardır - ad, parametreler ve dönüş türü.

Parametreler, işlemin girdi olarak aldığı argümanlardır. Dönüş türü, işlemin eyleminin sonucunu ifade eder.

Bir sınıf diyagramı, hem işlem adlarını hem de işlem adlarını parametreleri ve dönüş türüyle birlikte gösterebilir. Diyagram üzerindeki yükü azaltmak için, bazılarında sadece işlem adlarını, bazılarında ise tam imzalarını göstermek faydalıdır.

UML'de işlemler aşağıdaki gösterime sahiptir:

İşlem Adı (bağımsız değişken: bağımsız değişken veri türü, bağımsız değişken2: bağımsız değişken2 veri türü,...): dönüş türü

Dikkate alınması gereken dört farklı işlem türü vardır:

Uygulama işlemleri;

Yönetim işlemleri;

Erişim işlemleri;

Yardımcı işlemler.

Uygulama işlemleri

Uygulayıcı operasyonları bazı iş fonksiyonlarını uygular. Bu tür işlemler, etkileşim diyagramları incelenerek bulunabilir. Bu tür diyagramlar, iş işlevlerine odaklanır ve diyagramdaki her mesaj büyük olasılıkla bir uygulama işlemiyle ilişkilendirilebilir.

Her uygulama işlemi, karşılık gelen gereksinime göre kolayca izlenebilir olmalıdır. Bu, simülasyonun çeşitli aşamalarında elde edilir. İşlem, etkileşim diyagramındaki mesajdan türetilir, mesajlar, kullanım durumuna göre oluşturulan olay akışının ayrıntılı açıklamasından ve ikincisi gereksinimlere göre oluşturulur. Bu zincirin tamamını izleyebilmek, her gereksinimin kodda uygulanmasını ve her kod parçasının bazı gereksinimleri gerçekleştirmesini sağlamaya yardımcı olur.

Yönetim işlemleri

Yönetici işlemleri, nesnelerin oluşturulmasını ve yok edilmesini yönetir. Sınıf kurucuları ve yıkıcıları bu kategoriye girer.

Erişim işlemleri

Nitelikler genellikle özel veya korumalıdır. Ancak, diğer sınıfların bazen değerlerini görüntülemesi veya değiştirmesi gerekir. Bunun için erişim işlemleri var. Bu yaklaşım, öznitelikleri bir sınıf içinde güvenli bir şekilde kapsüllemeyi mümkün kılar, onları diğer sınıflardan korur, ancak yine de bunlara kontrollü erişime izin verir. Bir sınıfın her özelliği için Get ve Set işlemleri (değer alma ve değiştirme) oluşturmak bir standarttır.

Yardımcı işlemler

Yardımcı (yardımcı işlemler), bir sınıfın sorumluluklarını yerine getirmesi için gerekli olan ancak diğer sınıfların hakkında hiçbir şey bilmemesi gereken işlemleridir. Bunlar özel ve korumalı sınıf işlemleridir.

İşlemleri tanımlamak için aşağıdakileri yapın:

1. Dizi diyagramlarını ve işbirlikçi diyagramları çalışın. Bu şemalardaki mesajların çoğu uygulama işlemleridir. Yansıtıcı mesajlar yardımcı işlemler olacaktır.

2. Kontrol işlemlerini düşünün. Yapıcılar ve yıkıcılar eklemeniz gerekebilir.

3. Erişim işlemlerini düşünün. Diğer sınıfların çalışması gereken her sınıf özelliği için Get ve Set işlemleri oluşturmanız gerekir.

4.4.2.7.Bağlantılar

Bir ilişki, sınıflar arasındaki anlamsal bir ilişkidir. Bir sınıfa, başka bir sınıfın öznitelikleri, işlemleri ve ilişkileri hakkında bilgi edinme yeteneği verir. Diğer bir deyişle, bir sınıfın diğerine sıralı veya işbirlikçi diyagramda mesaj gönderebilmesi için aralarında bir bağlantı olması gerekir.

Sınıflar arasında kurulabilecek dört tür ilişki vardır: ilişkilendirmeler, bağımlılıklar, toplamalar ve genellemeler.

iletişim derneği

Dernek, sınıflar arasındaki anlamsal bir ilişkidir. Sınıf diyagramında sıradan bir çizgi olarak çizilirler.

Pirinç. 10. İletişim birliği

İlişkilendirmeler, örnekteki gibi çift yönlü veya tek yönlü olabilir. UML'de çift yönlü ilişkilendirmeler, oksuz basit bir çizgi olarak veya çizginin her iki yanında oklarla çizilir. Tek yönlü bir ilişkinin yönünü gösteren yalnızca bir oku vardır.

Bir ilişkinin yönü, dizi diyagramları ve kooperatif diyagramları incelenerek belirlenebilir. Eğer üzerlerindeki tüm mesajlar sadece bir sınıf tarafından gönderilip sadece başka bir sınıf tarafından alınıyorsa ve bunun tersi bir durum söz konusu değilse, bu sınıflar arasında tek yönlü bir iletişim vardır. Ters yönde en az bir mesaj gönderilirse, ilişkilendirme çift yönlü olmalıdır.

Dernekler dönüşlü olabilir. Dönüşlü ilişkilendirme, bir sınıfın bir örneğinin aynı sınıfın diğer örnekleriyle etkileşime girdiği anlamına gelir.

iletişim bağımlılığı

Bağımlılık ilişkileri de sınıflar arasındaki ilişkiyi yansıtır, ancak bunlar her zaman tek yönlüdür ve bir sınıfın diğerinde yapılan tanımlara bağlı olduğunu gösterir. Örneğin, A sınıfı, B sınıfının yöntemlerini kullanır. Ardından, B sınıfı değiştiğinde, A sınıfında karşılık gelen değişiklikleri yapmak gerekir.

Bağımlılık, iki diyagram öğesi arasına çizilen noktalı bir çizgi ile temsil edilir ve bir okun ucuna sabitlenmiş öğenin, o okun başında sabitlenmiş öğeye bağımlı olduğu söylenir.

Pirinç. 11. İletişim bağımlılığı

Bu sınıflar için kod oluşturulurken bunlara yeni nitelikler eklenmez. Ancak, iletişimi desteklemek için gereken dile özgü operatörler oluşturulacaktır.

İletişim toplama

Toplamalar, daha sıkı bir ilişkilendirme biçimidir. Agregasyon, bütün ile onun parçası arasındaki bağlantıdır. Örneğin, bir Araba sınıfınızın yanı sıra Motor, Lastik sınıflarınız ve diğer araba parçaları sınıflarınız olabilir. Sonuç olarak, Car sınıfındaki bir nesne, Engine sınıfındaki bir nesneden, Tires'in dört nesnesinden vb. oluşacaktır. Toplamalar, bir tamsayı olan bir sınıf için eşkenar dörtgenli bir çizgi olarak görselleştirilir:

Pirinç. 11. İletişim toplama

Basit toplamaya ek olarak, UML, kompozisyon adı verilen daha güçlü bir toplama biçimi sunar. Kompozisyona göre, bir nesne parçası yalnızca tek bir bütüne ait olabilir ve ayrıca, kural olarak, parçaların yaşam döngüsü bütünün döngüsüyle çakışır: onunla yaşar ve onunla ölürler. Bütünün herhangi bir şekilde çıkarılması, parçalarına kadar uzanır.

Bu art arda silme, genellikle toplama tanımının bir parçası olarak kabul edilir, ancak rol çokluğu 1..1 olduğunda her zaman ima edilir; örneğin, bir Müşterinin silinmesi gerekiyorsa, bu silme işlemi Siparişlere (ve ardından Sipariş Satırlarına) yayılmalıdır.

UML, Birleşik Modelleme Dili'nin kısaltmasıdır. Aslında, en popüler iş süreci modelleme tekniklerinden biridir ve yazılım geliştirmeyi belirtmek, görselleştirmek ve belgelemek için uluslararası bir standart notasyondur. Nesne yönetimi grubu tarafından tanımlandı, birkaç ek UML notasyon sisteminin sonucu olarak ortaya çıktı ve şimdi görsel modelleme için fiili standart haline geldi. Herhangi bir nesne yönelimli programlamanın temel ilkesi, model oluşturma ile başlar.

UML, yazılım geliştirme ve belgeleme etrafındaki kaostan yaratıldı. 1990'larda, yazılım sistemlerini temsil etmenin birkaç farklı yolu vardı. Bu sistemleri temsil etmek için daha birleşik bir görsel UML yöntemine ihtiyaç vardı ve sonuç olarak 1994-1996'da Rational Software'de çalışan üç yazılım mühendisi tarafından geliştirildi. Daha sonra 1997'de bir standart olarak kabul edildi ve sadece birkaç güncelleme ile bugüne kadar öyle kaldı.

Temel olarak UML, yazılım geliştirme alanında genel amaçlı bir modelleme dilidir. Bununla birlikte, etkinlik şemaları gibi çeşitli iş süreçlerinin veya iş akışlarının belgelenmesinde artık yolunu bulmuştur. UML diyagram türü, akış şemalarının yerine kullanılabilir. Hem iş akışlarını modellemek için daha standart bir yol hem de okunabilirliği ve verimliliği artırmak için çok çeşitli özellikler sağlarlar.

Mimari, UML dilinin oluşturulmasının temelini tanımlayan bir meta nesneye dayanmaktadır. Tüm bir uygulamayı oluşturmak için yeterince doğrudur. Tamamen yürütülebilir bir UML, tüm yazılım geliştirme döngüsü boyunca tüm süreçlerle farklı teknolojiler kullanılarak birden çok platformda dağıtılabilir.

UML, kullanıcıların görsel bir modelleme dili geliştirmesi için tasarlanmıştır. Yapılar, kalıplar ve işbirlikleri gibi üst düzey geliştirme kavramlarını destekler. UML, aşağıdakiler gibi öğelerin bir koleksiyonudur:

  1. Programlama dili ifadeleri.
  2. Aktörler, kullanıcının veya nesneyle etkileşime giren diğer herhangi bir sistemin oynadığı rolü tanımlar.
  3. İş sözleşmesinin ifası için yapılacak faaliyetler ve diyagramlar halinde sunulması.
  4. Sıralı eylemlerden oluşan bir akış şemasıyla görselleştirilen, müşteriler için belirli bir hizmet oluşturan bir dizi görev içeren bir iş süreci.
  5. Mantık ve yeniden kullanılabilir yazılım bileşenleri.

UML diyagramları iki kategoriye ayrılır. İlk tip, yapısal bilgileri temsil eden yedi tip diyagram içerir, ikincisi - geri kalan yedi genel davranış tiplerini temsil eder. Bu diyagramlar, sistemlerin mimarisini belgelemek için kullanılır ve doğrudan sistemin UML modellemesinde yer alır.

UML diyagramları, sistem modelinin statik ve dinamik temsilleri olarak sunulur. Statik görünüm, statik yapıyı vurgulayan sınıf ve bileşik yapı diyagramlarını içerir. Dinamik görünüm, sıra, aktivite ve durum diyagramlarını kullanarak nesneler arasındaki etkileşimi ve nesnelerin iç durumlarındaki değişiklikleri temsil eder.

Modellemeyi basitleştirmek için IBM Rose, Rhapsody, MagicDraw, StarUML, ArgoUML, Umbrello, BOUML, PowerDesigner ve Dia dahil olmak üzere çok çeşitli UML modelleme araçları mevcuttur.

UML kullanımının hem yazılım geliştirme belgelerinde hem de iş süreçlerinde çeşitli biçimleri vardır:

  1. Eskiz Bu durumda, bir sistemin çeşitli yönlerini ve özelliklerini iletmek için UML diyagramları kullanılır. Ancak bu, sistemin yalnızca üst düzey bir görünümüdür ve büyük olasılıkla projeyi sonuna kadar taşımak için gerekli tüm ayrıntıları içermeyecektir.
  2. Forward Design - Eskiz tasarımı, uygulama kodlanmadan önce yapılır. Bu, kullanıcının oluşturmaya çalıştığı sisteme veya iş akışına daha iyi bir genel bakış için yapılır. Projenin genel sağlığını ve refahını artıracak birçok tasarım sorunu veya eksikliği belirlenebilir.
  3. Ters tasarım. Kod yazıldıktan sonra, UML diyagramları çeşitli etkinlikler, roller, katkıda bulunanlar ve iş akışları için bir belge biçimi olarak görünür.
  4. Taslak. Bu durumda diyagram, yalnızca sistemin veya yazılımın gerçek uygulamasını gerektiren eksiksiz bir yapı olarak hizmet eder. Bu genellikle CASE (Bilgisayar Destekli Yazılım Mühendisliği Araçları) araçları kullanılarak yapılır. CASE araçlarını kullanmanın ana dezavantajı, belirli bir düzeyde bilgi, kullanıcı eğitimi, yönetim ve personel gerektirmesidir.

UML, Java, C++ veya Python gibi bağımsız bir programlama dili değildir, ancak doğru araçlarla bir UML sözde programlama diline dönüşebilir. Bu amaca ulaşmak için, tüm sistemin farklı diyagramlarda belgelenmesi ve doğru yazılım kullanılarak diyagramların doğrudan koda çevrilmesi gerekir. Bu yöntem, yalnızca diyagramları çizmek için harcanan zaman, gerçek kodu yazmaktan daha az zaman alıyorsa yararlı olabilir. UML, sistem modellemesi için oluşturulmuş olsa da, iş alanlarında çeşitli kullanımlar bulmuştur.

Aşağıda, iş modellemesi için bir UML diyagramı örneği verilmiştir.

Pratik bir çözüm, tele satış için süreç akışını bir aktivite diyagramı aracılığıyla görsel olarak temsil etmek olacaktır. Emrin girdi olarak alındığı andan, emrin tamamlanıp belirli bir çıktının verildiği ana kadar.

Birkaç tür UML diyagramı vardır ve her biri, belgelemenin bir parçası olarak uygulamadan önce veya sonra geliştirilmiş olsun, farklı bir görevi yerine getirir. Diğer tüm türleri kapsayan en geniş iki kategori, davranış diyagramı ve yapı diyagramıdır. Adından da anlaşılacağı gibi, bazı UML diyagramları bir sistemin veya sürecin yapısını analiz etmeye ve tasvir etmeye çalışırken, diğerleri sistemin davranışını, katılımcılarını ve bileşenlerini tanımlar.

Farklı türler aşağıdaki gibi ayrılmıştır:

  1. Sistemler ve mimariler belgelenirken 14 farklı UML diyagramı türünün tümü düzenli olarak kullanılmaz.
  2. Pareto ilkesi, UML diyagramlarının kullanımı için de geçerlidir.
  3. Diyagramların %20'si geliştiriciler tarafından zamanın %80'inde kullanılır.

Yazılım geliştirmede en sık kullanılan öğeler şunlardır:

  • kullanım şemaları;
  • sınıf diyagramları;
  • diziler.

Etkinlik Diyagramları - İş süreci modelleri oluşturmak için en önemli UML diyagramları. Yazılım geliştirmede, çeşitli faaliyetlerin akışını tanımlamak için kullanılırlar. Seri veya paralel olabilirler. Bir aktivite tarafından kullanılan, tüketilen veya üretilen nesneleri ve farklı aktiviteler arasındaki ilişkiyi tanımlarlar.

Yukarıdakilerin tümü, net bir başlangıç ​​ve bitişle birbirine bağlı olduklarından, birinden diğerine giden iş süreçlerinin modellenmesi için gereklidir. Bir iş ortamında buna iş süreci eşlemesi de denir. Ana aktörler yazar, editör ve yayıncıdır. Bir UML örneği aşağıdaki gibidir. Bir gözden geçiren kişi bir projeyi gözden geçirdiğinde ve bazı değişikliklerin yapılması gerektiğine karar verdiğinde. Yazar daha sonra taslağı inceler ve incelemeyi analiz etmek için tekrar geri gönderir.

kullanım şeması

Sistemin temel taşı - sistem düzeyi için gereksinimleri analiz etmek için kullanılır. Bu gereksinimler farklı kullanım durumlarında ifade edilir. Bir UML diyagramının üç ana bileşeni şunlardır:

  1. İşlevsel - kullanım durumları olarak sunulur.
  2. Bir eylemi tanımlayan bir fiil.
  3. Aktörler - sistemle etkileşime geçmek için. Aktörler, kullanıcılar, kuruluşlar veya harici bir talep olabilir. Katılımcılar arasındaki ilişkiler düz oklarla gösterilmiştir.

Örneğin, stok yönetimi şeması için. Bu durumda bir mal sahibi, bir tedarikçi, bir yönetici, bir envanter uzmanı ve bir envanter müfettişi vardır. Yuvarlak kaplar, aktörlerin gerçekleştirdiği eylemleri temsil eder. Olası eylemler: hisse satın alın ve ödeyin, hisse senetlerinin kalitesini kontrol edin, hisse senetlerini iade edin veya hisse senetlerini dağıtın.

Bu tür bir diyagram, bir sistemdeki katılımcılar arasındaki dinamik davranışı göstermek için çok uygundur ve uygulama ayrıntılarını göstermeden temsil etmeyi kolaylaştırır.

Geçici

Odak zamana bağlı olduğunda nesne ilişkilerini temsil etmek için UML zamanlama diyagramları kullanılır. Bu durumda, nesnelerin birbirleriyle nasıl etkileşime girdiği veya değiştiği ilginç değildir, ancak kullanıcı, nesnelerin ve öznelerin doğrusal bir zaman ekseni boyunca nasıl hareket ettiğini hayal etmek ister.

Her bireysel katılımcı, bireysel bir katılımcı bir aşamadan diğerine geçerken, esasen aşamaları oluşturan bir çizgi olan bir yaşam çizgisi aracılığıyla temsil edilir. Olayların süresine ve buna bağlı olarak meydana gelen değişimlere esas dikkat gösterilmektedir.

Bir zamanlama diyagramının ana bileşenleri şunlardır:

  1. Lifeline bireysel bir üyedir.
  2. Durum zaman çizelgesi - tek yaşam yolu, bir süreç içinde farklı durumlardan geçebilir.
  3. Süre kısıtlaması - yerine getirilmesi gereken kısıtlamanın süresini temsil eden bir zaman aralığı kısıtlaması.
  4. Zaman Sınırı - Bir katılımcı tarafından bir şeyin yapılması gereken zaman aralığının sınırlandırılması.
  5. Destruction Emergence - Tek bir üyeyi yok eden ve o üyenin yaşam döngüsünün sonunu gösteren bir mesajın görünümü.

Durum çizelgeleri olarak da adlandırılan yatay diyagramlar, bir sistem içindeki bir bileşenin çeşitli durumlarını tanımlamak için kullanılır. Nihai ad biçimini alır, çünkü diyagram esas olarak bir nesnenin çoklu durumlarını ve iç ve dış olaylara göre nasıl değiştiğini açıklayan bir makinedir.

Çok basit bir makine durum diyagramı bir satranç oyununda olabilir. Tipik bir satranç oyunu, Beyaz'ın yaptığı hamlelerden ve Siyah'ın yaptığı hamlelerden oluşur. Beyaz ilk hamleye sahiptir ve böylece oyunu başlatır. Oyunun sonu, Beyaz'ın veya Siyah'ın kazanmasından bağımsız olarak gerçekleşebilir. Oyun bir maç, istifa veya beraberlikle (arabanın farklı durumları) sona erebilir. Durum çizelgeleri, esas olarak çeşitli sistemlerin ileri ve geri UML tasarımında kullanılır.

Ardışık

Bu tür bir diyagram, yalnızca bilgisayar bilimi topluluğu arasında değil, aynı zamanda iş uygulamalarını geliştirmek için tasarım düzeyinde modeller olarak en önemli UML diyagramıdır. Görsel olarak açıklayıcı yapıları nedeniyle iş süreçlerini tanımlamada popülerdirler. Adından da anlaşılacağı gibi diyagramlar, özneler ve nesneler arasında gerçekleşen mesajların ve etkileşimlerin sırasını tanımlar. Aktörler veya nesneler ancak gerektiğinde veya başka bir nesne onlarla iletişim kurmak istediğinde aktif olabilir. Tüm iletişimler kronolojik sırayla sunulur.

Daha fazla bilgi için lütfen aşağıdaki UML Dizi Şeması örneğine bakın.

Örnekten de anlaşılacağı gibi, bir sistemin yapısını göstermek için yapısal diyagramlar kullanılır. Daha spesifik olarak, dil, bir sistemin mimarisini ve farklı bileşenlerin nasıl ilişkili olduğunu temsil etmek için yazılım geliştirmede kullanılır.

UML sınıf diyagramı, yazılım dokümantasyonu için en yaygın diyagram türüdür. Günümüzde yaratılan yazılımların çoğu hala nesne yönelimli programlama paradigmasına dayalı olduğundan, yazılımı belgelemek için sınıf diyagramlarını kullanmak sağduyudur. Bunun nedeni, OOP'nin UML sınıflarına ve aralarındaki ilişkilere dayanmasıdır. Özetle grafikler, veri alanları olarak da adlandırılan öznitelikleri ve üye işlevleri adı verilen davranışları ile birlikte sınıfları içerir.

Daha spesifik olarak, her sınıfın 3 alanı vardır: üstte ad, adın hemen altında nitelikler, altta işlemler/davranış. Farklı sınıflar arasındaki ilişki (bir bağlantı çizgisiyle gösterilir) bir sınıf diyagramı oluşturur. Yukarıdaki örnek, temel bir sınıf diyagramını göstermektedir.

nesneler

UML yapı diyagramlarını tartışırken, bilgisayar bilimi ile ilgili kavramları derinlemesine incelemeniz gerekir. Yazılım mühendisliğinde sınıflar soyut veri türleri, nesneler ise örnek olarak kabul edilir.Örneğin, genel bir soyut tür olan "Car" varsa, "Car" sınıfının örneği "Audi" olur.

UML nesne diyagramları, yazılım geliştiricilerin, oluşturulan soyut yapının pratikte uygulandığında, yani nesneler oluşturulduğunda uygulanabilir bir yapı olup olmadığını kontrol etmelerine yardımcı olur. Bazı geliştiriciler bunu ikincil bir doğruluk denetimi düzeyi olarak kabul eder. Sınıf örneklerini görüntüler. Daha kesin olarak, "Client" jenerik sınıfının artık gerçek bir client'ı var, örneğin "James" adında. James, daha genel bir sınıfın bir örneğidir ve verilen değerlerle aynı niteliklere sahiptir. Aynısı Hesaplar ve Tasarruf hesabı için de yapıldı. Her ikisi de kendi sınıflarının nesneleridir.

Dağıtımlar

Dağıtım şemaları, yazılım ve donanım arasındaki ilişkiyi görselleştirmek için kullanılır. Daha spesifik olmak gerekirse, konuşlandırma şemaları ile, yazılım bileşenlerinin (yapıların) düğümler olarak bilinen donanım bileşenlerine nasıl dağıtıldığına dair fiziksel bir model oluşturmak mümkündür.

Bir web uygulaması için tipik bir basitleştirilmiş dağıtım şeması şunları içerir:

  1. Düğümler (uygulama sunucusu ve veritabanı sunucusu).
  2. İstemci uygulamasının ve veritabanının yapay diyagramı.

Paket şeması, yukarıda açıkladığımız dağıtım UML şemaları için makrolara benzer. Çeşitli paketler düğümler ve yapıtlar içerir. Diyagramları ve model bileşenlerini gruplar halinde gruplandırırlar, tıpkı bir ad alanının birbiriyle ilişkili farklı adları kapsaması gibi. Sonuç olarak paket, daha karmaşık sistemleri ve davranışları temsil etmek için başka paketler tarafından da oluşturulabilir.

Bir paket diyagramının ana amacı, karmaşık bir sistemi oluşturan çeşitli büyük bileşenler arasındaki ilişkileri göstermektir. Programcılar, bu soyutlamayı, özellikle bazı ayrıntılar resmin dışında bırakılabildiğinde, paket diyagramlarını kullanmak için iyi bir avantaj olarak görüyorlar.

Hayattaki diğer her şey gibi, bir şeyi doğru yapmak için doğru araçlara ihtiyacınız var. Yazılımları, süreçleri veya sistemleri belgelemek için UML açıklamaları ve diyagram şablonları sunan araçları kullanın. Diyagramın çizilmesine yardımcı olabilecek çeşitli yazılım dokümantasyon araçları vardır.

Genellikle aşağıdaki ana kategorilere ayrılırlar:

  1. Kağıt ve kalem kolaydır. Kağıt ve kalem alın, web'den UML sözdizimi kodunu açın ve istediğiniz türde diyagram çizin.
  2. Çevrimiçi Araçlar - Grafik oluşturmak için kullanılabilecek birkaç çevrimiçi uygulama vardır. Çoğu, ücretsiz katmanda ücretli bir abonelik veya sınırlı sayıda diyagram sunar.
  3. Ücretsiz çevrimiçi araçlar, ücretli olanlarla neredeyse aynıdır. Temel fark, ücretli olanların ayrıca belirli diyagramlar için öğreticiler ve hazır şablonlar sunmasıdır.
  4. Masaüstü Uygulaması - Diyagramlar ve hemen hemen tüm diğer diyagramlar için kullanılacak tipik masaüstü uygulaması Microsoft Visio'dur. Gelişmiş özellikler ve işlevsellik sunar. Tek dezavantajı, bunun için ödeme yapmanız gerektiğidir.

Bu nedenle, UML'nin nesne yönelimli yazılımın geliştirilmesiyle ilişkili önemli bir unsur olduğu açıktır. Sistem programlarının görsel modellerini oluşturmak için grafik notasyonu kullanır.

UML veya Birleşik Modelleme Dili, yazılım geliştirme alanında nesne modelleme için grafiksel bir tanımlama dilidir. Ancak UML'nin kullanımı BT ile sınırlı değildir, UML'nin bir başka geniş pratik uygulama alanı, iş süreci modelleme, sistem tasarımı ve organizasyon yapılarının haritalanmasıdır. UML, yazılım geliştiricilerin ortak kavramları temsil etmek ve tasarım ve geliştirmeye odaklanmak için grafik kurallar üzerinde anlaşmasını sağlar.

UML'nin Faydaları

  • UML, modellenmekte olan sistemin öğeleri için grafik semboller kullanır ve UML diyagramlarının anlaşılması oldukça kolaydır;
  • UML, çeşitli yönleri dikkate alarak sistemleri mümkün olan hemen her açıdan tanımlamayı mümkün kılar;
  • UML nesne yönelimlidir: analiz ve oluşturma yöntemleri anlamsal olarak modern OOP dillerinde kullanılan programlama yöntemlerine yakındır;
  • UML açık bir standarttır. Standart, sistemleri açıklamak için en modern gereksinimleri karşılayarak sürümden sürüme gelişir ve gelişir;
  • UML'yi yalnızca BT alanında kullanmakla kalmayıp, ek metin ve grafik türlerini tanıtmanıza izin veren bir genişletme mekanizması içerir.

UML Diyagramı Türleri

UML'de 14 diyagram tipi vardır. 2 kategoriye ayrılabilirler:

  • yapısal bilgi yapısını temsil eden;
  • davranışsal, sistemin davranışını ve etkileşimlerin çeşitli yönlerini temsil eder. Davranış diyagramlarının ayrı bir alt türü etkileşim diyagramları.

UML diyagram türlerinin hiyerarşisi, bir sınıf diyagramı ile temsil edilir

Yapısal diyagramlar

  1. sınıf diyagramı nesne yönelimli modellemede önemli bir unsurdur. Bu diyagramın yardımıyla (aslında, sınıflar, onlara Öznitellikler, yöntemler ve sınıflar arasındaki bağımlılıklar), etki alanı modelini ve modellenen sistemin yapısını açıklar.
  2. Bileşen Şeması program kodunun büyük bloklara (yapısal bileşenler) bölünmesini görüntüler ve bağımlılıklar onların arasında. Bileşenler paketler, modüller, kitaplıklar, dosyalar vb. olabilir.
  3. nesne diyagramı Simüle edilmiş sistemin belirli bir zamanda tam veya kısmi bir kesimini gösterir. Sınıf örneklerini (nesneleri), durumlarını (geçerli öznitelik değerleri) ve aralarındaki ilişkileri temsil eder.
  4. Bileşik yapı diyagramı sınıfların iç yapısını ve mümkünse bu yapının elemanları arasındaki etkileşimleri gösterir.
  5. Paket şeması paketleri ve aralarındaki ilişkileri gösterir. Bu tür bir diyagram, model öğelerini belirli kriterlere göre gruplar halinde birleştirerek modelin yapısını basitleştirmeye (ve buna göre onunla çalışmaya) hizmet eder.
  6. Dağıtım Şeması yazılım bileşenlerinin dağıtımını modeller ( eserler) bilgi işlem kaynakları/donanım bileşenlerinde ( düğümler).
  7. Profil diyagramı UML'nin çeşitli konu alanlarına ve faaliyet alanlarına uyarlanmasına izin veren bir genişletilebilirlik mekanizmasını açıklar.

UML Sınıf Diyagramı Örneği

Davranış Diyagramları

  1. etkinlik şeması eylemleri gösterir ( hareketler) bazı faaliyetler ( aktivite). Faaliyet diyagramları, iş süreçlerini, teknolojik süreçleri, seri ve paralel hesaplamayı modellemek için kullanılır.
  2. Kullanım örneği diyagramı(veya kullanım örneği diyagramı) aktörler (aktörler) arasındaki ilişkiyi ve simüle edilen sistemin kullanım durumlarını (yeteneklerini) açıklar. Diyagramın temel amacı, müşteriler, geliştiriciler ve son kullanıcılar için sistemi, yeteneklerini ve davranışlarını ortaklaşa tartışmanın mümkün olacağı evrensel bir araç olmaktır.
  3. Durum diyagramı bir varlığın dinamik davranışını tasvir eder ve bu varlığın mevcut durumuna bağlı olarak çeşitli olaylara nasıl tepki verdiğini gösterir. Aslında, bu atom teorisinden bir durum diyagramıdır.
  4. İletişim Şeması(önceki sürümlerde işbirliği diyagramı), bileşik yapının parçaları arasındaki etkileşimleri ve işbirliğinin rollerini gösterir. Diyagram, öğeler (nesneler) arasındaki ilişkiyi açıkça gösterir.
  5. dizi diyagramı nesne etkileşimlerinin sırasını görselleştirmek için kullanılır. Belirli bir nesnenin yaşam döngüsünü ve bazı kullanım durumlarında aktörlerin (aktörlerin) etkileşimini, değiş tokuş ettikleri mesajların sırasını gösterir.
  6. Etkileşime Genel Bakış Şeması dizi diyagramının ve kontrol akış yapısının bir parçasını içerir. Nesnelerin etkileşimini farklı bakış açılarından değerlendirmeye yardımcı olur.
  7. zamanlama tablosu- zamanlama konusunda uzmanlaşmış ayrı bir etkileşim diyagramları alt türü. Bu tür diyagramlar, nesnelerin belirli bir süre boyunca davranışını incelemek için kullanılır.