YAZILIM MODELLEME VE TASARIM

Benzer belgeler
TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

YAZILIM MODELLEME VE TASARIM

Tümleştirilmiş Süreçte (UP) Yazılım Projesi Aşamaları

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili

Kullanım Durumu Diyagramları (Use-case Diyagramları)

Nesneye Dayalı Programlama nedir? UML Nedir? Sınıf Diyagramları Nesneye Dayalı Programlamanın Temel Taşları Miras alma (Inheritance) Çok biçimlilik

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

UML ile Nesneye Yönelik Modelleme

Nesneye Dayalı Yazılım Geliştirme. Her iterasyon sonunda sistem istenene yaklaşır. Nesneye Dayalı Yazılım Geliştirme

Unified Modeling Language

Tümleştirilmiş Yazılım Geliştirme Süreci (The Unified Process UP)

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

YAZILIM MODELLEME VE TASARIM

Yaz.Müh.Ders Notları #4 1

UNICASE.... kapsamlı bir CASE* aracı. *

Yazılım Mühendisliği 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6. Yrd.Doç.Dr.Hacer Karacan

NESNEYE YÖNELİK TASARIM SÜRECİ

Sunum İçeriği. Programlamaya Giriş

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Yazılım Gereksinimlerinin Görsel Çözümlemeleri: UML (UnifiedModeling Language) Birleştirilmiş Modelleme Dili

Nesne Yönelimli Programlama

Yazılım Tasarımı(Software Design)

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

HSancak Nesne Tabanlı Programlama I Ders Notları

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

Nesneye Dayalı Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

T.C. Damla Ok Mesutcan Kurt Ağustos Ali Murat Tiryaki

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

YZM 2108 Yazılım Mimarisi ve Tasarımı

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık Bağıntı Modeli

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

BİL-142 Bilgisayar Programlama II

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

ATM PROJECT ŞİFRE YA DA HESAP NUMARANIZ HATALI GİRİLMİŞTİR! HAKKINIZ KALDI!

BLG 1306 Temel Bilgisayar Programlama

YZM 2105 Nesneye Yönelik Programlama

T.C. Damla Ok Mesutcan Kurt Temmuz Ali Murat Tiryaki

EDI MIGROS (Sipariş) LOGO ENTEGRASYONU

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

veriler elde edebilmek için bilgilerin toplanması, düzenlenmesi, değerlendirilmesi ve alternatif çözümler

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Algoritmalar ve Programlama. Algoritma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

MONTE CARLO BENZETİMİ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

BTP 209 SİSTEM ANALİZİ VE TASARIMI

Ders 8 Konu Özeti ve Problemler

İSTANBUL AYDIN ÜNİVERSİTESİ SİSTEM ANALİZİ VE TASARIMI KADİR KESKİN ERİM KURT YAZILIM GEREKSİMLERİ DOKÜMANI ONLİNE SİNEMA BİLET SİSTEMİ B1310.

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Algoritma ve Akış Diyagramları

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

YAZILIM MİMARİLERİ DERSİ BİLGİSAYAR PROGRAMCILIĞI

Kalıtım (Inheritance)

Bilgisayar Mimarisi Nedir?

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ

Erişim konusunda iki taraf vardır:

Üst Düzey Programlama

Süreç Yönetimi. Logo

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

Bakım Yönetimi Logo Nisan 2016

Aşırı Programlama İçin Üç Yeni Pratik

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 5. Yrd.Doç.Dr.Hacer Karacan

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Programlama Dillerinde Kullanılan Veri Tipleri

Yazılım Testine Bakış. Defne Şarlıoğlu

Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

11.DERS Yazılım Testi

Yazılım Mühendisliği Bölüm - 3 Planlama

BMH-405 YAZILIM MÜHENDİSLİĞİ

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

BARIŞ TATİL SİTESİ DOKÜMAN KONTROLÜ PROSEDÜRÜ

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Chapter 5 Sistem Modelleme. Lecture 1. Chapter 5 System modeling

