Dasturiy ta'minotni ishlab chiqish faoliyati
Dasturiy mahsulotlar uchun g'oyalar manbalari juda ko'p. Ushbu g'oyalar kelib chiqishi mumkin bozorni o'rganish shu jumladan demografiya potentsial yangi mijozlar, mavjud mijozlar, mahsulotni rad etgan savdo istiqbollari, boshqa ichki dasturiy ta'minotni ishlab chiqish xodimlari yoki ijodiy uchinchi shaxs. Dasturiy mahsulotlar uchun g'oyalar odatda birinchi tomonidan baholanadi marketing Iqtisodiy maqsadga muvofiqligi, mavjud kanallarni taqsimlashi, mavjud mahsulot turlariga ta'sirini ta'minlash uchun xodimlar Xususiyatlariva kompaniyaning marketing maqsadlariga muvofiq. Marketingni baholash bosqichida xarajatlar va vaqt taxminlari baholanadi. Marketing va rivojlanish xodimlari tomonidan ishlab chiqilgan batafsil ma'lumotlarga asoslanib, loyihani davom ettirish kerakligi to'g'risida birinchi bosqichning boshida qaror qabul qilinadi.[4] Kitobda "Buyuk dasturiy munozaralar", Alan M. Devis bobda aytilgan "Talablar", kichik bo'lim "Dasturiy ta'minotni ishlab chiqishning yo'qolgan qismi" Muhandislik talabalari muhandislikni o'rganadilar va moliya yoki marketing bilan kamdan-kam uchraydilar. Marketing talabalari marketingni o'rganadilar va kamdan-kam moliya yoki muhandislik bilan shug'ullanadilar. Ko'pchiligimiz faqat bitta yo'nalish bo'yicha mutaxassis bo'lamiz. Vaziyatni murakkablashtirish uchun, ozchiligimiz ishchi kuchida intizomga oid odamlar bilan uchrashamiz, shuning uchun taqlid qiladigan rollar kam. Shunga qaramay, dasturiy mahsulotni rejalashtirish rivojlanishning muvaffaqiyati uchun juda muhimdir va bir nechta fanlarni bilishni talab qiladi.[5] Dasturiy ta'minotni ishlab chiqish mijoz tomonidan talab qilinadigan narsadan voz kechishni yoki undan tashqariga chiqishni o'z ichiga olishi mumkinligi sababli, dasturiy ta'minotni ishlab chiqish loyihasi kamroq texnik muammolarga duch kelishi mumkin. kadrlar bo'limi, xatarlarni boshqarish, intellektual mulk, byudjetlashtirish, inqirozni boshqarishva hokazo. Bu jarayonlar ham rolini keltirib chiqarishi mumkin Biznes rivoji dasturiy ta'minotni ishlab chiqish bilan bir-biriga mos kelish.
Rejalashtirish jarayoni
Rejalashtirish - bu loyihaga tegishli narsalarni kashf etishni istagan har bir faoliyatning maqsadi, dasturiy ta'minotni yaratishdagi muhim vazifa talablar yoki talablar tahlili.[6] Mijozlar odatda yakuniy natija sifatida nimani xohlashlari haqida mavhum tasavvurga ega bo'ladilar, ammo nimani bilishmaydi dasturiy ta'minot qilish kerak. Malakali va tajribali dasturiy ta'minot muhandislari hozirgi paytda to'liq bo'lmagan, noaniq yoki hatto qarama-qarshi talablarni tan olishadi. Jonli kodni tez-tez namoyish qilish talablarning noto'g'ri ekanligi xavfini kamaytirishga yordam beradi.
"Garchi talablar bosqichida talablarning to'liq va izchil bo'lishini ta'minlash uchun juda ko'p kuch sarflangan bo'lsa-da, kamdan-kam hollarda shunday bo'ladi; yangi yoki o'zgaruvchan talablarning ta'sirini minimallashtirish to'g'risida gap ketganda dasturiy ta'minotni loyihalashtirish bosqichini eng ta'sirchan deb qoldiring. Talablarning o'zgaruvchanligi Bu qiyin, chunki ular kelajakdagi yoki rivojlanayotgan sa'y-harakatlarga ta'sir qiladi. "[7] Mijozdan umumiy talablar yig'ilgandan so'ng, rivojlanish ko'lami tahlili aniqlanishi va aniq bayon qilinishi kerak. Bu ko'pincha ko'lam hujjati deb nomlanadi.
Loyihalash
Asosiy maqolalar: Dasturiy ta'minot dizayni va Tizimlarning dizayni Talablar o'rnatilgandan so'ng, dasturiy ta'minot dizayni a-da o'rnatilishi mumkin dasturiy ta'minotni loyihalash hujjati. Bu oldindan yoki o'z ichiga oladi yuqori darajadagi dizayn umumiy rasmga ega bo'lgan asosiy modullarning (masalan, a blok diagrammasi) qismlarning bir-biriga qanday mos kelishi. Til, operatsion tizim va apparat qismlarining barchasi hozircha ma'lum bo'lishi kerak. Keyin batafsil yoki past darajadagi dizayn yaratiladi, ehtimol prototip kontseptsiyaning isboti sifatida yoki talablarni qat'iylashtirish uchun.
Amalga oshirish, sinovdan o'tkazish va hujjatlashtirish
Amalga oshirish bu erda jarayonning bir qismi dasturiy ta'minot muhandislari aslida dastur loyiha uchun kod.
Dasturiy ta'minotni sinovdan o'tkazish dasturiy ta'minotni ishlab chiqish jarayonining ajralmas va muhim bosqichidir. Jarayonning ushbu qismi buni ta'minlaydi nuqsonlar imkon qadar tezroq tan olinadi. Odatda ma'lum bo'lgan ba'zi jarayonlarda sinovga asoslangan rivojlanish, testlar amalga oshirilishidan oldin ishlab chiqilishi va amalga oshirishning to'g'riligi uchun qo'llanma bo'lishi mumkin.
Hujjatlar kelajakda texnik xizmat ko'rsatish va takomillashtirish maqsadida dasturiy ta'minotning ichki dizayni rivojlanish davomida amalga oshiriladi. Bunga an yozuvini ham kiritish mumkin APItashqi yoki ichki bo'lsin. Rivojlanayotgan guruh tomonidan tanlangan dasturiy ta'minot muhandislik jarayoni ichki hujjatlar (agar mavjud bo'lsa) qanchalik zarurligini aniqlaydi. Rejaga asoslangan modellar (masalan, Sharshara) ga qaraganda ko'proq hujjatlarni ishlab chiqaradi Chaqqon modellar.
Joylashtirish va texnik xizmat ko'rsatish
Joylashtirish to'g'ridan-to'g'ri kod tegishli sinovdan o'tkazilgandan so'ng boshlanadi va tasdiqlanadi ozod qilish, va sotilgan yoki boshqa yo'l bilan ishlab chiqarish muhitiga tarqatilgan. Bu o'rnatish, sozlash (masalan, mijozning qiymatiga parametrlarni o'rnatish), sinovdan o'tkazish va ehtimol uzoq muddatli baholashni o'z ichiga olishi mumkin.[iqtibos kerak] Dasturiy ta'minotni o'qitish va qo'llab-quvvatlash muhim ahamiyatga ega, chunki dastur to'g'ri ishlatilgan taqdirdagina samarali bo'ladi.[iqtibos kerak] Ta'minlash va yangi kashf etilgan narsalarni engish uchun dasturiy ta'minotni takomillashtirish xatolar yoki talablar katta vaqt va kuch talab qilishi mumkin, chunki o'tkazib yuborilgan talablar dasturiy ta'minotni qayta ishlashga majbur qilishi mumkin.[iqtibos kerak]. Aksariyat hollarda, xabar qilingan muammolarni bartaraf etish va dasturiy ta'minotning ishlashini ta'minlash uchun texnik xizmat muntazam ravishda talab qilinadi.
Modelni ko'rish
The TEAF Ko'rishlar va istiqbollar matritsasi.
A ko'rish modeli ni ta'minlaydigan asosdir qarashlar ustida tizim va uning atrof-muhitda ishlatilishi kerak dasturiy ta'minotni ishlab chiqish jarayoni. Bu ko'rinishning asosiy semantikasining grafik tasviri.
Nuqtai nazar va qarashlarning maqsadi inson muhandislarini juda yaxshi tushunishga imkon berishdir murakkab tizimlar va domenlari atrofida muammo elementlarini tartibga solish tajriba. In muhandislik jismoniy intensiv tizimlarning nuqtai nazari ko'pincha muhandislik tashkiloti ichidagi imkoniyat va majburiyatlarga mos keladi.[8] Ko'pgina murakkab tizim spetsifikatsiyalari shunchalik kengki, hech kim individual xususiyatlarning barcha jihatlarini to'liq anglay olmaydi. Bundan tashqari, barchamiz ma'lum bir tizimda turli xil manfaatlarga egamiz va ularni tekshirish uchun turli sabablar mavjud tizim"s texnik xususiyatlar. A biznes ma'muriyat tizimni amalga oshiruvchiga qaraganda tizim makiyajiga oid turli savollarni beradi. Shuning uchun nuqtai nazarlar ramkasining kontseptsiyasi, ma'lum bir murakkab tizimning spetsifikatsiyasiga alohida qarashlarni taqdim etishdan iborat. Ushbu qarashlar tinglovchilarni tizimning ba'zi jihatlariga qiziqish bilan qondiradi. Har bir nuqtai nazar bilan bog'liq bo'lgan nuqtai nazar, bu nuqtai nazardan tinglovchilar uchun so'z boyligi va taqdimotni optimallashtiradi.
Biznes jarayonlari va ma'lumotlarni modellashtirish
Grafik tasvir axborotning hozirgi holati foydalanuvchilarga ham, tizimga ham ma'lumotlarni taqdim etish uchun juda samarali vositani taqdim etadi ishlab chiquvchilar.
biznes jarayoni va ma'lumotlar modellari o'rtasidagi o'zaro ta'sirning misoli.[9]
A biznes modeli modellashtirilayotgan biznes jarayoni bilan bog'liq funktsiyalarni va ushbu funktsiyalarni bajaradigan tashkilotlarni aks ettiradi. Faoliyat va axborot oqimlarini tasvirlash orqali jarayonning mohiyatini tasavvur qilish, aniqlash, tushunish va tasdiqlash uchun asos yaratiladi.
A ma'lumotlar modeli saqlanadigan ma'lumotlarning tafsilotlarini taqdim etadi va yakuniy mahsulot kompyuter yaratilganda birinchi navbatda foydalaniladi dastur kodi dastur yoki kompyuter dasturiy ta'minotiga yordam beradigan funktsional spetsifikatsiyani tayyorlash uchun sotib olish yoki sotib olish to'g'risida qaror. Biznes jarayonlari va ma'lumotlar modellari o'rtasidagi o'zaro ta'sirga misol uchun o'ngdagi rasmga qarang.[9]
Odatda, intervyu o'tkazilgandan so'ng model yaratiladi biznesni tahlil qilish. Suhbat bir jarayonni tavsiflovchi kerakli ma'lumotlarni to'plash uchun mo'ljallangan bir qator savollarni beradigan yordamchidan iborat. Suhbatdosh ma'lumot beruvchi ishtirokchilar ekanligini ta'kidlash uchun yordamchi deb nomlanadi. Fasilitator qiziqish jarayoni haqida bir oz ma'lumotga ega bo'lishi kerak, ammo bu jarayon mutaxassisi tomonidan savollar beriladigan tuzilgan metodologiyaga ega bo'lish kabi muhim emas. Uslubiyat juda muhimdir, chunki odatda murabbiylar guruhi bino bo'ylab ma'lumot to'playdi va barcha intervyuerlardan olingan ma'lumotlar natijalari to'ldirilgandan so'ng bir-biriga mos kelishi kerak.[9] Modellar jarayonning hozirgi holatini belgilovchi sifatida ishlab chiqilgan bo'lib, u holda yakuniy mahsulot "mavjud" surati modeli yoki jarayon nimani o'z ichiga olishi kerakligi haqidagi g'oyalar to'plami deb nomlanadi, natijada "nima mumkin" -be "modeli. Jarayon va ma'lumotlar modellarini yaratish orqali mavjud jarayonlar va axborot tizimlari sog'lom ekanligini va faqat kichik o'zgartirishlar yoki yaxshilanishlarga ehtiyoj borligini yoki tuzatish uchun qayta qurish zarurligini aniqlash uchun foydalanish mumkin. Biznes modellarini yaratish bu sizning axborot jarayoningizni ko'rish yoki avtomatlashtirishning bir usuli emas. Tahlil sizning biznesingiz yoki tashkilotingiz o'z faoliyatini olib borish uslubini tubdan o'zgartirish uchun ishlatilishi mumkin.[9] Kompyuter yordamida dasturiy ta'minot
Kompyuter yordamida dasturiy ta'minot (CASE), maydonda dasturiy ta'minot, bu dasturiy vositalar va usullar to'plamini ishlab chiqishda ilmiy qo'llanilishi dasturiy ta'minot natijada yuqori sifatli, nuqsonsiz va saqlanadigan dasturiy mahsulotlar ishlab chiqariladi.[10] Shuningdek, u rivojlantirish usullariga ishora qiladi axborot tizimlari dasturiy ta'minotni ishlab chiqish jarayonida ishlatilishi mumkin bo'lgan avtomatlashtirilgan vositalar bilan birgalikda.[11] "Kompyuter yordamida dasturiy ta'minot muhandisligi" (CASE) atamasi dasturiy ta'minot ning avtomatlashtirilgan rivojlanishi uchun ishlatiladi tizim dasturlari, ya'ni kompyuter kodi. CASE funktsiyalari tahlil, loyihalash va dasturlashni o'z ichiga oladi. CASE vositalari kerakli darajada tuzilgan kompyuter kodlarini loyihalash, hujjatlashtirish va ishlab chiqarish usullarini avtomatlashtiradi dasturlash tili.[12] Kompyuter yordamida dasturiy ta'minot tizimining muhandisligi (CASE) ning ikkita asosiy g'oyalari:[13]
Dasturiy ta'minotni ishlab chiqishda kompyuter yordami va dasturiy ta'minotga xizmat ko'rsatish jarayonlar va
Dasturiy ta'minotni ishlab chiqish va texnik xizmat ko'rsatishga muhandislik yondashuvi.
Odatda CASE vositalari mavjud konfiguratsiyani boshqarish, ma'lumotlarni modellashtirish, modelni o'zgartirish, qayta ishlash, manba kodini yaratish.
Integratsiyalashgan rivojlanish muhiti
Anjuta, GNOME muhiti uchun C va C ++ IDE
An birlashgan rivojlanish muhiti (IDE) sifatida ham tanilgan yaxlit dizayn muhiti yoki disk raskadrovka muhiti a dasturiy ta'minot uchun har tomonlama qulayliklar yaratadigan kompyuter dasturchilari dasturiy ta'minotni ishlab chiqish uchun. IDE odatda quyidagilardan iborat:
Manba kodlari muharriri,
Tuzuvchi yoki tarjimon,
Avtomatlashtirishni qurish vositalari va
Xatolarni tuzatuvchi (odatda).
IDE'lar dasturchilarning mahsuldorligini maksimal darajada oshirish uchun mo'ljallangan foydalanuvchi interfeyslari. Odatda IDE ma'lum bir narsaga bag'ishlangan dasturlash tiliga mos keladigan xususiyatlar to'plamini taqdim etish uchun dasturlash paradigmalari tilning.
Modellashtirish tili
A modellashtirish tili har qanday sun'iy til ifodalash uchun ishlatilishi mumkin ma `lumot yoki bilim yoki tizimlar a tuzilishi bu izchil qoidalar to'plami bilan belgilanadi. Qoidalar tarkibidagi tarkibiy qismlarning ma'nosini izohlash uchun ishlatiladi. Modellashtirish tili grafik yoki matnli bo'lishi mumkin.[14] Grafik modellashtirish tillarida a diagramma texnikasi ramzlarni bog'laydigan tushunchalar va chiziqlarni ifodalovchi va cheklovlarni ifodalash uchun munosabatlar va boshqa turli xil grafik izohlarni aks ettiruvchi nomlangan belgilar bilan. Matnni modellashtirish tillari odatda kompyuter tomonidan izohlanadigan iboralarni yaratish uchun parametrlar bilan birga standartlashtirilgan kalit so'zlardan foydalanadi.
Dasturiy injiniring sohasidagi grafik modellashtirish tillariga quyidagilar kiradi:
Biznes jarayonlarini modellashtirish yozuvlari (BPMN va XML formasi BPML) a ning misoli jarayonlarni modellashtirish til.
EXPRESS va EXPRESS-G (ISO 10303-11) xalqaro standart umumiy maqsadlar uchun mo'ljallangan ma'lumotlarni modellashtirish til.
Kengaytirilgan korxonalarni modellashtirish tili (EEML) odatda biznes jarayonlarini qatlamlar bo'ylab modellashtirish uchun ishlatiladi.
Oqim sxemasi algoritm yoki bosqichma-bosqich jarayonning sxematik tasviri,
Asosiy modellashtirish tushunchalari Dasturni talab qiladigan tizimlar uchun (FMC) modellashtirish tili.
IDEF modellashtirish tillari oilasi bo'lib, ular orasida eng e'tiborlisi shular jumlasiga kiradi IDEF0 funktsional modellashtirish uchun, IDEF1X ma'lumot olish uchun modellashtirishva IDEF5 ontologiyalarni modellashtirish uchun.
LePUS3 bu ob'ektga yo'naltirilgan vizual Dizayn Ta'riflash tili va a rasmiy spetsifikatsiya asosan ob'ektga yo'naltirilgan katta modellashtirish uchun mos bo'lgan til (Java, C ++, C #) dasturlari va dizayn naqshlari.
Texnik xususiyatlari va tavsiflash tili (SDL) - bu reaktiv va taqsimlangan tizimlarning xatti-harakatlarini tavsiflash va tavsiflashga yo'naltirilgan spetsifikatsiya tili.
Birlashtirilgan modellashtirish tili (UML) - bu umumiy maqsadli modellashtirish dasturiy ta'minotni talab qiladigan tizimlarni aniqlash uchun sanoat standarti bo'lgan til. UML 2.0, joriy versiyasi, o'n uch xil diagramma texnikasini qo'llab-quvvatlaydi va keng vositalarni qo'llab-quvvatlaydi.
Modellashtirish tillarining hammasi ham bajarib bo'lmaydigan va ulardan foydalanish dasturchilar endi kerak emas degani emas. Aksincha, bajariladigan modellashtirish tillari malakali dasturchilarning mahsuldorligini oshirishga qaratilgan bo'lib, ular yanada qiyin muammolarni hal qilishlari mumkin, masalan. parallel hisoblash va tarqatilgan tizimlar.
Dasturlash paradigmasi
A dasturlash paradigmasi ning asosiy uslubidir kompyuter dasturlash, bu odatda loyihani boshqarish metodologiyasi tomonidan belgilanmaydi (masalan, palapartishlik yoki epchillik). Paradigmalar dastur elementlarini (masalan, ob'ektlar, funktsiyalar, o'zgaruvchilar, cheklovlar) ifodalash uchun ishlatiladigan tushunchalar va abstraktsiyalar va hisoblashni o'z ichiga olgan qadamlar (masalan, topshiriqlar, baholash, davom etish, ma'lumotlar oqimi) bilan farq qiladi. Ba'zan paradigma tomonidan tasdiqlangan tushunchalar yuqori darajadagi tizim arxitekturasini loyihalashda birgalikda qo'llaniladi; boshqa hollarda, dasturlash paradigmasi doirasi ma'lum bir dastur yoki modulning ichki tuzilishi bilan cheklangan.
A dasturlash tili qo'llab-quvvatlashi mumkin bir nechta paradigmalar. Masalan, yozilgan dasturlar C ++ yoki Ob'ekt Paskal faqat bo'lishi mumkin protsessualyoki butunlay ob'ektga yo'naltirilganyoki ikkala paradigma elementlarini ham o'z ichiga oladi. Dasturiy ta'minot dizaynerlari va dasturchilari ushbu paradigma elementlaridan qanday foydalanishni hal qilishadi. Yilda ob'ektga yo'naltirilgan dasturlash, dasturchilar dasturni o'zaro ta'sir qiladigan ob'ektlar to'plami deb hisoblashlari mumkin, ammo funktsional dasturlash dasturni fuqaroligi bo'lmagan funktsiyalarni baholash ketma-ketligi deb hisoblash mumkin. Ko'p protsessorli kompyuterlar yoki tizimlarni dasturlashda, jarayonga yo'naltirilgan dasturlash dasturchilarga dasturlar haqida mantiqiy ravishda birgalikda foydalaniladigan bir vaqtda olib boriladigan jarayonlar to'plami sifatida qarashga imkon beradi ma'lumotlar tuzilmalari.
Xuddi shu kabi turli guruhlar dasturiy ta'minot turli xil advokat metodologiyalar, boshqacha dasturlash tillari turli xil advokat dasturlash paradigmalari. Ba'zi tillar bitta paradigmani qo'llab-quvvatlashga mo'ljallangan (Kichik munozarasi ob'ektga yo'naltirilgan dasturlashni qo'llab-quvvatlaydi, Xaskell funktsional dasturlashni qo'llab-quvvatlaydi), boshqa dasturlash tillari esa bir nechta paradigmalarni qo'llab-quvvatlaydi (masalan Ob'ekt Paskal, C ++, C #, Visual Basic, Umumiy Lisp, Sxema, Python, Yoqutva Oz).
Ko'pgina dasturlash paradigmalari qanday usullari bilan yaxshi ma'lum taqiqlash ular imkon beradigan narsalarga kelsak. Masalan, sof funktsional dasturlash foydalanishni taqiqlaydi yon effektlar; tizimli dasturlash foydalanishni taqiqlaydi bordi bayonotlar. Qisman shu sababli, yangi paradigmalar ko'pincha ilgari uslublarga o'rganib qolganlar tomonidan doktriner yoki o'ta qattiq deb qaraladi.[iqtibos kerak] Ba'zi usullardan qochish dasturning to'g'riligi haqidagi teoremalarni isbotlashni yoki shunchaki uning xatti-harakatlarini tushunishni osonlashtirishi mumkin.
Yuqori darajadagi paradigmalarga quyidagilar kiradi:
Aspektga yo'naltirilgan dasturiy ta'minotni ishlab chiqish
Domenga xos modellashtirish
Modelga asoslangan muhandislik
Ob'ektga yo'naltirilgan dasturlash metodologiyalar
Grey Booch"s ob'ektga yo'naltirilgan dizayn (OOD), shuningdek ob'ektga yo'naltirilgan tahlil va dizayn (OOAD) deb nomlanadi. Booch modeli oltita diagrammani o'z ichiga oladi: sinf, ob'ekt, holatga o'tish, o'zaro ta'sir, modul va jarayon.[15]
Qidiruvga asoslangan dasturiy ta'minot
Xizmatga yo'naltirilgan modellashtirish
Tarkibiy dasturlash
Yuqoridan pastga va pastdan yuqoriga qarab loyihalash
Yuqoridan pastga dasturlash: 1970-yillarda IBM tadqiqotchisi tomonidan rivojlangan Xarlan Mills (va Niklaus Virt) ishlab chiqilgan tizimli dasturlash.