Nesneye yönelik analiz ve tasarım - Object-oriented analysis and design

Yazılım geliştirme
Çekirdek aktiviteleri
Paradigmalar ve modeller
Metodolojiler ve çerçeveler
Destekleyen disiplinler
Uygulamalar
Araçlar
Standartlar ve Bilgi Yapıları
Sözlükler
Anahatlar

Nesneye yönelik analiz ve tasarım (OOAD) bir uygulamayı, sistemi veya işi uygulayarak analiz etmek ve tasarlamak için teknik bir yaklaşımdır nesne yönelimli programlama paydaş iletişimine ve ürün kalitesine rehberlik etmek için yazılım geliştirme süreci boyunca görsel modelleme kullanmanın yanı sıra.

Modern yazılım mühendisliğinde OOAD tipik olarak yinelemeli ve artımlı bir şekilde yürütülür. OOAD faaliyetlerinin çıktıları sırasıyla analiz modelleri (OOA için) ve tasarım modelleridir (OOD için). Amaç, bunların riskler ve iş değeri gibi temel faktörlerle yönlendirilerek sürekli olarak iyileştirilmesi ve geliştirilmesidir.

Tarih

1990'ların ortalarından önceki nesne yönelimli teknolojinin ilk günlerinde, yazılım geliştirme için birçok farklı rakip metodoloji vardı ve nesneye yönelik modelleme, genellikle özele bağlı Bilgisayar Destekli Yazılım Mühendisliği (CASE) araç satıcıları. Hiçbir standart notasyon, tutarlı terim ve süreç kılavuzları o zamanlar önemli sorunlar değildi ve bu durum kötüleşti iletişim verimliliği ve uzatılmış öğrenme eğrileri.

İyi bilinen erken nesne yönelimli metodolojilerden bazıları, gurulardan ve ilham aldı. Grady Booch, James Rumbaugh, Ivar Jacobson ( Üç Kafadarlar), Robert Martin, Peter Coad, Sally Shlaer, Stephen Mellor, ve Rebecca Wirfs-Brock.

1994 yılında Üç Kafadarlar Rational Software, Birleştirilmiş Modelleme Dili (UML). Daha sonra birlikte Philippe Kruchten ve Walker Royce (en büyük oğlu Winston Royce ), kendi metodolojilerini birleştirmek için başarılı bir misyona öncülük ettiler, OMT, OOSE ve Booch yöntemi, diğer endüstri liderlerinden çeşitli içgörüler ve deneyimlerle Birleşik Rasyonal İşlem (RUP), yazılım geliştirme ve proje yönetimi sektörünün en iyi uygulamalarını öğrenmek için kapsamlı bir yinelemeli ve artımlı süreç kılavuzu ve çerçevesi.[1] O zamandan beri Birleşik Süreç aile, muhtemelen nesne yönelimli analiz ve tasarım için en popüler metodoloji ve referans modeli haline gelmiştir.

Genel Bakış

Yazılım yaşam döngüsü, tipik olarak, problemin soyut tanımlarından tasarımlara, ardından kodlama ve teste ve son olarak devreye almaya kadar uzanan aşamalara bölünmüştür. Bu sürecin en erken aşamaları analiz ve tasarımdır. Analiz aşamasına genellikle "gereksinim edinimi" de denir.

OOAD, aşağıdaki formüle göre yinelemeli ve aşamalı bir şekilde yürütülür. Birleşik Süreç.

Yazılım geliştirmeye yönelik toplu olarak şelale modelleri olarak bilinen bazı yaklaşımlarda, her aşama arasındaki sınırların oldukça katı ve sıralı olması amaçlanmıştır. "Şelale" terimi, bu tür metodolojiler için, ilerlemenin yalnızca bir yönde sırayla gittiğini belirtmek için icat edildi, yani, analiz o zaman tamamlandıktan sonra ve ancak o zaman tasarıma başlandı ve bir tasarım sorunu analiz modelinde bir değişiklik gerektirdiğinde veya bir kodlama sorunu tasarımda bir değişiklik gerektirdiğinde.

