uml diyagramı grafikseldir. UML diyagramı. UML diyagramlarının türleri. Programın ana menüsü

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

Neden gerekli?

UML, her türlü yazılımı modellemekle bitmez. Ayrıca, bu dil günümüzde çeşitli iş süreçlerini modellemek, sistem mühendisliği yapmak ve organizasyon yapılarını görüntülemek için aktif olarak kullanılmaktadır.

Yazılım geliştiricileri, UML'yi kullanarak bileşen, genelleme, sınıf, davranış ve toplama gibi genel kavramları temsil etmek için kullanılan grafiksel gösterimlerde eksiksiz bir kuralı uygulayabilir. Bu, mimari ve tasarıma daha fazla odaklanma sağlar.

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

Sınıf diyagramı

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 inşası hakkında birkaç bakış açısı olduğu gerçeğine dikkat etmek önemlidir:

  • Kavramsal. Bu durumda, UML sınıf diyagramı belirli bir etki alanının modelini tanımlar ve içinde yalnızca uygulanan nesne sınıfları sağlanır.
  • Özel. Diyagram, çeşitli bilgi sistemlerinin tasarım 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 diyagramı

Bir UML Bileşen Şeması, tamamen statik bir yapısal diyagramdır. Belirli bir yazılım sisteminin çeşitli yapısal bileşenlere bölünmesini ve bunların arasındaki bağlantıları göstermeyi amaçlamaktadır. Bir UML bileşen diyagramı, her türden modeli, kitaplığı, dosyayı, paketi, yürütülebilir dosyayı ve diğer birçok öğeyi kullanabilir.

Kompozit / Kompozit Yapı Şeması

UML Composite/Composite Structure Diagram da 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 diyagram, sınıfın iç yapısında bulunan öğelerin etkileşimini de gösterebilir.

Bunların bir alt türü, işbirliği sınırları içindeki çeşitli sınıfların etkileşiminin yanı sıra rolleri göstermek için kullanılan UML işbirliği diyagramıdır. Tasarım kalıplarını modellemeniz gerektiğinde oldukça kullanışlıdırlar.

UML sınıf diyagram türleri ve kompozit yapı türlerinin aynı anda kullanılabileceğini belirtmekte fayda var.

Dağıtım şeması

Bu diyagram, çalışan düğümlerin yanı sıra onlara dağıtılan her türlü yapıyı simüle etmek için kullanılır. UML 2, yapıtları çeşitli düğümlere dağıtırken, ilk sürüm yalnızca bileşenleri dağıtır. Bu nedenle, UML dağıtım şeması öncelikle ikinci sürüm tarafından kullanılır.

Yapıt ile uyguladığı bileşen arasında açık bir bağımlılık 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 tüm sınıf örneklerini, parametrelerinin mevcut değerlerini ve aralarındaki bağlantıları gösteren tamamen 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 bunların arasındaki ilişkidir. Bu durumda, çeşitli yapısal diyagramlar 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 başka UML diyagramları sağlayabileceğini belirtmekte fayda var (örnekler: paketler ve paket diyagramlarının kendileri).

Kullanımları, yapıyı basitleştirmek ve ayrıca bu sistem modeliyle çalışmayı organize etmek için çeşitli unsurların belirli bir kritere göre gruplar halinde düzenlenmesini sağlamak için gerçekleştirilir.

Etkinlik şeması

Bir UML aktivite diyagramı, belirli bir aktivitenin birkaç bileşen parçasına ayrışmasını gösterir. Bu durumda, "etkinlik" kavramı, paralel biçimde belirli bir yürütülebilir davranışın belirtilmesinin yanı sıra çeşitli alt öğelerin koordineli sıralı yürütülmesi - iç içe faaliyet türleri ve çeşitli eylemler, kaynaktan gelen iş parçacıkları tarafından birleştirilir. belirli bir düğümün çıktılarını başka bir düğümün girdilerine

UML aktivite diyagramları genellikle çeşitli iş süreçlerini, paralel ve sıralı hesaplamaları modellemek için kullanılır. Diğer şeylerin yanı sıra, her türlü teknolojik prosedürü simüle ederler.

Otomat diyagramı

Bu görünüme UML durum diyagramı da denir. Basit ve bileşik durumlar ve geçişler ile sunulan bir durum makinesine sahiptir.

Durum makinesi, belirli bir nesnenin içinden geçtiği farklı durumlar dizisinin veya hayatındaki bazı olaylara yanıt olarak etkileşimin yanı sıra nesnenin bu tür olaylara verdiği yanıtların bir özelliğidir. Bir UML durum çizelgesi kullanan bir durum makinesi, kaynak öğeye eklenir ve örneklerinin davranışını tanımlamak için kullanılır.

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

Durum diyagramlarını kullanın

UML kullanım durumu diyagramı, aktörler arasında ortaya çıkan tüm ilişkileri ve çeşitli kullanım durumlarını gösterir. Ana görevi, bir müşterinin, son kullanıcının veya bazı geliştiricilerin belirli bir sistemin davranışını ve işlevselliğini ortaklaşa tartışabileceği tam teşekküllü bir araç olarak kendisini sağlamaktır.

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

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

UML'de bir kullanım şeması geliştirilirse, prosedür, bir müşteriyle çalışırken elde edilen metinsel bir açıklama ile başlar. Aynı zamanda, bir kullanım durumu modeli hazırlama sürecinde çeşitli işlevsel olmayan gereksinimlerin tamamen göz ardı edildiği ve onlar için ayrı bir belge oluşturulacağı gerçeğine dikkat etmek önemlidir.

iletişim

Bir iletişim diyagramı, tıpkı bir UML dizi diyagramı gibi, geçişlidir, yani kendi içinde etkileşimi ifade eder, ancak aynı zamanda onu farklı şekillerde gösterir ve gerekirse, gerekli doğruluk derecesinde bir tane dönüştürebilirsiniz. diğerine.

İletişim şeması, kompozit yapının çeşitli unsurları arasında meydana gelen etkileşimleri ve işbirliğinin rollerini tasvir eder. Sıra 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 olduğu gibi birkaç nesne ve bağlantı sipariş etmek için tamamen ücretsiz bir format ile ayırt edilir. Bu ücretsiz formatta mesajların sırasını koruma ihtiyacı varsa, bunlar kronolojik olarak numaralandırılır. Bu diyagramın okunması orijinal mesaj 1.0 ile başlar ve daha sonra mesajların bir nesneden diğerine geçtiği yönde devam eder.

