NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr



Benzer belgeler
YAZILIM MODELLEME VE TASARIM

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

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

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

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

Nesneye Dayalı Programlama

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

YAZILIM MODELLEME VE TASARIM

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

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

Sunum İçeriği. Programlamaya Giriş

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

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

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

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

VERİ AKIŞ DİYAGRAMI KAVRAMSAL SINIF DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Kalıtım (Inheritance)

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNEYE YÖNELİK TASARIM SÜRECİ

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

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

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

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

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

7. HAFTA. Erişim Belirleyiciler

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

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İ

BİL-142 Bilgisayar Programlama II

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

2 İlişkisel Veritabanı Tasarımı. Veritabanı 1

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

BİL-141 Bilgisayar Programlama I (Java)

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

Veritabanı Tasarımı Ve Yönetimi. Varlık-İlişki Modeli

Klavyeden Basit Giriş/Çıkış İşlemleri

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

Unified Modeling Language

Java Dersi. Altuğ Bilgin Altıntaş

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

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

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

UML ile Nesneye Yönelik Modelleme

YZM 2105 Nesneye Yönelik Programlama

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Swing ve JDBC ile Database Erişimi

SiSTEM ANALiZi ve TASARIMI

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Nesne Yönelimli Programlama

VeritabanıYönetimi Varlık İlişki Diyagramları. Yrd. Doç. Dr. Tuba KURBAN

BAYİ SİPARİŞ TAKİP SİSTEMİ (Analiz Raporu)

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

Nesneler yan yana gösterilir. Etkileşimler (mesajlar) oluştukları sıra ile yukarıdan aşağıya doğru çizilirler.

C++ Dersi: Nesne Tabanlı Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Nesne Yönelimli Programlama

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Erişim konusunda iki taraf vardır:

Nesne Yönelimli Programlama

Veri Akış Diyagramı (VAD)

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

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

C++ Dersi: Nesne Tabanlı Programlama

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

T.C KARABÜK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ

Ders 8 Konu Özeti ve Problemler

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

VERİ TABANI UYGULAMALARI

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

NESNEYE YÖNELİK PROGRAMLAMA

BTP 209 SİSTEM ANALİZİ VE TASARIMI

Sistemin dört ana bileșeni vardır. 1.Kullanıcı (user) 2.Görev (task) 3.Araç/arayüz (tool/interface) 4.Bağlam (context) Arayüz Nedir?

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

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

Diziler İndisli Değişkenler

YAZILIM MODELLEME VE TASARIM

Henüz bir Mobil Şubeniz Yokmu?

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

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

NESNE TABANLI PROGRAMLAMA

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Nesne ve Sınıf Kavramları

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

YZM 2105 Nesneye Yönelik Programlama

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

YZM 2105 Nesneye Yönelik Programlama

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

MATRİKS MARCO POLO NETWORKS ENTEGRASYON VE EMİR YÖNETİM SİSTEMİ

EBE-368 Veri Tabanı Yönetim Sistemleri Veri Tabanı Tasarımı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Transkript:

NESNEYE YÖNELİK PROGRAMLAMA Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr

Kullanım Diyagramları (Use Case Diagram) Kullanım senaryoları sadece düz metin (text) olarak değil, istendiğinde metin yerine UML diyagramı olarak da ifade edilebilirler. Kullanım diyagramlarında, kullanım senaryolarının aktörler ile ve kendi aralarındaki ilişkileri grafik olarak gösterilir. Bir sistemin içinde bir çok senaryo grubu bulunabilmekte ve değişik aktörler değişik senaryo grupları ile ilişkili olabilmektedir. Ayrıca senaryoların kendi aralarında da içerme (include) ve genişletme (extend) ilişkileri bulunabilmektedir.