Şelale modellerine alternatif, iteratif modellerdir. Bu ayrım popüler hale geldi Barry Boehm Yinelemeli yazılım geliştirme için Spiral Modeli üzerine çok etkili bir makalede. Yinelemeli modeller ile modelin çeşitli aşamalarında paralel olarak çalışmak mümkündür. Örneğin, aynı gün içinde analiz, tasarım ve hatta kodlama üzerinde çalışmak ve bir aşamadaki sorunları diğerinden etkilemek mümkündür - ve bir hata kaynağı olarak görülmez. Yinelemeli modellere vurgu, yazılım geliştirmenin bilgi yoğun bir süreç olduğu ve analiz gibi şeylerin, tasarım sorunları anlaşılmadan tam olarak anlaşılamayacağı, kodlama sorunlarının tasarımı etkileyebileceği, testin kodun nasıl olduğu veya hatta tasarım değiştirilmelidir vb.[2]

Bir şelale modeli kullanarak nesneye yönelik geliştirme yapmak mümkün olsa da, uygulamada çoğu nesne yönelimli sistem yinelemeli bir yaklaşımla geliştirilmektedir. Sonuç olarak, nesneye yönelik süreçlerde "analiz ve tasarım" genellikle aynı anda ele alınır.

Nesne yönelimli paradigma, modülerliği ve yeniden kullanılabilirliği vurgular. Nesne odaklı bir yaklaşımın amacı, "açık kapalı ilke". Bir modül, uzantıyı destekliyorsa veya modül yeni davranışlar eklemek veya yeni durumları tanımlamak için standartlaştırılmış yollar sağlıyorsa açıktır. Nesne yönelimli paradigmada bu genellikle var olan bir sınıfın yeni bir alt sınıfı oluşturularak gerçekleştirilir. Bir modül, diğer tüm modüllerin kullanması gereken iyi tanımlanmış kararlı bir arayüze sahipse kapatılır ve bu, bir modüle başka bir modüle eklenebilecek etkileşimi ve olası hataları sınırlar. Nesne yönelimli paradigmada bu, nesneler üzerindeki hizmetleri çağıran yöntemler tanımlanarak gerçekleştirilir. Yöntemler genel veya özel olabilir, yani nesneye özgü belirli davranışlar diğer nesnelere maruz kalmaz. Bu, bilgisayar programlamadaki birçok yaygın hatanın kaynağını azaltır.[3]

Yazılım yaşam döngüsü, tipik olarak, problemin soyut tanımlarından tasarımlara, ardından kodlama ve teste ve son olarak devreye almaya kadar uzanan aşamalara bölünmüştür. Bu sürecin en erken aşamaları analiz ve tasarımdır. Analiz ve tasarım arasındaki ayrım genellikle "neye karşı nasıl" olarak tanımlanır. Analizde geliştiriciler, sistemin ne yapması gerektiğini tanımlamak için kullanıcılarla ve alan uzmanlarıyla birlikte çalışır. Bu aşamada uygulama ayrıntılarının (belirli yönteme bağlı olarak) çoğunlukla veya tamamen göz ardı edilmesi beklenir. Analiz aşamasının amacı, uygun teknoloji gibi kısıtlamalara bakılmaksızın sistemin işlevsel bir modelini oluşturmaktır. Nesne yönelimli analizde bu genellikle en önemli nesnelerin kullanım durumları ve soyut tanımları aracılığıyla yapılır. Sonraki tasarım aşaması, analiz modelini iyileştirir ve gerekli teknolojiyi ve diğer uygulama seçimlerini yapar. Nesne odaklı tasarımda vurgu, çeşitli nesneleri, verilerini, davranışlarını ve etkileşimlerini tanımlamaya yöneliktir. Tasarım modeli, programcıların tasarımı kodda uygulayabilmesi için gereken tüm ayrıntılara sahip olmalıdır.[4].

Nesneye yönelik analiz

