"Use-Case" Requirements Analysis - Unified Modeling Language - PDF

Document Details

FairCuboFuturism2149

Uploaded by FairCuboFuturism2149

2010

A. Tarhan

Tags

UML diagrams use case software engineering

Summary

This document is a presentation in Turkish that discusses "Use-Case" based requirements analysis using Unified Modeling Language (UML). It covers various UML diagrams such as Use Case Diagrams and Activity Diagrams, illustrating their applications in software development. The presentation also includes an example of an ATM application to demonstrate the concepts.

Full Transcript

“Use-Case” Esaslı Gereksinim Analizi - 1- İçerik UML Giriş Gereksinim Analizi İçin Kullanılan Başlıca UML Elemanları “Use-Case” Esaslı Gereksinim Analizi Örnek Çözümleme: Kütüphane Destek Sistemi...

“Use-Case” Esaslı Gereksinim Analizi - 1- İçerik UML Giriş Gereksinim Analizi İçin Kullanılan Başlıca UML Elemanları “Use-Case” Esaslı Gereksinim Analizi Örnek Çözümleme: Kütüphane Destek Sistemi - 2- “Unified Modeling Language” - 1 Yazılım sistemlerinin modellemesi için geliştirilmiş standart bir dildir ◗ Yazılım iş ürünlerinin; tanımlanması, görsel hale getirilmesi, belgelendirilmesi ◗ Açık standarttır; birçok araç tarafından desteklenir ◗ Tüm yazılım geliştirme sürecini destekler Çıkış hedefleri: ◗ Kullanımı kolay, görsel bir modelleme dili sunmak ◗ Programlama dillerinden ve geliştirme sürecinden bağımsız olmak ◗ En iyi yöntemleri bütünleştirmek 1995 yılından beri sektörün katkıları ile gelişmektedir ◗ Son sürüm: UML 2.3 (Mart 2010), Object Management Group (OMG) ◗ İlgili web sitesi: www.uml.org - 3- “Unified Modeling Language” - 2 Sundukları: ◗ Yazılım ürünlerinin gösterimi için yapı taşları ve ilişkiler ◗ Yapı taşlarını ve ilişkileri kullanarak farklı bakış açılarını destekleyen diyagramlar ◆ Tanımlanan yapı taşlarının ve diyagramların bütünü, geliştirilen yazılım sistemine karşılık gelir Sunmadıkları: ◗ Sisteminin nasıl geliştirilmesi gerektiğini tanımlamaz ◗ Nesne yönelimli yazılım modellemesi için yapılar sunar, ancak; ◆ Bu yapıların hangi sıra ile kullanılması gerektiğini tanımlamaz ◆ Yapıların geliştirme sürecinin hangi aşamalarında kullanılması gerektiğini tanımlamaz - 4- Gereksinim Analizi İçin Kullanılan Başlıca UML Elemanları - 5- UML Diyagramları - 6- “Use-Case Diagram”: Örnek - 7- “Use-Case Diagram” Modelleme Öğeleri Aktör ◗ Sistemin kullanıcıları ◗ “An outside user of a system” “Use-case” ◗ Sistemin destekleyeceği işler ◗ A specification of the behavior of an entity in its interaction with outside agents İlişki (“relationship”) ◗ “Association”: Aktör ve “use-case” arasındaki bağlantı ◗ “Generalization”: İki “use-case” veya iki aktör arasındaki kalıtım ilişkisi ◗ “Extend”: Bir “use-case”den diğerine geçiş (kontrol dışı) ◗ “Include”: Bir “use-case”in diğerinin davranışını içermesi - 8- “Use-Case” İlişki Türleri - 9- “Use-Case” İlişki Türleri: Örnek - 10 - “Use-Case” Modeli Sistemin tüm “use-case” diyagramları, “use-case” modelini tanımlar ◗ Sistem belirli büyüklüğün üzerinde olduğunda, gereksinimler birden fazla “use-case” diyagramı kullanılarak tanımlanır ◗ Sistem sınırını gösteren dikdörtgen kutu sistemin içinde ve dışında kalan öğeleri belirtmek için kullanılır - 11 - “Activity Diagram”: Örnek - 12 - “Activity Diagram” Modelleme Öğeleri Etkinlik (“activity”) ◗ Sistem ve aktörler tarafından yapılan işleri ifade etmek için kullanılır ◗ “An activity is a state of doing something” Geçiş (“transition”) ◗ Etkinlikler arasındaki geçişleri ifade etmek için kullanılır ◗ Geçişin koşulu varsa geçişin üzerine “guard” eklenerek ifade edilir “Branch” / “merge” ◗ Koşullu davranışı ifade etmek için kullanılır ◆ “A branch has a single incoming transitions and several guarded outgoing transitions …only one of the outgoing transitions can be taken, so the guards should be mutually exclusive” ◆ “A merge has multiple input transitions and a single output – the end of conditionalbehavior” “Fork” / “join” ◗ Paralel davranışı ifade etmek için kullanılır ◆ “A fork has one incoming transition and several outgoing transitions … when the incoming transition is triggerred, all of the outgoing transitions are takenin parallel” ◆ “With a join, the outgoing transition is only taken when all the states on theincoming transitions have completed their activity” - 13 - “Activity Diagram with Swimlanes”: Örnek - 14 - “Use-Case” Esaslı Gereksinim Analizi - 15 - Gereksinim Analizinde “Use-Case” Yaklaşımı Bakış açısı: Sistem, kullanıcısı için “ne” yapacak ? ◗ Sistem kapalı bir kutu (“black-box”) ◗ Sistem-kullanıcı etkileşimi ◗ Sistemin dışarıdan görünen davranışı İlgilenmediklerimiz: ◗ Sistemin iç yapısı ◗ Sistem belirlenen davranışı “nasıl” yapacak ? ◗ Belirlenen davranış “nasıl” kodlanacak ? Bu bakış açısı, sistemdeki tüm işlevselliği değil, kullanıcılar için artı değer oluşturacak işlemleri düşünmemizi sağlar - 16 - “Use-Case” Nedir? (1) Yazılım sisteminin kullanıcısına değer döndüren, dışarıdan gözlemlenebilen davranışının bütünüdür ◗ Değer ◆ Sistem “use case” kapsamındaki işleri gerçekleştirdiğinde oluşacak çıktı, sonuç veya durumdur ◗ Gözlemlenebilirlik ◆ Kullanıcı ve sistem arasındaki etkileşimi tanımlar ◗ Bütünlük: ◆ “Use-case” kullanıcının istediği değerin üretilebilmesi için gereken tüm ilişkili adımları içerir - 17 - “Use-Case” Nedir? (2) Her “use-case”in bir amacı vardır ◗ Niye belirlendi ? Kullanıcının hangi işlemini gerçekleştirecek ? ◗ Hangi davranışı modelliyor ? Ne yapacak ? ◗ Ne zaman sonlanacak ? Hangi değeri üretecek ? Örnekler: ◗ Öğrencinin bir derse kaydolması ◗ Muhasebe görevlisinin aylık bordroları hazırlaması ◗ Banka müşterisinin ATM’den para çekmesi ◗ Bir kişinin asansörü çağırması - 18 - Gereksinim Analizinde Yapısal Yöntem ya da “Use-Case” Yaklaşımı: Örnek Yapısal yöntem: Use case yaklaşımı: ◗ Sistem müşteri kartını kabul eder. ◗ Müşteri kartını yerleştirir ◗ Sistemde işlemlerin yapılabilmesi ◗ Sistem şifreyi sorar için şifre geçerli olmalıdır. ◗ Müşteri şifresini girer ◗ Sistemde para çekme ve para ◗ Şifre doğruysa, sistem para çekme ve yatırma seçenekleri mevcuttur. para yatırma seçeneklerini sunar ◗ Sistem istendiğinde işlemlerin ◗ Müşteri para çekme işlemini seçer makbuzunu verir. ◗...... ◗ …… - 19 - “Use-Case” Esaslı Gereksinim Analizi – Kazançlar Kullanıcının gereksinimi olmayan özellikleri tanımlamamızı engeller Kullanıcının da anlayabileceği şekilde sistemin davranışlarını ve sorumluluklarını tanımlar ◗ Kullanıcı ile iletişimi kolaylaştırır Kullanıcı arayüzlerinin tasarlanmasını kolaylaştırır Kullanıcı kılavuzlarını yazarken başlangıç noktasını oluşturur Geliştirme sürecini başlatır ve tüm temel iş adımlarını birbirine bağlar Tasarlanacak test durumlarına esas oluşturur - 20 - “Use-Case” Esaslı Gereksinim Analizi – Dikkat Edilecek Noktalar “Use-case”ler sistemin iç yapısını tanımlamaz (sistem kapalı kutu) ◗ Tasarım öğeleri belirsizdir ◆ Tipik olarak birden çok tasarım öğesi, bir use case’in işletilmesi için kullanılır ◗ Yapısal veya nesne yönelimli yaklaşımlarda kullanılabilmesinin temel nedeni budur “Use case”ler sadece işlevsel gereksinimleri, kullanıcı bakış açısıyla tanımlar ◗ Sistemin iç davranışına ilişkin gereksinimler, kullanıcı gereksinimleri gerçekleştirilirken daha sonraki adımlarda karşılanır ◆ Bu tür gereksinimler sıklıkla, iş kuralı veya tasarım kısıtı olarak “use-case”lerle ilişkilendirilir - 21 - “Use-Case” Esaslı Gereksinim Analizi: Yöntem 1. Aktörleri ve “use-case”leri belirle ◗ Amaç: Sisteminin aktörlerini ve “use-case”lerini belirlemek ve üst seviye “use-case” modelini oluşturmak ◆ Aktörler belirlenir ◆ “Use-case”ler belirlenir ◆ Her aktör ve “use case” kısaca tanımlanır ◆ Üst seviye “use-case” modeli tanımlanır 2. “Use-case”leri detaylandır ◗ Amaç: Belirlenen tüm “use-case”lerin iş akışlarını detaylı olarak tanımlamak ◆ Ana akış tanımlanır ◆ Alternatif akışlar tanımlanır - 22 - “Use-Case” Esaslı Gereksinim Analizi: Yöntem (devamı) 3. “Use-case” modelini yapılandır ◗ Amaç: Oluşturulan use case modelini ortak noktaları en aza indirecek şekilde yapılandırmak ◆ Gereken yerlerde “extend” ve “include” ilişkileri kullanılabilir ◆ Yapılandırılan “use-case” modeli, iş süreçlerini referans alınarak değerlendirilir 3. Kullanıcı arayüzlerini tanımla ◗ Amaç: Use case tanımları esas alınarak kullanıcı arayüzlerini üst seviyeli olarak tanımlamak ◆ Kağıt üzerinde çizim yapılabilir ◆ Arayüz prototipleme aracı kullanılabilir - 23 - Örnek: ATM Uygulaması Bir bankanın ATM cihazı için yazılım geliştirilecektir. ATM, banka kartı olan müşterilerin hesaplarından para çekmelerine, hesaplarına para yatırmalarına ve hesapları arasında para transferi yapmalarına olanak sağlayacaktır. ATM, banka müşterisi ve hesapları ile ilgili bilgileri, gerektiğinde merkezi banka sisteminden alacaktır. Banka sistemi ayrıca her günün sonunda, ATM’den günlük işlemlerin bir özetini isteyecektir. - 24 - ATM Uygulaması – Kapsam Bağlam (“context”) diyagramı - 25 - ATM Uygulaması (Adım 1. Aktörleri ve “Use Case”leri Belirle) – Aktörler Soru: ATM uygulama yazılımının kullanıcıları kimlerdir? ◗ Banka müşterisi ◗ Merkezi Banka Sistemi - 26 - ATM Uygulaması (Adım 1. Aktörleri ve “Use Case”leri Belirle) – “Use Case”ler Soru: Belirlenen aktörler ATM’den ne istiyorlar ? ◗ Aktör: Banka müşterisi ◆ Para çekme ◆ Para yatırma ◆ Para transferi ◗ Aktör: Merkezi Banka Sistemi ◆ Günlük özet alma - 27 - ATM Uygulaması (Adım 1. Aktörleri ve “Use Case”leri Belirle) – Kısa Tanımlar Aktör: Banka müşterisi ◗ Bankada hesabı ve banka kartı olan, ATM’den işlem yapma hakkı olan kişi Use case: Para çekme ◗ Banka müşterisinin nasıl para çekeceğini tanımlar. Para çekme işlemi sırasında banka müşterisinin istediği tutarı belirtmesi ve hesabında bu tutarın mevcut olması gerekir. - 28 - ATM Uygulaması (Adım 1. Aktörleri ve “Use Case”leri Belirle) – “Use-Case” Diyagramı Para Çekme Merkezi Banka Para Yatırma Sistemi Banka Müşterisi Günlük ÖzetAlma Para Transferi Her use case biricik (“unique”) olarak numaralandırılmış - 29 - “Use Case” Detayı: Etkinlik Zinciri Z a Etkinlik 1 m a n s ı r a Etkinlik 2 l ı - 30 - ATM Uygulaması (Adım 2. “Use Case”leri Detaylandır) – Para Çekme (Ana Akış) 1. Banka Müşterisi kartını yerleştirir 2. ATM kartı okur 3. Banka Müşterisi şifreyi girer 4. ATM işlem seçeneklerini gösterir 5. Banka Müşterisi “para çekme” işlemini seçer ana 6. ATM olası para tutarlarını gösterir akış 7. Banka Müşterisi para tutarını girer 8. ATM para çekme talebini Merkezi Banka Sistemi’ne iletir 9. Merkezi Banka Sistemi, Banka Müşterisi’nin hesabını kontrol eder 10. Merkezi Banka Sistemi, Banka Müşterisi’nin hesabından tutarı düştü ve işlem sonucunu ATM’ye iletir 11. ATM nakit parayı verir 12. ATM kartı iade eder Olası sapma noktaları - 31 - “Use Case” Detayı: Alternatif Akışlar Senaryo 1 Etkinlik 1 onaylandı [evet] [hayır] Etkinlik 2 Etkinlik 3 Senaryo 2 Etkinlik 4 - 32 - ATM Uygulaması (Adım 2. “Use Case”leri Detaylandır) – Para Çekme (“Activity Diagram”) Para Çekme, Başlangıç [1,1] Banka Müşterisi [1,7] Banka Müşterisi kartını yerleştirdi para tutarını girdi [1,A10.2] ATM Banka Müşterisi'ni uyardı [1,A3.2] ATM [1,2] ATM kartı [1,8] ATM para çekme talebini kartı iade etti okudu Merkezi Banka Sistemi'ne iletti [1,A10.1] Merkezi Banka Sistemi, Banka Müşterisi'nin hesabında [1,A3.1] ATM kartın geçerli kart mı? yeterli para olmadığını belirledi ve işlem sonucunu ATM'ye iletti geçersiz olduğunu belirledi Hayır Evet [1,9] Merkezi Banka Sistemi, Banka [1,3] Banka Müşterisi Müşterisi'nin hesabını kontrol etti şifreyi girdi [1,A4.2] ATM Banka hesapta yeterli Müşterisini uyardı para var mı? Hayır Evet [1,A4.1] ATM şifrenin geçerli şifre mi? [1,10] Merkezi Banka Sistemi, Banka geçersiz olduğunu belirledi Hayır Müşterisi'nin hesabından tutarı düştü Evet [1,4] ATM işlem [1,11] ATM nakit seçeneklerini gösterdi parayı verdi [1,5] Banka Müşterisi "para [1,12] ATM kartı çekme" işlemini seçti iade etti [1,6] ATM olası para Para Çekme, Bitiş tutarlarını gösterdi - 33 - Para Çekme – “Activity Diagram with Swimlanes” Banka Müsterisi ATM Merkezi Banka Sistemi Para Çekme , Başlangıç [1,1] Banka Müşterisi kartını yerleştirdi Aktörlerin ve sistemin [1, 2] ATMkartı sorumlulukları ayrı okudu [1,3] Banka Müşterisi geçerli kart mı? şif reyi girdi Evet Hayır [ 1, A.3.1] ATM kartın geçers iz olduğunu belirledi [1,A.3.2] ATM kartı iade etti [1,A.4.2] ATM Banka geçerli şif re mi ? Müşterisini uyardı Hayır Evet [1,A.4.1] ATM şif renin geçersiz olduğunu belirledi [1,5] Banka Müşterisi "para çekme" [ 1, 4] ATM işle m işlem ini seçt i seçeneklerini gösterdi [1,6] ATM olası para tutarlarını gösterdi [1,7] Banka Müşterisi para tutarını girdi [1,8] ATM para çekme talebini [1,9] Merkezi Banka Sistemi, Banka Merkezi Banka Sistemi'ne iletti Müşterisi'nin hesabını kontrol etti hesapta yeterl i para v ar mı? Evet Hayır [ 1,A.10.2] ATM Banka [1,A.10.1] Merkezi Banka Sistemi, Banka Müşterisi'nin hesabında Müşterisi'ni uy ardı y eterl i para olmadığını belirledi v e işlem sonu cunu ATM'y e iletti [1,11] ATM naki t [1,10] Merkezi Banka Sistemi, Banka parayı v erdi Müşterisi'nin hesabından tutarı düştü [1, 12] ATM kart ı iade etti Para Çekme , Bitiş - 34 - Use Case No: 12 Use Case Adı: Para Çekme Tanımlayan: Son Değiştiren: Para Çekme: Tanımlama Tarihi: Son Değişiklik Tarihi: Alternatif Tanım Aktör: Banka müşterisi, Merkezi Banka Sistemi Kısa Tanımı: Banka müşterisinin nasıl para çekeceğini tanımlar. Önkoşul: Merkezi Banka Sistemi erişilebilir durumdadır. Sonkoşul: Banka müşterisi nakit parayı ve banka kartını alır. Önceliği: 1 Kullanım sıklığı: Çok sık Ana akış: 1. Banka Müşterisi kartını yerleştirdi 2. ATM kartı okudu 3. Banka Müşterisi şifreyi girdi 4. ATM işlem seçeneklerini gösterdi 5. Banka Müşterisi “para çekme” işlemini seçti 6. ATM olası para tutarlarını gösterdi 7. Banka Müşterisi para tutarını girdi 8. ATM para çekme talebini Merkezi Banka Sistemi’ne iletti 9.Merkezi Banka Sistemi, Banka Müşterisi’nin hesabını kontrol etti 10.Merkezi Banka Sistemi, Banka Müşterisi’nin hesabından tutarı düştü ve işlem sonucunu ATM’ye iletti 11. ATM nakit parayı verdi 12. ATM kartı iade etti Alternatif Akış: A3: ATM kartın geçersiz olduğunu belirledi A3.1. ATM kartı iade etti A3.2. Adım-1’den devam et A4: ATM şifrenin geçersiz olduğunu belirledi A4.1. ATM Banka Müşterisi’ni uyardı A4.2. Adım-3’ten devam et A10: Merkezi Banka Sistemi, Banka Müşterisi’nin hesabında yeterli para olmadığını belirledi ve işlem sonucunu ATM’ye iletti A10.1. ATM Banka Müşterisi’ni uyardı A10.2. Adım-7’den devam et İçerdiği use case’ler: Özel gereksinimler: (Adım-2) ATM kartı 3 saniye içinde okumalıdır. Varsayımlar: - -35 35- A.Tarhan, 2010 Not: - BBS-651-DN04 ATM Uygulaması (Adım 3. “Use-Case” Modelini Yapılandır) – “Use-Case” Diyagramı extends [1.1] Yetersiz Bakiye Bildirme Para Çekme Merkezi Banka Para Yatırma Sistemi Banka Müşterisi Para Transferi Günlük ÖzetAlma - 36 - ATM Uygulaması (Adım 4. Kullanıcı Arayüzlerini Tanımla) – Para Çekme “Use Case”i için Kullanıcı Arayüzü Çekmek istediğiniz para miktarını seçin: 10 20 Çekmek istediğiniz 25 50 para miktarını girin: 75 100 200 Diğer Geri Tamam (Para Çekme ana akışı 6 ve 7 no’lu adımlarıyla ilişkili kullanıcı arayüzleridir.) - 37 - “Use-Case” Esaslı Gereksinim Analizi: Başarı İçin Anahtar Noktalar “Use-case” modelini iteratif olarak geliştirin Kullanıcıları analize dahil edin “Use-case”leri görsel olarak modelleyin “Use-case”leri işlevsel olmayan gereksinimleri çıkarmak için kullanın “Use-case”leri ve “use-case” senaryolarını önceliklendirin “Use-case”leri doğrulayın ve diğer geliştirme öğelerine izlenirliğini kurun - 38 - Örnek Çözümleme: Kütüphane Destek Sistemi Kütüphane işlemlerini desteklemek amacıyla bir yazılım sistemi oluşturulacaktır. Sistem; kayıtlı müşterilere, yine kayıtlı kitap ve dergileri ödünç verecektir. Kütüphane, yeni başlıklı kitap ve dergilerin satın almasını yapacaktır. Popüler başlıklar, birden çok kopya satın alınacaktır. Eski kitap ve dergiler, zaman aşımına uğradıklarında veya çok yıprandıklarında yok edilecektir. Kütüphanede, müşterilerle iletişimi sağlayacak ve yaptığı işler sistem tarafından desteklenecek bir kütüphane görevlisi bulunacaktır. Müşteri, kütüphanede o anda bulunmayan bir kitap veya dergiyi rezerve edebilecektir. Kitap veya dergi kütüphaneye geri döndürüldüğünde, rezervasyonu yapan müşteri haberdar edilecektir. Rezervasyon, müşteri kitap veya dergiyi ödünç aldığında veya müşterinin özel isteği üzerine iptal edilecektir. Sistem; kitap ve dergi başlıklarının, kitap ve dergi kopyalarının, müşterilerin, ödünç işlemlerinin ve rezervasyonların kaydedilmesine, güncellenmesine ve silinmesine olanak sağlayacaktır. Sistem tüm popüler bilgisayar ortamlarında (UNIX, Windows, OS/2, vb.) çalışacak ve modern bir kullanıcı ara yüzüne sahip olacaktır. Sistem yeni işlevler eklemek suretiyle genişletilebilir olacaktır. - 39 -