BTEP243 Ders 3. class Yazım Kuralı:

Katma Değer Vergisi Beyannamesinin (2) ekinde verilen Katma Değer Vergisi Kesintisi Yapılanlara Ait Bildirim, Muhasebe IV modülünden hazırlanabilir.

Transkript:

YAZILIM MODELLEME VE TASARIM «UML - Tümleştirilmiş Yazılım Geliştirme Süreci» Özer Çelik Matematik-Bilgisayar Bölümü

UML NEDİR? Yazılım ve donanımların bir arada düşünülmesi gereken, Zor ve karmaşık programların, Özellikle birden fazla yazılımcı tarafından kodlanacağı durumlarda, Standart sağlamak amacıyla endüstriyel olarak geliştirilmiş grafiksel bir dildir. Programlama dili-diyagram çizme ve ilişkisel modelleme dili

UML NEDİR? UML 'in doğuşu son yıllarda yazılım endüstrisindeki en büyük gelişmelerden biri olarak kabul edilebilir. UML 1997 yılında yazılımın, diyagram şeklinde ifade edilmesi için bir standartlar komitesi tarafından oluşturuldu. Diğer dallardaki mühendislerin standart bir diyagram çizme aracı -Programcıların UML

UML NEDİR? UML yazılım sisteminin önemli bileşenlerini tanımlamayı, tasarlamayı ve dokümantasyonunu sağlar Yazılım geliştirme sürecindeki tüm katılımcıların (kullanıcı, iş çözümleyici, sistem çözümleyici, tasarımcı, programcı,...) gözüyle modellenmesine olanak sağlar, UML gösterimi nesneye dayalı yazılım mühendisliğine dayanır.

UML AVANTAJLARI Yazılımın geniş bir analizi ve tasarımı yapılmış olacağından kodlama işlemi daha kolay ve doğru olur Hataların en aza inmesine yardımcı olur Geliştirme ekibi arasındaki iletişimi kolaylaştırır Tekrar kullanılabilir kod sayısını artırır Tüm tasarım kararları kod yazmadan verilir Yazılım geliştirme sürecinin tamamını kapsar resmin tamamını görmeyi sağlar

GRAFİKSEL GÖSTERİMLER

GRAFİKSEL GÖSTERİMLER Bu grafiksel gösterimler aynı şeye farklı şekillerde bakabilmeyi sağlar.

4 + 1 BAKIŞ Bir yazılım sistemi oluşturulurken sadece tek boyutta analiz ve modelleme yapılmaz. Bu amaçla; yazılım geliştirme sürecinin farklı aşamalarında farklı UML diyagramlarını kullanmak gerekmektedir. 4+1 bakış, bu diyagramları sınıflandırmak ve yazılım yaşam çevrimindeki kullanım yerlerini ortaya koymak için kullanılan bir kavramdır.

4 + 1 BAKIŞ 1. Kullanıcı Bakışı (User View) 2. Yapısal Bakış (StructuralView) 3. Davranış Bakışı (BehavioralView) 4. Gerçekleme Bakışı (ImplementationView) 5. Ortam Bakışı (Environment View)

4 + 1 BAKIŞ 1- Kullanıcı Bakışı (User View) Müşteri gereksinimlerini ortaya koymak ve müşteriye, sistemi tanıtmak amacı ile kullanılan bakış açısıdır. Bazı kaynaklarda; kullanım senaryosu (use case) bakışı olarak da açıklanmaktadır. Bu amaçla "kullanım senaryosu" (use case) diyagramları kullanılmaktadır.

4 + 1 BAKIŞ 2- Yapısal Bakış (StructuralView) Sistemin nelerden meydana geldiğini gösteren bakış açısıdır. Bu amaçla; "sınıf" (class) diyagramları ve "nesne" (object) diyagramları kullanılmaktadır.