Herhangi bir analiz faaliyetinin amacı yazılım yaşam döngüsü uygulama kısıtlamalarından bağımsız olarak sistemin işlevsel gereksinimlerinin bir modelini oluşturmaktır.

Nesne yönelimli analiz ile diğer analiz biçimleri arasındaki temel fark, nesne yönelimli yaklaşımla, sistemin etkileşimde bulunduğu gerçek dünya nesnelerinden sonra modellenen davranışları (süreçleri) ve durumları (verileri) entegre eden nesneler etrafında gereksinimleri düzenlememizdir. Diğer veya geleneksel analiz metodolojilerinde, iki yön: süreçler ve veriler ayrı ayrı ele alınır. Örneğin, veriler şu şekilde modellenebilir: ER diyagramları ve davranışları akış şemaları veya yapı çizelgeleri.


OOA'da kullanılan yaygın modeller kullanım durumlarıdır ve nesne modelleri. Kullanım durumları Sistemin gerçekleştirmesi gereken standart etki alanı işlevleri için senaryoları açıklar. Nesne modelleri, ana nesnelerin adlarını, sınıf ilişkilerini (örneğin, Çember, Shape'in bir alt sınıfıdır), işlemleri ve özelliklerini tanımlar. Anlaşılmasına yardımcı olmak için kullanıcı arayüzü örnekleri veya prototipleri de oluşturulabilir.[5]


Nesne yönelimli tasarım (OOD) sırasında, bir geliştirici nesne yönelimli analizde üretilen kavramsal modele uygulama kısıtlamaları uygular. Bu tür kısıtlamalar arasında donanım ve yazılım platformlar, performans gereksinimleri, kalıcı depolama ve işlem, sistemin kullanılabilirliği ve bütçe ve zamanın getirdiği sınırlamalar. Teknolojiden bağımsız olan analiz modelindeki kavramlar, uygulama sınıfları ve arayüzleri ile eşleştirilerek çözüm alanının bir modeli, yani ayrıntılı bir açıklama ile sonuçlanır. Nasıl sistem, beton teknolojiler üzerine inşa edilecek.[6]

OOD sırasındaki önemli konular, aynı zamanda yazılım mimarileri uygulayarak mimari desenler ve tasarım desenleri nesneye yönelik tasarım ilkeleri ile.

Nesneye yönelik modelleme

Nesne yönelimli modelleme (OOM), tüm uygulama boyunca nesne yönelimli paradigmayı kullanarak uygulamaları, sistemleri ve iş alanlarını modellemeye yönelik ortak bir yaklaşımdır. geliştirme yaşam döngüleri. OOM, modern yazılım mühendisliğinde hem OOD hem de OOA faaliyetleri tarafından yoğun olarak kullanılan ana bir tekniktir.

Nesneye dayalı modelleme tipik olarak işin iki yönüne ayrılır: iş süreçleri gibi dinamik davranışların modellenmesi ve kullanım durumları ve sınıflar ve bileşenler gibi statik yapıların modellenmesi. OOA ve OOD, OOM sırasında iki farklı soyut seviyedir (yani analiz seviyesi ve tasarım seviyesi). Birleşik Modelleme Dili (UML) ve SysML nesne yönelimli modelleme için kullanılan iki popüler uluslararası standart dildir.[7]

OOM'nin faydaları şunlardır:

Etkili ve verimli iletişim

Kullanıcılar genellikle kapsamlı belgeleri ve programlama dili kodlarını iyi anlamakta güçlük çekerler. Görsel model diyagramları daha anlaşılır olabilir ve kullanıcıların ve paydaşların, sistemin uygun gereksinimleri ve yapısı hakkında geliştiricilere geri bildirim vermesine olanak sağlayabilir. Nesne odaklı yaklaşımın temel amacı, sistem ile gerçek dünya arasındaki "anlamsal boşluğu" azaltmak ve sistemin, paydaşların günlük işlerde kullandıklarıyla hemen hemen aynı terminoloji kullanılarak inşa edilmesini sağlamaktır. Nesneye yönelik modelleme, bunu kolaylaştırmak için önemli bir araçtır.

