Dasturiy ta'minot evolyutsiyasi - Software evolution

Dasturiy ta'minot evolyutsiyasi: dasturiy ta'minot uni o'zgaruvchan xaridor va bozor talablariga moslashtirish uchun o'zgartirilgan. Dasturiy ta'minot evolyutsiyasi juda muhimdir, chunki tashkilot o'z dasturiy ta'minotiga katta miqdordagi mablag 'sarfladi va ushbu dasturga to'liq bog'liq bo'lib, bu erda dasturiy ta'minot evolyutsiyasi tijorat talablarini o'zgartirish orqali yuzaga keladi. dasturiy ta'minot nuqsoni yoki dasturiy ta'minot tizimining boshqa tizimidagi o'zgarishlar haqida xabar berish (2020 yil 5-yanvarda yangilangan)

Umumiy kirish

Fred Bruks, uning asosiy kitobida Afsonaviy odam-oy,[1] odatdagi tizim xarajatlarining 90% dan ortig'i texnik xizmat ko'rsatish bosqichida yuzaga keladi va har qanday muvaffaqiyatli dasturiy ta'minot muqarrar ravishda saqlanib qoladi.

Aslini olib qaraganda, Tezkor usullar qobiliyatning asosiy qismi ramkalar va standartlardan kelib chiqadigan veb-texnologiyalar asosida va atrofidagi texnik xizmatlardan kelib chiqadi.[iqtibos kerak ]

Dasturiy ta'minotni ta'mirlash manzilidagi xatolarni tuzatish va kichik yaxshilanishlar va dasturiy ta'minot evolyutsiyasi moslashish va migratsiya.

Dasturiy ta'minot texnologiyalari rivojlanishda davom etadi. Ushbu o'zgarishlar yangi qonunlar va nazariyalarni yaratish va asoslashni talab qiladi. Ba'zi modellar kelajakdagi dasturlarni ishlab chiqishda qo'shimcha jihatlarni talab qiladi. Innovatsiyalar va yaxshilanishlar kutilmagan dasturiy ta'minotni ishlab chiqishni ko'paytiradi. Texnik xizmat masalalari, ehtimol kelajakdagi dasturiy ta'minot evolyutsiyasiga moslashish uchun o'zgarishi mumkin. Dasturiy ta'minot jarayonlari o'z-o'zidan rivojlanib boradi, o'rganish va takomillashtirishdan so'ng, bu ularning samaradorligi va samaradorligini har doim yaxshilaydi.[2]

Asosiy tushunchalar

Dasturiy ta'minot evolyutsiyasiga bo'lgan ehtiyoj, hech kim foydalanuvchi talablari qanday o'zgarishini bashorat qila olmasligidan kelib chiqadi apriori .[3] Boshqacha qilib aytganda, mavjud tizimlar hech qachon to'liq bo'lmaydi va rivojlanishda davom etadi.[4] Ushbu muammolarni hal qilish uchun yaxshiroq echim topilmasa, ular rivojlanib borishi bilan tizimlarning murakkabligi o'sib boradi. Dasturiy ta'minot evolyutsiyasining asosiy vazifalari tizimning funktsional dolzarbligi, ishonchliligi va moslashuvchanligini ta'minlashdir. Dasturiy ta'minot evolyutsiyasi to'liq qo'lda (dasturiy ta'minot muhandislari tomonidan kiritilgan o'zgarishlar asosida), qisman avtomatlashtirilgan (masalan, qayta ishlash vositalaridan foydalangan holda) yoki to'liq avtomatlashtirilgan (avtonom konfiguratsiya yoki evolyutsiyada) bo'lishi mumkin.[5]).

Dasturiy ta'minot evolyutsiyasiga Internet katta ta'sir ko'rsatdi:

  • World Wide Web va Internet Resurslarining tez o'sishi foydalanuvchilar va muhandislar bilan bog'liq ma'lumotlarni topishni osonlashtiradi.
  • ochiq kodli rivojlanish, bu erda har kim manba kodlarini yuklab olishi va shuning uchun uni o'zgartirishi tez va parallel evolyutsiyani (vilkalar orqali) ta'minladi.

Dasturlarga xizmat ko'rsatish turlari

