Alan mühendisliği - Domain engineering

Alan mühendisliği , yeni yazılım sistemlerinin üretiminde alan bilgisinin yeniden kullanılması sürecidir . Sistematik yazılım yeniden kullanımı ve ürün hattı mühendisliğinde anahtar bir kavramdır . Sistematik yazılımın yeniden kullanımında önemli bir fikir, etki alanıdır . Çoğu kuruluş yalnızca birkaç alanda çalışır. Farklı müşteri ihtiyaçlarını karşılamak için belirli bir etki alanı içinde sürekli olarak benzer sistemler kurarlar. Her yeni sistem varyantını sıfırdan oluşturmak yerine, etki alanındaki önceki sistemlerin bölümlerini yenilerini oluşturmak için yeniden kullanarak önemli tasarruflar sağlanabilir.

Etki alanlarını belirleme, bunları sınırlandırma ve etki alanındaki sistemler arasındaki ortak noktaları ve değişkenleri keşfetme sürecine etki alanı analizi denir . Bu bilgiler, etki alanı uygulama aşamasında, yeniden kullanılabilir bileşenler, etki alanına özgü bir dil veya etki alanında yeni sistemler oluşturmak için kullanılabilecek uygulama oluşturucular gibi yapılar oluşturmak için kullanılan modellerde yakalanır .

Olarak ürün mühendisliği ISO26550 ile tanımlanan: 2015, Alan mühendislik ile tamamlanmaktadır uygulama Mühendisliği ürün hattından türetilen bireysel ürünlerin yaşam döngüsü ilgilenir.

Amaç

Etki alanı mühendisliği, yazılım artefaktlarının yeniden kullanımı yoluyla geliştirilen yazılım ürünlerinin kalitesini artırmak için tasarlanmıştır. Alan mühendisliği, en gelişmiş yazılım sistemlerinin yeni sistemler olmadığını, aynı alandaki diğer sistemlerin varyantları olduğunu göstermektedir. Sonuç olarak, etki alanı mühendisliğinin kullanılmasıyla işletmeler, önceki yazılım sistemlerinden kavramları ve uygulamaları kullanarak ve bunları hedef sisteme uygulayarak karları en üst düzeye çıkarabilir ve pazara sunma süresini azaltabilir. Maliyetteki azalma, uygulama aşamasında bile belirgindir. Bir çalışma, alana özgü dillerin kullanılmasının, hem yöntem sayısı hem de sembol sayısı açısından kod boyutunun %50'den fazla azaltılmasına ve toplam kod satırı sayısının yaklaşık %75 oranında azaltılmasına izin verdiğini gösterdi.

Alan mühendisliği, yazılım mühendisliği süreci sırasında toplanan bilgileri yakalamaya odaklanır . Yeniden kullanılabilir eserler geliştirerek, bileşenler yeni yazılım sistemlerinde düşük maliyet ve yüksek kalitede yeniden kullanılabilir. Bu , yazılım geliştirme döngüsünün tüm aşamaları için geçerli olduğundan , alan mühendisliği ayrıca üç ana aşamaya odaklanır: analiz, tasarım ve uygulama, paralel uygulama mühendisliği. Bu, yalnızca alanla ilgili bir dizi yazılım uygulama bileşeni değil, aynı zamanda yeniden kullanılabilir ve yapılandırılabilir gereksinimler ve tasarımlar da üretir .

Web'deki verilerin büyümesi ve Nesnelerin İnterneti'nin büyümesi göz önüne alındığında , bir alan mühendisliği yaklaşımı diğer disiplinlerle de alakalı hale geliyor. Web servislerinin derin zincirlerinin ortaya çıkması, servis kavramının göreceli olduğunu vurgulamaktadır. Bir kuruluş tarafından geliştirilen ve işletilen web servisleri, başka bir kuruluş tarafından bir platformun parçası olarak kullanılabilir. Hizmetler farklı bağlamlarda kullanılabildiğinden ve dolayısıyla farklı konfigürasyonlar gerektirdiğinden, hizmet ailelerinin tasarımı bir alan mühendisliği yaklaşımından yararlanabilir.

Aşamalar

Image
Uygulama mühendisliği ile karşılaştırıldığında alan mühendisliği. Alan mühendisliğinin her aşamasının çıktıları, hem alan mühendisliğinin sonraki aşamalarını hem de uygulama mühendisliğindeki karşılık gelen aşamaları besler.

Etki alanı mühendisliği, uygulama mühendisliği gibi üç ana aşamadan oluşur: analiz, tasarım ve uygulama. Ancak, yazılım mühendisliğinin tek bir sisteme odaklandığı yerde , alan mühendisliği bir sistem ailesine odaklanır . İyi bir etki alanı modeli, sürecin sonraki aşamalarındaki belirsizlikleri çözmek için bir referans, etki alanı özellikleri ve tanımı hakkında bir bilgi deposu ve etki alanının parçası olan ürünlerin geliştiricileri için bir belirtim işlevi görür.

Alan analizi