4 + 1 BAKIŞ 3- Davranış Bakışı (BehavioralView) Sistemin dinamik yapısını ortaya koyan bakış açısıdır. Bu amaçla; «ardışık" (sequence), "işbirliği" (collaboration), "durum«(state) ve «etkinlik" (activity) diyagramları kullanılmaktadır.

4 + 1 BAKIŞ 4- Gerçekleme Bakışı (Implementation View) Sistemin alt modüllerini ortaya koyan bakış açısıdır. Bu amaçla; "bileşen" (component) diyagramları kullanılmaktadır.

4 + 1 BAKIŞ 5- Ortam Bakışı (Environment View) Donanımın, fiziksel mimarisinin ortaya konduğu bakış açısıdır. Bu amaçla; "dağıtım" (deployment) diyagramları kullanılmaktadır.

SINIF DİAGRAMLARI Sınıf Diyagramları UML 'in en sık kullanılan diyagram türüdür. Sınıflar nesne tabanlı programlama mantığından yola çıkarak tasarlanmıştır. Sınıf diyagramları bir sistem içerisindeki nesne tiplerini ve birbirleri ile olan ilişkileri tanımlamak için kullanılırlar.

SINIF DİAGRAMLARI Sınıfların bir adı nitelikleri ve İşlevleri vardır Bunlara ek olarak notes Constraints

SINIF DİAGRAMLARI

NESNE ÖRNEĞİ Kimlik: Öğrenci123 Durum: ad: Ali Yılmaz öğrencino: 0401.. yıl: 2007 Metotlar: dersekle() derssil() danısmanata()

SINIF TANIMLARI Alanlar (fields):nesne özelliklerini tanımlayan değişkenler, adları ve türleri ile. Metotlar (methods):metot adları, döndürdüğü tür, parametreleri, ve metotu gerçekleştiren program kodu

UML Diyagramı

SINIF ERİŞİM Public: diğer sınıflar erişebilir. UML de + sembolü ile gösterilir. Protected: aynı paketteki (package) diğer sınıflar ve bütün alt sınıflar (sub classes) tarafında erişilebilir. UML de # sembolü ile gösterilir. Package: aynı paketteki (package) diğer sınıflar tarafında erişilebilir. UML de ~ sembolü ile gösterilir. Private: yalnızca içinde bulunduğu sınıf tarafından erişilebilir (diğer sınıflar erişemezler). UML de sembolü ile gösterilir.

UML Nesne Gösterimi

SINIF DIAGRAMLARI Sınıflar arasındaki ilişkiyi göstermek için iki sınıf arasına düz bir çizgi çekilir. İlişkiyi gösteren çizginin üzerine ilişkinin türü yazılır.

SINIF DIAGRAMLARI Bazı durumlarda sınıflar arasındaki ilişki, bir çizgiyle belirtebilecek şekilde basit olmayabilir. Bu durumda ilişki sınıfları kullanılır. İlişki sınıfları bildiğimiz sınıflarla aynıdır. Sınıflar arasındaki ilişki eğer bir sınıf türüyle belirleniyorsa UML ile gösterilmesi gerekir.

SINIF DIAGRAMLARI Müşteri ile Sipariş sınıfı arasında ilişki vardır. Fakat müşteri satın alırken Ücret ödemek zorundadır Bu ilişkiyi göstermek için Ücret sınıfı ilişki ile kesikli çizgi ile birleştirilir.

KALITIM (INHERITANCE) Eğer eşyalar arasında genellemeler yapabiliyorsak genellemeyi yaptığımız eşyalarda ortak özelliklerin olduğunu biliriz. Mesela, "Hayvan" diye bir sınıfımız olsun. Memeliler, Sürüngenler, Kuşlar da diğer sınıflarımız olsun. Memeliler, Sürüngenler ve Kuşlar sınıfının farklı özellikleri olduğu gibi hepsinin Hayvan olmasından dolayı birtakım ortak özellikleri vardır.