Bu diyagramların çoğu, bir dizi diyagramının bize sağladığı bilgilerin tam olarak aynısını gösterir, ancak bilgi sunmanın farklı bir yolunu kullandığından, bir diyagramdaki belirli şeylerin tanımlanması diğerinden çok daha kolay hale gelir. Ayrıca, bir iletişim diyagramının her bir elemanın hangi elemanlarla etkileşime girdiğini daha açık bir şekilde gösterdiğini, bir dizi diyagramının ise etkileşimlerin hangi sırayla gerçekleştiğini daha açık bir şekilde gösterdiğini belirtmekte fayda var.

Sıra diyagramı

Bir UML dizi diyagramı, oluşum zamanlarına göre sıralanmış birden çok nesne arasındaki etkileşimleri gösterir. Bu diyagram, birden çok nesne arasındaki zaman sıralı etkileşimleri görüntüler. Özellikle, etkileşimde yer alan tüm nesneleri ve bunlar tarafından değiştirilen mesajların tam sırasını görüntüler.

Bu durumda ana unsurlar, çeşitli nesnelerin tanımlarının yanı sıra, belirli bir nesnenin aktivitesini veya herhangi bir işlevin yerine getirilmesini sağlayan zamanın ve dikdörtgenlerin geçişini gösteren dikey çizgilerdir.

İşbirliği diyagramı

Bu tür diyagramlar, yayın mesajlarının dizisinden soyutlayarak birkaç nesne arasındaki etkileşimleri göstermenize izin verir. Kompakt bir biçimdeki 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.

Sıra diyagramları ve iletişim diyagramlarının aynı prosedürlerin farklı görünümleri olması nedeniyle, Rational Rose bir dizi diyagramından bir iletişim şeması oluşturma veya tam tersi bir iletişim şeması oluşturma yeteneği sağlar ve ayrıca tam otomatik senkronizasyonunu gerçekleştirir.

Etkileşime genel bakış çizelgeleri

Bunlar, hem Sıra öğelerini hem de kontrol akışı yapılarını içeren etkinlik diyagramlarının bir alt kümesi olan UML diyagramlarıdır.

Bu formatın, oluşturulan 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ştirmesi gerçeğini belirtmekte fayda var.

senkronizasyon şeması

Belirli bir zaman ölçeğine sahip bir yaşam hattındaki durumdaki değişikliği açıkça gösteren alternatif bir dizi diyagramıdır. Çeşitli gerçek zamanlı uygulamalarda oldukça faydalı olabilir.

Faydaları nelerdir?

UML kullanım diyagramını ve diğerlerini ayıran birkaç avantajı belirtmekte fayda var:

  • Dil nesne yönelimlidir, bunun sonucunda gerçekleştirilen analiz ve tasarımın sonuçlarını tanımlamaya yönelik teknolojiler, modern tipteki her türlü nesne yönelimli dilde programlama yöntemlerine anlamsal olarak yakındır.
  • Bu dili kullanarak, sistem neredeyse tüm olası bakış açılarından tanımlanabilir ve aynı şekilde davranışının çeşitli yönleri de açıklanabilir.
  • Sözdizimi ile nispeten hızlı bir aşinalıktan sonra bile, tüm diyagramların okunması nispeten kolaydır.
  • UML, yalnızca yazılım mühendisliğinde değil, kullanımına katkıda bulunan kendi grafik ve metinsel stereotiplerinizi tanıtmanın yanı sıra genişletmenize de olanak tanır.
  • Dil oldukça yaygınlaştı ve aynı zamanda oldukça aktif bir şekilde gelişiyor.

Kusurlar

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

  • fazlalık. Vakaların büyük çoğunluğunda, eleştirmenler UML'nin çok büyük ve karmaşık olduğunu ve çoğu zaman bunun haksız olduğunu söylüyor. Çok fazla gereksiz veya pratik olarak işe yaramaz yapı ve diyagramlar içerir ve çoğu zaman bu tür eleştiriler ilk versiyona değil ikinci versiyona gider, çünkü daha yeni revizyonlarda "komite tarafından geliştirilen" daha fazla uzlaşma vardır.
  • Çeşitli anlamsal yanlışlıklar. UML, kendisinin, İngilizce ve OCL'nin bir kombinasyonu ile tanımlandığından, resmi açıklama tekniği ile kesin olarak tanımlanmış dillerde 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 kendisinin yanlış tanımlanması, hem kullanıcıları hem de araç sağlayıcıları etkiler, bu da farklı spesifikasyonları yorumlamanın benzersiz yolu nedeniyle nihayetinde araçların uyumsuzluğuna yol açar.
  • Uygulama ve çalışma sürecindeki sorunlar. Yukarıdaki sorunların tümü, UML'yi tanıtma ve öğrenme sürecinde belirli zorluklar yaratır ve bu, özellikle, liderlik mühendisleri önceden becerilere sahip değilken, onu zorla kullanmaya zorladığında geçerlidir.
  • Kod, kodu yansıtır. Bir diğer görüş ise önemli olanın güzel ve çekici modeller değil, çalışan sistemlerin kendisi yani kod proje olduğudur. Bu görüş doğrultusunda, yazılım yazmak için daha verimli bir yol geliştirmeye ihtiyaç vardır. UML, yürütülebilir veya kaynak kodunu yeniden oluşturmak için modelleri derleyen yaklaşımlar için takdir edilmektedir. Ancak gerçekte bu yeterli olmayabilir, çünkü dil, Turing eksiksizlik özelliklerinden yoksundur ve oluşturulan her kod, nihayetinde bir UML yorumlayıcı aracının üstlenebileceği veya tanımlayabileceğiyle sınırlı olacaktır.
  • Yük uyuşmazlığı. Bu terim, belirli bir sistemin girdisinin bir başkasının çıktısını algılayamamasını belirlemek için sistem analizi teorisinden gelir. Herhangi bir standart notasyon sisteminde olduğu gibi, UML bazı sistemleri diğerlerinden daha verimli ve özlü bir şekilde temsil edebilir. Böylece geliştirici, diğer programlama dillerinin yanı sıra UML'nin tüm güçlü yanlarını dokumak için daha rahat olan çözümlere daha yatkındır. Bu sorun, geliştirme dilinin nesne yönelimli ortodoks doktrinin temel ilkelerine uymaması, yani OOP ilkelerine uygun çalışmaya çalışmaması durumunda daha belirgindir.
  • Çok yönlü olmaya çalışır. UML, günümüzde mevcut 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şabilmesi için o dilin uygulanabilir yeteneklerini seçmesi gerekir. Ek olarak, UML'nin kapsamını belirli bir alanla sınırlamanın olası yolları, tam olarak formüle edilmemiş, ancak kendisi bir eleştiri konusu olan bir formalizmden geçer.

Bu nedenle, bu dilin kullanımı her durumda alakalı değildir.

UML veya Birleşik Modelleme Dili, yazılım geliştirmede nesne modelleme için bir grafik 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 mühendisliği 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 gösterimler üzerinde anlaşmalarına olanak tanır.