E.B. Swanson dastlab parvarishlashning uchta toifasini aniqladi: tuzatuvchi, moslashuvchan va mukammal. Keyinchalik to'rtta toifadagi dasturiy ta'minot Lientz va Swanson tomonidan kataloglangan (1980).[6]Ular keyinchalik xalqaro miqyosda yangilangan va normallashtirilgan ISO / IEC 14764:2006:[7]

  • Tuzatish xizmati: Topilgan muammolarni bartaraf etish uchun etkazib berilgandan so'ng amalga oshirilgan dasturiy mahsulotni reaktiv o'zgartirish;
  • Adaptiv parvarishlash: O'zgartirilgan yoki o'zgaruvchan muhitda dasturiy ta'minotni ishlatib turish uchun etkazib berishdan so'ng amalga oshirilgan dasturiy mahsulotni o'zgartirish;
  • Mukammal texnik xizmat: Ishlab chiqarishni yaxshilash yoki xizmat ko'rsatish qobiliyatini oshirish uchun etkazib berilgandan so'ng dasturiy mahsulotni o'zgartirish;
  • Profilaktik parvarishlash: Dasturiy mahsulotdagi yashirin nosozliklarni samarali nosozliklar paydo bo'lishidan oldin aniqlash va ularni tuzatish uchun etkazib berishdan so'ng dasturiy mahsulotni o'zgartirish.

O'tganlarning hammasi ma'lum o'zgarish talablari mavjud bo'lganda sodir bo'ladi.

Garchi ushbu toifalar ko'plab mualliflar tomonidan to'ldirilgan bo'lsa-da, Uorren va boshq. (1999)[8] va Chapin (2001),[9] ISO / IEC 14764: 2006 xalqaro standarti asosiy to'rt toifani saqlab qoldi.

Yaqinda dasturiy ta'minotni saqlash va evolyutsiyasini tavsifi ontologiyalar yordamida amalga oshirildi (Kitchenham va boshq. (1999),[10] Deridder (2002),[11] Vizcaino (2003),[12] Dias (2003),[13] va Ruis (2004)[14]), bu ko'plab evolyutsiya faoliyatining tavsifini boyitadi.

Sahna modeli

Hozirgi tendentsiyalar va amaliyotlar bosqichma-bosqich model deb nomlangan dasturiy ta'minot evolyutsiyasining yangi modeli yordamida prognoz qilinadi.[15] Zamonaviy dasturiy ta'minotni ishlab chiqish uchun unchalik mos bo'lmagan odatiy tahlil o'rnini bosuvchi bosqichli model joriy etildi, chunki dastur evolyutsiyasiga hissa qo'shish qiyinligi sababli tez o'zgarib turadi. Oddiy bosqichli modelda beshta alohida bosqich mavjud (Dastlabki rivojlanish, Evolyutsiya, Xizmat ko'rsatish, O'chirish va Yopish).

  • K.H.Bennet va V.T.Rajlichning so'zlariga ko'ra,[15] asosiy hissa - bu "parvarishlash" bosqichini evolyutsiya bosqichiga ajratish, undan keyin xizmat ko'rsatish va tugatish bosqichlari. Ba'zi xususiyatlarga ega bo'lmagan dasturiy ta'minot tizimining birinchi versiyasi dastlabki ishlab chiqishda ishlab chiqiladi yoki alfa bosqichi sifatida ham tanilgan.[15] Shu bilan birga, ushbu bosqichda allaqachon arxitektura mavjud bo'lib, kelajakdagi barcha o'zgartirishlar yoki o'zgartirishlarga olib keladi. Ushbu bosqichdagi ma'lumotlarning aksariyati senariylarga yoki amaliy tadqiqotlarga asoslanadi. Bilim dastlabki rivojlanishning yana bir muhim natijasi sifatida aniqlandi. Bunday bilimlar, shu jumladan dastur sohasi, foydalanuvchi talablari, biznes qoidalari, siyosati, echimlari, algoritmi va boshqalarni bilish. Shuningdek, bilim evolyutsiyaning keyingi bosqichi uchun muhim omil bo'lib ko'rinadi.
  • Oldingi bosqich muvaffaqiyatli yakunlangandan so'ng (va keyingi bosqichga o'tishdan oldin uni muvaffaqiyatli yakunlash kerak), keyingi bosqich evolyutsiya bo'ladi. Foydalanuvchilar o'zlarining talablarini o'zgartirishga moyildirlar, shuningdek ba'zi yaxshilanishlarni yoki o'zgarishlarni ko'rishni afzal ko'rishadi. Ushbu omil tufayli dasturiy ta'minot sohasi atrof-muhitning tez o'zgarishi muammolariga duch kelmoqda. Demak, evolyutsiyaning maqsadi dasturni doimo o'zgarib turadigan foydalanuvchi talablari va ish muhitiga moslashtirishdir.[15] Oldingi bosqichda yaratilgan birinchi versiya dasturida ko'plab nosozliklar bo'lishi mumkin va ushbu nosozliklar evolyutsiya bosqichida aniqroq va aniq talablarga asoslanib, amaliy ish yoki stsenariylar asosida tuzatiladi.
  • Dastur u o'zgarib bo'lmaydigan darajada doimiy ravishda rivojlanib boradi va keyinchalik xizmat ko'rsatish bosqichiga o'tadi (shuningdek, dasturning etukligi deb ham ataladi). Ushbu bosqichda faqat kichik o'zgarishlar amalga oshiriladi.
  • Keyingi bosqich, ya'ni tugatish tugashi bilan, ushbu dastur uchun boshqa xizmat mavjud emas. Biroq, dastur hali ham ishlab chiqarilmoqda.
  • Va nihoyat, yaqin. Dasturiy ta'minotdan foydalanish uzilgan yoki to'xtatilgan[15] va foydalanuvchilar ularni almashtirishga yo'naltirilgan.[15]