Etki alanı analizi, etki alanını tanımlamak, etki alanı hakkında bilgi toplamak ve bir etki alanı modeli üretmek için kullanılır . Özellik modellerinin kullanımıyla (başlangıçta özellik odaklı alan analizi yönteminin bir parçası olarak düşünülmüştür ), alan analizi, bir alandaki ortak noktaları ve alandaki değişen noktaları belirlemeyi amaçlar. Etki alanı analizinin kullanılmasıyla, geleneksel bir uygulama mühendisliği yaklaşımıyla üretilecek statik konfigürasyonlar yerine yapılandırılabilir gereksinimlerin ve mimarilerin geliştirilmesi mümkündür.

Etki alanı analizi, gereksinim mühendisliğinden önemli ölçüde farklıdır ve bu nedenle, gereksinim türetmeye yönelik geleneksel yaklaşımlar, bir etki alanı modelinde bulunabileceği gibi yapılandırılabilir gereksinimlerin geliştirilmesi için etkisizdir. Etki alanı mühendisliğini etkin bir şekilde uygulamak için, yazılım geliştirme yaşam döngüsünün önceki aşamalarında yeniden kullanım düşünülmelidir . Geliştirilmiş öznitelik modellerinden öznitelik seçiminin kullanılmasıyla, teknolojinin yeniden kullanımı çok erken dönemde gerçekleştirilir ve geliştirme süreci boyunca yeterince uygulanabilir.

Etki alanı analizi, öncelikle etki alanındaki geçmiş deneyimlerden üretilen eserlerden türetilir. Mevcut sistemler, bunların yapıları ( tasarım belgeleri , gereksinim belgeleri ve kullanım kılavuzları gibi ), standartlar ve müşterilerin tümü potansiyel etki alanı analizi girdi kaynaklarıdır. Ancak, gereksinim mühendisliğinden farklı olarak, alan analizi yalnızca bilgilerin toplanması ve biçimlendirilmesinden ibaret değildir; yaratıcı bir bileşen de mevcuttur. Alan analizi süreci sırasında, mühendisler, yeniden yapılandırılabilirliği geliştirmek için alan bilgisini zaten bilinenlerin ötesine genişletmeyi ve alanı benzerlikler ve farklılıklar halinde kategorize etmeyi amaçlar.

Etki alanı analizi, öncelikle, etki alanındaki sistemlerin ortak ve değişen özelliklerini temsil eden bir etki alanı modeli üretir . Etki alanı modeli, bu bileşenleri tasarlamak için bir temel görevi görerek, yapılandırılabilir bir şekilde mimarilerin ve bileşenlerin oluşturulmasına yardımcı olur. Etkili bir alan modeli, yalnızca bir alandaki değişken ve tutarlı özellikleri içermekle kalmaz, aynı zamanda alanda kullanılan kelimeleri tanımlar ve sistem içindeki kavramları, fikirleri ve fenomenleri tanımlar. Özellik modelleri, tamamen resmileştirilmiş bir dizi yapılandırılabilir gereksinim üretmek için kavramları gerekli ve isteğe bağlı özelliklere ayrıştırır.

Etki alanı tasarımı

Etki alanı tasarımı, etki alanı analizi aşamasında üretilen etki alanı modelini alır ve etki alanındaki tüm sistemlerin uyum sağlayabileceği genel bir mimari üretmeyi amaçlar. Uygulama mühendisliğinin bir tasarım üretmek için işlevsel ve işlevsel olmayan gereksinimleri kullanması gibi, alan mühendisliğinin alan tasarımı aşaması, alan analizi aşamasında geliştirilen yapılandırılabilir gereksinimleri alır ve sistem ailesi için yapılandırılabilir, standartlaştırılmış bir çözüm üretir. Etki alanı tasarımı, farklı gereksinim konfigürasyonlarına rağmen, etki alanı içindeki sistemler arasında ortak bir sorunu çözen mimari modeller üretmeyi amaçlar. Etki alanı tasarımı sırasında kalıpların geliştirilmesine ek olarak, mühendisler ayrıca kalıbın kapsamını ve bağlamın kalıpla ilgili olduğu seviyeyi belirlemeye de özen göstermelidir. Bağlamın sınırlandırılması çok önemlidir: çok fazla bağlam, kalıbın birçok sisteme uygulanamamasına ve çok az bağlamın, kalıbın yararlı olamayacak kadar güçlü olmasına neden olur. Kullanışlı bir model, hem sık sık tekrar eden hem de yüksek kalitede olmalıdır.

Alan tasarımının amacı, geliştirilen özellik modelinin sunduğu esnekliği korurken mümkün olduğunca çok alan gereksinimini karşılamaktır. Mimari, etki alanı içindeki tüm sistemleri tatmin edecek kadar esnek, çözümü temel alacak sağlam bir çerçeve sağlayacak kadar da sağlam olmalıdır.

Etki alanı uygulaması

Etki alanı uygulaması, etki alanında özelleştirilmiş bir programın verimli bir şekilde oluşturulması için bir süreç ve araçların oluşturulmasıdır.

eleştiri

Son zamanlarda, alan mühendisliği, bir bireyin dünya görüşü, dil veya bağlam, yazılımın tasarımına entegre edilmiştir.

Ayrıca bakınız

Referanslar

Kaynaklar