1
Ushbu bobda dasturiy ta'minot dizayni tavsifi keltirilgan
SWEBOK qo'llanmasi uchun bilim maydoni (Tosh odam
versiya). Birinchidan, bilim sohasining umumiy ta'rifi
berilgan. Keyin mavzular taqsimoti taqdim etiladi
bilim sohasi va turli xillarning qisqacha tavsiflari
mavzular. Ushbu mavzu tavsiflari ham qo'shiladi
batafsilroq ma'lumot beruvchi materiallarga havolalar
ushbu mavzularning taqdimoti va yoritilishi. The
keyin tavsiya etilgan havolalar qisqacha tavsiflanadi,
so'ngra keyingi o'qish uchun bir qator takliflar.
Shuni ta'kidlash kerakki, turli xil cheklovlar bo'lishi kerak edi
olingan bilim sohasi (KA) tavsifi bilan qanoatlantiriladi
ushbu tavsiflar uchun belgilangan talablarni qondirish
(SWEBOK bo'yicha to'liq qo'llanmaning A ilovasiga qarang).
Asosiy cheklovlar orasida KA tavsifi bor edi
emas, balki "umumiy qabul qilingan" bilimlarni tasvirlash kerak edi
har qanday dastur domenlari yoki ishlanmalariga xos
usullari va odatiy buzilishlarga mos kelishi kerak edi
adabiyotlarda topilgan. Qiziqqanlar uchun 4-bo'lim
Batafsilroq taqsimlash asosini tushuntirib beradi
KA tavsifi uchun turli talablar qanday edi
uchrashdi. Talablarga oid yakuniy eslatma shu edi
KA tavsifi ro'yxatini taklif qilish kerak edi "Tavsiya etiladi
ma'lumotnomalar" cheklangan miqdordagi yozuvlar bilan.
Bu talabni qondirish, afsuski, hammasi emas, degani edi
qiziqarli adabiyotlar tavsiya etilgan adabiyotlar ro'yxatiga kiritilishi mumkin, shuning uchun keyingi o'qishlar ro'yxati.
IEEE ta'rifiga ko'ra [IEE90], dizayn ikkalasi ham
"arxitekturani, tarkibiy qismlarini aniqlash jarayoni,
interfeyslar va tizimning boshqa xususiyatlari yoki
komponent” va “[bu] jarayonning natijasi”. sifatida qaraladi
jarayon, dasturiy ta'minot dizayni - bu dasturiy ta'minot ichidagi faoliyat
dasturiy ta'minot talablari bo'lgan rivojlanishning hayot aylanishi
ichki tavsifni ishlab chiqarish uchun tahlil qilinadi
bo'lib xizmat qiladigan tizimning tuzilishi va tashkil etilishi
uning qurilishi uchun asosdir. Aniqroq aytganda, dasturiy ta'minot
dizayn (natija) arxitekturasini tavsiflashi kerak
tizim, ya'ni tizim qanday parchalanadi va
komponentlarga ajratilgan va interfeyslarni tavsiflashi kerak
Ushbu komponentlar o'rtasida. Bularni ham tavsiflash kerak
komponentlarni o'zlariga ruxsat berish uchun mos bo'lgan detallar darajasiga
qurilish.
Klassik dasturiy ta'minotni ishlab chiqish hayotiy tsiklida, masalan
ISO/IEC 12207 Dasturiy ta'minotning hayot aylanish jarayonlari [ISO95b],
dasturiy ta'minot dizayni bir-biriga mos keladigan ikkita faoliyatdan iborat
dasturiy ta'minot talablarini tahlil qilish va dasturiy ta'minotni kodlash va
test: i) dasturiy ta'minot arxitektura dizayni - ba'zan deyiladi
yuqori darajadagi dizayn, bu erda yuqori darajadagi tuzilma va
tizimning tashkil etilishi tavsiflangan va turlicha
komponentlar aniqlanadi; ii) dasturiy ta'minotning batafsil dizayni -
bu erda har bir komponent imkon berish uchun etarlicha tavsiflangan
uning kodlanishi.
Dasturiy ta'minot dizayni ishlab chiqishda muhim rol o'ynaydi
ishlab chiquvchiga imkon beradigan dasturiy ta'minot tizimi
ning o'ziga xos rejasini tashkil etuvchi turli xil modellarni ishlab chiqaradi
yechim amalga oshirilishi kerak. Ushbu modellarni tahlil qilish mumkin
va ular turli ruxsat berish yoki yo'qligini aniqlash uchun baholanadi
bajarilishi kerak bo'lgan talablar. Turli xil alternativ echimlar
va o'zaro kelishuvlar ham tekshirilishi va baholanishi mumkin. Nihoyat,
Olingan modellar keyingisini rejalashtirish uchun ishlatilishi mumkin
3–2 © IEEE – Sinov versiyasi 1.00 – 2001 yil may
kiritish sifatida foydalanishdan tashqari rivojlantirish faoliyati
va kodlash va sinov faoliyatining boshlang'ich nuqtasi.
Dasturiy ta'minot dizayni KA doirasiga kelsak, u
Shuni ta'kidlash kerakki, so'zni o'z ichiga olgan barcha mavzular emas
Ularning nomlaridagi "dizayn" hozirgi KAda muhokama qilinadi
tavsifi. DeMarko [DeM99] terminologiyasida, the
Hozirgi KA asosan yuqoridagi paragraflarda muhokama qilinganidek D-dizayn (parchalanish dizayni) bilan bog'liq.
(tizimni tarkibiy qismlarga ajratish). Biroq,
ning o'sib borayotgan sohasida muhimligi tufayli
Dasturiy ta'minot arxitekturasi, FP-dizayn (Oilaviy naqsh dizayni,
uning maqsadi a ustidan ekspluatatsiya qilinadigan umumiyliklarni o'rnatishdir
tizimlar oilasi) ham ko'rib chiqiladi. Boshqa tomondan
qo'l, I-dizayn (Ixtiro dizayni, odatda tizim tomonidan amalga oshiriladi
kashf etilgan ehtiyojlar va talablarni qondirish uchun tizimni kontseptsiyalash va belgilash maqsadi bilan tahlilchilar) ko'rib chiqilmaydi, chunki bu oxirgi mavzu
talablarni tahlil qilishning bir qismi hisoblanishi va
spetsifikatsiya faoliyati. Nihoyat, shuni ham e'tiborga olingki, chunki
KA tavsifiga kiritilishi kerak bo'lgan talablar
har qanday dastur domenlariga xos bo'lmagan bilimlar va
ba'zi mavzular bilimda yaxshiroq yoritilganligi
Tegishli fanlar sohalari (to'liq D ilovasiga qarang).
Qo'llanma), ma'lum ixtisoslashgan sohalar - masalan, Foydalanuvchi
Interfeys dizayni yoki real vaqtda dizayn - aniq emas
Ushbu dasturiy ta'minot dizayni KA tavsifida muhokama qilingan.
Qo'shimcha ma'lumot uchun ushbu bobning 4-bo'limiga qarang
ushbu va boshqa maxsus "dizayn" mavzulariga tegishli. Of
Albatta, ushbu dasturiy ta'minotga kiritilgan ko'plab mavzular
Dizayn KA tavsifi hali ham ushbu ixtisoslashganlarga tegishli bo'lishi mumkin
hududlar.
3. DASTURIY DASTURLAR DIZAYNASI UCHUN MAVZULARNING BO’LGANISHI
Ushbu bo'limda dasturiy ta'minotning taqsimoti ko'rsatilgan
Dizayn bilim sohasi qisqacha tavsiflari bilan birga
asosiy mavzularning har biri. Tegishli havolalar ham mavjud
har bir mavzu uchun berilgan. 1-rasmda grafik ko'rsatilgan
ning yuqori darajadagi parchalanishining taqdimoti
Dasturiy ta'minotni loyihalash bo'yicha bilim sohasi uchun taqsimot. The
batafsil taqsimot keyingi sahifalarda keltirilgan.
Eslatma: Malumot tugmalaridagi raqamlar, masalan, [Bud94:8,
Pre97:23], havolaning muayyan bob(lar)ini ko'rsating. In
Mar94 ishi, masalan, [Mar94:D], harflar ko'rsatadi
ensiklopediyaning maxsus yozuvlari: "D" = Dizayn; "DR" =
Dizayn taqdimoti; "DD" = Tarqalgan dizayn
tizimlari”. Shuni ham unutmangki, taqdim etilgan matritsadan farqli o'laroq
5-bo'lim, faqat tegishli bob (yoki qism) raqami,
aniq bo'limlar yoki sahifalar ko'rsatilmagan.
I. Dasturiy ta'minotni loyihalashning asosiy tushunchalari
Ushbu birinchi bo'lim bir qator tushunchalarni taqdim etadi va
tushunish uchun asos bo'lgan tushunchalar
Dasturiy ta'minot dizaynining roli va ko'lami.
Š Umumiy dizayn tushunchalari: Dasturiy ta'minot yagona soha emas
dizayn ishtirok etgan joyda. Umumiy ma'noda, dizayn
shakli sifatida qarash mumkin muammolarni hal qilish [Bud94: 1]. Uchun
Masalan, yovuz muammo tushunchasi - bu muammo
aniq yechimga ega emas - dizayn chegaralarini tushunish uchun qiziqarli [Bud94: 1]. Bir qator
tushuncha va tushunchalarni tushunish ham qiziq
dizayn umumiy ma'noda: maqsadlar, cheklovlar,
muqobillar, taqdimotlar va yechimlar [SB93].
Š Dasturiy ta'minot dizayni konteksti: rolni tushunish
va dasturiy ta'minotni loyihalash joyi, muhim ahamiyatga ega
dasturiy ta'minot dizayni mos keladigan kontekstni tushunish,
ya'ni dasturiy ta'minotni ishlab chiqish hayotiy tsikli. Shunday qilib,
dasturiy ta'minot talablarini tahlil qilishning asosiy xususiyatlari
dasturiy ta'minot dizayni va boshqalar. dasturiy ta'minotni qurish va boshqalar
tushunish kerak [ISO95b, LG01:11, Mar94:D,
Pfl98:2, Pre97:2].
Š Dasturiy ta'minotni loyihalash jarayoni: Dasturiy ta'minot dizayni
odatda ikki bosqichli jarayon hisoblanadi: arxitektura
dizayn tizimning qanday parchalanishini tasvirlaydi va
komponentlarga ajratilgan (dasturiy ta'minot arxitekturasi),
holbuki, batafsil dizayn o'ziga xos xatti-harakatni tavsiflaydi
ushbu komponentlardan [DT97:7, FW83:I, ISO95b,
LG01:13, 94-mart:D]. Ushbu jarayonning natijasi to'plamdir
asosiy qarorlarni qayd etadigan modellar va artefaktlar
olingan [Bud94:2, IEE98, LG01:13,
Oldingi 97:13].
Š Dasturiy ta'minotni loyihalash uchun texnikani yoqish: Ko'ra
Oksford lug'atida printsip "asosiy haqiqat yoki a
fikr yuritish uchun asos sifatida foydalaniladigan umumiy qonun […] yoki a
harakat uchun qo'llanma". Dasturiy ta'minotni loyihalashning bunday tamoyillari,
[BMR+96] da faollashtirish usullari deb ataladi, bu asosiy tushunchalardir
ko'p turli dasturiy ta'minot uchun asosiy hisoblanadi
bir turni tashkil etuvchi dizayn yondashuvlari, tushunchalari va tushunchalari
ko'pgina yondashuvlar uchun asos bo'ldi. Ba'zilari
asosiy tushunchalar quyidagilardir [BCK98:6, BMR+96:6,
IEE98, Jal97:5,6, LG01:1,3, Pfl98: 5, Pre97:13,23]:
- Abstraksiya: “axborotni unutish jarayoni shunday
har xil bo'lgan narsalarga xuddi shunday munosabatda bo'lish mumkin
bir xil” [LG01]. Dasturiy ta'minot kontekstida
dizayn, ikkita asosiy abstraktsiya mexanizmi
parametrlash va spetsifikatsiya bo'yicha abstraktsiya,
Bu o'z navbatida uchta asosiy mavhumlik turiga olib keladi:
protsessual abstraktsiya, ma'lumotlarni abstraktsiyalash va nazorat qilish
(iteratsiya) abstraksiya [BCK98:6, LG01:1,3,5,6
Jal97:5, Pre97:13].
- Bog'lanish va birlashish: ulash choralari esa
o'rtasidagi mavjud munosabatlarning mustahkamligi
modullar, uyg'unlik qanday elementlarni o'lchaydi
modul yaratish bir-biriga bog'liq [BCK98:6, Jal97:5,
Pfl98:5, Pre97:13].
- parchalanish va modullashtirish: ishlashi
katta tizimni kichikroq sonlarga parchalash
mustaqil bo'lganlar, odatda joylashtirish maqsadi bilan
turli funktsiyalar yoki turli xil mas'uliyat
komponentlar [BCK98:6, BMR+96:6, Jal97:5, Pfl98:5,
Oldingi 97:13].
Loyihalashda bir qator asosiy masalalarni hal qilish kerak
dasturiy ta'minot tizimlari. Ulardan ba'zilari haqiqatan ham sifat bilan bog'liq
Bu barcha tizimlar tomonidan hal qilinishi kerak, masalan, ishlash. Yana bir muhim masala - qanday parchalanish,
dasturiy ta'minot komponentlarini tashkil qilish va paketlash. Bu shunday
bir tarzda yoki hal qilinishi kerakligi asosiy
boshqa, dizaynga barcha yondashuvlar bo'yicha; bu haqida muhokama qilinadi
Texnikalarni yoqish va dasturiy ta'minotni loyihalash strategiyalarida
mavzular. Boshqa tomondan, boshqa muammolar ham mavjud
"tizim xatti-harakatlarining ba'zi jihatlari bilan shug'ullanmang
ilova domenida, lekin ba'zilariga murojaat qiladigan
qo‘llab-quvvatlovchi domenlar” [Bos00]. Ko'pincha bunday muammolar
tizimning o'zaro faoliyat funksiyalari deb ataladi
aspektlar: “[aspektlar] tizimning funktsional parchalanish birliklari emas, balki ta'sir qiluvchi xususiyatlardir.
komponentlarning tizimli ishlashi yoki semantikasi
yo‘llari” [KLM+97]. Bu asosiy, o'zaro faoliyat bir qator
masalalar quyidagilar (alifbo tartibida keltirilgan):
Š Parametrlilik: tizimlarni qanday qismlarga ajratish kerak
jarayonlar, vazifalar va mavzular va ular bilan bog'liq
samaradorlik, atomiklik, sinxronizatsiya va rejalashtirish
masalalar [Bos00:5, Mar94:DD, Mey97:30, Pre97:21].
Š Hodisalarni boshqarish va boshqarish: oqimni qanday tashkil qilish kerak
ma'lumotlar va boshqaruv oqimi, reaktivni qanday boshqarish kerakligi
va turli mexanizmlar orqali vaqtinchalik hodisalar, masalan,
yashirin chaqiruv va qayta qo'ng'iroqlar [BCK98:5, Mey97:32,
Pfl98:5].
Š Tarqatish: dasturiy ta'minot tarmoqda qanday tarqatiladi
apparat, komponentlar qanday aloqa qiladi, qanday
o'rta dastur heterojen bilan kurashish uchun ishlatilishi mumkin
tizimlar [BCK98:8, BMR+96:2, Bos00:5, Mar94:DD,
Mey97:30, Oldin 97:28].
Š Xato va istisnolardan foydalanish va xatolarga chidamlilik: qanday qilib
xatolarning oldini olish va ularga toqat qilish va istisnolar bilan kurashish
shartlar [LG01:4, Mey97:12, Pfl98:5].
Š Interaktiv tizimlar: o'zaro ta'sir o'tkazish uchun qaysi yondashuvdan foydalanish kerak
foydalanuvchilar bilan [BCK98:6, BMR+96:2.4, Bos00:5, LG01:13,
May97:32].
(Eslatma: bu mavzu tafsilotlarning texnik xususiyatlari haqida emas
vazifasi sifatida qaraladigan foydalanuvchi interfeysi
UI dizayni, joriy KA doirasidan tashqaridagi mavzu.)
Š Qat'iylik: uzoq umr ko'radigan ma'lumotlar bilan ishlash qanchalik zarur
[Bos00:5, Mey97:31].
III. Dasturiy ta'minot tuzilishi va arxitekturasi
O'zining qat'iy ma'nosida "dasturiy ta'minot arxitekturasi tavsifdir
dasturiy ta'minot tizimining quyi tizimlari va komponentlari
va ular orasidagi munosabatlar” [BMR+96:6]. An
Shunday qilib, arxitektura ichki tuzilmani aniqlashga harakat qiladi -
"Biror narsaning tuzilishi yoki tashkil etilishi"
(Oksford lug'ati) - natijada olingan dasturiy ta'minot. davomida
90-yillarning o'rtalarida dasturiy ta'minot arxitekturasi paydo bo'la boshladi
dasturiy ta'minotni o'rganish bilan bog'liq bo'lgan kengroq intizom sifatida
tuzilmalar va arxitekturalar umumiyroq tarzda [SG96].
Bu bir qator qiziqarli tushunchalarni keltirib chiqardi
abstraktsiyaning turli darajalarida dasturiy ta'minotni loyihalash bilan. Ushbu tushunchalarning ba'zilari arxitektura dizayni (masalan, arxitektura uslubi) paytida ham foydali bo'lishi mumkin.
a ning batafsil dizayni (masalan, quyi darajadagi dizayn naqshlari).
maxsus dasturiy ta'minot tizimi. Lekin ular uchun ham foydali bo'lishi mumkin
umumiy tizimlarni loyihalash, oilalarni loyihalashga olib keladi
tizimlari (aka. mahsulot liniyalari). Qizig'i shundaki, bularning aksariyati
tushunchalarni tasvirlash va shu tariqa qayta ishlatishga urinish sifatida ko'rish mumkin,
umumiy dizayn bilimlari.
Š Arxitektura tuzilmalari va nuqtai nazarlari: dasturiy ta'minot dizaynining turli yuqori darajali tomonlari bo'lishi mumkin va bo'lishi kerak.
tasvirlangan va hujjatlashtirilgan. Bu tomonlar ko'pincha deyiladi
ko'rinishlar: "ko'rinish dasturiy ta'minotning qisman tomonini ifodalaydi
dasturiy ta'minotning o'ziga xos xususiyatlarini ko'rsatadigan arxitektura
tizimi” [BMR+96]. Bu turli qarashlarga tegishli
dasturiy ta'minotni loyihalash bilan bog'liq turli muammolar,
masalan, mantiqiy ko'rinish (funktsionalni qondirish
talablar) va jarayon ko'rinishi (moslashuv muammolari)
va boshqalar jismoniy ko'rinishi (tarqatish muammolari) va boshqalar
rivojlanish ko'rinishi (dizayn qanday bo'lingan
amalga oshirish birliklari). Boshqa mualliflar boshqacha foydalanadilar
terminologiyalar, masalan, xulq-atvor va funktsional va tizimli va ma'lumotlarni modellashtirish ko'rinishlari. Asosiy fikr shundan iboratki, a
dasturiy ta'minot dizayni tomonidan ishlab chiqarilgan ko'p qirrali artefaktdir
dizayn jarayoni va odatda nisbatan tashkil topgan
mustaqil va ortogonal qarashlar [BCK98:2,
BMR+96:6, BRJ99:31, Bud94:5, IEE98].
Š Arxitektura uslublari (makro-arxitektura naqshlari): An
me'moriy uslub - bu "cheklashlar to'plami
arxitektura [bu] arxitekturalar to'plami yoki oilasini belgilaydi
bu ularni qoniqtiradi” [BCK98:2]. Arxitektura uslubi bo'lishi mumkin
Shunday qilib, yuqori darajadagi tashkilotni (makro-arxitekturani) ta'minlaydigan meta-model sifatida ko'rish mumkin.
dasturiy ta'minot tizimi. Bir qator asosiy uslublar mavjud edi
turli mualliflar tomonidan aniqlangan. Bu uslublar mumkin
(taxminan) quyidagicha tashkil etilsin [BCK98:5,
BMR+96:1,6, Bos00:6, BRJ99:28, Pfl98:5]:
- Umumiy tuzilish (masalan, qatlamlar, quvurlar va filtrlar,
doska);
- taqsimlangan tizimlar (masalan, mijoz-server, uch darajali,
broker);
- Interaktiv tizimlar (masalan, Model-View-Controller,
Taqdimot-Avstraksiya-Nazorat);
- Moslashuvchan tizimlar (masalan, mikro-yadro, aks ettirish);
- Boshqa uslublar (masalan, to'plam, tarjimonlar, jarayon
nazorat, qoidaga asoslangan).
Š Dizayn naqshlari (mikroarxitektura naqshlari):
Qisqacha ta'riflangan holda, naqsh "umumiy yechimdir
ma'lum bir kontekstdagi umumiy muammoga"
[JBR99: p. 447]. Holbuki, arxitektura uslublari bo'lishi mumkin
yuqori darajadagi tashkilotni tavsiflovchi naqshlar sifatida qaraladi
dasturiy ta'minot tizimlari, shuning uchun ularning makro-arxitekturasi, boshqalar
dizayn naqshlari a da tafsilotlarni tasvirlash uchun ishlatilishi mumkin
pastroq, ko'proq mahalliy darajada, shuning uchun ularning mikroarxitekturasini tavsiflaydi. Naqshlarning keng doirasi bo'lgan
adabiyotlarda muhokama qilinadi. Bunday dizayn naqshlari mumkin
(taxminan) quyidagicha tasniflanadi [BCK98:13,
BMR+96:1, BRJ99:28]:
- Yaratilish naqshlari: masalan, quruvchi, zavod, prototip,
singleton.
- Strukturaviy naqshlar: masalan, adapter, ko'prik, kompozit,
dekorator, fasad, flyweight, proksi.
- xulq-atvor namunalari: masalan, buyruq, tarjimon,
iterator, vositachi, esdalik, kuzatuvchi, davlat,
strategiya, shablon, mehmon.
Š Dasturlar va ramkalar oilalari: bitta mumkin
dasturiy ta'minot dizaynlarini qayta ishlatishga imkon beradigan yondashuv va
komponentlar tizimlar oilalarini loyihalash uchun hamdir
dasturiy mahsulotlar qatori sifatida tanilgan - buni amalga oshirish mumkin
a'zolari o'rtasidagi umumiy xususiyatlarni aniqlash orqali
bunday oilalar va qayta foydalanish mumkin va moslashtirilgan foydalanish orqali
o'rtasidagi o'zgaruvchanlikni hisobga olish uchun komponentlar
oilaning turli a'zolari [BCK98:15, Bos00:7,10,
Oldingi 97:26].
OO dasturlash sohasida asosiy bog'liq tushuncha
ramka [BMR+96:6, Bos00:11, BRJ99:28]: a
Framework qisman to'liq dasturiy ta'minot quyi tizimidir
mos ravishda o'rnatish orqali kengaytirilishi mumkin ba'zi maxsus plaginlar (shuningdek, issiq nuqtalar sifatida ham tanilgan).
IV. Dasturiy ta'minot dizayni sifatini tahlil qilish va baholash
Butun bilim sohasi dasturiy ta'minot sifatiga bag'ishlangan
(11-bobga qarang). Bu erda biz shunchaki bir nechtasini eslatib o'tamiz
ko'proq dasturiy ta'minot dizayni bilan bog'liq mavzular.
Š Sifat atributlari: Odatda har xil atributlar mavjud
yaxshilik dizaynini olish uchun muhim hisoblanadi
2
Dasturiy ta'minot dizayni - bu foydalanuvchi talablarini qandaydir mos shaklga aylantirish jarayoni bo'lib, u dasturchiga dasturiy ta'minotni kodlash va amalga oshirishda yordam beradi. Dasturiy ta'minotni loyihalash bosqichida SRS hujjatida hujjatlashtirilgan mijozning talablaridan kelib chiqqan holda dizayn hujjati ishlab chiqariladi. Demak, ushbu bosqichning maqsadi SRS hujjatini loyiha hujjatiga aylantirishdir.
Dizayn bosqichida quyidagi elementlar ishlab chiqilgan va hujjatlashtirilgan:
Turli xil modullar talab qilinadi.
Modullar orasidagi munosabatlarni boshqarish.
Turli modullar orasidagi interfeys.
Turli modullar orasidagi ma'lumotlar tuzilishi.
Alohida modullar orasida amalga oshirish uchun zarur bo'lgan algoritmlar.
Dasturiy ta'minotni loyihalashning maqsadlari:
To'g'riligi:
Yaxshi dizayn to'g'ri bo'lishi kerak, ya'ni tizimning barcha funktsiyalarini to'g'ri amalga oshirishi kerak.
Samaradorlik:
Yaxshi dasturiy ta'minot dizayni resurslar, vaqt va xarajatlarni optimallashtirish masalalarini hal qilishi kerak.
Tushunuvchanlik:
Yaxshi dizayn oson tushunarli bo'lishi kerak, buning uchun u modulli bo'lishi kerak va barcha modullar qatlamlarda joylashtirilgan.
To'liqlik:
Dizaynda ma'lumotlar tuzilmalari, modullar va tashqi interfeyslar va boshqalar kabi barcha komponentlar bo'lishi kerak.
Xizmat ko'rsatish qobiliyati:
Yaxshi dasturiy ta'minot dizayni mijoz tomonidan o'zgartirish so'rovi berilganda osongina o'zgarishi mumkin bo'lishi kerak.
Dasturiy ta'minotni loyihalash tushunchalari:
Tushunchalar nimanidir tushunish uchun ongimizga yoki fikrimizga kiradigan asosiy g'oya yoki ixtiro sifatida aniqlanadi. Dasturiy ta'minotni loyihalash kontseptsiyasi shunchaki dizayn ortidagi g'oya yoki printsipni anglatadi. U dasturiy ta'minotni loyihalash muammosini qanday hal qilishni rejalashtirayotganingizni, mantiqni yoki dasturiy ta'minotni qanday loyihalash haqida o'ylashni tasvirlaydi. Bu dasturiy ta'minot muhandisiga ishlab chiqiladigan yoki quriladigan tizim yoki dasturiy ta'minot yoki mahsulot modelini yaratishga imkon beradi. Dasturiy ta'minotni loyihalash kontseptsiyasi to'g'ri dasturiy ta'minotni ishlab chiqish uchun yordamchi va muhim tuzilma yoki modelni taqdim etadi. Dasturiy ta'minot dizaynining ko'plab tushunchalari mavjud va ulardan ba'zilari quyida keltirilgan:
Dasturiy ta'minotni loyihalashda quyidagi fikrlarni hisobga olish kerak:
Abstraksiya - ahamiyatsiz ma'lumotlarni yashirish
Abstraktsiya shunchaki murakkablikni kamaytirish va samaradorlik yoki sifatni oshirish uchun tafsilotlarni yashirishni anglatadi. Abstraktsiyaning turli darajalari zarur va loyihalash jarayonining har bir bosqichida qo'llanilishi kerak, shunda dasturiy yechim samaradorligini oshirish va dasturiy yechimni takomillashtirish uchun mavjud bo'lgan har qanday xatolik bartaraf etilishi mumkin. Yechim mavhumlikning yuqori darajasida turli xil narsalarning keng doirasini qamrab oladigan keng yo'llar bilan tavsiflanishi kerak va mavhumlikning pastki darajasida dasturiy ta'minot yechimining batafsil tavsifi berilishi kerak.
Modullik - tizimni qismlarga bo'lish
Modullilik shunchaki tizim yoki loyihaning murakkabligini kamaytirish uchun tizim yoki loyihani kichikroq qismlarga bo'lish demakdir. Xuddi shu tarzda, dizayndagi modullik tizimni kichikroq qismlarga bo'lish demakdir, bu qismlar mustaqil ravishda yaratilishi va keyin bu qismlardan turli funktsiyalarni bajarish uchun turli tizimlarda foydalanishi mumkin. Dasturiy ta'minotni modullar deb nomlanuvchi komponentlarga bo'lish kerak, chunki bugungi kunda dastur muhandislari uchun tushunish qiyin bo'lgan Monolithic dasturiy ta'minot kabi turli xil dasturlar mavjud. Shunday qilib, dizayndagi modullik endi trendga aylandi va u ham muhim. Agar tizimda kamroq komponentlar bo'lsa, bu tizimning murakkabligini bildiradi, bu juda ko'p kuch talab qiladi (xarajat), lekin agar biz tizimni tarkibiy qismlarga bo'la olsak, xarajat kichik bo'ladi.
Arxitektura - biror narsaning tuzilishini loyihalash
Arxitektura shunchaki biror narsaning tuzilishini loyihalash texnikasini anglatadi. Dasturiy ta'minotni loyihalashda arxitektura - bu strukturaning turli elementlari va ma'lumotlariga qaratilgan tushunchadir. Ushbu komponentlar bir-biri bilan o'zaro ta'sir qiladi va arxitekturada strukturaning ma'lumotlaridan foydalanadi.
Tozalash - kirlarni yo'q qiladi
Tozalash shunchaki biror narsani tozalash, agar mavjud bo'lsa, kirlarni olib tashlash va sifatini oshirishni anglatadi. Dasturiy ta'minot dizaynining takomillashtirish kontseptsiyasi aslida dasturiy ta'minot yoki tizimni ishlab chiqish yoki taqdim etish jarayoni bo'lib, tizim yoki dasturiy ta'minotni ishlab chiqishni anglatadi. Agar mavjud bo'lsa, xatolikni aniqlash va keyin uni kamaytirish uchun tozalash juda zarur.
Naqsh - takroriy shakl
Naqsh shunchaki takrorlangan shakl yoki dizaynni anglatadi, unda bir xil shakl naqsh hosil qilish uchun bir necha marta takrorlanadi. Dizayn jarayonidagi naqsh ma'lum bir kontekstda umumiy takrorlanadigan muammoni hal qilishning takrorlanishini anglatadi.
Ma'lumotni yashirish - ma'lumotni yashirish
Axborotni yashirish shunchaki ma'lumotni istalmagan shaxsga kira olmasligi uchun yashirishni anglatadi. Dasturiy ta'minotni loyihalashda ma'lumotlarni yashirish modullarni bitta modulda to'plangan yoki mavjud bo'lgan ma'lumotlar yashiringan va boshqa modullar tomonidan foydalanilmaydigan tarzda loyihalash orqali erishiladi.
Refaktoring - biror narsani qayta qurish
Refaktoring shunchaki biror narsani boshqa xususiyatlarning xatti-harakatlariga ta'sir qilmaydigan tarzda qayta qurishni anglatadi. Dasturiy ta'minot dizaynidagi refaktoring dizaynni murakkablikni kamaytirish va xatti-harakatlarga yoki uning funktsiyalariga ta'sir qilmasdan soddalashtirish uchun qayta qurishni anglatadi. Fauler refaktoringni "dasturiy ta'minot tizimini dizayn xatti-harakatlariga ta'sir qilmaydigan va ichki tuzilmani yaxshilaydigan tarzda o'zgartirish jarayoni" deb ta'riflagan.
Dasturiy ta'minot dizaynining turli darajalari:
Dasturiy ta'minot dizaynining uch xil darajasi mavjud. Ular:
Arxitektura dizayni:
Tizim arxitekturasini tizimning umumiy tuzilishi va tizimning kontseptual yaxlitligini ta'minlash usuli sifatida ko'rish mumkin. Arxitektura dizayni dasturiy ta'minotni bir-biri bilan o'zaro ta'sir qiluvchi ko'plab komponentlarga ega tizim sifatida belgilaydi. Ushbu darajada dizaynerlar taklif etilayotgan yechim domenining g'oyasini oladilar.
Dastlabki yoki yuqori darajadagi dizayn:
Bu erda muammo modullar to'plamiga bo'linadi, turli modullar o'rtasidagi boshqaruv aloqasi aniqlanadi, shuningdek, turli modullar orasidagi interfeyslar aniqlanadi. Ushbu bosqichning natijasi dastur arxitekturasi deb ataladi. Ushbu bosqichda qo'llaniladigan dizayn vakillik usullari tuzilma diagrammasi va UML hisoblanadi.
Batafsil dizayn:
Yuqori darajadagi dizayn tugagandan so'ng, batafsil dizayn amalga oshiriladi. Batafsil loyihalashda har bir modul ma'lumotlar strukturasi va algoritmlarini loyihalash uchun diqqat bilan tekshiriladi. Bosqich natijasi modul spetsifikatsiyasi hujjati shaklida hujjatlashtiriladi.
3
Konstruktiv dastur (CP) - bu Mahatma Gandi tomonidan o'z satyagraxasining ikkita tarmog'idan birini tasvirlash uchun ishlab chiqilgan atama, ikkinchisi zo'ravonliksiz qarshilikning ba'zi bir shakli, masalan. fuqarolik itoatsizligi, ba'zan konstruktiv dasturning ahamiyatini tan oldi va uni 1894 yil Janubiy Afrikadagi kampaniyalarining birinchi yilidayoq muvaffaqiyatli qo'lladi. Aslida, Hindiston mustaqilligi uchun kurashda CPning ahamiyatini ortiqcha ta'kidlab bo'lmaydi, chunki u. fuqarolik itoatsizligini "konstruktiv harakatlarga yordam" deb ta'riflagan. [1] Gandi oʻzining doʻsti va tarafdori Jamnalal Bajajga shunday deb yozgan edi: “Mening haqiqiy siyosatim bu konstruktiv ishdir”. [2]
Zamonaviy zo'ravonliksiz kurashlar ko'pincha konstruktiv dasturga ega emas, ular osonlik bilan birlashtiriladi va ularni faol bo'lishga, to'g'ridan-to'g'ri qarshilik ko'rsatishning iloji bo'lmaganda sa'y-harakatlarning uzluksizligini ta'minlaydi va jamoatchilik va muxolifatni ular shunchaki buzg'unchi emas, balki ularni yaratish qobiliyatiga ega ekanligiga ishontiradi. yaxshi. Eng muhimi, konstruktiv dastur muqobil institutlarni qurishi mumkin, shunda muvaffaqiyatli qo'zg'olon shunchaki hokimiyat bo'shlig'iga olib kelmaydi, bu esa zulmning qaytib kelishiga imkon beradi, masalan, Misrda 2011 yilda prezident Muborak ag'darilganidan keyin [3].
Do'stlaringiz bilan baham: |