
Bir sistemin analizi yada yeni bir yazılım yaratımı müşteriden gelen talep ile olur. Müşteri yazılımcıya ihtiyaçlarını ifade eder ve yazılımcı talebe tam olarak cevap verebilecek yazılımın algoritmasını oluşturur.
İhtiyaçların belirlemesinde sorulabilecek sorular:
Problemin kapsamı:
· Yazılım ne için?
· Yazılıma neden ihtiyaç duyulmuştur?
İhtiyaçlar:
· Düşünülen kullanıcı tipi kimlerdir?
· Sistem neler yapabilmelidir?
· Ara yüze konulacaklar?
Uygulama kontexti:
· Düşünülen donanım nedir?
· Düşünülen işletim sistemi nedir?
Kabullenişler:
· Hangi kabullenişler sistemin tasarlandığı şekilde çalışmasını sağlar?
· Performans
· Yanıt süresi,
· Hafıza ve disk yeri talebi,
· Cpu talebi nelerdir?

Prosedüre yönelik Analiz nedir?
Prosedüre yönelimli analiz sistemi etkileşimdeki prosürlerle datayı ayrı olarak düşünür. Örneğin C dilinde datalar Structure’lara function’larda prosedürlere denk gelir.
Burada data dictionary kayıtlı olan prosedürlerin kullandığı bilginin tanımlarını içerir. Bu yaklaşım programcıyı , sistem bileşenlerini , bileşenler arasındaki ilişkileri ve nasıl bileşenlerle sistemin tasarlanıp işleneceği konusundan uzaklaştırır. Bu analiz tipinde prosedürlerden gelen tüm bilgi tek bir mantıksal analiz dökumanı içerisinde saklanır.
Nesneye yönelimli analiz nedir?
Bu sorunun cevabını verebilmek için ilk önce nesnenin ne demek olduğuna bir göz atalım. Geleneksel olarak programcılıkta bilgi ve kod bir birinden ayrı tutulur fakat nesneye yönelimli programlamada data ve tek bir görünür nesne haline gelmiştir. Bu şekilde data ve kod paketleri halindeki nesneler birbirleriyle mesajlar aracılığıyla iletişim kurarlar. Bir nesnenin yapabileceği her şey bu mesaj ara yüzleriyle temsil edilir böylece bir nesneyi kullanmak için içinde neler olduğunu bilmek zorunda kalmayız bu bize daha sonra nesneler üzerinde yapabileceğimiz değişiklikler açısından esneklik sağlar. Bu şekilde nesnelere sadece mesajlar üzerinden erişim sağlayarak bir tür data gizliliği sağlanır buna kapsülleme (encapsulation) denir.
Tüm bu yapılanların amacı yazılımı en kolay şekilde nasıl tekrar yazabileceğimiz sorusana cevap vermektir. Unutmamak gerekir ki “yazılım yazılmaz yeniden yazılır(Software is not written , its rewritten)”. Nesneye yönelimli programlamada amaç programı küçük sınıflara ayırarak sistemin esnekliğini artırmak buna bağlı tekrar yazma gibi durumları ortadan kaldırarak yazılım geliştirme sürecine en aza indirmektir ve dolasıyla masrafları düşürmektir.
Nesneye yönelik programlamada anlamamız gereken bir başka konuda sınıflardır. Kısaca söylemek gerekirse nesneler sınıfların tekil birer örnekleridir. Bu ne demektir? Bir örnekle konuya açıklık getirelim mesela elimizde bir ev sınıfı olsun bizde ev sınıfından pencere diye bir nesne çağıralım. Pencere bir ev sınıfı nesnesi örneğidir, ev sınıfı bu nesnenin yapabileceği işleri ve kendisini tanımlar. Bir sınıf birden fazla nesne üretebilir ve ev sınıfı nesnelerinin anlayabileceği mesajlar üretir. Bu tip sınıflardan nesne örnekleri yaratma olayına nesneye yönelik programlamada”Factory” denir. Nesnelerin gönderdikleri mesajlar içindeki kodlara verilen addır ve bu mesajlarla genelde argumanlarda yollanır bunlar genelde nesnenin neyi,ne zaman ne kadar yapacağı gibi sorulardır. Örnek olarak bir temizle mesajı “hangi pencere” veya “ne zaman” sorularının cevaplarıyla gelebilir.
Nesneye yönelik programlamada yaratmamış olduğumuz sınıfları daha spesifik alt sınıflara ayırabiliriz. Bunlara alt sınıflar(sub classes) denir, alt sınıflar yaratılığı atasına (parent class) ait tüm var olan mesajları ve davranışları da alır bu olaya miras (İnheritance) denir. Yani daha üst sınıflara ait mesajlar yeniden(reuse) kullanılabilir ve kendi alt sınıfımıza ait spesifik yeni mesajlar yaratabiliriz. Mesela ev sınıfımızdan bir oda alt sınıfı yaratalım ev sınıfından kalma bir evde “renk” mesajı oda sınıfında kullanılabilir veya oda için “yatak” gibi bir yeni mesaj tanımlayabiliriz.
Piyasada nesne yönelimli bir çok programlama dili vardır özellikle bu sayı her gün artan yeni internet yazılım geliştirme ortamıyla büyük bir artış göstermiştir. Ancak eskiden beri gelmiş kabul gören ve çok kullanılan üç programla dili vardır.
· C++: C’nin Object oriented versiyonudur.
· Java: Sun microsystems’in geliştirmiş olduğu bu dilin İBM, Microsoft, Symantec gibi versiyonlarıda bulıunmaktadır. Bu dilin çok tutulmasının nedeni internet ve internet uygulamalarında ve web browserlarla son derce uyumlu ve güvenilir olarak çalışabilir olmasıdır.
· Smalltalk: Tam standardı oturmamıştır bu yüzden üç ayrı ticari sürümü vardır.
VisualWorks ParcPlace-Digitalk, Inc.
Smalltalk/V and Visual Smalltalk f ParcPlace-Digitalk Inc.
VisualAge IBM
Nesneye yönelimli analiz bir nesneye yönelimli sistem analiz tekniğidir. Birbiriyle iletişimde olan nesnelerin esas karakteristiğini ortaya koymada etkili bir tekniktir. Temel kavramları sistem bilgisinin biçimsel tanımı ve davranış biçimi modellemedir. Burada datalar arası ilişkiler mesajlarla , argümanlar aracılığıyla yapılan metotlarla olur.
Mesajların içerdiği metotlar gittiği yerdeki mesaj alıcı tarafından işlenir. Oo analizin temel kavramları sistem bilgisinin formal tanımına ve davranış biçimi modellemeye dayanır. NYA’de modellenen tüm bileşenler sistemin önemini kavratacak şekilde tasarlanır yani sistem nasıl uygulanacağı sorusu yerine gerçek ne olduğu sorusu üzerine inşa edilir
Nesneye yönelik analiz , prosedüre yönelik analizden farklı olarak sistemi “nasıl” sorusundan ziyade ne sorusu üzerine inşa eder böylece erken bir tasarım aşamasına geçişten programcıyı alı koyar.
Hiç yorum yok:
Yorum Gönder