Sistem Modelleme
2026
Soyutlama
Önemli olanı seçer, gerisini bilerek dışarıda bırakır.
Bir maçın beş dakikalık özeti.
Temsil
Bilginin tamamını korur, yalnızca biçimi değiştirir.
Maçın baştan sona kaydı.
Sistem modeli bir soyutlamadır; sistemin eksiksiz bir kopyası değildir.
Dış bakış · Bağlam
Sistem hangi ortamda, hangi sistemlerle birlikte çalışıyor?
Etkileşim
Kullanıcılar, sistemler ve bileşenler birbiriyle nasıl haberleşiyor?
Yapı
Sistem nasıl örgütlenmiş, hangi verileri işliyor?
Davranış
Sistem çalışırken olaylara ve verilere nasıl tepki veriyor?
Tartışmayı odaklamak
Eksik olabilir; gösterim serbestçe kullanılabilir. Tartışmanın ana noktalarını kapsaması yeterli.
Belgelemek
Eksik olabilir; ama gösterdiği kısım doğru olmalı ve gösterim doğru kullanılmalı.
Kod üretmek
Hem eksiksiz hem doğru olmalı. Benzer iki sembolü karıştırmak bile sonucu değiştirir.
UML dışında da yaygın gösterimler var: bağlam ve mimari için C4, iş süreçleri için BPMN. Gösterim değişse de ilke aynı kalır.
Eski bir sistemin yerine geçiliyorsa
Yeni sistemin çevresi çoğunlukla eskisinin çevresiyle aynıdır. Sınır büyük ölçüde hazırdır.
Yeni bir iş destekleniyorsa
Hangi işin yazılıma gireceği, gereksinim mühendisliği sırasında paydaşlarla tartışılarak belirlenir.
Hasta kayıt sisteminden alınır
+ Aynı veri iki yerde tutulmaz.
- Her erişim o sisteme bağlıdır; yavaşlayabilir.
- O sistem çalışmazsa AS-HYS de iş göremez.
AS-HYS kendi kopyasını tutar
+ Dış sisteme bağımlılık azalır.
- İki kopyanın tutarlı kalması gerekir.
- Saklama ve bakım sorumluluğu projeye girer.
Tek bir doğru yok; önemli olan kararın bilinçli verilmesi ve kayda geçmesi.
Maliyet ve iş bölümü
Sınırın yeri, işin hangi ekipte yürüyeceğini ve projenin bütçesini değiştirir.
Kurum içi ilişkiler
Sınır bazen analizin tek bir birimde bitebilmesi ya da belirli bir onay sürecine girilmemesi için kaydırılır.
Farklı kullanıcı grupları
Gruplar çok farklıysa sınır sabitlenmez; kurulumda ayarlanabilen, yapılandırılabilir bir sistem tasarlanır.
Proje ilerledikçe kapsam durmadan genişliyor. İyi çizilmiş bir bağlam modeli bunu önlemeye nasıl yardım eder?
Sistem sınırının nasıl çizildiği ve bağlam modelinin nasıl kurulduğu, projenin karmaşıklığını ve maliyetini ciddi biçimde etkileyebilir. Bunun geçerli olduğu iki durum örneği verin.
Düğün, mezuniyet ve doğum günü gibi etkinliklerin planlanmasına yardım eden bir sistem geliştireceksiniz. Mekân ayırma, davetiye gönderme gibi etkinlikleri ve her aşamada kullanılabilecek sistem öğelerini gösteren bir etkinlik diyagramı çizin.
Etkileşimi modellemenin birbiriyle ilişkili iki yaklaşımı var:
Kullanım durumu modelleme
Çoğunlukla sistem ile dış aktörler (insanlar ya da diğer sistemler) arasındaki etkileşimi modeller.
Sıra diyagramları
Çoğunlukla sistem bileşenleri arasındaki etkileşimi modeller; dış aktörler de diyagrama katılabilir.
İkisi etkileşimi farklı ayrıntı düzeylerinde gösterir; bu yüzden birlikte kullanılır: Üst düzey bir kullanım durumunun ayrıntısı bir sıra diyagramıyla belgelenebilir.
| Kullanım durumu | Randevu ara |
|---|---|
| Aktörler | Klinik görevlisi, Randevu sistemi |
| Açıklama | Görevli, seçtiği klinik ve gün için randevuları listeler. |
| Veri | Klinik, gün, görevlinin yetkili olduğu birimler, randevu kayıtları |
| Uyaran | Görevli klinik ve günü seçip aramayı başlatır. |
| Tepki | Eşleşen randevular saat sırasıyla listelenir. |
| Notlar | Yetki yoksa liste açılmaz; eşleşme yoksa boş sonuç gösterilir. |
Gereksinim aşamasında
Her mesajı ve parametreyi çizmeyiz. Önemli etkileşimleri gösteririz.
Tasarım ilerledikçe
Mesajlar gerçek işlem adlarına ve parametrelere dönüşür; model koda yaklaşır.
Kullanım durumu hangi işin yapıldığını, sıra diyagramı bu işin adım adım nasıl yürüdüğünü anlatır.
Bir öğrencinin derse kaydı için sıra diyagramı çizin. Kontenjan dolu olabilir; kayıttan önce yer kontrolü yapılmalı.
AS-HYS’de hastaları muayene eden, ilaç ve tedavi öneren hekim ile sistem arasındaki etkileşimleri gösteren bir kullanım durumları kümesi önerin.
Statik yapı
Tasarımın örgütlenmesi: sınıflar ve aralarındaki ilişkiler.
Bu bölümün konusu.
Dinamik yapı
Sistemin çalışırken nasıl örgütlendiği: süreçler, iş parçacıkları.
Mimari tasarımda ele alınır.
Kullandığınız e-posta uygulamasında posta kutusu ve e-posta mesajını temsil edecek sınıfları modelleyin.
Veri
Yeni veri gelir ve işlenmesi gerekir; verinin gelmesi işlemi tetikler.
Ay sonunda reçete kayıtlarından maliyet raporu.
Olay
Bir olay olur ve sistem tepki verir. Olayla birlikte veri gelebilir de, gelmeyebilir de.
Hasta randevusunu iptal eder.
İş sistemlerinin çoğu veri güdümlüdür; gerçek zamanlı sistemler çoğunlukla olay güdümlüdür.
| Mevcut durum | Olay | Sonraki durum |
|---|---|---|
| Talep | Görevli onaylar | Onaylı |
| Talep | Görevli iptal eder | İptal |
| Onaylı | Görüşme biter | Tamamlandı |
| Onaylı | Hasta gelmez | Gelinmedi |
| Onaylı | Görevli iptal eder | İptal |
Eksik bir olay var: Hasta randevusunu başka bir güne almak isterse?
do) belirtebilir.Hazırlık sürerken kapak açılırsa makine güvenlik için durur; kapak kapanınca beklemeye döner.
| Durum | Açıklama |
|---|---|
| Bekliyor | Ekranda “İçecek seçin” yazar; ısıtıcı kapalıdır. |
| Seçim yapıldı | Seçilen içecek ve fiyatı gösterilir; ödeme beklenir. |
| Hazırlanıyor | Su ısıtılır, kahve demlenir, bardağa doldurulur; kapak kilitlidir. |
| Devre dışı | Isıtıcı ve pompa durur; ekranda “Kapağı kapatın” yazar. |
| Hazır | Ekranda “İçeceğiniz hazır” yazar; sesli uyarı verilir. |
| Uyaran | Açıklama |
|---|---|
| İçecek seçildi | Kullanıcı bir içecek düğmesine bastı. |
| Ödeme alındı | Ödeme birimi tutarın alındığını bildirdi. |
| Sıcaklık hazır | Sıcaklık algılayıcısı hedef değere ulaşıldığını bildirdi. |
| Süre doldu | Demleme zamanlayıcısı sona erdi. |
| Kapak açıldı / kapandı | Kapak anahtarı konum değiştirdi. |
| Bitti | Doldurma tamamlandı. |
| Bardak alındı | Bardak algılayıcısı bardağın alındığını bildirdi. |
Farklı yıkama programları olan bir çamaşır makinesinin kontrol yazılımı için durum diyagramı çizin.
Bir ATM’den para çekerken gerçekleşen veri işleme adımlarını gösteren bir etkinlik diyagramı, ardından aynı iş için bir sıra diyagramı çizin. Bir sistemin davranışını modellerken neden ikisine birden ihtiyaç duyabileceğinizi açıklayın.
MDA · Model güdümlü mimari
OMG’nin önerdiği, UML tabanlı yaklaşım. Tasarım ve uygulamaya odaklanır. Model güdümlü mühendisliğin öncüsüdür.
MDE · Model güdümlü mühendislik
Daha geniş yaklaşım: Modeller tasarımın yanında doğrulama ve test gibi diğer süreç etkinliklerinde de merkezdedir.
1 · Yerel çeviriciler
Şirkete özgü kütüphaneler ve dış hizmetler için özel çeviriciler gerekir; geliştirmesi ve bakımı pahalıdır.
2 · Soyutlama uyumsuzluğu
Tartışmaya yarayan soyutlamalar, uygulama için her zaman doğru soyutlamalar değildir.
3 · Asıl zorluk başka yerde
Karmaşık sistemlerde asıl güçlük kod yazmak değil; gereksinimler, güvenlik, bütünleştirme ve testtir.
4 · Platform bağımsızlığının bedeli
Kazanç uzun ömürlü büyük sistemlerde görülür; standart platformlarda araç maliyeti kazancı aşabilir.
Gerilim
Model güdümlü geliştirme baştan ayrıntılı ve dönüştürülebilir modeller ister; çevik yaklaşım fazla ön tasarımdan kaçınır.
Uzlaşma
Bazı çevik yazarlara göre MDA’nın bazı yönleri çevik süreçlerde kullanılabilir. Motorola, çevik geliştirmeyi otomatik kod üretimiyle birlikte kullandığını bildirdi.
Güncel not · kitabın yayımından sonraki gelişmeler
Düşük kodlu platformlar
Formlar, iş akışları ve veri modelleri görsel olarak tanımlanır; uygulama bunlardan üretilir.
API tanımından kod
OpenAPI gibi sözleşmelerden istemci ve sunucu iskeleti otomatik üretilir.
Veri modelinden kod
Şema ve ORM araçları, veri modelinden tabloları ve erişim kodunu üretir.
Yüksek düzeyli bir modelden, elle müdahale etmeden çalışan program üretmenin önündeki engeller nelerdir?
| Bakış açısı | Cevapladığı soru | Başlıca UML diyagramı |
|---|---|---|
| Bağlam | Sistemin sınırı nerede, çevresinde hangi sistemler var? | Bağlam diyagramı, etkinlik (süreç) diyagramı |
| Etkileşim | Kim, kiminle, hangi sırayla konuşuyor? | Kullanım durumu, sıra diyagramı |
| Yapısal | Sistem hangi sınıflardan ve ilişkilerden oluşuyor? | Sınıf diyagramı (genelleştirme, bütünleme) |
| Davranışsal | Sistem verilere ve olaylara nasıl tepki veriyor? | Etkinlik diyagramı, durum diyagramı |
| Model güdümlü | Model, kodun kaynağı olabilir mi? | Sınıf ve durum modelleri (xUML), CIM → PIM → PSM |
Yazılım Mühendisliği – OMÜ | 🏠