Kullanım Durum Diyagramları Kullanım Durum Diyagramları, aktörlere bakılarak oluşturulurlar. Aktör sistemin sunduğu hizmetleri kullanan bir kişi veya başka bir sistemdir. Aktörler, sistemin dışında olan ve sistemle etkileşimde bulunması olası bir şahıs veya farklı bir sistem olarak belirtilirler. İlk olarak sorulacak soru sistemle kim iletişimde bulunacak sorusudur.

Kullanım Durum Diyagramları Ders seçim modeli için aktör olarak şu hususlardan bahsedebiliriz : Kayıt memuru, öğrenci, profesör ve de dış bir ödeme sistemini ele alabiliriz. (aktör illaki bir insan olmak zorunda değildir farklı bir sistem de aktör olabilir) Sistemdeki kullanım durumlarını bulmak için o sisteme kısaca aktörlerin sistemi ne amaçla kullanmak istediklerini sormak yeterli olacaktır.

Basit bir Kullanım Durum Diyagramı yapısı

KULLANIM DURUM DİYAGRAMLARI BİLEŞENLERİ Aktör Sistemin kullanıcılarıdır. Aktörler genelde belirli bir rol ifade ederler. Sistem sınırları dışında gösterilir. Aktörler arasında doğrudan (genelleme ilişkisi dışında) ilişki tanımlamak mümkün değildir. Arada mutlaka kullanım durumları olmalıdır.

KULLANIM DURUM DİYAGRAMLARI BİLEŞENLERİ Kullanım Durumu Sistemde yer alan tüm alternatif senaryolardır. Sistem fonksiyonelliğinin büyük bir parçasını gösterir. Diğer bir use case ile genişletilebilir. (extend) Diğer bir use case içerebilir. (include) Sistem sınırları içinde gösterilir.

KULLANIM DURUM DİYAGRAMLARI BİLEŞENLERİ

KULLANIM DURUM DİYAGRAMLARI

İçerme (include) ilişkisi İçerme ilişkisini kullanmak için <<include>> şeklindeki bir ifade kullanılır. Kullanmak istediğimiz kullanım durumları arasına çektiğimiz noktalı çizginin üzerine <<include>> yazısını yazarız.

İçerme (include) ilişkisi Örnek:

Genişletme (extend) İlişkisi Include'da olduğu gibi genişletme ilişkisini göstermek için yine kullanım durumları arasına noktalı çizgiler konur ve üzerine <<extend>> ibaresi yazılır.

Genişletme (extend) İlişkisi Örnek:

Genelleme İlişkisi Sales system Sales system ListProducts ListProducts Customer OrderProducts Purchaser OrderProducts AcceptPayment AcceptPayment SalesAgent CalcualteCommission CalcualteCommission Customer SalesAgent

Genelleme İlişkisi İki kullanım durumu veya iki aktör arasındaki kalıtım ilişkisidir.

Genelleme İlişkisi

Bir ö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.

Bir örnek: ATM uygulaması ATM uygulama yazılımının kullanıcıları: Banka müşterisi Merkezi Banka Sistemi Aktörler

Bir örnek: ATM uygulaması 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

Bir örnek: ATM uygulaması Aktör: Banka müşterisi Bankada hesabı ve banka kartı olan, ATM den işlem yapma hakkı olan kişidir. Kullanım Durumu: 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.

Bir örnek: ATM uygulaması

Bir örnek: ATM uygulaması

Bir örnek: ATM uygulaması

Bir use case diyagramı örneği Bir web sayfasına gelen bir kullanıcının neler yapabileceğini kullanım durum diyagramlarıyla göstermeye çalışalım. Siteye gelen bir kullanıcı kayıtsız şartsız makale başlıklarını görebilmektedir. Online olan kullanıcı siteyi tavsiye edebilir, siteye üye olabilir,kitapları inceleyebilir. Ancak makale okuması ve kaynak kod indirebilmesi için siteye üye girişi yapmalıdır. Makale okuması ve kaynak kod indirebilmesi için gereken şart siteye üye olmaktır.

