Nesneye Yönelik Yaklaşım

Nesne yönelimli yaklaşımda, odak noktası, bilgi sistemlerinin yapısını ve davranışını, hem verileri hem de süreci birleştiren küçük modüllere ayırmaktır. Nesneye Yönelik Tasarımın (OOD) temel amacı, sistem analizi ve tasarımının kalitesini ve verimliliğini daha kullanışlı hale getirerek artırmaktır.

Analiz aşamasında, problem ve çözüm arasındaki boşluğu doldurmak için OO modelleri kullanılır. Sistemlerin sürekli tasarım, uyarlama ve bakımdan geçtiği durumlarda iyi performans gösterir. Problem alanındaki nesneleri veri ve davranış açısından sınıflandırarak tanımlar.

OO modeli aşağıdaki şekillerde faydalıdır -

  • Düşük maliyetle sistemdeki değişiklikleri kolaylaştırır.

  • Bileşenlerin yeniden kullanımını teşvik eder.

  • Büyük sistemi yapılandırmak için bileşenlerin entegre edilmesi sorununu basitleştirir.

  • Dağıtık sistemlerin tasarımını basitleştirir.

Nesne Tabanlı Sistemin Unsurları

OO Sisteminin özelliklerini inceleyelim -

  • Objects- Nesne, sorunlu etki alanında var olan ve veriler (öznitelik) veya davranışla tanımlanabilen bir şeydir. Tüm somut varlıklar (öğrenci, hasta) ve bazı soyut varlıklar (banka hesabı) nesne olarak modellenir.

  • Attributes - Nesne hakkındaki bilgileri açıklarlar.

  • Behavior- Nesnenin neler yapabileceğini belirtir. Nesneler üzerinde gerçekleştirilen işlemi tanımlar.

  • Class- Bir sınıf, verileri ve davranışını özetler. Benzer anlam ve amaca sahip nesneler sınıf olarak gruplandırılır.

  • Methods- Yöntemler bir sınıfın davranışını belirler. Bir nesnenin gerçekleştirebileceği bir eylemden başka bir şey değildirler.

  • Message- Bir mesaj, bir nesneden diğerine yapılan bir işlev veya prosedür çağrısıdır. Yöntemleri tetiklemek için nesnelere gönderilen bilgilerdir. Esasen bir mesaj, bir nesneden diğerine bir işlev veya prosedür çağrısıdır.

Nesne Tabanlı Sistemin Özellikleri

Nesne yönelimli bir sistem, aşağıda tartışılan birkaç harika özellikle birlikte gelir.

Kapsülleme

Kapsülleme, bir bilgi gizleme sürecidir. Bu, süreç ve verilerin tek bir varlıkta birleşimidir. Bir nesnenin verileri sistemin geri kalanından gizlenir ve yalnızca sınıfın hizmetleri aracılığıyla kullanılabilir. Bir sistemin diğer parçalarını etkilemeden nesneler tarafından kullanılan yöntemlerin iyileştirilmesine veya değiştirilmesine izin verir.

Soyutlama

Nesneyi belirlemek için gerekli yöntem ve niteliklerin alınması veya seçilmesi işlemidir. Kullanıcının bakış açısına göre bir nesnenin temel özelliklerine odaklanır.

İlişkiler

Sistemdeki tüm sınıflar birbiriyle ilişkilidir. Nesneler tek başına varolmaz, diğer nesnelerle ilişki içinde bulunurlar.

Üç tür nesne ilişkisi vardır -

  • Aggregation - Bir bütün ile parçaları arasındaki ilişkiyi gösterir.

  • Association - Bunda, iki sınıf, bir sınıfın bir görevi yerine getirmek için diğeriyle çalışması veya bir sınıfın diğer sınıfa etki etmesi gibi bir şekilde ilişkili veya bağlantılıdır.

  • Generalization- Çocuk sınıfı, ebeveyn sınıfına bağlıdır. İki sınıfın benzer olduğunu ancak bazı farklılıkları olduğunu gösterir.

Miras

Miras, mevcut sınıfların niteliklerini ve / veya işlemlerini miras alarak mevcut bir sınıftan alt sınıflar oluşturmaya izin veren harika bir özelliktir.

Polimorfizm ve Dinamik Bağlama

Polimorfizm, birçok farklı form alma yeteneğidir. Hem nesneler hem de işlemler için geçerlidir. Bir polimorfik nesne, bir üst sınıf veya üst sınıf içinde gerçek tipin gizlendiği nesnedir.

