İçeriğe atla

Nesne yönelimli çözümleme ve tasarım

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

İlgili Araştırma Makaleleri

Tasarım desenleri, tasarım kalıpları, tasarım örüntüleri veya tasarım şablonları, çok rastlanan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir.

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

Tasarım bir planın, bir nesnenin ya da bir inşa sürecinin meydana getirilmesine denir. Elizabeth Adams Hurwitz tarafından kısa ve öz olarak “gerekli olanın araştırılması” şeklinde tanımlanmıştır. Genellikle tatbikî sanatlar ve görsel sanatlar, mühendislik, mimarî, peyzaj ve diğer yaratıcı işler çerçevesinde ele alınır. Hem bir isim, hem de bir fiil (tasarlamak) olarak kullanılır. Tasarlamak, yeni bir nesne veya ürün, mekân ve alan için bir plan oluşturma ve geliştirme sürecine işaret eder. Tasarı ise hem son plan veya taslak ya da bir plan veya taslağın sonucu için kullanılır.

Kullanım senaryosu, sistemlerin fonksiyonel ihtiyaçlarını kapsamak için yazılım ve sistem mühendisliğinde kullanılan bir tekniktir. Aktörlerin sistemle etkileşimini tanımlayan senaryolardır.

Programlama dizisinde nesne-yönelimli programlamada, nesne, basit yapılı blok programları olarak kullanılan, işletim zamanı verilerinin saklanması için oluşturulmuş özel birimidir. Programın işlemlerde bir koleksiyon gibi veya programın bilgisayarda komutlar listesi gibi basitçe göründüğü geleneksel bakış açısının tersine, bu nesneler birbiri üzerinde rol oynar. Her nesne mesaj alımına, veriyi işlemeye ve diğer nesnelere veri aktarımına yatkındır. Her nesne farklı rollerde ve sorumluluklarda yer alan veya bağımsız küçük makineler olarak gözlemlenebilir.

Programlama dili teorisi (PDT), programlama dilleri olarak bilinen biçimsel dillerin ve bunların bireysel özelliklerinin tasarımı, uygulanması, analizi, karakterizasyonu ve sınıflandırılması ile ilgilenen bir bilgisayar bilimleri dalıdır. Matematik, yazılım mühendisliği, dilbilim ve hatta bilişsel bilime bağlı ve onu etkileyen bilgisayar bilimi disiplinine girer. PDT'ye adanmış çok sayıda dergide ve genel bilgisayar bilimi ve mühendisliği yayınlarında yayınlanan sonuçlarla tanınmış bir bilgisayar bilimi dalı ve aktif bir araştırma alanı haline gelmiştir.

<span class="mw-page-title-main">Sınıf (programlama)</span> nesne yönelimli programlamada, bir nesnenin nasıl çalıştığını belirten bir tanım

Sınıf, nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Bir sınıftan türetilmiş bir nesne ise o sınıfın örneği olarak tanımlanır. Sınıflar genelde şahıs, yer ya da bir nesnenin ismini temsil ederler. Sınıflar metotları ile nesnelerin davranışlarını, değişkenleri ile ise nesnelerin durumlarını kapsül ederler. Sınıflar hem veri yapısına hem de bir ara yüze sahiptirler. Sınıflar ile nasıl etkileşime girileceği bu ara yüzler sayesinde sağlanır. Örneğin bir sınıf şablonu ile renk özelliğine, tekerleklere ve sür metoduna sahip olan bir araba temsil edebilir.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Sistem çözümlemesi ve tasarımı</span>

Sistem çözümlemesi ve tasarımı, bir bilişim sisteminin hangi verileri, hangi kullanıcılar için ve nasıl işlemesi gerektiğini irdeleme; sistemin girdilerini, mantığını, çıktılarını ve bileşenlerini betimleme; ve sistemi meydana getirerek çalıştırma aşamalarını inceleyen bilgi alanıdır. Bu sürece sistem yaşam döngüsü adı da verilmektedir. Her bilişim sistemi, insan yapımı diğer pek çok sistem gibi, beş aşamalı bir yaşam döngüsünden geçmektedir:

  1. Planlama,
  2. Çözümleme,
  3. Tasarım,
  4. Gerçekleştirme,
  5. Kullanım ve bakım.