Lehman dasturiy ta'minot evolyutsiyasi qonunlari

Prof. Meir M. Lehman, kim ishlagan London Imperial kolleji 1972 yildan 2002 yilgacha va uning hamkasblari mulkiy dasturiy ta'minot evolyutsiyasida bir qator xatti-harakatlarni aniqladilar. Ushbu xatti-harakatlar (yoki kuzatuvlar) Leman qonunlari deb nomlanadi va ularning sakkiztasi mavjud:

  1. (1974) "Uzluksiz o'zgarish" - E tipidagi tizim doimiy ravishda moslashtirilishi kerak yoki u tobora kamroq qoniqarli bo'lib qoladi[16]
  2. (1974) "Murakkablikni oshirish" - E tipidagi tizim rivojlanib borishi bilan uni saqlash yoki kamaytirish uchun ish qilinmasa, uning murakkabligi oshadi.[16]
  3. (1980) "O'z-o'zini boshqarish" - E-tipdagi tizim evolyutsiyasi jarayonlari mahsulot taqsimoti va me'yorga yaqin bo'lgan jarayonlar bilan o'zini o'zi boshqaradi.[16]
  4. (1978) "Tashkiliy barqarorlikni saqlash (o'zgarmas ish stavkasi ) "- rivojlanayotgan E tipidagi tizimdagi o'rtacha global faollik darajasi mahsulot umri davomida o'zgarmasdir[16]
  5. (1978) "Tanishlikni saqlash" - E tipidagi tizim rivojlanib borishi bilan bog'liq bo'lgan barcha narsalar, masalan, ishlab chiquvchilar, savdo xodimlari va foydalanuvchilar qoniqarli evolyutsiyaga erishish uchun uning mazmuni va xatti-harakatlarini yaxshi bilishlari kerak. Haddan tashqari o'sish bu mahoratni pasaytiradi. Shuning uchun o'rtacha o'sish o'sishi tizim rivojlanib borishi bilan o'zgarmas bo'lib qoladi.[16]
  6. (1991) "Uzluksiz o'sish" - E-tipidagi tizimning funktsional tarkibi doimiy ravishda foydalanuvchining hayoti davomida qoniqishini saqlab turish uchun oshirib borilishi kerak.
  7. (1996) "Sifatning pasayishi" - E tipidagi tizimning sifati qat'iy ravishda saqlanib, operatsion muhit o'zgarishiga moslashtirilmasa, pasayib ketgandek ko'rinadi.
  8. (1996) "Fikrlar tizimi" (birinchi bo'lib 1974 yilda e'lon qilingan, 1996 yil qonun sifatida rasmiylashtirildi) - elektron evolyutsiya jarayonlari ko'p bosqichli, ko'p tsiklli, ko'p agentli aloqa tizimlarini tashkil qiladi va har qanday oqilona nisbatan yaxshilanishga erishish uchun shunday muomala qilinishi kerak. tayanch[17]

Shuni aytib o'tish joizki, ushbu qonunlarning barchasini dasturiy ta'minot tizimlarining barcha turlariga tatbiq etilishi bir nechta tadqiqotchilar tomonidan o'rganilgan. Masalan, Nanjangud C Narendra taqdimotiga qarang[18] bu erda u Lehman dasturiy ta'minot evolyutsiyasi nuqtai nazaridan Agile loyihasi bo'yicha korporativ tadqiqotni tasvirlaydi. O'rganishidan kelib chiqadigan ba'zi bir empirik kuzatuvlar ochiq manbali dasturiy ta'minotni ishlab chiqish ba'zi qonunlarga qarshi chiqayotgan ko'rinadi[noaniq ][iqtibos kerak ].

