**Nesne Yönelimli Çözümleme ve Tasarım** (İngilizce - Object Oriented Analysis and Design (OOAD)), bir sistemin/sistem modülleri setinin/organizasyonun/işletme biriminin gereksinimlerinin çözümlenmesinde ve uygun bir çözümün tasarımında nesne ile modelleme tekniklerini kullanır. Modern nesne yönelimli çözümleme ve tasarım yöntemlerinin çoğu, gereksinim, tasarım, uygulama, test ve dağıtım süreçleri boyunca kullanım senaryoları üzerine kuruludur. Kullanım Senaryoları, nesne yönelimli programlama ile birlikte ortaya çıkmış olmasına rağmen yordamsal programlanan sistemlerde de işe yaramaktadır.

Nesne Yönelimli Sistemler
-------------------------

***Nesne yönelimli sistem*** nesnelerden oluşur. Nesneler arasındaki iş birliği, sistemin davranışını belirler. Tüm nesnelerin durumlarını kapsayan bileşke bir durum ise sistemin durumu olarak düşünülebilir. Nesnelerin birbirine gönderdikleri mesajlar, nesneler arası iş birliğinin temelini oluşturur. Mesajlar modellenen sisteme göre farklılık gösterebilir. Örneğin, bazı sistemlerde soket üzerinden veri iletimine benzer şekilde mesajlaşmalar gerçekleşebilir.

Çözümleme (Analiz)
------------------

**Nesne Yönelimli Çözümleme** (**NYÇ**) problem alanını, nesne yönelimli bir sistem geliştirerek modeller.

Analiz işlemi için kullanılacak kaynaklar, yazılı gereksinimler ve kullanım senaryolarından oluşur. Sistemin nasıl kurulacağını uygulama kısıtlamaları belirler. Bu nedenle analiz modelinde dikkate alınmayan unsurlar: eşgüdüm, dağıtılmış bilgi işleme, kalıcılık, kalıtım gibi uygulama kısıtlamalarıdır.

Sistem modeli, farklı iş, farklı teknolojik veya kavramsal alanları temsil eden ve birbirinden bağımsız çözümlenen parçalara ayrılabilir.

Kavramlar ve kavramların ilişkilerini (kavramsal modeller) kullanarak gerçekleştirilen nesne yönelimli analizin çıktısı kurulacak sistemi tanımlar.

Tasarım
-------

**Nesne Yönelimli Tasarım** (**NYT**), problemin mantıksal çözümlerinin arandığı bir etkinlik olarak tanımlanabilir.

Nesne yönelimli tasarım, nesne yönelimli çözümlemenin çıktısı olan kavramsal modeli alır ve tasarımın temeli olarak seçilen mimari kararlarla birlikte ortamdan, programlama dilinden ve seçilen araçlardan gelen uygulama kısıtlamalarını bu model üzerine uygular.

Kavramsal modeldeki kavramlar - niteliklerine göre - sınıflara, API'lerin soyut arayüzlerine ve nesnelerin değişik durumlarda gerçekleştirecekleri rollere yansıtılır:

* Nesne yönelimli çözümlemedeki değişmez kavramlar, tekrar kullanılabilir arayüzleri ve uygulamaları oluşturur.
* Nesne yönelimli çözümlemedeki değişken kavramlar, karar veren, ortama özgü veya duruma özgü mantık veya algoritmaları uygulayan sınıfları oluşturur

Nesne yönelimli tasarım sonucunda, nesneleri kullanarak sistemin nasıl yapılandırılacağının detaylı bir tanımı verilir.

Tümleşik Modelleme Dili
-----------------------

Tümleşik Modelleme Dili (TMD) Nesne Yönelimli Çözümleme ve Tasarımda kullanılan standart bir modelleme dili olmuştur.

Ayrıca bakınız
--------------

* Nesne tabanlı programlama dili
* Tasarım Şablonları
* CORBA

| * g
* t
* d
Yazılım mühendisliği |
| --- |
| Alanlar | Gereksinim çözümlemesi • Yazılım tasarımı • Programlama • Biçimsel yöntemler • Yazılım testi • Yazılım sistemleri • Yazılım dağıtımı • Yazılım bakımı  |
| Kavramlar | Veri modelleme • Kurumsal mimari • Functional specification • Modelleme dili • Programlama paradigması • Yazılım • Yazılım mimarisi • Yazılım geliştirme yöntembilimi • Yazılım geliştirme süreci • Yazılımın niteliği • Yazılım kalite güvencesi • Yapısal analiz  |
| Yönelimler | Atik • Aspect-oriented • Nesne yönelimli • Ontoloji • Servis odaklı • SDLC |
| Modeller | *Geliştirme modelleri*: Atik • Yinelemeli model • RUP • Scrum • Spiral model • Waterfall model • XP • V-Model
*Diğer modeller*: CMMI • Veri modeli • İşlev modeli • IDEF • Bilgi modeli • Metamodeling • Nesne modeli • Görünüm modeli • UML  |
| Yazılımmühendisleri | Victor Basili • Dennis Ritchie • Kent Beck • Peter Chen • Grady Booch • Fred Brooks • Barry Boehm • Bjarne Stroustrup • Ward Cunningham • Ole-Johan Dahl • Tom DeMarco • Edsger Dijkstra • Martin Fowler • C. A. R. Hoare • Watts Humphrey • Michael A. Jackson • Ivar Jacobson • Craig Larman • James Martin • Bertrand Meyer • David Parnas • Winston W. Royce • James Rumbaugh • Danese Cooper • Niklaus Wirth • Edward Yourdon |
| İlgili alanlar | Bilgisayar bilimi • Bilgisayar mühendisliği • İşletme mühendisliği • Geçmiş • Matematik • Proje yönetimi • Risk yönetimi • Sistem mühendisliği |