KALITIM ÖRNEK

İÇERME (AGGREGATIONS) Bazı sınıflar birden fazla parçadan oluşur. Bu tür özel ilişkiye "Aggregation" denir. Mesela,bir TV 'yi ele alalım. Bir televizyon çeşitli parçalardan oluşmuştur. Ekran, Uzaktan Kumanda, Devreler vs.. Bütün bu parçaları birer sınıf ile temsil edersek TV bir bütün olarak oluşturulduğunda parçalarını istediğimiz gibi ekleyebiliriz. Aggregation ilişkisini 'bütün parça' yukarıda olacak şekilde ve 'bütün parça'nın ucuna içi boş elmas yerleştirecek şekilde gösteririz.

Örnek Sınıf Diyagramı

Nesne Diyagramları Nesne Diyagramları nesneler ve aralarındaki bağıntıları gösterirler. Nesneler, sınıfların somut örnekleri olduğundan sınıf özelliklerinin değer almış halidirler

Kullanım Senaryoları (Use-Case Model) İsteklerin anlaşılmasını ve ifade edilmesini sağlayan bir yöntemdir. Özellikle işlevsel isteklerin ifade edilmesinde kullanılır. Senaryolar sadece bir doküman değildir. Senaryolar olmadan sistemin ne yapması gerektiği ne olarak belirlenemez.

Kullanım Senaryoları (Use-Case Model) Senaryo :Anlamlı bir sonuca (amaca) ulaşmak için aktör ile sistem arasında gerçekleşen olayların belli bir zinciridir. Bir sistemin çalışması sırasında birden fazla senaryo gerçekleşebilir. Olası tüm senaryolar kullanım senaryolarını (use case) oluştururlar.

Kullanım Senaryoları (Use-Case Model) Örnek: Bir otomatik para çekme makinesinde (ATM) müşteri ile sistem arasında gerçekleşebilecek olan olayların oluşturduğu senaryolar şunlar olabilir. 1. Müşteri kartını makineye takar. 2. Sistem şifreyi sorar. 3. Müşteri şifreyi girer. 4. Sistem şifreyi onaylar. 5. Müşteri para çekme işlemini seçer. 6. Müşteri çekeceği para miktarını seçer. 7. Sistem parayı, makbuzu ve kartı verir. Yukarıdaki akış bu sistemdeki olası senaryolardan sadece biridir. Aynı sistemdeki başka bir senaryo da müşterinin bakiyesinin yeterli olmaması durumuyla ilgilidir.

Kullanım Senaryoları (Use-Case Model) Aktör: Sistemin kullanıcılarını tanımlamak için kullanılan mekanizmadır Aktör tasarlanmakta olan sitemin kullanıcısı ya da o sistemden etkilenen diğer birimlerdir; insan, başka bir sistem, bir cihaz olabilir. Aktörler tasarlanacak olan sistemin dışında kalan birimlerdir. Aktör sistemden hizmet isteğinde bulunabilir, sisteme hizmet verebilir. Farklı gruplara ayrılırlar: Birincil Aktör(Primary Actor): Sistemden asıl faydayı sağlayan, işlemleri başlatan kullanıcı. Destek Aktörü: Sisteme bilgi (destek) sağlayan aktör. Genellikle birbilgisayar sistemidir.

Kullanım Senaryoları (Use-Case Model) Diğer Aktörler: Bu aktörler sistemi doğrudan kullanmazlar ve sisteme bilgi desteği vermezler ancak o senaryoda gerçekleşen olaylarla ilgilenirler ve bu olaylar dan etkilenirler. Birincil Aktör ve Sistemin Sınırları: Üzerinde çalıştığımız sistemi hangi düzeyde incelediğimize ve sınırlarını ne şekilde çizdiğimize bağlı olarak birincil aktörler değişiklik gösterir. Kullanım senaryolarını yazarken sistemin sınırlarını doğru olarak belirlemek, nelerin dışarıda nelerin içeride olacağına doğru karar vermek gerekir.