UML avantajları

  • UML, modellenen sistemin öğeleri için grafik semboller kullanır ve UML diyagramları, anlaşılması için yeterince basittir;
  • UML, sistemleri farklı yönleri dikkate alarak neredeyse akla gelebilecek her bakış açısından 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, sistemlerin tanımlanması için en modern gereksinimleri karşılayarak sürümden sürüme gelişir ve gelişir;
  • UML'yi sadece IT alanında değil, ek metin ve grafik türlerinin girişine izin veren bir uzatma mekanizması içerir.

UML Diyagramlarının Türleri

UML'de 14 çeşit diyagram 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ü olarak kabul edilir etkileşim diyagramları.

UML diyagram türü hiyerarşisi, 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, onların Öznitellikler, yöntemler ve sınıflar arasındaki bağımlılıklar), alan modelini ve modellenen sistemin yapısını tanımlar.
  2. bileşen diyagramı program kodunun büyük bloklara (yapısal bileşenler) dökümünü görüntüler ve gösterir bağımlılıklar onların arasında. Bileşenler paketler, modüller, kitaplıklar, dosyalar vb. olabilir.
  3. nesne diyagramı zaman içinde belirli bir anda modellenen sistemin tam veya kısmi bir dilimini gösterir. Sınıf örneklerini (nesneleri), durumlarını (geçerli öznitelik değerleri) ve aralarındaki ilişkileri temsil eder.
  4. Kompozit yapı diyagramı sınıfların iç yapısını ve mümkünse bu yapının öğeleri arasındaki etkileşimleri gösterir.
  5. Paket şeması paketleri ve aralarındaki ilişkileri gösterir. Bu tür diyagramlar, modelin öğ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ı simüle eder ( eserler) bilgi işlem kaynakları / donanım bileşenleri hakkında ( düğümler).
  7. Profil diyagramı UML'nin çeşitli alanlara ve sektörlere göre uyarlanmasını sağlayan bir genişletme mekanizmasını tanımlar.

Örnek UML Sınıf Şeması

davranış diyagramları

  1. Etkinlik şeması eylemleri gösterir ( hareketler) bunların bir kısmı ( aktivite). Faaliyet diyagramları, iş süreçlerini, iş akışlarını, sıralı ve paralel hesaplamayı modellemek için kullanılır.
  2. Kullanım durumu diyagramı(veya durum şemasını kullan), aktörler (karakterler) ile modellenen sistemin kullanım durumları (yetenekleri) arasındaki ilişkiyi açıklar. Bir diyagramın temel amacı, müşteriler, geliştiriciler ve son kullanıcılar için bir sistemi, yeteneklerini ve davranışını işbirliği içinde tartışmak için tek durak noktası olmaktır.
  3. Durum diyagramı bir varlığın dinamik davranışını betimler ve bu varlığın mevcut durumuna bağlı olarak çeşitli olaylara nasıl tepki verdiğini gösterir. Bu aslında atom teorisinden bir durum diyagramıdır.
  4. iletiş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. Sıra diyagramı bir dizi nesne etkileşimini görselleştirmek için kullanılır. Belirli bir nesnenin yaşam döngüsünü ve bir kullanım durumu içindeki aktörlerin (aktörlerin) etkileşimini, değiş tokuş ettikleri mesajların sırasını gösterir.
  6. Etkileşime genel bakış tablosu dizi diyagramının bir bölümünü ve kontrol akışı yapılarını içerir. Nesnelerin etkileşimini farklı bakış açılarından değerlendirmeye yardımcı olur.
  7. senkronizasyon şeması- zamanlama konusunda uzmanlaşmış, etkileşim diyagramlarının ayrı bir alt türü. Bu tür diyagramlar, nesnelerin belirli bir süre içindeki davranışlarını incelemek için kullanılır.

UML, 1997 sonbaharında Nesne Yönetim Grubu (OMG) tarafından kabul edilen ve birçok nesne yönelimli CASE ürünü tarafından desteklenen yazılım sistemlerinin görsel modellemesi için standart gösterimdir.

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

· Kullanım durumu diyagramı - bir organizasyonun veya işletmenin iş süreçlerini modellemek ve oluşturulan bilgi sistemi için gereksinimleri belirlemek için;

· Sınıf diyagramı (sınıf diyagramı) - sistemin sınıflarının statik yapısını ve aralarındaki bağlantıları modellemek için;

davranış diyagramları

· Etkileşim diyagramları;

· Sıra şemaları - tek bir kullanım durumunda nesneler arasında mesaj alışverişi sürecini simüle etmek için;

· İşbirliği şeması - tek bir kullanım durumunda 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;

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

Uygulama şemaları:

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

· Dağıtım şeması - tasarlanan bilgi sisteminin fiziksel mimarisini modellemek için.

İncirde. 1.1, bu ders projesinde geliştirilmesi gereken temel diyagramlar da dahil olmak üzere, bilgi sisteminin entegre bir modelini sunar.

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

4.2. Kullanım durumu 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, belirli bir bilgi sisteminde uygulamak istediği işlevleri kullanıcıyla tartışarak belirlenir. UML'de bir kullanım durumu şu şekilde gösterilmektedir:

incir. 2. kullanım durumu

Aktör, kullanıcının sistemle ilgili olarak oynadığı roldür. Aktörler, belirli kişileri veya iş unvanlarını değil, rolleri temsil eder. Kullanım durumu diyagramlarında stilize edilmiş insan figürleri olarak gösterilseler 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 diyagramınızda gösterin. UML'de aktörler şekiller olarak temsil edilir:



Şekil 3. Oyuncu (oyuncu)

Üç ana aktör türü vardır:

· Kullanıcılar;

· Sistemler;

· Bununla etkileşime giren diğer sistemler;

Sistemdeki herhangi bir olayın başlaması buna 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,

Dahil etme (dahil etme),

Uzatma (uzatma),

genelleme.

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

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

Dahil etme bağlantısı birden fazla kullanım durumunda tekrarlanan bir sistem davranışının olduğu durumlarda geçerlidir. Bu bağlantılar genellikle yeniden kullanılabilir bir işlevi modellemek için kullanılır.

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

Şekil 5. Dahil etme ve genişletme bağlantısı örneği

genelleme bağlantısı birkaç aktörün veya sınıfın ortak özelliklere sahip olduğunu gösterir.

Şekil 6. Genelleme bağlantısı örneği

4.3.



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

İleti Gönderici nesnenin, alıcı nesneden işlemlerinden birini gerçekleştirmesini isteme yöntemidir.

bilgilendirici mesaj Durumunu güncellemek için alıcı nesneye bazı bilgiler sağlayan bir mesajdır.