Programlama dillerinde gerçekleştirme, yarım bırakılmış bir öğe tanımının tamamlanmasıdır. Öğe tanımının eksik bırakılan kısmı gerçekleştirim ayrıntısı olarak adlandırılırken, kullanıcı ile paylaşılan kısmı kullanıcı-gerçekleştirimci arayüzü olarak adlandırılır. Bu ayrımın yapılmasının başlıca nedeni, kullanıcı ve gerçekleştirimci kodları arasındaki bağımlılıkları azaltıp değişme olasılığı düşük öğelere indirgemektir. Aynı anlayış, herhangi bir ürünün arayüz-gerçekleştirim ayrımında da görülür. Örneğin, bir müzikçaların kullanımında, kullanıcıyı ilgilendiren konsol üstündeki düğmelerdir; düğmelere basıldığında veya düğmeler çevrildiğinde kutunun içinde olanlar—yani gerçekleştirim—kullanıcı için ayrıntıdır ve kullanıcıdan saklanmalıdır. Bir diğer deyişle, gerçekleştirimci ürün arayüzünü kullanıcıyla paylaşırken, arayüzü tamamlayan gerçekleştirimi kullanıcıya sunmamalıdır.

<span class="mw-page-title-main">V-Model (Yazılım geliştirme)</span>

V-model şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.

<span class="mw-page-title-main">İşlev modeli</span>

Sistem ve yazılım mühendisliğindeki işlev modeli modellenen sistem veya konu alanının işlevlerinin yapısal temsilidir.

Kavramsal model bir sistemin temsilidir ve modelin temsil ettiği sistemin insanların daha rahat bir şekilde anlamalarına yardımcı olur. Örneğin, montajı yapılarak oluşturulan bir oyuncak model temsil ettiği objenin çalışmasını modelini oluşturacak bir şekilde çalışabilir.

<span class="mw-page-title-main">Gereksinim çözümleme</span>

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

<span class="mw-page-title-main">Sistemler Modelleme</span>

Sistemleri modelleme veya sistem modelleme iş ve bilgi teknolojileri (IT) gelişiminde sistemleri inşa etmek ve kavramsallaştırmak için modellerin kullanımının disiplinlerarası çalışmasıdır.

Yazılım, hümanistik (insani), bilimsel teoriler, yönetim ve organizasyon gibi çeşitli alanlarda kullanılan, yukarıdan aşağıya ve aşağıdan yukarıyanın her ikisi de bilgi işleme ve bilgi sıralama stratejisidir. Pratikte, bir düşünce, öğretim veya liderlik biçimi olarak görülebilirler.

<span class="mw-page-title-main">Kristen Nygaard</span> Norveçli bilgisayar bilimcisi, programlama dili tasarımcısı ve siyasetçi

Kristen Nygaard Norveçli bir bilgisayar bilimcisi, programlama dili öncüsü ve politikacıydı. Uluslararası alanda Nygaard, 1960'larda Ole-Johan Dahl ile nesne yönelimli programlamanın ve Simula programlama dilinin ortak mucidi olarak kabul edilmektedir. Nygaard ve Dahl, bilgisayar bilimine yaptıkları katkılardan dolayı 2001 A. M. Turing Ödülü'nü, 2002 yılında IEEE John von Neumann Madalyası'nı kazanmıştır.

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).

James E. Rumbaugh, Nesne Modelleme Tekniği ve Birleşik Modelleme Dilini (UML) oluşturmadaki çalışmaları ile tanınan Amerikalı bir bilgisayar bilimcisi ve nesne yönelimli metodologdur.