Qonunlar dasturiy ta'minot tizimidagi funktsional o'zgarishlarga ehtiyoj muqarrarligini taxmin qiladi va bu talablarning to'liq bo'lmagan yoki noto'g'ri tahlili yoki yomon dasturlash natijasi emas. Ular dasturiy ta'minotni ishlab chiqish guruhi o'zgarishlarni va yangi funksiyalarni xavfsiz amalga oshirish nuqtai nazaridan erishishi mumkin bo'lgan chegaralar mavjudligini ta'kidlaydilar.

Jarayonlarni takomillashtirish uchun dasturiy ta'minot evolyutsiyasiga xos etuklik modellari ishlab chiqilgan va dasturiy ta'minotning takrorlanib turishi bilan uni doimiy ravishda yoshartirishni ta'minlashga yordam beradi.[iqtibos kerak ].

Ko'pgina manfaatdor tomonlar (masalan, ishlab chiquvchilar, foydalanuvchilar, ularning menejerlari) tomonidan amalga oshiriladigan "global jarayon" ko'plab mulohazalarni hal qilishga imkon beradi. Evolyutsiya tezligi - bu teskari aloqa davri tuzilishi va global tizimning boshqa xususiyatlarining funktsiyasi. Kabi jarayonlarni simulyatsiya qilish texnikasi tizim dinamikasi bunday global jarayonni tushunish va boshqarish uchun foydali bo'lishi mumkin.

Dasturiy ta'minot evolyutsiyasi ehtimoldan yiroq emas Darvin, Lamarkian yoki Boldvinian, lekin o'z-o'zidan muhim hodisa. Jamiyat va iqtisodiyotning barcha darajalarida dasturiy ta'minotga tobora ko'proq bog'liqlikni hisobga olgan holda, dasturiy ta'minotning muvaffaqiyatli evolyutsiyasi tobora muhim ahamiyat kasb etmoqda. Bu juda katta e'tiborga ega bo'lmagan tadqiqotlarning muhim mavzusi.

Dasturiy ta'minot evolyutsiyasi, boshqa texnogen sub'ektlar bilan taqqoslaganda tezkorligi sababli, Lehman tomonidan sun'iy tizimlar evolyutsiyasini o'rganishning "meva chivinlari" sifatida qaraldi.

Shuningdek qarang

Mavjud vositalar

  • apiwave - API evolyutsiyasi GitHub Java loyihalari.
  • LibVCS4j Mavjud vositalarga turli xil versiyalarni boshqarish tizimlari va chiqariladigan trekerlar uchun umumiy API taqdim etish orqali dasturiy ta'minot tizimlari evolyutsiyasini tahlil qilishga imkon beruvchi Java kutubxonasi.