Kullanım Durum Diyagramı Örneği Siteye bağlanan bir kullanıcının site üzerindeki hareketlerini belirtir diyagram bu şekilde oluşturulabilir.

Kullanım Durum Diyagramı Örneği

UML Sınıf Diyagramları (Class Diagrams) Bir sınıf, ortak yapısı, ortak davranışları, ortak ilişkileri ve ortak anlamı bulunan nesneler koleksiyonudur. Örneğin, Volkswagen, Toyota ve Ford ortak özellikleri olan ve ortak davranışlar gösteren birer arabadır. Öyleyse bunların hepsini Araba sınıfıyla ifade edebilirim. Nesne, belirli bir sınıfa ait olgudur(instance). Örneğin Araba sınıfının bir nesnesi Toyota olabilir.

UML Sınıf Diyagramları (Class Diagrams) Sınıf diyagramı: Bir sistemin yapısını; sistemdeki sınıfları, sınıfların niteliklerini ve sınıflar arasındaki ilişkileri göstererek ifade eden diyagramdır. Sistemi oluşturan sınıflar ve bunlar arasındaki ilişkileri gösterir. Sistemin statik yapısını ifade eder. Yol Haritası gibi Nesneler şehirleri, ilişkiler şehirler arasındaki yolları gösterir Hedefe ulaşmak için hangi yolun takip edilmesi gerektiğini söylemez

UML Sınıf Diyagramları UML deki en temel diyagram tiplerinden biridir. Sınıf diyagramları, nesneye-yönelik modellemenin yapıtaşıdır. Sınıf diyagramı, sistem için tanımlanan tüm sınıfları içermeyebilir. Bir sistemi modellemek için birden fazla sınıf diyagramı kullanılabilir. Bir sistemle ilgili çizilen bir sınıf diyagramı sistemin belirli bir görünümünü ifade ederken, çizilen bütün sınıf diyagramları birlikte bütün sistemi gösterir.

UML Sınıf Diyagramları UML de üç farklı alanı olan bir dikdörtgen şeklinde gösterilirler. Bu üç bölümden ilki sınıf ismini, ikinci kısım yapısını(attributes), ve üçüncü bölüm ise davranışını(operations) gösterir. Sınıfların gösteriminde sadece sınıf ismini, yapısını ya da davranışlarını veya her üçünü de birden görebilirsiniz. Sınıflar isimlendirilirken bir standardizasyon olması amacıyla bütün isimler büyük harf ile başlarlar.

UML Sınıf Diyagramları Sınıf Adı Özellikler(properties) Metodlar(functions)

Görünürlük (Visibility)

Görünürlük (Visibility) Public:diğer sınıflar erişebilir. 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. Protected:aynı paketteki (package) diğer sınıflar ve bütün alt sınıflar (subclasses) tarafından 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.

UML Sınıf Diyagramı Kod Arası İlişki - + +

UML Sınıf Tanımlamaları Alanlar: Kod private long maas UML - maas:long Metotlar: Kod public double maashesapla(int,double,int) UML + maashesapla(int,double,int):double

UML de Nesne Gösterimi

UML de Nesne Gösterimi

UML de Paket Gösterimi Birbirleriyle ilişkili sınıflar bir paket (package) içine yerleştirilirler. Paket isimler küçük harflerle yazılır

Sınıflar Arası İlişkiler (multiplicity) Bire-bir (varsayılan) Bire-çok Bire bir veya daha çok Bire sıfır veya bir Bire-sınırlı aralık Bire-n (*) İlişki (association): has a ilişkisidir.

Sınıflar Arası İlişkiler Reflexive(Kendine dönen)ilişki: Bir sınıfın sistemde birden fazla rolü vardır.

