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ı
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...