Adabiyotlar

  1. ^ Fred Bruks, Afsonaviy odam-oy. Addison-Uesli, 1975 & 1995. ISBN0-201-00650-2 & ISBN  0-201-83595-9.
  2. ^ aziz; ref: Ochiq manbali dasturiy ta'minot evolyutsiyasini tushunish Uolt Skachining dasturiy ta'minotni tadqiq qilish instituti
  3. ^ Bennett, K. H.; Rajlich, V. T .; Mazrul, R. Mohamad (1995). "Eski tizim: muvaffaqiyat bilan kurashish". IEEE dasturi. 19-23 betlar.
  4. ^ Trung Hung Vo (2007), Dasturlarga xizmat ko'rsatish
  5. ^ Bodri, Benua; Monperrus, Martin; Mony, Cendrine; Shauvel, Frank; Fleri, Frank; Klark, Siobhan (2014). "DIVERSIFY: Turli xillikning paydo bo'lishi uchun ekologiyadan ilhomlangan dasturiy ta'minot evolyutsiyasi". 2014 yil dasturiy ta'minot evolyutsiyasi haftaligi - IEEE dasturiy ta'minotga xizmat ko'rsatish, muhandislik va teskari muhandislik bo'yicha konferentsiya (CSMR-WCRE). 395-398 betlar. CiteSeerX  10.1.1.646.2786. doi:10.1109 / csmr-wcre.2014.6747203. ISBN  9781479937523.
  6. ^ Lientz, B.P. va Swanson, E.B., Dasturiy ta'minotni boshqarishni boshqarish, 487 ma'lumotni qayta ishlash tashkilotlarida kompyuter dasturlari dasturlarining texnik xizmatini o'rganish. Addison-Uesli, MA o'qish, 1980 yil. ISBN  0-201-04205-3
  7. ^ ISO / IEC 14764:2006, 2006.
  8. ^ Pol Uorren; Cornelia Boldyreff; Malkolm Munro (1999). "Veb-saytlarning rivojlanishi". Dasturni tushunish bo'yicha ettinchi xalqaro seminar materiallari. IEEE. 178–185 betlar.
  9. ^ Ned Chapin; Joanne E Hale; Xolid Md Xon; Xuan F Ramil; Vui-Gee Tan (2001). "Dasturiy ta'minot evolyutsiyasi turlari va dasturiy ta'minotga xizmat ko'rsatish". Dasturiy ta'minotni ta'mirlash va rivojlanish jurnali: tadqiqot va amaliyot. 13 (1): 3–30. doi:10.1002 / smr.220.
  10. ^ Barbara Kitchenham; Guilherme Travassos; Anneliese fon Mayrhauzer; Frank Nessink; Norman Shneydevind; Janice Singer; Shingo Takada; Risto Vehvilainen; Hongji Yang (1999). "Dasturiy ta'minotni ta'minlash ontologiyasi tomon". Dasturlarga xizmat ko'rsatish jurnali. 11 (6): 365–389. doi:10.1002 / (SICI) 1096-908X (199911/12) 11: 6 <365 :: AID-SMR200> 3.0.CO; 2-V. hdl:10945/55140.
  11. ^ Dirk Deridder (2002). "Dasturiy ta'minotni qo'llab-quvvatlash va qayta ishlatish faoliyatini qo'llab-quvvatlash uchun kontseptsiya yo'naltirilgan yondashuv". Bilimlarga asoslangan dasturiy ta'minot muhandisligi bo'yicha 5-qo'shma konferentsiya materiallari.
  12. ^ Aurora Vizcaíno; Xesus Favela; Mario Piattini (2003). "Dasturiy ta'minotni ta'minlashda bilimlarni boshqarish bo'yicha ko'p agentlik tizim". Bilimga asoslangan intellektual axborot va muhandislik tizimlari. Springer. 415-421 betlar.
  13. ^ Markio Dias; Nikolas Anquetil; Katia de Oliveira (2003). "Dasturiy ta'minotga xizmat ko'rsatishda foydalaniladigan bilimlarni tashkil etish". Umumjahon kompyuter fanlari jurnali. 9 (7): 641–658.
  14. ^ Fransisko Ruis; Aurora Vizcaíno; Mario Piattini; Feliks Gartsiya (2004). "Dasturiy ta'minot loyihalarini boshqarish bo'yicha ontologiya". Xalqaro dasturiy ta'minot muhandisligi va bilim muhandisligi jurnali. 14 (3): 323–349. doi:10.1142 / S0218194004001646.
  15. ^ a b v d e f Bennett, Kit; Rajlich, Vatslav (2000-07-01). "Dasturiy ta'minotning hayotiy tsikli uchun bosqichli model" (PDF). Kompyuter (jurnal). IEEE Kompyuter Jamiyati: 66–71. doi:10.1109/2.869374. Olingan 2020-05-23.CS1 tarmog'i: sana va yil (havola)
  16. ^ a b v d e Lehman, M. M. (1980). "Qonunlarni, evolyutsiyani va tabiatni muhofaza qilishni katta dasturli hayot tsikli to'g'risida". Tizimlar va dasturiy ta'minot jurnali. 1: 213–221. doi:10.1016/0164-1212(79)90022-0.
  17. ^ Dasturiy ta'minot evolyutsiyasining Leyman qonunlari
  18. ^ Narendra, Nanjangud (2011 yil 29 aprel). "Tez rivojlanishda dasturiy ta'minot evolyutsiyasi". Ma'lumot. Olingan 19 mart 2016.

Qo'shimcha o'qish

  • Andrea Kapiluppi, Xesus M.Gonsales Baraxona, Isroil Herraiz, Gregorio Robles, "Dasturiy ta'minot evolyutsiyasining bosqichma-bosqich modelini" FLOSSga moslashtirish
  • Mark C. Polk, "Qobiliyatning etukligi" dasturiy ta'minotining tarixi