İstek mesajı (soru) Alıcı nesne hakkında bazı bilgilerin verilmesini isteyen bir mesajdır.

zorunlu mesaj Alıcıdan bir işlem yapmasını 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ı

Sıra 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 gerçekleştirmek için nesneler arasında iletilen mesajlara karşılık gelir.

Bir sıra diyagramında, bir nesne aşağı doğru çizilen dikey kesikli bir çizgi ile bir dikdörtgen olarak çizilir. Bu hattın adı 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ından mesaj adıyla etiketlenir. İsteğe bağlı olarak, argümanlar ve bazı kontrol bilgileri de ekleyebilirsiniz. Kendi kendine yetki verme - bir nesnenin kendisine gönderdiği ve mesaj oku aynı yaşam çizgisini gösterecek şekilde bir mesaj gösterebilirsiniz.

Pirinç. 7. Sıra diyagramı örneği

4.3.2. İşbirliği diyagramı

İşbirliği şemaları belirli bir senaryoda (kullanım durumu) olayların akışını görüntüleyin. İ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 içerdiği tüm bilgileri temsil eder, ancak bir işbirliği diyagramı, olayların akışını farklı şekilde tanımlar. Nesneler arasında var olan bağlantıları anlamayı kolaylaştırır.

Bir işbirliği diyagramında, bir dizi diyagramında olduğu gibi, oklar, belirli bir kullanım durumu için değiş tokuş edilen mesajları gösterir. Bunların zamansal sırası, mesajların numaralandırılmasıyla gösterilir.

Pirinç. 8. İşbirliği diyagramı örneği

4.4. Sınıf diyagramı

4.4.1. Genel bilgi

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

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

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

· Paket - mantıksal olarak birbiriyle ilişkili bir dizi model öğesi;

· Sınıf - bir grup benzer nesnenin genel özelliklerinin açıklaması;

· Arayüz, bu arayüzle ilişkilendirilmiş rastgele bir sınıfın nesnesinin diğer nesnelere sağladığı bir dizi işlemi tanımlayan soyut bir sınıftır.

4.4.2. Sınıf

Sınıf benzer özelliklere, yani veri ve davranışa sahip bir grup varlıktır (nesneler). Bir sınıfın bireysel temsilcisine sınıf nesnesi veya basitçe nesne denir.

Bir nesnenin UML'deki davranışı, bir nesnenin dış dünyayla ve nesnenin kendi verileriyle etkileşimi için herhangi bir kural olarak anlaşılır.

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

Üst kısım (isim bölümü) sınıf adını ve diğer genel özellikleri (özellikle stereotipi) 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.

Niteliklerin ve işlemlerin herhangi bir bölümü görüntülenemeyebilir (hem de aynı anda). Eksik bir bölüm için, bir bölme çizgisi çizmenize ve bir şekilde içindeki öğelerin varlığını veya yokluğunu belirtmenize gerek yoktur.

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

Pirinç. 9. Örnek sınıf diyagramı

4.4.2.1.Sınıf stereotipleri

Sınıf stereotipleri, sınıfları sınıflandırmak için bir mekanizmadır.

UML'de tanımlanan üç ana sınıf stereotipi vardır:

Sınır

varlık

Kontrol.

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) arabirimler ve diğer sistemlerle arabirimlerdir.

Sınır sınıflarını bulmak için kullanım durumu diyagramlarını incelemeniz gerekir. Bir aktör ve bir kullanım durumu arasındaki her etkileşim için en az bir sınır sınıfı olmalıdır. Oyuncunun 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ı depolanmış bilgileri içerir. Kullanıcı için büyük önem taşırlar ve bu nedenle adlarında konu alanındaki terimleri sıklıkla kullanırlar. Tipik olarak, 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 bir kullanım senaryosu, o kullanım senaryosu için olayların sırasını kontrol eden bir kontrol sınıfına sahiptir. Kontrol eden sınıf koordinasyondan sorumludur, ancak diğer sınıflar kendisine çok fazla mesaj göndermediğinden 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 adlandırılır.

Sistemde çoklu kullanım durumlarında ortak olan başka kontrol sınıfları olabilir. Örneğin, güvenlik olaylarını izlemekten sorumlu bir SecurityManager sınıfı olabilir. TransactionManager sınıfı, veritabanı işlemleriyle ilgili mesajları koordine etmekten sorumludur. 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 stereotiplere 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.

Nitelikler sınıf içinde yer aldığından diğer sınıflardan gizlenirler. Bu nedenle, hangi sınıfların nitelikleri okumasına ve değiştirmesine izin verildiğini belirtmeniz gerekebilir. Bu özelliğe öznitelik görünürlüğü denir.

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

