Bir Örnek ile UML - İş Analizi Nedir

Transkript

Bir Örnek ile UML - İş Analizi Nedir
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
UML’deki(Tümleşik Modelleme Dili) dil olarak kullanılan ‘L’, Merriam-Webster Dictionary’e göre
“iletişimin anlamı” manasına gelir. Uml gereksinimlerin, mimarinin, implemantasyonun,
deployment’ın ve sistemin tamamının birbirleriyle konuşabilmesi için kapsamlı notasyonlar içerir.
Uml bu adımları her şeyin nesnelerle ifade edildiği “Nesne Yönelimli” dünyanın perspektifinden
konuşturur. Bu dünya nesneler arasındaki ilişkileri, nesnelerin deployment’ını ve nesnelerdeki
değişimlerin etkileşim halinde oldukları diğer objeleri nasıl etkilediklerini kapsar.
İlk bölümde Nesne Yönelimli Analiz ve Tasarım’a genel bir bakış atacağız. Özellikle 3 ana
öğeye odaklanacağız-nesne, analiz ve tasarım-. Çünkü UML’i anlamak için öncelikle bu 3
önemli öğeyi anlamak gerekir.
İkinci olarak Nesne Yönelimli Analiz ve Tasarım sürecinin sonuçlarını ele alacağız. Modellerin
ne olduğunu, nasıl kullanacağımızı ve niçin önemli olduklarını tartışacağız.
Bölümün sonunda UML’e odaklanıp, ne olduğuna bakacağız.
Nesneler
Çoğu modern programlama dili, özellikle ve çoğunlukla nesne kavramlarına dayanır. C++, C#,
Java, .NET, Perl gibi nesne yönelimli dillerde yazılımcılar benzer nesnelerin davranışlarını ve
yapısını tanımladıkları sınıflar oluşturulur. Sonra bu sınıfların instance’ı olan nesneleri oluşturup
çalıştıran kodları yazarlar.
Nesnelerin güçlü bir programlama tekniği olmasının sebebi, programda kullanılan nesnelerin
gerçek hayattaki nesnelere karşılık gelmesidir. Farz edelim ki şirketiniz sipariş üzerinde dağıtım
yapıyor. Bu siparişlerin büyük ihtimalle bir ID’leri vardır ve ürünün üzerindeki bilgi içerirler. Bu
durumda gerçek hayattaki nesneye denk gelen ve ‘Id’ ve ‘Ürün’ Listesi bilgilerini içeren bir
‘Sipariş’ nesnesi oluşturursunuz. Büyük ihtimalle de sipariş sonucu bir ürün eklemek ve siparişi
1 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
kaydetmek istersiniz. Bu nedenle de ‘Ürün Ekle’ ve ‘Siparişi Kaydet’ metotlarını yazarsınız.
Programdaki ve gerçek dünyadaki bu nesne eşlemeleri yazılımcıları bilgisayar bilimleri
terimlerinden ziyade problemin etki alanı üzerine düşünmeye teşvik eder.
Nesne ve sınıfların daha önemli bir faydası da iyi tasarlanmış kodun bazı klasik yönlerini
yapabilmek için güzel bir sözdizimsel (syntactic) mekanizma sağlar.
Enkapsülasyon. Enkapsülasyonun amacı modül ya da altsistemin gerekli kısmını ortaya
çıkararak diğer modüllerin bunları kullanmasını sağlamaktır. Nesne yönelimli programlama,
kodunuzdaki elementlerin görünebilme(visibility) seviyelerini belirtmenize olanak verir. Böylece
istemci kodun ulaşabileceği kodlar sınırlandırılarak sadece ulaşmasına izin verilen kısımlara
ulaşmış olur.
Zayıf Bağlılık (Loose Coupling). Bağlılık, sistemin bir parçasının, diğer bir parçasının detayına
nasıl dayanacağından bahseder. Sıkı bağlılıkta, sistemin bir parçasındaki değişiklikler sistem
üzerinden dalgalanır. Zayıf bağlılıkla altsistemler arasındaki interface’ler iyi tanımlanmış ve
sınırları bellidir.
Nesne yönelimli programlama, sizin bir sınıfın
metotlarının nasıl uygulanacağını publish etmeden bu metotları tanımlamanıza ve
yayınlamanıza olanak vererek zayıf bağlılığı destekler.
Nesne yönelimli programlamada anahtar kavramlar aşağıdaki gibidir;
Sınıflar: Sınıf, sisteminizdeki bir veya daha fazla nesnenin özelliklerinin tanımıdır.
Nitelik: Bir nesneyi tanımlayan durum ya da veridir. Öyle görünüyor ki her yeni nesne yönelimli
dili yazan kişi yazdığı dilin yeni terminolojilerle yaygınlaşarak fark edilmesi ihtiyacını hisseder.
Bazı nesne yönelimli dillerde bu veriler özelik (property) olarak tanımlanır fakat UML’de bunlara
nitelik (attribute) diyoruz.
Operasyonlar: Operasyon, bir nesnenin yapabileceği fonksiyon ya da davranıştır. Nesne
yönelimli dillerde bunlar metot ya da mesaj olarak tanımlanır. Mesaj, ilk nesne yönelimli
dillerden biri olan Smalltalk’tan gelir ve burada tüm nesneler birbirleriyle mesajlaşarak iletişir.
2 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Sequence diyagramlarını incelediğimizde mesaj kavramının kısa bir kullanımını inceleyeceğiz.
Nesneler: Nesne, bir sınıfın spesifik bir örneği ya da aşamasıdır (instance). Köpek bir sınıf ise
gofret, karabaş bir nesnedir.
Kalıtım: Bu kavram şunu belirtir ki, bir sınıf (süper sınıf) bir veya daha fazla spesifik sınıfın (alt
sınıf) bazı genel özelliklerini taşır. Bu alt sınıf ta süper sınıf tarafından tanımlananların dışında
daha fazla veya farklı özellikler bulundurur.
Komponentler: Komponent, ilişkili sınıflar topluluğunun bir araya gelerek daha geniş bir servis
kümesi oluşturmasıdır. Sisteminizdeki komponentler uygulama, kütüphane, Java bean’leri ve
servisleri içerebilir.
Arayüzler: Arayüzler (interface), bir komponent ya da sınıf tarafından bulundurulan servis
setlerinin tarifidir.
Analiz
Yazılım geliştirme ortamında analiz, araştırmak ve problemi tespit ederek çözmek demektir. (Bu
demek değildir ki biz hep önce çözmek yerine problemlerin tümünü tespit etmeye çalışırız.)
3 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Analiz, sistemin gerçekleştirmesi gereken gereksinimleri keşfetmeyi, sistemin neyi düzeltmesi
gerektiği varsayımının temelinde şeyleri ve success/fail kriterinin ne olduğunu kapsar.
Nesne Yönelimli Analiz, şu iki tür nesnelerin problemlerini tespit etme sürecidir: sistemin
etkileşmek zorunda olduğu gerçek nesneler ve çeşitli çözüm alternatiflerinin araştırılacağı
yazılım nesneleri. Burada yazılım nesneleri, gerçek nesnelere göre daha yeterlidir çünkü gerçek
nesneleri onların sınıfları, attribute’ları ve operasyonlarıyla rahatlıkla tanımlayabilirsiniz.
Tasarım
Analiz problemi tespit etmek demekse, tasarım da çözümleri tespit etmek demektir. Tasarım,
sistemin analiz boyunca tanımlanan her bir gereksinimi hangi yollarla karşılayacağını
tanımlamayı içerir.
Nesne Yönelimli Tasarım, gereksinimleri karşılayacak komponentleri, interface’leri, nesneleri,
sınıfları, attirbute’ları ve operasyonları tespit etme sürecidir. Tipik olarak analizde tespit edilen
aday nesnelerden başlanır. Sonra çözüm için gerekli olduğu durumda bunlara yenileri eklenir ya
da bazıları değiştirilir. Büyük sistemlerde tasarım iki aşamada gerçekleşir: Sistemi oluşturan
komponentlerin tespit edildiği mimari tasarım ve komponentin içerdiği sınıfların ve interface’lerin
tespit edildiği komponent tasarımı.
Modeller
Nesne Yönelimli Analiz ve Tasarımda UML’in asıl kullanım amacı, sistemin modeli aracılığı ile
sistemi anlamanıza ve çalışmanıza olanak sağlamasıdır. Aoredinamik mühendisleri, yapı
mimarları ve diğerlerinde olduğu gibi, siz de sistemi inşa edene kadar sadece varolan sistemin
modellerini değil, tasarladığınız sistemin modellerini inşa edeceksiniz. Bu modeller size tasarım
alternatiflerini ve sistemi ne kadar anladığınızı test etmenizi anlamanızı sağlar.
Fakat burada bir nokta var; gerçek hayattaki bir nesnenin modeline baktığımızda o nesneye ait
net fikirler edinebilirken bir yazılım modeline, arayüzü olmadan bakamıyoruz. Yani yazılım
modeli kullanıcı arayüzüne mi benziyor? UI dediğimiz sadece bir prototip değil midir? Tam bu
4 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
nokta alışılmış mühendislik modelinin yazılım modeliyle kıyaslama problemidir. Yazılım
modelinde modelle sonuç arasında direkt bir fiziksel bir mutabakat yoktur. Quantum fiziği
modellerin göremediğimiz nesneleri anlamamıza yardım ettiğine iyi bir örnektir. Hiç kimse
quarkları, atomları veya bunlar gibi atomik parçacıkları göremez. Quantum fiziğinin modelleri
harfi harfine doğru diyemeyiz, yine de bu modeller fiziksel olayların anlaşılması için gayet
yararlıdır. Yazılım modelleri de böyledir. Kodun harfi harfine tasvirinden ziyade kullanışlı metafor
ve soyutlamalarla, sizin bir problem ve çözüm hakkında düşünmenizi sağlar.
Uml ile nesne yönelimli analiz ve tasarımda modeller öncelikle diyagramlardan meydana gelir.
Sistemin yapısını betimleyen statik diyagramlarla sistemin davranışını betimleyen dinamik
diyagramlar. Dinamik diyagramlarda sistemin davranışını izleyip çeşitli senaryoların nasıl
gerçekleştiği analiz edilebilir. Statik diyagramlarda her komponent ya da sınıfın interface’lere
ulaştığından ve yapmak zorunda olduğu şeyleri uygulamak için ihtiyaç duyduğu bilgiye sahip
olduğundan emin olursunuz. Bu modellerde değişiklik yapmak ta oldukça kolaydır. Bir çizgi
eklemek, silmek veya değiştirmek ya da diyagramdaki bir değişikliği incelemek bir dakikanızı
alır. Bunu, kodun oluşturulurken bir değişikliği implemente etmek için saatler harcandığını ve
bunu test etmek için de yine bir bu kadar daha zaman ayrıldığını düşünerek karşılaştırın lütfen.
Fakat şu Model Kuralını unutmayın: UML’i efektif kullanmak için göze hoş gelen resimler çizmek
yerine temel bir model hazırlamalı, sevimli resimleri arayüzünüz olarak kullanmalısınız.
Ana nesne yönelimli analiz ve tasarım süreci modeldir. Gerçekte kullanılan farklı farklı modeller
vardır:
· Analiz Modeli: Bu varolan sistemin modeli, son kullanıcıların gereksinimleri ve bu
gereksinimlerin mümkün olan çözümünün yüksek seviyede kavranmasıdır.
· Mimari Model: Analiz modelinde tespit edilen gereksinimlere sunulan çözümü için
kullanılan modelin gelişmiş bir şeklidir.
· Komponent (Tasarım) Modeli: Mimari modelin parçalarının internal yapısını gösteren
modeller topluluğudur. Her component modeli kendi komponentinin sınıf yapısı üzerine
odaklanır ve tasarım ekibinin, sınıfların attribute’leri, operasyonları, bağımlılıkları ve
davranışlarını tam olarak belirtmesini sağlar.
5 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Geliştirme sürecinize dayanarak, iş modeli, alan (domain) modeli gibi daha fazla model de
kullanabilirsiniz. Modelin asıl faydası, yazılım geliştirme döngüsünde kodda değişiklik yapmadan
çok önce modelde değişiklik yaparsınız ve bu çok daha kolay olur. Değişiklikleri önceden
yaptığınız için hataları da erkenden yaparsınız. Bu iyi bir şeydir çünkü erken tespit etme ve
düzeltmenin maliyeti düşüktür. Modelleme sayesinde yüksek maliyetli bug’larınızı önceden
yakalarsınız ve erken tespit ve düzeltme size maliyette ve bug fix zamanlamasında 50 ile 200
kat arasında tasarruf sağlar.
Modellemenin Outline Effect denilen farklı bir yararı da vardır. Dinleyerek, konuşarak, okuyarak
ve sonra modelden ne anladığınızı yorumlayarak modeli baştan aşağı anlayabilirsiniz. Hatta bu
şekilde bir davranış, sistem tasarımında bir text’ten çalışmaktan çok daha önemlidir. Text’lerden
çalışırken bir tutarsızlık gördüğünüzde bunun sizin bir noktayı yanlış anlamanızdan
kaynaklandığını düşünürsünüz fakat gereksinim toplamada tutarsızlık ve çelişkiler sürecin
kaçınılmaz parçalarıdır. Gereksinimleri modelleyerek –özellikle bir sistemin farklı birçok
parçasındaki detayları inceleyerek- tutarsızlıklara dikkati çekersiniz ve bunları aynı diyagramda
birleştirirsiniz.
Modellemenin bir faydası da iletişimdir. Modelleyerek iletişim sağlamak, bir kod parçası veya
textten çok daha kolaydır. Modelleme sayesinde diğer ifade şekillerine göre daha geniş kitleleri
birbirleriyle iletişime geçirebilirsiniz. Sizin kendi ifadelerinizle bir diyagram oluşturduğunuzda
nesneleri, diyagramınızla benim anladığım şeyi kıyaslayarak nasıl kavradığınızı, ben kolaylıkla
kavrayabilirim.
UML
UML-Tümleşik Modelleme Dili (Unified Modeling Language), bir OOAD sürecinin yapısını
6 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
resmetmek için tasarlanmış bir grafiksel dildir. Gereksinimlerin, davranışların ve mimarinin
birbiriyle iletişimi ve bir nesne yönelimli tasarımı realizasyonu için kapsamlı bir notasyon sunar.
UML bir sistemin modelinin oluşturulması ve dokümante edilmesi için farklı yöntemler sunar.
UML Neyi Tümleştirir?
Bu soruya cevap verebilmek için bir zaman makinesine binip 1995’lere gitmemiz gerekir. Bu
tarihte Nesne Yönelimli Programlama adını, uygulama ve sistem geliştirme yolu olarak
ispatlamıştı ve Nesne Yönelimli dünyada yeni popüler konular Nesne Yönelimli Analiz ve Nesne
Yönelimli Tasarım’dı. Bu konuların temel programlamaya göre daha geniş bir etki alanı
yaratmasından itibaren, uygulayıcılar basit bir grafik arayüzü ile daha geniş ve kompleks
kavramları görüntüleyebilme ihtiyacı hissettiler. Bunun neticesinde Grady Booch’un tasarladığı
Booch Notation ile James Rumbaugh ‘un tasarladığı Object Modeling Technique (OMT) ‘in
başını çektikleri Nesne Yönelim notasyonlarının savaşı başladı. Oluşan bu karmaşa sonrası
Booch ve Rumbaugh kendi notasyonları arasındaki farkların aslında minor olduğunu fark ettiler.
Daha da kötüsü bu karmaşa ortamı onları bakmaları gereken yeni odak noktasından
uzaklaştırdı: Nesne Yönelimli Analiz ve Tasarım’ın kendi süreci. Ivar Jacobson’un Sequence
diyagramları ile kendi Objectory metodolojisi herkesi etkilemiş durumdayken kimse süreçten
bahsetmiyordu. Sonrasında Booch, Rumbaugh ve Jacobson (üç amigo) köşelerine çekilip,
birbirlerinin notasyonları arasındaki farkları tartışarak çözüm bulma yoluna girdiler. Bu
çalışmaların sonucunda da Object Management Group’un standart bir nesne modelleme
notasyonu için çağrısına cevap olarak UML 0.8 ortaya çıkmış oldu. Rumbaugh ve Jacobson’un
da çalıştığı ve Booch’un sahibi olduğu Rational şirketi, UML’i kendi OOAD araçları olan Rational
Rose ürünüyle birleştirdiler. Sonrasında OO komitesi tarafından birkaç revizyon geçirerek UML
1.1 olarak 1997’de standartlaştırıldı. Zamanla gelişimler geçirerek te son olarak 2.0 standardı
olarak son haline geldi.
Süreç
Üç amigonun amacını hatırlayalım; notasyonlara değil de OOAD sürecine odaklanmak. Onların
notasyonları kendi içinde süreç değildi aksine OO süreci dünyasına support edebilmek için
tasarlanmıştı. Piyasada Fowler süreci, Texel ve Williams’ın complete OO süreci ve tabii ki üç
amigonun tümleşik süreci gibi UML tabanlı birçok OOAD süreci vardır. Tüm bu süreçler UML’i
kullanarak gereksinimleri tanımlama, bu gereksinimleri fonksiyonel modüllere bölüştürme ve bu
7 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
modülleri ayrıştırma adımlarını içerirler. Tüm bunlar için tanımlı bir süreç olmadığında UML ile
çalışmak, bir rehber olmadan kavramlar denizine sürüklenmeye benzer.
Rational XDE
Çoğu UML kullanıcıları – özellikle UML aracı satan şirketler UML ile tool arasındaki çizgiyi
bulandırma eğilimindedirler. Ben şahsen Rational XDE ile tüm UML işlerimi yapıyor olduğumdan
beri ‘XDE ne yapabilir’ ile ‘UML ne yapabilir’i aynı kefeye koyuyorum. Herhangi bir tool’un -ki bu
UML’i bize veren ekip tarafından geliştirilen Pazar lideri UML tool’uysa- özelliklerinin ve
yeteneklerinin UML’in kendisinin özelliklerinden ve yeteneklerinden farklı olabileceğinin farkına
varmak önemlidir. UML bir dil ise bütün diller bu dilin aynı aksanını konuşur.
UML Diyagramları
UML, her biri sistemi analiz etmek ve tanımlamak için farklı yollara odaklanmış 9 farklı diyagram
tipinden meydana gelmiştir.
· Kullanım Senaryosu Diyagramı sistemin davranışını haricen resmeder.
· Aktivite diyagramı sistemin davranışını detaylı biçimde gösterir.
· Komponent diyagramı sistemin mimarisini resmeder.
· Sequence diyagramı nesnelerin zaman içerisindeki etkileşimini gösterir.
· İşbirliği Diyagramı nesneler arasındaki ilişkileri vurgulayarak nesne etkileşimlerini gösterir.
8 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· Sınıf diyagramı sınıf tanımları ve ilişkilerini gösterir.
· Durum çizelgesi diyagramı olaylara verilen response’lar için durum değişikliklerini gösterir.
· Deployment diyagramı sistemin fiziksel mimarisini gösterir.
· Paket diyagramları tasarımınızın hiyerarşik yapısını gösterir.
İyi bir UML diyagramı oluşturmak bazı yetenekler ve pratik gerektirir fakat iyi çizilmiş
diyagramları okuyabilmek çok farklı bir konudur. Eminim şimdiden UML diyagramının nasıl
okunduğunu biliyorsunuz ve siz bunun farkında değilsiniz.
Kennel Yönetim Sistemi
Şimdi UML diyagramlarını bir örnekle irdelemeye çalışalım. Örnekte Kennel Yönetim Sistemini
kullanacağız.
Kennel Yönetim Sistemi’nin (KYS) özellikleri:
· Rezervasyon ve kullanım süresi: otellerde olduğu gibi KYS’de de haycan sahipleriyer
rezerve edip hayvanlarını buraya getirirler ve çıkarırlar. Otellerden farklı olarak maliklerin önemli
kısmı kennelde tamamen ya da uzun süre kalırlar.
· Egzersiz ve tımar zamanlaması: terapi kliniklerinde olduğu gibi KYS her bir kennel
sakini için egzersiz ve tımar zamanlaması konusunda destek-bakım faaliyetlerini yerine
getirmeli. Kliniğin aksine bu zamanlar terapist yerine hayvan sahipleri tarafından belirlenir.
9 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· Besleme ve diyet: Sağlık merkezlerinde olduğu gibi her bir kennel sakini için standart ve
kastimize edilmiş diyetler desteklenmeli. Farklı olarak bazı hayvanlar sadece canlı yiyecek
yiyebilir.
· Stok ve sipariş: Restoranlarda olduğu gibi, KYS farklı müşterin ihtiyaçlarını karşılamak
için yiyecek tutmalı. Farklı olarak bazı yiyecekler canlı depo edilmeli.
· Denetleme ve kayıt izleme: kreşlerde olduğu gibi KYS, kennel sakinlerinin güvende
olduğunu garanti etmeli ve hayvan sahiplerinin hayvanlarının web cam ile izleyebilmelerine
olanak tanımalı. Farklı olarak her hayvanda, sensörlerin her hayvanın durumunu ve yerini
göstermesine olanak sağlayacak bilgisayarlı tasmalar bulunmalı.
· Sağlık hizmetleri ve tedavi: Hastane yönetim sistemlerinde olduğu gibi KYS, düzenli ve
acil medikal ziyaretleri zamanlayabilmeli, medikal geçmişi desteklemeli ve ilaç dağıtımını
yönetebilmeli. Farklı olarak sakinler çok farklı cinslerden olabilir ve bu farklılık çeşitli ilaç ve
tedavi programlarını gerektirir.
· Müşteri ilişkileri: KYS sakinlerin geçmişi, bugünü ve olası geleceğine ait bilgileri
izleyebilmeli. Ayrıca hayvanın hem atasına hem de ileriki soyuna ait bilgileri izleyebilmeli.
Ek olarak KYS, temel insan kaynakları, hesap işlemleri ve admin fonksiyonlarını da içermeli. Use Case Diyagramı
Sistemin fonksiyonel gereksinimlerini resmetmek için çok kullanışlıdır. Aşağıdaki grafik KYS’nin
basitçe bir usecase diyagramını göstermektedir.
10 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· Bakıcı bir giriş kaydı yaptığında KMS nasıl davranır?
o Sistem bir görev oluşturur.
· Bakıcı bir çıkış kaydı yaptığında KMS nasıl davranır?
o Sistem bir görev kapatır
· Bakıcının hangi aktiviteleri KMS’nin görev güncelleme işlemi yapmasına sebep olur?
o Giriş ve çıkış işlemleri
· Bakıcının hangi aktivitesi Veterineri ilgilendirir?
o Bir medikal kayıt girme işlemi
11 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Aktivite Diyagramı
Aktivite diyagramları bir fonksiyonel gereksinimin bir ana senaryo ve birkaç alternatif senaryoyu
içeren detaylı davranışını resmeder. Bu, verilen bir fonksiyonaliteyi tam anlamıyla anlamanıza
yardımcı olur. Aşağıda KYS’nin bir fonksiyonel gereksinimi için oluşturulmuş bir aktivite
diyagramı görüntülenmektedir.
· Sistemde kayıtlı bir köpeğe barınak bulmak için sistemin izleyeceği adımlar nelerdir?
o Köpeğin adını gir, uygun barınağı bul ve barınağı köpeğe assign et.
· Yeni bir köpek için sistemde ek olarak yapılması gerekenler nelerdir?
o Köpeğin kişisel bilgilerini gir ve kayıt oluştur.
12 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Komponent Diyagramı
Komponent diyagramları, sistemin çalıştırılabilir bölümleri, komponentleri, veri depoları gibi
deploy edilebilir birimlerini ve etkileşimde bulundukları interface’leri resmeder. Sistemin
mimarisini göstermesi açısından faydalıdır.
· Hayvan bakım merkezi, bakıcının hayvanın bilgilerini girdiği bir web sayfasıdır. Peki
KMS’ye veri sağlamak için hangi arayüz kullanılır?
o IBakım Merkezi
· Diğer hangi komponentler hangi arayüzlerle KMS’yi besler?
13 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
o Rezervasyon merkezi IRezervasyon arayüzüyle, muhasebe merkezi IMuhasebe arayüzüyle.
· İletişim merkezi komponentinden hangi tür iletişimler gerçekleşebilir?
o Posta, telefon ve email.
Sequence Diyagramları
Sequence diyagramları bir fonksiyonel gereksinimin bir senaryosu veya path’i boyunca, zaman
içerisinde gerçekleştirdiği detaylı davranışları gösterir.
· Sistemdeki hangi nesneler yeni kayıt oluşturmayla ilgilidir?
14 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
o Bakım merkezi, kayıt sayfası, IBakım merkezi ve Iİletişim arayüzleri
· Hangi aktörler yeni kayıt oluşturmayla ilgilidir?
o Bakıcı ve veteriner
· Kayıt sayfası yeni bir kayıt için hangi arayüzü kullanır?
o IBakım hizmeti
· Sistem veterinerle nasıl iletişim kurmaktadır?
o Telefonla
Sınıf Diyagramları
15 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
Sistem tasarımında, sınıfların ve interface’lerin birbirleri arasındaki ilişkiyi resmeder. Kodun
nesne yönelimli yapısını tespit etmek açısından faydalıdır.
· Hangi sınıflar KennelAtaması sınıfıyla ilişkildir?
o HayvanKaydı, RezervasyonKaydı ve Yer
· KennelAtaması sınıfı hangi işlemleri yapabilir?
o Oluşturma ve kapatma
· Hangi özellikler bir HayvanKaydı sınıfını tanımlar?
o Ad, cins, sahip, soy ve tarih
· Hangi özellikler bir Yer sınıfını tanımlar?
16 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
o Alan, durum, no ve yapı.
Statechart Diyagramları
Dahili veya harici olayların tepkisine göre sistemin durum değişikliğini gösteren diyagramlardır.
· Hangi işlemle tanımlandı statüsüne geçilir?
o Özelliklerin belirlenmesi
· Hangi durumdan gelen hangi işlemle bir barınak uygun hale gelir?
o Tanımlandı durumundan sonraki ‘yapım tamamlandı’ olayıyla, kullanımda durumundan
sonraki ‘çıkış yapıldı’ olayıyla
17 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· Barınak uygun durumdayken ‘tasfiye edildi’ olayı gerçekleştiğinde hangi duruma geçilir?
o Çözümlendi
· Barınak Kullanımda durumundan Çözümlendi durumuna nasıl geçer?
o Çıkış yapıldı olayı ve bunu takip eden ‘tasfiye edildi’ olayıyla.
Deployment Diyagramları
Sistemin deploy edilebilir parçalarının bağlandıkları düğümler ile bu düğümlerin birbirleri ve farklı
cihazlarla nasıl iletişimde bulunduklarını resmeder.
18 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· KMS Server’ı telefon ile nasıl haberleşir?
o Modem vasıtasıyla
· Kullanıcının PC’si KMS Server’ındaki bilgiye nasıl eriişr?
o İnternet yoluyla
· Veri, Bakım merkezinden resepsiyona nasıl gidebilir?
o Diyagrama göre KMS Server’ı üzerinden.
Paket Diyagramları
Paket diyagramları, tasarımınızdaki ilişkili elementlerin nasıl bir araya gelip gruplandığını ve bu
grupların birbirine nasıl depend ettiklerini gösterir. Kompleks tasarımları parçalara ayırarak,
yönetilebilir küçük parçalar haline getirilmesi açısından faydalıdır.
19 / 20
Bir Örnek ile UML
Yazar kbedir
Pazartesi, 29 Kasım 2010 20:55
· o Umarım
umarım
makaledeki
Başlangıçta
kapılar
öğrenmek,
mükemmel
sonucu
için
“kodla
mantığını
Bakıcı,
Kms
veKMS
Hangi
ve
sürecinizin
vardır,
yeterince
UML’in
ana
bu
çöz”
bırakıp
muhasebe,
uygulamak,
olmayabilir,
egzersiz,
arayüzleri
altı
mükemmel
sınıfları
paketler
sadece
mantığı
çizilen
nesnelerin
“tasarla
iyi
yönetimini
olacaktır.
ve
UML
KMS
sınıfı
hataların
rezervasyon
nokta
ile
uygularken
fakat
veritabanı
birçalışan
ve
konusunda
iletişiminde
arayüzleri
tasarım
hangi
tahmin
çöz”
yapabilmek
ekibinizin
Sistemi
çalışmanızı
ekip
mantığında
sınıfların
sınıfları
de
beklemeyin
ve
ettiğiniz
sınıfının
inşa
kadar
sürecin
kms
kafanızdaki
nasıl
olarak
için
etmek
ana
verisini
durdurmasına
kullanılabileceğini
üzere:
yanlış
yeterince
devam
onu
verilerini
bir
kendinizden.
sınıfları
parçası
için,
incelemesi
belirsizlikleri
kullanır?
düşüncededir.
‘UML
etmeliyiz.
testlere
iyi
kullanır?
olarak
is
olacaktır.
izin
about
Daha
ve
vermeyin.
örneklendirebilmiştir.
rehberlik
gidermiştir
uygulamaktır.
sizin
Unutmayın,
communication’
iyiye
Mükemmeli
deiçin,
ulaşmak
Anahtar
iyileştirmeleriniz
vedokümantasyon
daha
“kodla
Tasarımlarınız
bekleyen
için
nokta,
da
Bu
ve
her
önemlisi
çöz
UML’i
zaman
takım,
”
20 / 20

Benzer belgeler

UML ile Gerçek Zamanı Sistem Tasarımı

UML ile Gerçek Zamanı Sistem Tasarımı ile geliştirme imkanına sahip olduklarından 70’lerin metodoloji savaşını kazandılar, bunun gibi OO ile yapısal metotlar arasındaki savaş ta sona erdi. Bu galibiyet object metotları sayesinde ve ner...

Detaylı