Skip to main content

Durum Diyagramı

Basitleştirilmiş grafik biçiminde karmaşık yazılım tasarımının net bir şekilde iletimi

 

Bir durum diyagramı veya bir durum geçiş diyagramı, bir durum makinesinin sonlu sayıdaki durumlarının, durum geçişlerinin ve geçişleri yöneten kuralların grafiksel bir temsilidir. Durum diyagramı, karmaşık yazılım tasarımı için üst düzey başlangıç noktaları olarak kullanılır çünkü basitlikleri, farklı çalışma modlarının açık bir şekilde iletişim kurmasına izin verir.

Bir durum diyagramında:

  • Kutular, durumları veya farklı çalışma modlarını temsil eder.
  • Oklar, bir durumdan diğerine geçişi gösterir.
  • Her okla ilişkili metin, geçişi yöneten kuralı temsil eder.

Şekil 1. Stateflow kullanılarak modellenmiş, 3 çalışma modlu (kapalı, ısıtma ve rölanti) bir mikrodalga fırının durum diyagramı.

Bir durum makinesinin çıktıları veya eylemleri, her bir sistem durumunun davranışının tanımıdır. İki tip durum makinesi—Moore ve Mealy—makine çıktısının tanımlandığı yere göre sınıflandırılır.

 

 

Durum diyagramın Moore Uygulaması

Bu tür durum makinesinde, çıkışlar yalnızca sistemin durumuna bağlıdır ve durum eylemleri olarak tanımlanır. Bir duruma nasıl girdiğinizden bağımsız olarak, durum eylemi aynı kalır. Örneğin, Şekil 2’deki durum diyagramında, Heating durumundan gelen çıkış, geçişin Idling veya OFF durumundan oluşup oluşmadığına bakılmaksızın aynı kalır.

 

Şekil 2. Stateflow ile Moore uygulaması kullanılarak modellenen durum diyagramı

Durum diyagramın Mealy Uygulaması

Bu tür bir durum makinesinde, çıktılar yalnızca sistemin durumuna değil, aynı zamanda sistemin girişlerine de bağlıdır. Şekil 3’teki durum diyagramında gösterildiği gibi, bir Mealy uygulamasındaki çıktılar geçişlerde tanımlanır.

 

Şekil 3. Stateflow ile Mealy uygulaması kullanılarak modellenen durum diyagramı.

Mealy uygulamasıyla, makine çıktılarını güncellemek için döngülerin eklenmesiyle durum diyagramları yeniden düzenlenebilir ve basitleştirilebilir. Bu, karmaşık tasarımlarda giderek daha faydalı hale gelir.

Şekil 4. Stateflow ile Mealy uygulaması kullanılarak modellenen yeniden düzenlenmiş durum diyagramı.

Mealy ve Moore makineleri, basitlikleri ve netlikleri nedeniyle popülerdir ve iki stil genellikle aynı durum diyagramında beraber kullanılır.

Durum Grafikleri: Gelişmiş Durum Diyagramları

Durum diyagramlarının temel yapı taşları, tek bir diyagramın karmaşık mantıksal sistemleri temsil etmesi için yeterli değildir. Karmaşık tasarım ayrıntılarını verimli bir şekilde yakalamak için ek kabiliyetlere ihtiyacınız olacak. Harel diyagramı olarak da bilinen durum diyagramları, hiyerarşi, paralellik veya ortogonallik ve olay yayınlama gibi yetenekler ekler.

Hiyerarşi kabiliyeti, tasarımın daha fazla bölümlendirilmesine izin verir ve durumlar arasında gereken geçiş diyagramlarının sayısını azaltabilir. Ana durumlar, durum makinelerinde hiyerarşi oluşturmak için tanıtılabilir. Örneğin, Şekil 5’teki durum grafiğinde, baking ana durumu, Heating ve Idle alt durumlarını ve ilişkili durum diyagramını içerir.

Şekil 5. Stateflow kullanılarak modellenmiş, hiyerarşiyi gösteren durum grafiği.

Paralellik veya ortogonallik yetenekleri, tek bir durum grafiğinin aynı anda çalışan birden çok durumu içermesine izin verir. Örneğin, Şekil 6’daki durum grafiğinde Oven ve Oven_Light, aynı anda çalışan iki bağımsız durum makinesi olarak düşünülebilir. Grafik, iki paralel durum makinesini içeren tek bir grafikte genel sistemi temsil eder.

Şekil 6. Stateflow kullanılarak modellenmiş, hiyerarşi ve paralelliği gösteren durum grafiği.

Olay yayınlama yetenekleri, iki bağımsız durum veya durum makinesi arasında bilgi alışverişine izin vererek sistemin işlevselliğini genişletir. Bir önceki durumda, fırın lambasının çalışması fırının ısıtma sistemine bağlı olmadığı için iki durum makinesi bağımsızdı. Olay yayını ile, Şekil 7’deki durum şemasında vurgulandığı gibi oven durum mantığı içinde basit bir komut kullanılarak pişirme tamamlandığında fırın ışığını kapatan bir özellik eklenebilir.

Şekil 7. Stateflow kullanılarak modellenmiş, hiyerarşiyi, paralelliği ve yayını gösteren durum grafiği.

Hiyerarşi, paralellik ve yayınlama özelliklerine sahip durum grafikleri, karmaşık sistem fonksiyonelliklerini karmaşık durum diyagramları olmadan temsil etmeye yardımcı olur.

Stateflow ile Durum Diyagramları ve Durum Grafikleri

Stateflow®, sonlu durum makinelerine dayalı bir grafiksel programlama ortamıdır. Stateflow’u kullanarak otomatik şanzımanlar, robotik sistemler, cep telefonları ve daha fazlasını içeren dinamik sistemlerde karmaşık mantığı modellemek için basit durum şematiklerinden başlayabilir ve durum grafikleri oluşturabilirsiniz. Bu karmaşık mantığın uygulamaları şunları içerir:

Bir yazılım bileşenini kontrol etmek için oluşturulan mantığa ihtiyacınız varsa, durum diyagramını C, HDL veya PLC koduna dönüştürmek için Simulink’in otomatik kod oluşturma özelliklerini kullanabilirsiniz.

Bu gelişmiş teknikler de dahil olmak üzere durum diyagramlarının modellenmesi hakkında daha fazla bilgi için bkz. Stateflow ve Simulink. Bir Güvenlik Sisteminin Modellenmesi örneği, Stateflow’da hiyerarşi, paralellik ve olay yayınlamayı gösterir.

Kurumsal e-bültenimize abone olarak FİGES hakkındaki güncel gelişmelerden haberdar olabilirsiniz.
Sosyal Medya'da FİGES
FİGES Facebook
FİGES Twitter
FİGES Linkedin
FİGES Instagram

© FİGES A.Ş. Tüm hakları saklıdır. Tasarım ordek.co.