Birincil Aktör ve Sistemin Sınırları

Birincil Aktör ve Sistemin Sınırları

Birincil Aktör ve Sistemin Sınırları

Birincil Aktör ve Sistemin Sınırları

Kullanım Senaryolarının Yazılması Kullanım senaryolarının ifade edilmesi: İhtiyaçların ve istenen özelliklerin listelenmesi şeklinde DEĞİL. Sistem kara kutu olarak ele alınır. Sistemin iç yapısı görülmez, sistemin dışarıya(aktörlere) karşı sorumlulukları ifade edilir. Aktörler ile sistem arasındaki etkileşim etken cümleler ile ifade edilir. "Ne yapar?" sorusu cevaplanır, "Nasıl yapar?«değil. Sistemin sorumluluklarını nasıl yerine getireceği daha sonra gelinecek olan tasarım aşamasında ele alınacak problemdir. Kullanım senaryolarını yazdığımız şimdiki aşamada ise sadece istekler anlaşılmaya çalışılıyor. Sistemin bitmiş hali hayal edilerek bu sistem çalıştığında oluşabilecek senaryolar yazılır.

Kullanım Senaryolarının Yazılması Kullanım senaryolarında yer alan bölümler: Her kullanım senaryoları grubunun (use case ) bir adı ve numarası vardır. İsimden sonra aşağıdaki bölümler gelir a) Önsöz (Preface) Bölümü Aşağıdaki alt bölümlerden oluşur: Birincil Aktör(Primary Actor): Sistemden asıl faydayı sağlayan, işlemleri başlatan kullanıcı.

Kullanım Senaryolarının Yazılması İlgililer ve Beklentileri(Stake holders and interests): Sistemin çalışmasından etkilenen ve bu sistemden beklentileri olan unsurlar (diğer aktörler). Birincil aktör, destek aktörü ve diğer aktörlerin belirlenmesi sistemin sınırlarını çizer. Kullanım senaryoları ilgililerin (aktörlerin) tüm beklentilerini karşılayan tüm olayları ve sadece onları içerir. Tüm ilgililerin ve beklentilerin ilk başta belirlenmesi önemlidir. Aksi durumda senaryolarda bazı durumlar unutulabilir ve bu eksiklik ancak ileriki aşamalarda anlaşılabilir.

Kullanım Senaryolarının Yazılması Ön koşullar(preconditions): Belli bir senaryo grubunu (use case) oluşturanolayların başlaması için sağlanması gereken koşullar. Bu koşullar senaryo içinde test edilmez, doğru oldukları varsayılır. Son koşullar(postconditions, Success Guarantees): Senaryolar tamamlandığında sistemin ulaşacağı durumlardır. Son koşullar ilgililerin beklentilerine (amaçlarına)denk düşer

Kullanım Senaryolarının Yazılması b) Ana Başarılı Senaryo (Temel Akış) Bölümü ( Main Success Scenario or Basic Flow): Sistemin en doğal çalışma şekli adım adım yazılır. Her adım numaralanır. Koşullar ve dallanmalar içermez.etken cümlelerkullanılır; kim ne yapar açıktır. Adımlar üç farklı gruba ayrılır: 1. Kullanıcılar ile sistem arasında etkileşim, tetikleme 2. Onaylama (çoğunlukla sistem tarafından) 3. Sistemde durum değişikliği, bir bilginin kayıt edilmesi. Örnek: 1. Müşterişifresini girer. 2. 2. Sistem ekrana müşterinin adını çıkartır. 3. 3....Belirsiz ve edilgen cümleler kullanılmaz. Örnek: Toplam belirlenir. Bu uygun bir senaryo cümlesi değildir. Kim belirleyecek? Sistem mi? Aktörlerden biri mi?

SORULARINIZ