3 Ekim 2015 Cumartesi

Visual Paradigm ile Aktivite Şeması Çizimi

Visual Paradigm internetten ücretsiz temin edebileceğiniz bir UML model tasarımı aracıdır. Bunun kurulumunu yaptıktan sonra ücretsiz kayıtla aktivasyonunu gerçekleştirip kullanabilirsiniz.


Bu programla bir aktivite şeması çizdirmek için ilk açılışta karşınıza gelen model şablonlarından seçim yaparsınız:


Karşınıza gelecek boş tasarım penceresine sol dikey paletten seçtiğiniz seöbolleri çekip bırakabilirsiniz. Sembolü tıklayıp sonra pencereyi tıkladığınızda da sembol yerleştirmiş olursunuz. Yerleştirdiğiniz sembolün etiketi seçili gelir. O seçili metni silip sembole vermek istediğiniz adı yani yeni etiket metnini yazabilirsiniz.

Yukarıdaki başlangıç noktası için yaptığımız gibi, imleci sembol üzerinde bir süre bekletirseniz, bu sembole bağlayabileceğiniz şema öğelerinin bir listesini gösterecek "Resource Catalog"u (kaynak katalogunu) açabilirsiniz:


Bu denemede biz bir önceki sayfada orijinalini koyduğumuz örnek şemayı yeniden oluşturmayı deniyoruz. Bu yüzden bir eylem kutusu sembolünü seçtik.


Eğer önceden yarattığımız bir eylem kutusu olsaydı, metin kutusunda o eylem kutusunun adını yazar ve başlangıç noktasına onu bağlardık. Olmadığı için, biz bu haliyle Enter'a basıp yeni bir eylem kutusu yaratmayı seçtik. Sonra da etiketi değiştirerek yarattığımız eylem kutusuna kendi seçtiğimiz adı yazdık:


Kutuya yakıştırdığımız "Sipariş al" eylem adı sol üste hizalı gelmişti. Bunun yazı biçimini ve metin hizalanmasını değiştirmek için, bu eylem kutusu seçiliyken program menüsünden "Format" (Biçimlendirme) seçeneğini tıkladık ve karşımıza gelen formdan tercihler yaptık. Siz de bu formda biçimlendirme tercihleri  yapmışsanız, "Set as Default" düğmesini tıklayarak tercihlerinizi varsayılan statüsü kazandırabilir ve aynı türden semboller veya tüm semboller için uygulanmasını sağlayabilirsiniz. Bunu yaptığınızda da varsayılan tercihlerinizin yalnızca aktif projede veya bundan sonraki her projede kullanılmasını da sağlayabilirsiniz. Yalnızca karşınıza gelecek onay kutularını işaretleyin.


Eylem kutusu seçiliyken sol ve sağ ok tuşlarıyla onu kaydırabilir ve istediğiniz şekilde konumlandırabilirsiniz. Kutunun diğer şema öğeleriyle ortalandığını, sol veya sağdan veya her iki yönden hizalandığını, aynı boyutta olduğunu, vb. belli eden hizalama çizgileri size yardımcı olacaktır.

Bu şemaya bir dallanma ekleyeceğiniz zaman aşağıdaki gibi, eylem kutusuna bağlacak öğe olarak bir çatal (fork) çubuğu seçmeniz gerekir:


Var olan bir çatal çubuğu olmadığına göre yeni bbir tane yaratılmasını isteyeceksiniz. Başlangıçta dikey gözüken bu çubuğun yönünü (Orientation) yatay (Horzontal) olarak seçin:


atal (şuna artık "Dallanma çubuğu" diyelim, ama sakın "Dallama" demeyelim)

Dallanma çubuğuna iki eylem kutusu bağlayıp birini sola, birini de sağa getirecek şekilde konumlandırın. Sol kutu "Sipariş hazırla" eylemini, sağ kutu ise "Fatura gönder" eylemini temsil edecektir. Bu iki eylem bir müşterinin uzaktan sipariş vermesi durumunda paralel ilerleyecek eylemlerdir. Şemada dallanmayı izleyen paralel çizgiler olarak gösterilmelerinin nedeni budur.


Sipariş hazırlanması bittikten sonra gönderilmesi aşamasıona geçilecektir. İşte bu aşamada, siparişin aciliyetine veya önceliğine bakılmalıdır. Bunu şemaya ekleyeceğiniz bir karar blokuyla gösterirsiniz. "Sipariş hazırla" eylem kutusu üzerinde beklerseniz, yapılacak bağlantı seçenekleri arasında "Create Brach with Decision Node" (Karar bloku olan bir dal yarat) seçeneğini tıklayın:


Karar sonuçlarına bağlı bağlantı ve eylem kutuları olan, hazır bir karar bloku seçtiğiniz eylem kutusuna bağlanacaktır. Bu karar blokuna bir ad verin:


Bu karar blokunun köşe veya kenar noktalarından tutup çekerek boyunu ayarlayabilir, etiketini çekip bırakarak konumlandırabilir, bağlantılarında kırılma noktaları oluşturabilir ve bağlantıları adlandırabilirsiniz


(bağlantı seçiliyken Enter'a basarsanız çıkacak olan form üzerinde bağlantı adını yazarsınız. Biz bağlantıları karar sonuçlarıyla adlandırdık.


Karar blokundan ayrılan dallar paralel akışlar değil, seçmeli, ya da alternatif akışlardır. Normal akışa dönüş için bu alternatif akışlar bir birleştirme (merge) blokunda birleştirilmelidir. Eylem kutularından birine böyle bir bağlantı ekleyin:


Yeni eklenen birleştirme blokuna bir ad (dolayısıyla bir etiket) verebilir ve bağlantı çizgisini istediğiniz noktadan kırarak kaydırmalarla biçimlendirebilirsiniz. İkinci eylem kutusunu var olan bu birleştirme blokuna bağlarken, yeni blok eklemeyip, var olan blokun adını yazın:


Şemanın tamamlanmasını bu adımlara göre siz yaparsınız artık.

Aktivite Şemalarına Giriş

Aktivite şemaları artık güncelliğini yitirmiş akış şemaları gibidirler. İş süreçlerinin aşamalarını ve bu aşamaların geçişlerinde uygulanan mantığı görselleştirirler.


"UML Distilled"  (Fowler) kitabından aldığımız şu resimde gördüğünüz gibi, bir aktivite şeması bir "başlangıç noktası" (initial node) ile başlar ve bir "bitiş noktası" (activity final) ile biter. Aktivite aşamaları yuvarlak kenarlı dikdörtgenlerle, dallanmalar "çatal" (fork) denen, aynı noktadan ayrılan çizgilerle gösterilirler.  Bir çatalın ayrılma noktasındaki eşzamanlılığı gösteren yatay çizgi ise "senkronizasyon çubuğu"dur. Karar blokları tıpkı eski akış şemalarındaki gibi baklava (diamond) sembolleriyle gösterilirler. Bir karar blokunun temsil ettiği karşılaştırmanın olumlu ve olumsuz sonuçlarına göre iki akış çizgisi ayrılır. Paralel akış çizgileri bir karar bloku gibi baklava sembolüyle gösterilen bir "birleşme" (merge) blokunda kavuşurlar.


Aşamalara aslında "Aktivite" (activity) değil de "Eylem" (Action) denir. Biz bundan sonra aşamaları gösteren kutulara "Eylem kutusu" diyeceğiz.

1 Ekim 2015 Perşembe

Agate Lt.Şti. Gereksinimler Analizi Sonuçları

Bennet, McRobb ve Farmer kitabında 1982'de Britanya'da kurulmuş bir reklam şirketi olan Agate Limited Şirketi için yapılan gereksinim analizleri ve kullanım durumları, senaryoları örneklerini veriyor. Bu şirketin sipariş verdiği projenin oluşturulması aşamalarını daha sonraki Proje Yönetimi dersinde tartışacağız. Şimdilik, ön hazırlık, mülakat ve gözlemlerden belirlenen gereksinimlere dayanarak tanımlanan bazı kullanım durumlarını listeleyeceğiz:


Gereksinim
Kullanım Durumu
Bir müşteri için ad, adres ve iletişimden sorumlu kişileri kaydetmek
Yeni müşteri ekle
Bir müşteri için başlatılacak reklam kampanyasının ayrıntılarını (kampanya başlığı, tahmin edilen başlangıç/bitiş tarhleri, tahmin edilen bütçe, gerçek başlangıç ve bitiş tarihleri, ayrılan bütçe, harcamalar toplamı, vb.) kaydetmek
Yeni kampanya ekle
Müşterinin kampanya için yaptığı ödemeleri kaydetmek
Müşteri ödemesini kaydet
Kampanyadan sorumlu olacak yöneticiyi ve kampanyada çalışacak elemanları belirlemek
Kampanya için eleman ata
Kampanyanın geldiği aşamayı ve bütçeden harcamaları kontrol etmek
Kampanya bütçesini kontrol et
Tasarım elemanlarının kampanya için fikirlerini, yani kavramsal notlarını kaydetmek
Kavram notu yarat
Diğer elemanların bir kampanya için düşünülmüş kavram notlarını tarayıp incelemelerini sağlamak
Kavram notlarını tara
Tasarımcı ve yönetici olarak eklenen elemanların kayıtlarını tutmak
Yeni eleman ekle

Kullanım Durumlarının Araştırılması

Aslında gerçek/somut kullanım durumlarının senaryoları yenilenecek bir sistemin eski halindeki çalışma şeklinin ayrıntılarını özetlemek için faydalı bir yöntemdir. Böyle bir sistemde süregelmiş çalışma şeklini gözlemleyebilir, veya Bennet, McRobb ve Farmer kitabındaki şu örnekteki gibi bir mülakatla gerekli bilgileri edinirsiniz:

Aşağıdaki mülakat Agate şirketi Muhasebe Müdürü Peter ile yeni sistemi tasarlayacak ekibin yöneticisi Dave arasında geçiyor:

D - Söz ettiğiniz şu "kavram notları"nı biraz açıklayabilir misiniz?
P - Yeni bir kampanya için bir fikir ortaya atılmışsa bunu bir kelime işlemciyle kaydediyoruz. Keydettiğimiz bu belgeleri o kampanya için yarattığımız bir klasöre atıyoruz, ama geri dönüp de belli bir fikjre ait not belgesini bulmamız zor oluyor.
D - Yani bu yeni sistemde olsun istediğiniz bir şey mi?
P - Eve, bir kavram notu belgesi yaratmak ve gerektiğinde yeniden bulabilmek isteriz.
(Bu cevapa göre, "Not yarat" ve "Not bul" diye iki kullanım durumu olacak gibi gözüküyor. Aktörleri öğrenmek gerek)
D - Peki,, bunu kimin yapabilmesini istersiniz?
P - Sanırım, kampanyada çalışan elemanlar yeni bir not yaratabilmeli.
D - Yalnızca onlar mı? (Başka aktörler var mı diye öğrenmeye çalışıyor)
P - Yok; yalnızca kampanyada çalışan elemanlar yapsın bunu.
D - Peki, notu yeniden bulmak derken, yalnızca bulup bakmak mı, yoksa gerekirse değişiklik yapabilmek mi istersiniz?
P - Değiştirmek diye bir derdimiz yok. Yalnızca onları biriktirsek, sonra aralarından mantıklı ve önemli olanları seçeriz.
(Yine aktörleri öğrenmek gerek)
D - Bu notları herkes okuyabilecek mi?
P - Evet, herhangi bir eleman bunlara bakabilmeli.
(Saklanacak bililerin türleri çok önemli!)
D - Kavram notunda içerik metninden başka bilgiler saklanacak mı?
P - Tabi, her birinin başlığı olmalı. Sistem başlıklara göre tarama imkanı sağlayabilir mi? Ha, bir de notu yaratan kişi ve yaratma tarihi de olsa iyi olur.
...


Bu mülakattan sonra Dave "Kavram notu yarat" ve "Kavram notlarını tara" etiketli iki ayrı kullanım durumu tanımlayacak ve bunların senaryolarında akörlerin sistemle etkleşme adımlarını özetleyecek.

Bir Kullanım Durumunun Senaryo Açılımı

Bir kullanım durumun kısa tarifinde o durumda sistemi hangi aktörün hangi temel amaçla kullandığı ve ne koşullar altında kullanımın gerçekleşeceğini biraz açarsınız:

Kampanyaya Eleman Ata
Kampanya yöneticisi eleman atayacağı kampanyayı seçer. O kampanyada çalışmayan elemanların bir listesi karşısına gelir. Yönetici o listeden atayacağı elemanları seçer.

Bu kullanım durumunu aktör ve sistemin etkileşmesinin adımlarını özetleyen bir senaryo biçiminde de tarif edebilirsiniz:

Kampanyaya Eleman Ata
Aktör Eylemi
Sistem Yanıtı
    1. Müşteri adını girer.


    1. O müşteriyle ilgili kampanyaları listeler.
    1. Atama yapacağı kampanyayı seçer.


    1. O kampanyada çalışmayan elemanların bir listesini sunar.
    1. Seçilen kampanyaya atayacağı eleman(lar)ı seçer.


    1. Elemanların atandığı doğrulayan bir mesaj gönderir.


Bu senaryo formatındaki kullanım durumu örneği bir "temel kullanım durumu"dur (essential use case). Henüz kullanımın hangi teknoloji ve yazılımla nasıl uyarlanacağına dair teknik ayrıntılar yoktur. Uyarlamanın ayrıntılarını da belirten senaryo sunuyorsanız, o bir "gerçek/somut kullanım durumu"dur (real use case).