Yararlı ve kararlı soyutlama

Modelleme, kodlamaya yardımcı olur. Çoğu modern yazılım metodolojisinin amacı, önce "ne" sorularını ele almak ve sonra "nasıl" sorularını ele almaktır, yani ilk önce uygulama kısıtlamalarını dikkate almadan sistemin sağlayacağı işlevselliği belirlemek ve sonra bu soyutlara nasıl özel çözümler üretileceğini düşünmektir. gereksinimleri ve bunları teknoloji ve bütçe gibi kısıtlamalara göre ayrıntılı tasarımlara ve kodlara dönüştürür. Nesneye yönelik modelleme, hem sistem gereksinimlerinin hem de tasarımların soyut ve erişilebilir açıklamalarını üreterek bunu sağlar. modeller somut ve karmaşık kaynak kodunun üzerinde daha yüksek soyutlama seviyelerine sahip önemli ve değerli geliştirme varlıkları olan süreçler ve nesneler gibi temel yapılarını ve davranışlarını tanımlayan.

Ayrıca bakınız

Referanslar

  1. ^ "Yazılım Geliştirme Ekipleri için Rational Unified Process En İyi Uygulamaları" (PDF). Rational Software White Paper (TP026B). 1998. Alındı 12 Aralık 2013.
  2. ^ Boehm B, "Yazılım Geliştirme ve İyileştirmenin Spiral Modeli ", IEEE Computer, IEEE, 21 (5): 61-72, Mayıs 1988
  3. ^ Meyer, Bertrand (1988). Nesneye Yönelik Yazılım Yapısı. Cambridge: Prentise Hall Uluslararası Bilgisayar Bilimleri Serisi. s. 23. ISBN  0-13-629049-3.
  4. ^ Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Nesneye Yönelik Yazılım Mühendisliği. Addison-Wesley ACM Press. pp.15, 199. ISBN  0-201-54435-0.
  5. ^ Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Nesneye Yönelik Yazılım Mühendisliği. Addison-Wesley ACM Press. pp.77–79. ISBN  0-201-54435-0.
  6. ^ Conallen Jim (2000). UML ile Web Uygulamaları Oluşturma. Addison Wesley. s.147. ISBN  0201615770.
  7. ^ Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Nesneye Yönelik Yazılım Mühendisliği. Addison-Wesley ACM Press. pp.15, 199. ISBN  0-201-54435-0.

daha fazla okuma

  • Grady Booch. "Nesneye Dayalı Analiz ve Uygulamalar ile Tasarım, 3. baskı":http://www.informit.com/store/product.aspx?isbn=020189551X Addison-Wesley 2007.
  • Rebecca Wirfs-Brock Brian Wilkerson, Lauren Wiener. Nesneye Yönelik Yazılım Tasarlama. Prentice Hall, 1990. [Nesne yönelimli programlama ve tasarıma temelden bir giriş.]
  • Nesne Tabanlı Tasarım Teorisi: OOD'nin yapı taşları ve bunları temsil eden gösterimler (tasarım modellerine odaklanarak).
  • Martin Fowler. Analiz Desenleri: Yeniden Kullanılabilir Nesne Modelleri. Addison-Wesley, 1997. [Kavramsal modellerle nesne yönelimli analize giriş]
  • Bertrand Meyer. Nesneye yönelik yazılım yapımı. Prentice Hall, 1997
  • Craig Larman. UML ve Kalıpları Uygulama - OOA / D ve Yinelemeli Geliştirmeye Giriş. Prentice Hall PTR, 3. baskı. 2005., mnnm, n, nnn
  • Setrag Khoshafian. Nesne Yönelimi.
  • Ulrich Norbisrath, Albert Zündorf, Ruben Jubeh. Hikaye Odaklı Modelleme. Amazon Createspace. s. 333., 2013. ISBN  9781483949253.

Dış bağlantılar