Kamu (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, özniteliğin değerini görüntüleyebilir veya değiştirebilir. UML notasyonunda ortak ö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 "-" ile gösterilir.

Korumalı Böyle bir nitelik yalnızca sınıfın kendisi ve onun soyundan gelenler tarafından kullanılabilir. Korumalı bir özniteliğin UML gösterimi "#" işaretidir.

Paket veya Uygulama Bu özniteliğin genel olduğunu, ancak yalnızca paketinin içinde olduğunu varsayar. Bu görünürlük türü herhangi bir özel simgeyle gösterilmez.

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

4.4.2.6.Operasyonlar

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

Parametreler, "giriş" işlemi tarafından alınan argümanlardır. Dönüş türü, işlemin eyleminin sonucunu ifade eder.

Bir sınıf diyagramında, hem işlemlerin adlarını hem de işlemlerin adlarını parametreleri ve dönüş türüyle birlikte görüntüleyebilirsiniz. Diyagramın iş yükünü azaltmak için, bazılarında yalnızca işlemlerin adlarını, bazılarında ise tam imzalarını göstermek yararlıdır.

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

İşlem Adı (Argüman: Argümanın Veri Türü, Argüman2: Argüman2'nin Veri Türü, ...): Dönüş Türü

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

Uygulama işlemleri;

Kontrol 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 adımı, ilgili gereksinime göre kolayca izlenebilir olmalıdır. Bu, simülasyonun çeşitli aşamalarında elde edilir. Bir etkinlik, bir etkileşim diyagramındaki bir mesajdan türetilir, mesajlar, bir kullanım durumuna dayalı olarak oluşturulan bir olay akışının ayrıntılı bir açıklamasından türetilir ve ikincisi, gereksinimlerden türetilir. Bu zincirin tamamını izleme yeteneği, her gereksinimin kodda uygulanmasını ve her kod parçasının bir gereksinimi gerçekleştirmesini sağlar.

Kontrol işlemleri

Yönetici işlemleri, nesnelerin oluşturulmasını ve yok edilmesini kontrol eder. Sınıf oluşturucular 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 vardır. 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. Her sınıf özniteliği için Get ve Set işlemleri oluşturmak standart bir uygulamadır.

yardımcı işlemler

Yardımcı işlemler, bir sınıfın sorumluluklarını yerine getirmek için ihtiyaç duyduğu, ancak diğer sınıfların hakkında hiçbir şey bilmemesi gereken işlemlerdir. Bunlar, sınıfın özel ve korumalı işlemleridir.

İşlemleri tanımlamak için şu adımları izleyin:

1. Sıra diyagramlarını ve ortak diyagramları keşfedin. Bu diyagramlardaki mesajların çoğu uygulama faaliyetleridir. 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 birlikte ç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

İlişki, sınıflar arasındaki anlamsal bir ilişkidir. Bir sınıfın başka bir sınıfın nitelikleri, işlemleri ve ilişkileri hakkında bilgi edinmesini sağlar. Başka bir deyişle, bir sınıfın bir dizi diyagramında veya bir işbirlikçi diyagramda diğerine mesaj gönderebilmesi için ikisi arasında bir ilişki olmalıdır.

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

iletişim derneği

Dernek, sınıflar arasındaki anlamsal bağlantıdır. Sıradan bir çizgi olarak sınıf diyagramına çizilirler.

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

İlişkilendirmeler, örnekte olduğu gibi çift yönlü veya tek yönlü olabilir. UML'de çift yönlü ilişkiler, oklar olmadan veya her iki tarafta oklarla basit bir çizgi olarak çizilir. Tek yönlü bir ilişkide, yönünü gösteren yalnızca bir ok gösterilir.

İlişkinin yönü, dizi diyagramları ve işbirliği diyagramları incelenerek belirlenebilir. Onlara tüm mesajlar sadece bir sınıf tarafından gönderiliyor ve sadece başka bir sınıf tarafından alınıyorsa, tersi değil, bu sınıflar arasında tek yönlü bir ilişki oluşur. Ters yönde en az bir mesaj gönderiliyorsa, ilişkilendirme çift yönlü olmalıdır.

Dernekler yansıtıcı olabilir. Yansımalı ilişkilendirme, bir sınıfın bir örneğinin aynı sınıfın diğer örnekleriyle etkileşime girdiğini varsayar.

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

Bağımlılık ilişkileri de sınıflar arasındaki ilişkiyi yansıtır, ancak 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 yapmanız gerekir.

Bağımlılık, iki grafik öğesi arasında kesikli bir çizgi olarak gösterilir ve okun sonuna sabitlenen öğenin, o okun başına sabitlenen öğeye bağlı olduğu kabul edilir.

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

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

Bağlantı toplama

Toplamalar daha sıkı bir ilişkilendirme biçimidir. Toplama, bütün ile onun parçası arasındaki bağlantıdır. Örneğin, Araba için bir sınıfınız, ayrıca Motor, Lastikler için sınıflar ve arabanın diğer parçaları için sınıflarınız olabilir. Sonuç olarak, Car sınıfının bir nesnesi Engine sınıfının bir nesnesinden, dört Tyres nesnesinden vb. oluşacaktır. Toplamalar, bir bütün olan bir sınıf için elmaslı 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 parça nesne 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 ölürler. Bütünün herhangi bir şekilde çıkarılması, parçalarına kadar uzanır.

Bu basamaklı silme, genellikle toplama tanımının bir parçası olarak görülür, ancak rollerin çokluğu 1..1 olduğunda her zaman ima edilir; örneğin, bir Müşterinin silinmesi gerekiyorsa, bu silme işlemi Siparişler için (ve sırayla Sipariş Satırları için) geçerli olmalıdır.

Bir nesnenin yaşamı boyunca, nesnenin yaratılmasından yok edilmesine kadar olan davranışını gösterin. Her durum diyagramı bir çeşit otomat temsil eder.

Hareket planı

Açıklama bölümünde, diyagramları okuyabilmeniz için ihtiyaç duyduğunuz temel durum çizelgesi sembollerini keşfedin.

Diğer bölümleri (Örnek, Uygulama) okuduktan sonra, durum diyagramlarını kendiniz çizmeyi deneyebilirsiniz.

Notlar (açıklama)

Bu temel karakter seti durum diyagramları diyagramı okuyabilmek için gereklidir. Diğer bölümleri ("Örnek", "Uygulama") okuduktan sonra, oluşturabileceksiniz. durum diyagramları kendi başına!

Terim resim Açıklama
İlk sözde durum Sistemin ilk durumu
Geçiş Geçiş, bir durumdan diğerine geçmek anlamına gelir.
Belirtmek, bildirmek Aktörlerin gözlemlenen sonuçlarına yol açan sistem tarafından gerçekleştirilen eylemleri (seçenekleri içerebilir) gösterir.
Belirtmek, bildirmek
aktivite durumu
Bir kullanım durumundaki karmaşık bir adım, başka bir kullanım durumu ile temsil edilebilir.
UML terimleriyle, ilk kullanım durumunun ikinciyi içerdiğini söylüyoruz.
Son durum Sistemlerin veya alt sistemlerin sınırlarını tanımlamanıza izin verir.
Dahili faaliyetler Devletlerin geçiş yapmadan olaylara tepki verebildiği durum, bu durumda olay, koruma ve faaliyetin durum dikdörtgeni içine yerleştirilmesi.
Giriş Etkinliği Giriş etkinliği, duruma her girdiğinizde yürütülür
Çıktı Etkinliği Çıkış Etkinliği - Eyaletten her ayrıldığınızda yürütülür.
süper devlet
Çoğu durumda, birkaç devletin ortak geçişleri ve dahili faaliyetleri vardır. Bu gibi durumlarda, onları alt durumlara dönüştürebilir ve genel davranışı bir üst duruma taşıyabilirsiniz.
paralel durumlar
Durumlar, aynı anda çalışan birden fazla eşzamanlı duruma bölünebilir.

Yaratıcılık tekniği nasıl uygulanır?

UML durum diyagramları, birden çok kullanım durumunda tek bir nesnenin davranışını açıklamak için iyidir. Ancak birçok nesnenin etkileşimi ile karakterize edilen davranışı tanımlamak için pek uygun değildirler. Bu nedenle, durum diyagramları ile birlikte diğer teknolojileri kullanmak mantıklıdır. Örneğin, etkileşim diyagramları (Bölüm 4), tek bir kullanım durumunda birden çok nesnenin davranışını ve UML etkinlik diyagramlarını mükemmel bir şekilde tanımlar. birden çok kullanım durumunda birden çok nesnenin temel akışını göstermek için iyidir.

Herkes durum haritalarını doğal olarak görmez. Uzmanların onlarla nasıl çalıştığını izleyin. Ekip üyelerinizin durum çizelgelerinin kendi çalışma tarzları için doğru olmadığını düşünmeleri mümkündür. Bu en büyük zorluk değil; farklı çalışma tekniklerini paylaşmayı unutmamalısınız.

Durum diyagramları kullanıyorsanız, sistemin her sınıfı için bunları çizmeye çalışmayın. Bu yaklaşım genellikle resmi olarak katı bir bütünlük sağlamak için kullanılır, ancak neredeyse her zaman bir enerji kaybıdır. Durum çizelgelerini yalnızca ilginç davranışlar sergileyen sınıflar için kullanın; burada bir durum çizelgesi oluşturmanın işlerin nasıl gittiğini anlamanıza yardımcı olduğu.

Birçok uzman buna inanıyor UI düzenleyicisi ve kontrolleri, bir durum çizelgesi kullanılarak görüntülendiğinde yararlı olan işlevselliğe sahiptir.

Nasıl ögrenilir

Burada, öğrenmenin mümkün olduğu kadar basit bir yolunu sağlamaya çalıştık. UML durum diyagramları.

Diğer birçok dilde olduğu gibi, onu tanımlamak için bir dizi karakter kullanır. Bu sembollerin anlamı, "Açıklamalar (açıklama)" bölümündeki tabloda bulunabilir. Her işaretin kendi adı (terimi) ve yazımı vardır. Ayrıca, ana özünü hızlı bir şekilde anlamak için her terime kısa bir açıklama verilmiştir.

Ayrıca, "Örnekler" bölümüne gitmenizi tavsiye ederiz. durum diyagramları Elinizi farklı çizelgeleri okumada denemek için. O zaman "Uygulamalar" bölümünü incelemeye değer, çünkü UML'deki diyagram türlerinin sayısı az olsa da, kullanımlarından maksimum faydayı ancak ilgili diyagramları amaçlarına uygun olarak kullanırsanız elde edebilirsiniz.

kullanım örneği

Durum makinesi diyagramları Bir sistemin davranışını açıklamak için iyi bilinen bir teknolojidir. Durum diyagramları 1960'dan beri şu ya da bu şekilde olmuştur ve nesne yönelimli programlamanın ilk günlerinde bir sistemin davranışını temsil etmek için kullanılmıştır. Nesne yönelimli yaklaşımlarda, tek bir nesnenin ömrü boyunca davranışını göstermek için tek bir sınıfın durum diyagramını çizersiniz.

Durum makineleri, hız kontrol sistemleri veya otomatlar hakkında ne zaman yazsalar, kaçınılmaz olarak örnek olarak gösteriliyor.
Gotik kalede gizli kontrol paneli denetleyicisini kullanmaya karar verdik. Bu şatoda, bulunmaları zor olsun diye hazinelerimizi saklamak istiyoruz. Kasanın kilidine erişmek için şamdandan stratejik bir mum çıkarmalıyız, ancak kilit yalnızca kapı kapalıysa görünecektir. Kilit göründükten sonra, anahtarı içine sokabilir ve kasayı açabiliriz. Daha fazla güvenlik için, kasanın ancak mum çıkarıldıktan sonra açılabileceğinden emin olduk. Hırsız bu önlemi almazsa, hırsızı yutacak korkunç bir canavarı serbest bırakırız.

İncirde. 10.1 gösteri durum diyagramı olağandışı güvenlik sistemimi yöneten denetleyici sınıfı. Durum diyagramı, oluşturulan denetleyici nesnesinin durumuyla başlar: durumlar Beklemek... Bu, şemada ile gösterilir ilk sözde durum bu bir durum değildir, ancak ilk durumu gösteren bir ok vardır.
Diyagram, denetleyicinin üç durumdan birinde olabileceğini gösterir: Bekle, Kilitle ve Aç... Diyagram ayrıca, denetleyicinin bir durumdan diğerine geçişine göre kuralları gösterir. Bu kurallar geçişler şeklinde sunulur - durumları birbirine bağlayan çizgiler.

Geçiş, bir durumdan diğerine geçmek anlamına gelir. Her geçişin üç bölümden oluşan kendi etiketi vardır:
tetik-imza / etkinlik... Hepsi isteğe bağlıdır. Genellikle, tetik kimliği Durum değişikliğine neden olabilecek tek olaydır.

Koruma, belirtilirse, geçişin gerçekleşmesi için karşılanması gereken bir boole koşuludur. Aktivite, geçiş sırasında sistemin bazı davranışlarıdır. Herhangi bir davranışsal ifade olabilir. Bir tetikleyici tanımlayıcısının tam biçimi, birden çok olay ve parametre içerebilir. Bekle durumundan (Şekil 10.1) başka bir duruma geçiş, "Bekle durumunda mum çıkarılırsa kilidi görür ve Kilit durumuna geçersiniz" şeklinde okunabilir.

Geçiş açıklamasının üç bölümü de isteğe bağlıdır. Aktiviteyi atlama, geçiş sırasında hiçbir şey olmadığı anlamına gelir. Korumaları atlama, tetikleyici bir olay meydana geldiğinde her zaman bir geçişin yapıldığı anlamına gelir. Tetikleyici tanımlayıcı nadiren kaybolur, ancak olur. Bu, esas olarak faaliyet durumlarında gözlemlenebilen geçişin hemen gerçekleştiği anlamına gelir.

Belirli bir durumda bir olay meydana geldiğinde, bu durumdan yalnızca bir geçiş yapılabilir, örneğin Kilit durumunda (Şekil 10.1), korumalar birbirini dışlayan olmalıdır. Bir olay meydana gelirse, ancak izin verilen geçişler yoksa - örneğin, Bekleme durumunda bir kasanın kapatılması veya kapı açıkken bir mumun çıkarılması - olay yok sayılır.

Son durum ( son durum) durum makinesinin çalışmayı bitirdiği ve bu da denetleyici nesnesinin silinmesine neden olduğu anlamına gelir. Bu yüzden tuzağa düşme dikkatsizliği olanlar için, denetleyici nesnenin varlığı sona erdiği için tavşanı tekrar kafese koymaya, zemini yıkamaya ve sistemi yeniden başlatmaya zorlandığımızı bildiriyoruz.

Durum makinelerinin yalnızca doğrudan gözlemlenen veya üzerinde işlem yapılan nesneleri gösterebileceğini unutmayın. Bu nedenle, kapı açıkken kasaya bir şey koymamızı veya oradan bir şey almamızı beklerken, denetleyicinin bu konuda söyleyecek bir şeyi olmadığı için şemada işaretlemedik.

Geliştiriciler nesneler hakkında konuştuklarında, genellikle nesnelerin durumuna, yani nesnenin alanlarında bulunan tüm verilerin birleşimine atıfta bulunurlar. Bununla birlikte, durum makinesi diyagramındaki durum, daha soyut bir durum kavramıdır; mesele şu ki, farklı durumlar olaylara farklı tepki verme yollarını içerir.

Durum haritasındaki dahili faaliyetler

Devletler, bir geçiş yapmadan olaylara tepki verebilir. iç faaliyetler (iç faaliyetler), bu durumda olay, koruma ve etkinlik durum dikdörtgeninin içine yerleştirilir.

İncirde. 10.2, durumu, editörün metin alanlarında gözlemleyebileceğiniz, yardım sisteminin sembollerinin ve olaylarının dahili faaliyetleriyle birlikte sunar. kullanıcı arayüzü... İç aktivite, kendi kendine geçiş gibidir - aynı duruma geri dönen bir geçiş. Dahili etkinliklerin sözdizimi aynı olay, koruma ve prosedür mantığını takip eder.

İncirde. 10.2 ayrıca özel aktiviteleri de gösterir: girdi ve çıktı faaliyetleri. Giriş Etkinliği bir duruma her girdiğinizde yürütülür; çıktı etkinliği- ne zaman eyaletten ayrılsan. Ancak, iç faaliyetler başlamaz. girdi ve çıktı faaliyetleri; arasındaki fark budur iç faaliyetler vekendi kendine geçişler .

Durum haritasındaki faaliyet durumları

Buraya kadar anlattığımız durumlarda nesne sessizdir ve herhangi bir şey yapmadan önce bir sonraki olayı bekler. Bununla birlikte, nesnenin bir miktar aktivite sergilediği durumlar mümkündür.

Belirtmek, bildirmek Aranıyor incirde. 10.3 böyle bir durum aktivite durumu: devam eden aktivite sembolü ile gösterilir yapmak /; dolayısıyla terim aktivite yapmak (aktif ol)... Arama tamamlandıktan sonra, örneğin yeni ekipmanın gösterilmesi gibi etkinlik olmadan geçişler gerçekleştirilir. (Yeni Donanımı Görüntüle)... Eğer bir iptal olayı ( İptal et), sonra aktivite yapmak sadece kesintiye uğrar ve duruma geri döneriz Donanım Penceresini Güncelle.

Hem do-aktiviteler hem de sıradan aktiviteler, bazı davranışların tezahürünü temsil eder. İkisi arasındaki belirleyici fark, normal faaliyetlerin "anlık" olması ve normal olaylar tarafından kesintiye uğramaması, do-aktivitelerinin ise Şekil 2'de gösterildiği gibi sınırlı bir süre boyunca devam edebilmesi ve kesintiye uğratılabilmesidir. 10.3. Anlıklık, farklı sistemler için farklı yorumlanır; gerçek zamanlı sistemler için bu, birkaç makine talimatı alabilir ve masaüstü yazılımı için birkaç saniye sürebilir.

V UML 1 ortak faaliyetler terimi ile ifade edildi eylem(eylem) ve terim aktivite(aktivite) sadece Faaliyet yapmak.

süper devletler

Çoğu durumda, birkaç devletin ortak geçişleri ve dahili faaliyetleri vardır. Bu gibi durumlarda, bunları alt durumlara dönüştürebilir ve genel davranışı Şekil 2'de gösterildiği gibi bir üst duruma taşıyabilirsiniz. 10.4. Süper durum olmadan, bir geçiş çizmeniz gerekirdi. İptal et(iptal) bir eyalet içindeki her üç eyalet için Bağlantı Ayrıntılarını Girin.

paralel durumlar

Durumlar, aynı anda çalışan birden fazla eşzamanlı duruma bölünebilir. İncirde. 10.5, CD'yi veya radyoyu açabilen ve geçerli saati veya alarm saatini gösterebilen basit bir çalar saati gösterir.

CD/radyo seçenekleri ile güncel saat/sinyal saati paraleldir. Bunu paralel olmayan bir durum diyagramı ile göstermek isteseydiniz, durumları eklemeniz gerektiğinde dağınık bir diyagram olurdu. İki davranış alanını iki durum çizelgesine bölmek, bunu çok daha net hale getirir.

Pirinç. 10.5 ayrıca şunları içerir: arka plan durumu(tarih sözde durumu). Yani saat açıldığında radyo/CD seçeneği saatin kapatıldığı andaki durumuna geçer. Tarihöncesinden çıkan ok, tarihöncesi yokken başlangıçta hangi devletin var olduğunu gösterir.

Durum diyagramlarını uygulama

Bir durum diyagramı üç ana yolla uygulanabilir: yuvalanmış bir anahtar ifadesi, bir Durum modeli ve bir durum tablosu ile. Durum çizelgeleriyle çalışmak için en basit yaklaşım, Şekil 1'de gösterilen gibi iç içe bir anahtar ifadesidir. 10.6.

Bu yöntem basit olmasına rağmen, bu basit durum için bile çok uzundur. Ek olarak, bu yaklaşımla kontrolü kaybetmek çok kolaydır, bu nedenle temel durumlarda bile kullanılmasını önermiyoruz.
Durum modeli, durum davranışını işlemek için bir durum sınıfları hiyerarşisini temsil eder. Bir durum haritasındaki her durum, kendi durum alt sınıfına sahiptir. Denetleyici, her olay için yalnızca durum sınıfına ileten yöntemlere sahiptir. Şekilde gösterilen durum diyagramı. 10.1, Şekil 2'de gösterilen sınıflar kullanılarak uygulanabilir. 10.7.

Hiyerarşinin en üstünde, olayları işleyen, ancak uygulama içermeyen tüm yöntemlerin açıklamasını içeren soyut bir sınıf bulunur.
Her belirli durum için, durumdan geçişi başlatan belirli bir olay için işleyici yöntemini yeniden yazmak yeterlidir.
Bir durum tablosu, bir durum diyagramını veri olarak temsil eder.

Yani, Şek. 10.1 tablo şeklinde sunulabilir. 10.1.
Ardından, çalışma zamanında durum tablosunu kullanan bir yorumlayıcı veya bu tabloya dayalı sınıflar oluşturan bir kod oluşturucu oluştururuz.

Açıkçası, bir durum tablosundaki çalışmaların çoğu bir kez yapılır, ancak daha sonra bir durum sorununun çözülmesi gerektiğinde kullanılabilir. Çalışma zamanı durum tablosu, yeniden derleme yapılmadan değiştirilebilir, bu da biraz uygundur. Durum kalıbının oluşturulması daha kolaydır ve her durum ayrı bir sınıf gerektirse de, yazılması gereken kod miktarı çok azdır.

Verilen uygulamalar pratik olarak minimaldir, ancak nasıl kullanılacağı hakkında bir fikir verir. durum diyagramları... Her durumda, durum modellerinin uygulanması oldukça kalıplaşmış bir programa yol açar, bu nedenle genellikle bunun için bir tür kod üretimine başvurmak en iyisidir.

Site haberlerine abone olun, abonelik formunu sitenin sağ sütununda bulabilirsiniz.

Profesyonel olarak nasıl serbest çalışacağınızı öğrenmek istiyorsanız, sizi "" kursuna davet ediyoruz.

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ı olarak yazılım sistemlerinin modellenmesi sürecini desteklemek, kavramsal ve yazılım kavramları arasındaki ilişkiyi düzenlemek, karmaşık sistemleri ölçekleme sorunlarını yansıtmak için tasarlanmıştır. UML'deki modeller, iş analizinden sistem bakımına kadar yazılım sistemi 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 uygun gördükleri şekilde uygulayabilirler.

UML'nin kısa bir tarihi

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

Nesne teknolojileri ve veritabanları alanındaki standartların benimsenmesinden sorumlu kuruluş olan Nesne Yönetim Grubu'nun (OMG) talebi üzerine, acil birleştirme ve standardizasyon sorunu, en popüler üç OO yönteminin yazarları tarafından çözüldü - G Buch, D. Rambo ve A. Jacobson, OMG tarafından 1997 yılında bir standart olarak onaylanan UML 1.1'i oluşturdu.

UML bir dildir

Herhangi bir dil, anlamlı yapılar elde etmek için kelimeleri birleştirmek için bir kelime dağarcığı ve kurallardan oluşur. Bu nedenle, özellikle programlama dilleri düzenlenmiştir, UML gibi. Ayırt edici özelliği, dil sözlüğünün grafik öğelerden oluşmasıdır. Her grafik sembolün belirli bir anlamı vardır, bu nedenle bir geliştirici tarafından oluşturulan bir model, UML'yi yorumlayan bir yazılım aracının yanı sıra bir başkası tarafından açık bir şekilde anlaşılabilir. Bundan özellikle, UML'de sunulan bir PS modelinin, UML'yi destekleyen iyi bir görsel modelleme aracı varsa, otomatik olarak bir OO programlama diline (Java, C ++, VisualBasic gibi) çevrilebileceğini izler. , modeli oluştururken, bu modele karşılık gelen program kodunun bir hazırlığını alacağız.

UML'nin bir metot değil bir dil olduğu vurgulanmalıdır. Hangi öğelerden 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 yazılım geliştirme sürecinin bir açıklamasıyla desteklemek gerekir. Böyle bir sürecin bir örneği, sonraki makalelerde tartışılacak olan Rational Unified Process'tir.

UML kelime dağarcığı

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

varlıklar Modellerin ana unsurları 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çıklama (yorumlar). Her varlık türünün kendi grafik temsili vardır. Diyagramlar incelenirken varlıklar ayrıntılı olarak tartışılacaktır.

İlişki varlıklar arasında çeşitli ilişkiler gösterir. UML, aşağıdaki ilişki türlerini tanımlar:

  • Bağımlılık iki varlık arasında böyle bir bağlantı gösterir, birini değiştirirken - bağımsız - diğerinin anlamını etkileyebilir - bağımlı. Bağımlılık, bağımlı varlıktan bağımsız varlığa işaret eden kesikli bir okla gösterilir.
  • bağlantı Bir varlıktaki nesnelerin başka bir varlıktaki nesnelerle ilişkili olduğunu gösteren yapısal bir ilişkidir. Bir ilişki, bağlantılı varlıkları birbirine bağlayan bir çizgi olarak grafiksel olarak gösterilir. İlişkilendirmeler 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 malları bulmak için, diğer yandan belirli bir ürünün bulunduğu tüm siparişleri bulmak için kullanılabilir. . İlgili programların bu tür navigasyon için bir mekanizma uygulaması gerektiği açıktır. Gezinmek için yalnızca bir yön gerekiyorsa, ilişkilendirmenin sonunda bir okla gösterilir. Bir birlikteliğin özel bir durumu, toplamadır - "bütün" - "parça" biçimindeki bir ilişki. Grafik olarak, varlık-bütünün yanında, sonunda bir elmas ile vurgulanır.
  • genelleme Bir üst varlık ile bir alt varlık arasındaki ilişkidir. Esasen bu ilişki, sınıflar ve nesneler için kalıtım özelliğini yansıtır. Genelleme, ebeveyn varlığı gösteren bir üçgen ile biten bir çizgi olarak gösterilir. Çocuk, ebeveynin yapısını (niteliklerini) ve davranışını (yöntemlerini) devralır, ancak aynı zamanda yeni yapı üyelerine ve yeni yöntemlere sahip olabilir. UML, bir varlık birden fazla üst varlıkla ilişkilendirildiğinde birden çok kalıtıma izin verir.
  • uygulama- davranışın belirtimini (arayüz) tanımlayan varlık ile bu davranışın uygulaması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 diyagramları sağlar:

  • Sistem davranışını açıklayan diyagramlar:
    • Durum diyagramları,
    • Aktivite diyagramları,
    • Nesne diyagramları,
    • Sıra 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, hiyerarşinin her seviyesinde az sayıda varlık bırakarak hiyerarşik olarak organize edilmesi gerektiğini zaten söylemiştik. UML, bir modelin hiyerarşik bir temsilini organize etmenin bir yolunu içerir - paketler. 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şiler oluşturmak için başka paketler içerebilir. UML'de ayrı paket diyagramları yoktur, ancak diğer diyagramlarda görünebilirler. Paket, sekmeli bir dikdörtgen olarak görüntülenir.

UML'nin sağladıkları.

  • paketleri tahsis ederek karmaşık bir sistemin hiyerarşik bir açıklaması;
  • kullanım durumları aparatını kullanarak sistem için fonksiyonel gereksinimlerin resmileştirilmesi;
  • faaliyet ve senaryo şemaları oluşturarak sistem gereksinimlerinin detaylandırılması;
  • veri sınıflarını vurgulama ve sınıf diyagramları şeklinde kavramsal bir veri modeli oluşturma;
  • kullanıcı arayüzünü tanımlayan sınıfların vurgulanması ve bir ekran navigasyon şeması oluşturulması;
  • sistem işlevlerini yerine getirirken nesnelerin etkileşim süreçlerinin açıklaması;
  • nesnelerin davranışlarının aktivite ve durum diyagramları şeklinde tanımlanması;
  • yazılım bileşenlerinin tanımı ve arayüzler aracılığıyla etkileşimleri;
  • sistemin fiziksel mimarisinin bir açıklaması.

Ve son...

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

Konunun devamı:
ağlar

Herkese merhaba! Siri'yi kullanıyor musun? Bu, her zaman konuşabileceğiniz harika bir sesli asistan olsa da, bunu o kadar sık ​​yapmıyorum. Sonuçta, şimdiye kadar ...