Polimorfik işlemde işlem, farklı nesne sınıfları tarafından farklı şekilde gerçekleştirilebilir. Yalnızca ortak özelliklerini bilerek farklı sınıflardaki nesneleri işlememize izin verir.

Yapılandırılmış Yaklaşım Vs. Nesneye Yönelik Yaklaşım

Aşağıdaki tablo, nesne yönelimli yaklaşımın geleneksel yapılandırılmış yaklaşımdan ne kadar farklı olduğunu açıklamaktadır -

Yapılandırılmış yaklaşım Nesneye Yönelik Yaklaşım
Yukarıdan aşağıya yaklaşımla çalışır. Aşağıdan yukarıya yaklaşımı ile çalışır.
Program, alt modüllerin veya işlevlerin sayısına bölünmüştür. Program, sınıf ve nesne sayısına göre düzenlenmiştir.
İşlev çağrısı kullanılır. Mesaj geçişi kullanılır.
Yazılımın yeniden kullanımı mümkün değildir. Yeniden kullanılabilirlik mümkündür.
Yapısal tasarım programlaması genellikle son aşamalara kadar bırakılır. Diğer aşamalarla eşzamanlı olarak yapılan nesneye yönelik tasarım programlaması.
Yapılandırılmış Tasarım, offshoring için daha uygundur. Kurum içi geliştirmeye uygundur.
Tasarımdan uygulamaya net bir geçiş gösterir. Tasarımdan uygulamaya geçiş çok net değil.
Gerçek zamanlı sistem, gömülü sistem ve nesnelerin en kullanışlı soyutlama seviyesi olmadığı projeler için uygundur. Özelleştirilmesi veya genişletilmesi beklenen çoğu iş uygulaması, oyun geliştirme projesi için uygundur.
DFD & ER diyagramı verileri modelleyin. Sınıf diyagramı, sıra diyagramı, durum tablosu diyagramı ve kullanım durumlarının tümü katkıda bulunur.
Bunda, açıkça tanımlanabilir aşamalar sayesinde projeler kolaylıkla yönetilebilir. Bu yaklaşımda, aşamalar arasındaki belirsiz geçişler nedeniyle projeleri yönetmek zor olabilir.

Birleşik Modelleme Dili (UML)

UML, sistem mimarisinin tasarımını ifade etmek için süreçleri, yazılımları ve sistemleri modellemenizi sağlayan görsel bir dildir. Teknik mimarların geliştirici ile iletişim kurmasına olanak tanıyan nesne yönelimli bir sistem tasarlamak ve belgelemek için kullanılan standart bir dildir.

Nesne Yönetim Grubu tarafından oluşturulan ve dağıtılan bir dizi özellik olarak tanımlanır. UML genişletilebilir ve ölçeklenebilir.

UML'nin amacı, herhangi bir sistem geliştirme projesini analizden uygulamaya kadar modellemek için yeterince zengin olan nesne yönelimli terimler ve diyagram oluşturma tekniklerinden oluşan ortak bir kelime dağarcığı sağlamaktır.

UML şunlardan oluşur:

  • Diagrams - Sürecin, sistemin ya da bir kısmının resimli temsilidir.

  • Notations - Konektörler, semboller, notlar vb. Gibi bir diyagramda birlikte çalışan öğelerden oluşur.

Sınıf için UML Gösterimi örneği

Örnek diyagramı-UML gösterimi

Nesnelerde Yapılan İşlemler

Nesneler üzerinde aşağıdaki işlemler gerçekleştirilir -

  • Constructor/Destructor- Bir sınıfın yeni örneklerini oluşturma ve bir sınıfın mevcut örneklerini silme. Örneğin, yeni bir çalışan eklemek.

  • Query- Değeri değiştirmeden duruma erişmenin hiçbir yan etkisi yoktur. Örneğin, belirli bir çalışanın adresini bulmak.

  • Update - Bir veya daha fazla özelliğin değerini değiştirir ve nesnenin durumunu etkiler Örneğin, bir çalışanın adresini değiştirmek.

UML Kullanımları

UML, aşağıdaki amaçlar için oldukça kullanışlıdır -

  • İş sürecini modellemek
  • Sistem mimarisini tanımlama
  • Uygulama yapısını gösterme
  • Sistem davranışını yakalama
  • Veri yapısının modellenmesi
  • Sistemin ayrıntılı özelliklerini oluşturma
  • Fikirleri çizmek
  • Program kodunu oluşturmak

Statik Modeller