Sınıflar Arası İlişkiler Birliktelik nesneler arası uzun süreli ilişkidir. Gerçek hayatta, örneğin, insanlar ve arabaları bir ilişki oluştururlar. Bu ilişki bir birlikteliktir, bir yerden başka bir yere gitme olayında, ne kullanıcı arabasız düşünülebilir nede araba kullanıcısız düşünülebilir. İki tür birliktelik vardır: İçerme (Aggregation) Kompozisyon -Oluşum (Composition)

İçerme (Aggretation) Kavramı Bütün parça yukarıda olacak şekilde ve bütün parçanın uçuna içi boş elmas yerleştirilecek şekilde gösteririz. İçi boş elmas ile gösterilen ilişkilerde herbir parça ayrı bir sınıftır ve tek başlarına anlam ifade eder. owns a ilişkisi vardır. Parça bütün arasında sıkı bir ilişki yoktur. İki sınıfın yaşam evreleri arasında bir ilişki vardır. Ancak birbirlerinden bağımsız olarak yok edilebilirler.

İçerme (Aggretation) Kavramı Window owns a Rectangle

Kompozisyon(Composite) İlişki Sınıflar arasında çok güçlü bir ilişki kurar. Parça-bütün ilişkisi kurar. Bütün rolündeki nesne yok edildiğinde parça da yok olur. is part of ilişkisi vardır. TitleBar is a part of Window

Kompozisyon(Composite) İlişki

Bağımlılık (Dependency) İlişkisi Sınıflar arasındaki en zayıf ilişkidir. İki sınıf arasında dependency ilişkisinin olması demek, bir sınıf diğer sınıfı kullanır ya da onun bilgisine sahiptir demektir. uses ilişkisi vardır. Sürekli bir ilişki yok. (transient relationship) Bağımlı sınıfın nesnesi diğer sınıfın nesnesini gerektiğinde kullanır.

Bağımlılık (Dependency) İlişkisi Window uses WindowClosingEvent

Genelleştirme (generalization) İlişkisi Sınıf genelleştirmesi yapmak amaçlı kullanılır. is a ilişkisi vardır. İlişki isimlendirilmez, multiplicity tanımlanmaz. UML çoklu kalıtımı destekler.

Arayüz (Interface) Kavramı Herhangi bir sınıfla ilişkisi olmayan ve standart bazı işlemleri yerine getiren sınıfa benzer yapılara arayüz denir. Arayüzlerin özellikleri yoktur. Sadece bazı işlemleri yerine getirmek için başka sınıflar tarafından kullanılırlar. Kesik çizgilerle ve çizginin ucunda boş bir üçgen olacak şekilde gösterilir. Gerçekleme(Realization)Bir sınıfın bir arayüze erişerek, arayüzün fonksiyonlarını gerçekleştirmesine denir.

Arayüz (Interface) Kavramı Arayüz kavramı, nesnelerin davranışlarını belirleyen kurallar bütünü olarak düşünülebilir. Ara yüzler kuralları belirlerler ancak, bu kuralların nasıl uygulanacağına karışmazlar. Bir sınıf, ilgili ara yüzün yordamlarını gerçekleyerek, ara yüzün belirlediği kurallara uymuş olur.

Arayüz (Interface) Kavramı

Arayüz (Interface) Kavramı Bir TuşaBasma arayüzü yapılarak istenirse Kumanda sınıfında, istenirse de Klavye sınıfında kullanılabilir.

Sınıf Diyagramları - ÖRNEKLER

Trafik Polisi oluşturur 1 * TrafikRaporu id : long 1..* 1 Suçlu isim: String tanım: String id : long tarih : Date raporlar 1..* Polis id : long Ceza ad : String derece : int id : long tanım: String

-MID: int -Ad: string -soyad: string -dtarih: date Musteri 1 0..* Siparis -SipId: int -Adet: int -Tanimi: string +KrediHesapla(int id, int miktar): double Adres Urun Kurumsal Musteri +KMID: int +Limit: double Bireysel Musteri +hesapla(int miktar, double limit): double

Sınıf İlişkileri Özet Tablosu