- Soyutlama, bir şeyin en önemli özelliklerini ön plana çıkarırken, önemli olmayan özelliklerini bastırmaktır, görmezden gelmektir
Neden Soyutlama?
- Çünkü zihnimiz bu haliyle soyutlama yapmadan bir nesneyi tüm yönleriyle kavrayamaz.
- Dolayısıyla soyutlama, bir indirgemedir, basitleştirmedir ya da genellemedir.
- Haritalar, soyutlamaya mükemmel bir örnektirler:
- Farklı türdeki haritalar, aynı gerçekliğin farklı yönlerini betimlerler, amaçları dışındaki özellikleri göstermezler.
- Soyutlamalar, bir şeyin “ne”liği üzerine yoğunlaşır, “nasıl”lık üzerine eğilmez.
- Araba’yı algılamak için, motor yapısını bilmeye gerek yoktur,
- Ya da bir insanla ortaklık kurmak için onun DNA dizilerini bilmeye de gerek yoktur.
Model
- Bir şey ile ilgili farklı açılardan ya da ilgi alanlarından yapılan soyutlamaların bütününe model denir.
- Modeller, bir nesneyi ya da olguyu daha bütünsel olarak ifade ederler, çünkü birden fazla soyutlama barındırırlar.
Sınıflandırma
- Soyutlamayı yönlendiren ilgi alanları ya da kriterler çerçevesinde kategori oluşturmaya sınıflandırma (classification) denir.
- Böylece nesneler, olgular, duygular vs. hepsi belli sınıflara ait hale gelirler.
Soyutlama ve Programlama
- Programlama dilleri de birer soyutlamadır hatta modeldir:
- Değişkenler ve veri tipleri
- Operatörler ve kontrol yapıları
- Fonksiyonlar
- Sınıflar, modüller vs.
Yazılım Mühendisliği ve Modeller
- Yazlım geliştirme süreci en temelde üç modelden oluşur:
- Analiz (Analysis): Bu ihtiyacın modelidir.
- Tasarım (Design): Bu ihtiyacın çözümünün modelidir.
- Gerçekleştirme (Implementation): Bu da çalışan modeldir
- Analiz modeli , ihtiyacın ne olduğunu anlamaya yöneliktir.
- Tasarım modeli , ihtiyacın nasıl yerine getirileceğini ortaya koyar. Mimari tasarım da bu modelin içindedir.
- Gerçekleştirme de, analizde detaylandırılan ihtiyaçların tasarımda ortaya konan çözüm modelini bir programlama dili ile kodlanır.
Modellemenin Zorlukları
- Sınırı yoktur, sonsuz sayıda ve derinlikte modelleroluşturulabilir.
- Mutlak doğru model ancak gerçekliğin kendisidir.
- Modellerin testini yapmak zordur.
Başarılı Yazılım
- En iyi, başarılı yazılım, ihtiyaçlarını tam ve doğru olarak yerine getirendir.
- Ayrıca yazılım geliştirmenin prensipleri, yazılım modelleri de iyi bilinmeli ve uygulanmalıdır.
Nesne (Object)
- Nesne, insan zihninin algıladığı herhangi bir kavramsal ya da fiziksel şeydir
- Nesnelerin özellikleri vardır ve bu özellikler nesnelerin durumlarını (state) ve davranışlarını (behavior) ifade eder