Title: Nesneye y
1Nesneye yönelIk analIz ve tasarima gIrIs
2GIRIS
- Nesneye Yönelik Analiz
- Ele alinan problemdeki nesneleri (kavramlari)
belirleyip tanimlama asamasi. Bu asamada amaç
problemi çözmek degil, anlamaktir. - Nesneye Yönelik Tasarim
- Yazilim asamasi için siniflar olusturulur.
Siniflarin içerikleri (özellik ve davranislar) ve
siniflar arasi iliskiler tam olarak tanimlanir. - Tasarim tamamlandiktan sonra nesneye yönelik bir
programla dili ile kodlama yapilir.
3BIR YAZILIMIN KALITESI
- Kullanici Açisindan
- Istenen isi dogru yapmasi
- Kolay kullanilabilir olmasi
- Gerektigi kadar hizli çalismasi
- Sistem kaynaklarini asiri kullanmamasi
- Saglam olmasi
- Kolay güncellenebilir olmasi
- Yazilim Gelistiren Açisindan
- Bakimi kolay olmali
- Proje yeterli bir sürede tamamlanmali
- Modüller, yeni projelerde tekrar kullanilabilmeli
- Gelistirme maliyeti düsük tutulabilmeli
4NESNEYE YÖNELIK ANALIZ VE TASARIM NEDEN GEREKLI?
- Problemler
- Donanim maliyetleri azalirken yazilim maliyetleri
artmakta - Yazilimlarin boyutlari ve karmasikliklari
artmakta - Bakim maliyetleri çok yüksek
- Donanim problemi çok azken, yazilim hatalari
siklasmakta
5NESNEYE YÖNELIK YÖNTEMIN YARARI
- Insanlar günlük hayattaki kavramlari, konusma
dili ile anlatirlar. - Programcilar, problemle ilgili kavram ve
varliklari, programlama dili ile bilgisayara
ifade etmeye çalisirlar. - Bunun için tasarim asamasinda, ifade etmeyi
saglayacak modeller olusturulur. Nesneye yönelik
yöntem, bu modellerin olusturulmasinda ve
gerektiginde sistemin güncellenmesinde avantajlar
saglar.
6YAPISAL PROGRAMLAMA YÖNTEMI
- BASIC, Pascal, C gibi diller destekler.
- Öncelikle, sistemin yapmasi gereken is
belirlenir. - Karmasik, büyük boyutlu isler ,daha küçük ve
basit islere bölünerek gerçeklenir. - Gerçek dünyanin modellenmesi (soyutlama),
fonksiyonlar ile yapilir.
7NESNEYE YÖNELIK PROGRAMLAMA YÖNTEMI
- Gerçek dünya, nesnelerden olusmaktadir.
- Çözülecek problemi olusturan nesneler, gerçek
dünyadaki yapilarina benzer sekilde bilgisayarda
modellenmelidir (Soyutlama, nesneler ile
yapilir). - Nesne
- Özellikler (Nitelikler veya durum bilgileri)
- Islemler (Davranislar ve yetenekler)
8YÖNTEMLERIN DEGERLENDIRILMESI-1
- Karmasik yapiyi fonksiyonlara bölmek
programlamayi kolaylastirabilir ancak karmasiklik
sadece boyutlara degil, birimler arasi iliskiler
ve bilgi akisi karmasikligina da baglidir. - Gerçek dünya sadece fonksiyonlardan olusmaz.
Sistemin gerçege yakin modelini yaratmak için
yapisal yöntemler yetersiz kalir.
9YÖNTEMLERIN DEGERLENDIRILMESI-2
- Tasarimda verilerin yerine fonksiyonel yapinin
agirlik kazanmasi, hatalar nedeniyle verilerin
bozulma olasiligini arttirir. Veri gizleme
olanaklari yapisal yöntemde kisitli olmasina
karsin, nesneye yönelik yöntemde özel
mekanizmalar bulunmaktadir. Ayrica veri ile
islemlere verilen agirliklar nesneye yönelik
yöntemde istenildigi gibi ayarlanabilir. - Sistemin ihtiyaçlarina cevap verecek boyut,
kapasite ve kabiliyette veri yapilari, ancak
nesneye yönelik yöntemle saglanabilir. - Güncellemeler gerektiginde, yeni eklentiler
yapmak ve eski ögeleri yeni eklenen unsurlarla
uyum içinde kullanmak yapisal programlamada
oldukça zordur.
10SONUÇ
- Analiz ve tasarim süreçleri boyunca sorulmasi
gereken soru Bu sistem ne is yapar? degil, Bu
sistem hangi nesnelerden olusur? olmalidir. - Nesneye Yönelik yöntem ile
- Gerçek dünya çok daha dogru ve gerçekçi bir
sekilde modellenebilir. - Daha kaliteli yazilimlar olusturulabilir.
- Günümüzün ve yakin gelecegin artan ihtiyaçlarina
daha uygun, takim çalismasina yatkin çalisma,
yönetme ve çözüm üretme olanaklari saglanabilir.
11Unified Modeling Language (UML)BütünlesIk
Modelleme DIlI
12YAZILIM MODELLENMESI
- Model gerçegin basitlestirilmis halidir.
- Model sayesinde anlasilmasi güç yazilimlari basit
bir dille ifade edebiliriz. Bu da yazilimin
anlasilmasini kolaylastirir, sistem
gereksinimlerini ve davranislarini daha iyi
anlamamizi ve hatalarimizi kolaylikla görüp en
düsük seviyeye indirgememizi saglar.
13UML NEDIR?
- UML yazilim mühendisliginde nesneye yönelik
sistemleri modellemede kullanilan açik standart
olmus bir görsel modelleme dilidir. - Yazilim gelistirmenin çözümlemeden bakima kadar
tüm asamalarinda ekipler ve bireyler arasindaki
iletisimin düzgün yürütülmesi için
kullanilmaktadir. - Yazilimin yasam döngüsü içinde farkli görev
gruplarinin projeye ve sisteme farkli bakis
açilari vardir. Bundan dolayi UML çesitli bakis
açilarini ifade eden diyagramlar içermektedir - Çok zengin bir dil olmasindan dolayi, Yazilim
Mühendisliginin bir çok yönden ihtiyaçlarini
karsilamaktadir.
14UMLNIN GELISIM SÜRECI
- 1989-1994 yillari yazilim mühendisliginde metot
savaslari olarak bilinen bir dönemdir. 90larin
ortalarina dogru öne çikan 3 yöntem vardir. - Booch Yaraticisi Grady Boochdur. Tasarim ve
gerçeklestirimde mükemmel. - OMT (Object Modelling Technology) Yaraticisi
Jim Rumbaugh. Analiz ve veri yogunlugu çok olan
sistemler için uygun - OOSE (Object Oriented Software Engineering)
Yaraticisi Ivar Jacobson. Use-Case adi verilen
güçlü bir teknik içeriyordu. - 1994-1995 yillarinda bu üç kisi (Üç Amigolar)
Rational Firmasi çatisi altinda toplanip kendi
yöntemlerinin olumlu taraflarini birlestirerek
UMLyi gelistirdiler. 1997de OMG(Object
Management Group) UMLyi sahiplendi ve açik
standart olarak gelistirmeye basladi.
15UMLNIN TARIHI
16UMLYE NEDEN GEREK VAR?
- Hatalarin kolaylikla fark edilip en düsük
seviyeye indirgenmesi.(Risk, zaman, maliyet) - Yazilim üretiminde basari oraninin düsük olmasi.
(16 ) - Yazilimda paylasim önemlidir. Tüm ekibin ayni
dili konusabilmesi gerekmektedir. - Sistemin tamamini basit bir dille ve görsellikle
görebilmek ve tasarlayabilmek gerekli. - Modellenmis ve dokümante edilmis bir yazilimin
tanitiminin kolay olmasi. - Yazilim kalitesini arttirma.
17UMLNIN AVANTAJLARI-1
- Kodlama kolayligi saglar.
- Kullanilan tekrar kod sayisi ayirt edilebilir bu
sayede verim saglanir. - Mantiksal hatalarin minimum seviyeye
düsürülmesini saglar. - Gelistirme maliyetinin düsmesini saglar.
- Resmin tamaminin görülmesini saglar.
18UMLNIN AVANTAJLARI-2
- UML diyagramlari ile yazilim tamamini
görebilecegimiz için verimli bellek kullanimi
saglanabilir. - Karmasik sistemlerde degisiklik yapmayi
kolaylastirir. - UML ile dokümanlastirilmis kodlari düzenlemek
daha az zaman alacaktir. - UML diyagramlarini kullanan yazilimcilar ayni
dili konusacaklarindan kolay iletisim saglanir.
19UML DIYAGRAMLARI
- Use Case Diyagramlari (Kullanim Vakalari
Diyagramlari) - Class Diyagramlari (Sinif Diyagramlari)
- State Diyagramlari (Durum Diyagramlari)
- Sequence Diyagramlari (Ardisil Diyagram)
- Colloboration Diyagramlari (Etkilesim
Diyagramlari) - Package Diyagramlari (Paket Diyagramlari)
- Component Diyagramlari (Bilesen Diyagramlari)
- Deployment Diyagramlari (Dagitim Diyagramlari)
20USE CASE DIYAGRAMLARI
- Analiz asamasinda Use Case Diyagramlari
kullanilir. - Tasarim asamasinda ise modellerin 3 tipi ortaya
konulur. - Sinif Diyagramlari
- Durum Diyagramlari
- Etkilesim Diyagramlari (Sequence ve Colloboration
Diyagramlari)
21USE CASE DIYAGRAMLARI
- Sistemin çok basit bir sekilde modellenmesini ve
islerin detayinin(senaryonun) metin olarak
anlatilmasini içerir. - Aktörden gelen bazi isteklere karsi sistemin
yaptigi aktiviteleri gösterir. - Gelismenin erken safhalarinda yapilandirilir.
- Amaç
- Sistemin içerigini belirtmek.
- Sistemin gereksinimlerini elde etmek.
- Sistemin mimarisini geçerli kilmak.
- Analistler ve uzmanlar tarafindan gelistirilir.
22USE CASE DIYAGRAMLARI BILESENLERI
- Aktör
- Aktörler genelde belirli bir rol ifade ederler.
- Diger aktörlerle baglantili olabilirler bu
baglanti bir ok ile gösterilir. - Sistem sinirlari disinda gösterilir.
23USE CASE DIYAGRAMLARI BILESENLERI
Use case
- Use case
- Sistem fonksiyonelliginin büyük bir parçasini
gösterir. - Diger bir use case ile genisletilebilir.
- Diger bir use case içerebilir.
- Sistem sinirlari içinde gösterilir.
24USE CASE DIYAGRAMLARI BILESENLERI
- Sistem siniri
- Içerisinde sistemin ismi yazilidir.
- Sistemin kapsamini gösterir.
- Baginti iliskisi
- Aktör ve use case ler arasindaki
- bagintiyi gösteren çizgidir.
Sistem
25USE CASE DIYAGRAMLARI BILESENLERI
- Inclusion(içerme)Bu metotla bir use case
içindeki adimlardan birini baska bir use case
içinde kullanabiliriz. - Inclusion yöntemini kullanmak için ltltincludegtgt
seklindeki bir ifade kullanilir. - Kullanmak istedigimiz use case 'ler arasina
çektigimiz noktali çizginin üzerine ltltincludegtgt
yazisini yazariz. - Extension(eklenti)
- Bu metodla varolan bir Use Case 'e yeni yeni
adimlar ekleyerek yeni use case 'ler yaratilir. - Inclusion'da oldugu gibi extension 'lari
göstermek için yine use case 'ler arasina noktali
çizgiler konur ve üzerine ltltextensiongtgt ibaresi
yazilir.
26USE CASE DIYAGRAMLARI BILESENLERI
- Genelleme iliskisi
- Özellesmis use case ile daha genel use case
arasindaki iliskidir. - Özellesmis use case den temel use case e dogru
bir ok ile gösterilir.