Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanTorumtay Birkan Değiştirilmiş 10 yıl önce
1
NESNEYE YÖNELİK PROGRAMLAMA Nesneye Yönelik Yazılım Geliştirme Süreci Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü
2
Yazılım geliştirme aşamaları •Analiz •Tasarım •Kodlama •Test •Bakım
3
Yazılım geliştirme aşamaları Analiz Tasarım Kodlama Sistem testi Bakım
4
Analiz •Yazılımın “ne yapacağı” bu aşamada belirlenir. •Yazılacak programın hedefleri saptanır.
5
Tasarım •Yazılımın “nasıl yapılacağı”na karar verilir. İki aşamadan oluşur: 1.Programın mantıksal tasarımı yapılır. 2.Sonrasında ayrıntılı tasarımı gerçekleştirilir.
6
Kodlama •Programın yazılacağı programlama dili belirlenir. •Program yazılır. •Kodlama sürecinde yazılan programın istenileni karşılayıp karşılamadığı sürekli test edilir.
7
Test •Elde edilen yazılımın sınama ve doğrulama aşamasıdır. •Yazılımın belirlenen gereksinimleri sağlayıp sağlamadığı ve gerçekleştirimin beklentileri karşılayıp karşılamadığı test edilir.
8
Bakım •Yazılım kullanılmaya başlandıktan sonraki yazılımın desteklenmesi aşamasıdır. •Yazılımdaki eksikliklerin ve hataların giderilmesi, performans iyileştirmesi vb. alt aşamaları içerir.
9
Yazılım Geliştirmede Sorunlar •Başarılı bir yazılım geliştirme: ▫Zamana ihtiyaç duyar ▫Zordur. ▫Maliyeti yüksektir.
10
Yazılım Geliştirmede Zorluklar •Yazılım boyutunun ve karmaşıklığının artması. •Yazılımların yaşayan varlıklar olması ve sürekli gelişmesi gerekliliği. Kullanıcıların ihtiyaçlarının değişmesi, işin yapılış biçiminin değişmesi, donanım yükseltmesi, yeni teknolojilerin gelişmesi gibi nedenlerden dolayı yazılımlarda değişiklik yapılması gerekebilir. •Kullanıcı beklentilerinin üst düzeyde olması.
11
PROSEDÜREL ANALİZ-TASARIM •Prosedürel programlama yaklaşımında, ▫İlk adım programdan beklenen işlevselliği belirlemektir. Yanıtlanması gereken, “Bu program ne yapacak?” sorusudur. ▫Ardından, istenileni gerçekleştirmesi için programın atması gereken temel adımlar yüksek-düzeyli “pseudo” kodlar ya da akış diyagramları yardımıyla belirlenir. ▫Sonrasında, her temel adım daha küçük adımlara bölünerek tasarım daha rafine hale getirilir. •Bu yaklaşıma, prosedürel ayrıştırma (“procedural decomposition”) denir.
12
NESNEYE YÖNELİK YAZILIM GELİŞTİRME AŞAMALARI
13
NESNEYE-YÖNELİK ANALİZ-TASARIM •Nesneye-yönelik tasarım, prosedürel yaklaşımdan köklü olarak ayrılır. •Nesneye-yönelik yaklaşımda problem, ▫İşlemlere yada veri yapılarına bölünmez; ▫Birbirleriyle etkileşen bir nesneler sistemi olarak analiz edilir. •Ayrıca, prosedürel yaklaşım yukarıdan-aşağıya işleyen bir analiz tekniği olmasına rağmen, nesneye yönelik yaklaşım yukarıdan-aşağıya analiz ve aşağıdan-yukarıya sentez tekniklerini birleştirir.
14
NESNEYE YÖNELİK PROGRAMLAMA •Gerçek dünya nesnelerden oluşmaktadır. Bu bakış açısıyla nesneye yönelik geliştirilecek bir yazılımda çözülmek istenen problemi oluşturan nesneler gerçek dünyadaki yapılarına uyumlu bir şekilde bilgisayarda modellenir. •Her nesne belli bir sorumluluğa göre tasarlanır. •Nesneler iki kısımdan oluşur: 1.Nitelikler (özellikler) 2.Davranışlar (sorumluluklar)
15
NESNEYE-YÖNELİK TASARIM •Nesneye-yönelik tasarım (“iterative” yani tekrarlamalı olarak) şunların yapılmasını gerektirir: ▫Sınıfların belirlenmesi, ▫Özelliklerin ve davranışların tespiti, ▫Sınıflar arası ilişkilerin bulunması ve ▫Sınıfların bir hiyerarşi içinde organize edilmesi.
16
SINIFLARIN BELİRLENMESİ •Nesneye-yönelik tasarımda ilk adım programın ihtiyaç duyacağı sınıfların belirlenmesidir. •Bunun için kullanılabilecek basit bir teknik, ▫programdan beklenenin doğal dil ile betimlenmesi, ▫betimleme içindeki isimlerin listelenmesi ve ▫bu liste içinde sınıfların seçilmesidir. •Sınıflar en kolay olarak fiziksel nesneleri modelleyen programlar için belirlenir. Fakat, kavramsal nesneler yada olaylar veya etkileşimler söz konusu olduğunda bu işlem daha zor gerçekleştirilir. •Ayrıca, problem modeli içindeki elemanlara karşılık gelen sınıflar tespit edildikten sonra bu sınıfları gerçekleştirmek için de yeni sınıflar tasarlamak gerekebilir.
17
Nesneye Yönelik Programlama Örnekleri Verilen bazı program örneklerinde modellenebilecek nesneler şunlar olabilir: •İnsan kaynakları ile ilgili bir programda; memur, işçi, müdür, genel müdür. •Grafik programında; nokta, çizgi, çember, silindir. •Matematiksel işlemler yapan programda; karmaşık sayılar, matris. •Kullanıcı arayüzü programında; pencere, menü, çerçeve.
18
Nesneye yönelik programlama örneği Nesne Örneği: Grafik Programındaki nokta •Düzlemdeki bir noktanın özellikleri; x-y koordinatlarıdır. •Davranışları ise, noktanın düzlemde yer değiştirmesi, renginin değişmesi,ekranda görünmesi ve ekranda kaybolmasıdır. •Buna göre, örnek olarak düşünülen Nokta modeli şu bölümlerden oluşacaktır: x ve y koordinatları için iki adet tamsayı değişken: x, y Noktanın koordinatlarını değiştirerek düzlemde yer değiştirmesini etmesini sağlayan fonksiyon: hareket Noktanın ekranda görünmesini sağlayan bir fonksiyon: gorun Noktanın ekrandan silinmesini sağlayan bir fonksiyon: kaybol Model bir defa oluşturulduktan sonra, ana programda bu modelden bir çok nesne yaratılabilir. Nokta nokta1, nokta2, nokta3; : nokta1.hareket(50,30); nokta1.gorun();
19
ÖZELLİKLERİN VE DAVRANIŞLARIN TESPİTİ •Bir kez sınıflar belirlendikten sonra ikinci adım, her sınıfa ait sorumlulukların belirlenmesidir. Bir sınıfın sorumlulukları iki alanda ortaya çıkar: ▫Taşıması gereken bilgiler (“Sınıfa ait bir nesnenin neleri bileceği”) ve ▫Sınıfa ait bir nesnenin neler yapabileceği yada bu nesneye neler yapılabileceği. •Her sınıf kendisini betimleyen bazı özelliklere sahiptir. Sınıfa ait bir nesnenin özellik değerleri nesnenin içinde bulunduğu durumu (“state”) belirler. Özellik değerleri hiç değişmeyeceği gibi sık sık da değişebilir. Her nesne içinde bulunduğu durumu hatırlamak zorundadır.
20
ÖZELLİKLERİN VE DAVRANIŞLARIN TESPİTİ •Her sınıf, ayrıca, nesnelerin diğer nesnelerle nasıl etkileştiğine ve bu etkileşim neticesinde içinde bulundukları durumların nasıl değiştiğine karşılık gelen davranışlara sahiptir.
21
SINIFLAR ARASI İLİŞKİLERİN BULUNMASI •Bir önceki adımın hemen sonrasında, sınıfların birbirlerinin özelliklerini nasıl kullanacağına karar vermek gelir. Sınıfların bir kısmı yalıtılmış halde bulunabilirken, büyük bir çoğunluğu diğerleriyle işbirliği ve bağımlılık ilişkisi içindedirler. •Bir sınıf bir diğerine çeşitli şekillerde bağımlı olabilir: ▫Diğer bir sınıfın eleman fonksiyonlarını kullanması gerekebilir; ▫Diğer bir sınıf kendi içine gömülmüş olabilir; ▫Sınıfın arayüzü bir diğer sınıfa bağımlı olabilir vs. •Sınıflar arası ilişkileri belirlerken sınıfların davranışlarını yerine getirirken, birbirlerinin bilgilerini ve davranışlarını kullanıp kullanmadıklarına bakılır.
22
SINIFLARIN BİR HİYERARŞİ İÇİNDE ORGANİZE EDİLMESİ •Sınıf hiyerarşilerinin yaratılması, birinci adımın (sınıflarının belirlenmesinin) devamı niteliğinde bir işlemdir; fakat, ikinci ve üçüncü adımlarda edinilen bilgilere de gereksinim duyar. Sınıfların özelliklerini ve davranışlarını tespit ederek, aralarındaki benzerlik ve farkları daha iyi görürüz; ayrıca, sınıflar arası ilişkileri bularak da hangi sınıfların diğerlerinin işlevselliğine bağımlı olduğunu açığa çıkarırız. •Bir sınıfın farklı kategorilerinin tespiti, bir hiyerarşi için yeterli koşulu oluşturmaz. Gerekli koşul farklı kategorilere farklı işlemlerin yapılacak olmasıdır.
23
UML •Nesneye yönelik tasarım sona erdiğinde, nesneye yönelik bir model ortaya çıkar. Bu modellerin ifade edilmesi için çeşitli görsel modelleme dilleri kullanılmaktadır. •En bilinen görsel modelleme dili Unified Modelling Language (UML)’dir. •Tasarım aşaması sistemin çeşitli şekildeki görünüşlerini gösteren UML diyagramları ile biter.
24
Nesneye Yönelik Yaklaşımın Değerlendirilmesi •Gerçek dünya nesnelerden oluştuğundan bu yaklaşım ile sistemin daha gerçekçi bir modeli oluşturulabilir. Program daha anlaşılır olur. •Nesne modellerinin içindeki veriler sadece üye fonksiyonların erişebileceği şekilde düzenlenebilirler. Veri saklama denilen bu özellik sayesinde verilerin herhangi bir fonksiyon tarafından bozulması önlenir. •Programcılar kendi veri tiplerini yaratabilirler. •Bir nesne modeli oluşturduktan sonra bu modeli çeşitli şekillerde defalarca kullanmak mümkündür. •Programları güncellemek daha kolaydır. •Nesneye dayalı yöntem takım çalışmaları için uygundur.
25
Kaynaklar •http://yilmazkilicaslan.trakya.edu.tr/teaching.htmlhttp://yilmazkilicaslan.trakya.edu.tr/teaching.html •http://web.itu.edu.tr/~bkurt/Courses/bte521/mod01_2 spp.pdfhttp://web.itu.edu.tr/~bkurt/Courses/bte521/mod01_2 spp.pdf
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.