Statik modeller, bir sistemin yapısal özelliklerini gösterir, sistem yapısını tanımlar ve sistemi oluşturan parçaları vurgular.

  • Sınıf adlarını, nitelikleri, yöntemleri, imzayı ve paketleri tanımlamak için kullanılırlar.

  • Statik modeli temsil eden UML diyagramları arasında sınıf diyagramı, nesne diyagramı ve kullanım durumu diyagramı bulunur.

Dinamik Modeller

Dinamik modeller, bir sistemin davranış özelliklerini, yani sistemin harici olaylara yanıt olarak nasıl davrandığını gösterir.

  • Dinamik modeller, ihtiyaç duyulan nesneyi ve bunların birlikte nasıl çalıştığını yöntemler ve mesajlar aracılığıyla tanımlar.

  • Sistemin mantığını ve davranışını tasarlamak için kullanılırlar.

  • UML diyagramları, sıra diyagramı, iletişim diyagramı, durum diyagramı, aktivite diyagramı içeren dinamik modeli temsil eder.

Nesneye Yönelik Sistem Geliştirme Yaşam Döngüsü

Üç makro süreçten oluşur -

  • Nesneye Yönelik Analiz (OOA)
  • Nesneye yönelik tasarım (OOD)
  • Nesne yönelimli Uygulama (OOI)

Nesneye Yönelik Sistem Geliştirme Faaliyetleri

Nesneye yönelik sistem geliştirme aşağıdaki aşamaları içerir -

  • Nesneye yönelik analiz
  • Nesneye yönelik tasarım
  • Prototyping
  • Implementation
  • Artımlı test

Nesneye Yönelik Analiz

Bu aşama, sistem gereksinimlerinin belirlenmesi ve sistem gereksinimlerinin anlaşılmasıyla ilgilidir. use-case model. Kullanım durumu, kullanıcı ve bilgisayar sistemi arasındaki etkileşimi tanımlayan bir senaryodur. Bu model, kullanıcı ihtiyaçlarını veya sistemin kullanıcı görüşünü temsil eder.

Ayrıca, bir uygulamayı oluşturan sınıfların ve bunların problem alanındaki diğer sınıflarla ilişkilerinin tanımlanmasını da içerir.

Nesneye Yönelik Tasarım

Bu aşamanın amacı, analiz aşaması, kullanıcı arabirimi ve veri erişimi sırasında tanımlanan sınıfları, öznitelikleri, yöntemleri ve yapıları tasarlamak ve iyileştirmektir. Bu aşama ayrıca gereksinimin uygulanmasını destekleyen ek sınıfları veya nesneleri tanımlar ve tanımlar.

Prototipleme

Prototipleme, sistemin bazı özelliklerini uygulamanın ne kadar kolay veya zor olacağını tam olarak anlamayı sağlar.

Ayrıca kullanıcılara tasarımın kullanılabilirliği ve kullanışlılığı hakkında yorum yapma şansı da verebilir. Bir kullanım durumunu daha da tanımlayabilir ve kullanım durumu modellemesini çok daha kolay hale getirebilir.

Uygulama

Bileşen Tabanlı Geliştirme (CBD) veya Hızlı Uygulama Geliştirme (RAD) kullanır.

Bileşen tabanlı geliştirme (CBD)

CODD, CASE araçları gibi çeşitli teknolojileri kullanan yazılım geliştirme sürecine yönelik endüstriyel bir yaklaşımdır. Uygulama geliştirme, özel geliştirmeden, birbiriyle çalışan önceden oluşturulmuş, önceden test edilmiş, yeniden kullanılabilir yazılım bileşenlerinin montajına geçer. Bir CBD geliştiricisi, eksiksiz bir yazılım sistemi oluşturmak için bileşenleri bir araya getirebilir.

Hızlı Uygulama Geliştirme (RAD)

RAD, bir uygulamayı geleneksel yöntemlerle tipik olarak mümkün olandan daha hızlı oluşturmak için kullanılabilen bir dizi araç ve tekniktir. SDLC'nin yerine geçmez, ancak süreç tanımına daha fazla odaklandığı ve nesne yönelimli yaklaşımla mükemmel bir şekilde birleştirilebildiği için onu tamamlar.

Görevi, uygulamayı hızlıca oluşturmak ve görsel temel, güç oluşturucu vb. Araçlar aracılığıyla kullanıcı gereksinimleri tasarımını aşamalı olarak uygulamaktır.

Artımlı Test

Yazılım geliştirme ve test dahil tüm faaliyetleri yinelemeli bir süreçtir. Bu nedenle, bir ürünü ancak tamamen geliştirildikten sonra test etmeyi beklersek maliyetli olabilir. Burada aşamalı test, ürünün geliştirilmesinin çeşitli aşamalarında test edildiği resme çıkıyor.