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
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
- Batur, Don; Johnson, Kil; MacDonald, Bob; von Heeder, Dale (2002). "Ürün hatları ve alana özgü diller aracılığıyla genişletilebilirlik elde etmek: bir vaka çalışması". Yazılım Mühendisliği ve Metodolojisine İlişkin ACM İşlemleri . ACM . 11 (2): 191–214. CiteSeerX 10.1.1.100.7224 . doi : 10.1145/505145.505147 . S2CID 7864469 .
- Buschmann, Frank; Henney, Kevlin ; Schmidt, Douglas C. (2007). Kalıp Odaklı Yazılım Mimarisi: Kalıplar ve Kalıp Dilleri Üzerine . 5 . John Wiley ve Oğulları . ISBN'si 978-0-471-48648-0.
- Czarnecki, Krzysztof; Eisenecker, Ulrich W. (2000). Üretken Programlama: Yöntemler, Araçlar ve Uygulamalar . Boston: Addison-Wesley . ISBN'si 0-201-30977-7.
- Falbo, Ricardo de Almedia; Guizzardi, Giancarlo; Duarte, Katia Cristina (2002). "Alan Mühendisliğine Ontolojik Bir Yaklaşım". 14. Uluslararası Yazılım Mühendisliği ve Bilgi Mühendisliği Konferansı Tutanakları . ACM : 351–358. CiteSeerX 10.1.1.19.2577 . doi : 10.1145/568760.568822 . ISBN'si 1581135564. S2CID 16743035 .
- Kang, Kyo C.; Lee, Jaejoon; Kim, Kijoo; Kim, Gerard Jounghyun; Shin, Euiseob; Ha, Moonhang (Ekim 2004). "FORM: Etki Alanına Özgü Referans Mimarileri ile Özellik Odaklı Yeniden Kullanım Yöntemi". Yazılım Mühendisliği Yıllıkları . Springer Hollanda. 5 : 143–168. CiteSeerX 10.1.1.95.7568 . doi : 10.1023/A:1018980625587 . S2CID 1830464 .
- Frakes, William B.; Kang, Kyo (Temmuz 2007). "Yazılım Yeniden Kullanım Araştırması: Durum ve Gelecek". Yazılım Mühendisliğinde IEEE İşlemleri . 31 (7): 529-536. CiteSeerX 10.1.1.75.635 . doi : 10.1109/tse.2005.85 . S2CID 14561810 .
- Harsu, Maarit (Aralık 2002). Alan Mühendisliği Üzerine Bir Araştırma (PDF) (Rapor). Yazılım Sistemleri Enstitüsü, Tampere Teknoloji Üniversitesi . P. 26. ISBN'si 9789521509322.
- Mettler, Tobias (2017). "Sağlık Hizmetleri için Profesyonel Sosyal Ağı Bağlamlandırma: Bir Eylem Tasarımı Araştırma Çalışmasından Deneyimler" (PDF) . Bilgi Sistemleri Dergisi . 28 (4): 684-707. doi : 10.1111/isj.12154 . S2CID 49411423 .
- Reinhartz-Berger, İris; Sturm, Arnon; Clark, Tony; Cohen, Şolom; Bettin, Jorn (2013). Etki Alanı Mühendisliği: Ürün Hatları, Diller ve Kavramsal Modeller . Springer Bilim+İş Medyası . ISBN'si 978-3-642-36654-3.