1-bo‘lim

Dasturiy ta'minot muhandisligi nima?

Dasturlash va muhandislik farqi, dasturiy ta'minot inqirozi, sifat mezonlari va kasb rollari.

🕑 7 daqiqa o‘qish 📄 1 012 so‘z 👁 6 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Dasturlash va muhandislik
  2. Dasturiy ta'minot inqirozi
  3. Dasturiy ta'minotning xususiyatlari
  4. Sifat mezonlari
  5. Xato narxi
  6. Kasb rollari
  7. Muhandislik prinsiplari
  8. Nima o'rganamiz?
  9. Xulosa

Kod yozishni bilish - dasturchi bo'lish uchun yetarli emas. Bir kishilik skript bilan minglab foydalanuvchi ishlatadigan tizim orasida katta farq bor.

Dasturlash va muhandislik #

Ikki xil ish Dasturlash • Bitta odam yozadi • Bir necha kun yoki hafta • Talab boshidan ma'lum • "Ishlasa bo'ldi" • Keyin tashlab yuboriladi • Xato - shaxsiy noqulaylik Masalan: kurs ishi, skript Muhandislik • Jamoa bilan ishlanadi • Yillar davomida yashaydi • Talab doim o'zgaradi • Ishonchli, xavfsiz, tez bo'lishi kerak • Qo'llab-quvvatlanadi va rivojlanadi • Xato - pul va obro' yo'qotish Masalan: bank tizimi, marketplace
Muhandislik - kod yozishdan ancha kengroq tushuncha
Rasmiy ta'rif

IEEE ta'rifi: dasturiy ta'minot muhandisligi - dasturiy ta'minotni ishlab chiqish, ishlatish va qo'llab-quvvatlashga tizimli, tartibli va o'lchanadigan yondashuvni qo'llash.

Uchta kalit so'z:

  • Tizimli - tasodifiy emas, aniq jarayon bo'yicha
  • Tartibli - kelishilgan qoidalar asosida
  • O'lchanadigan - natijani baholash mumkin

Dasturiy ta'minot inqirozi #

1968-yilda NATO konferensiyasida birinchi marta jiddiy muammo e'tirof etildi: kompyuterlar tobora kuchayib borayotgan bir paytda, dasturiy loyihalar muntazam ravishda muddatdan kechikar, byudjetdan oshar va ishlamas edi.

IT loyihalarining odatiy natijalari 31% Muvaffaqiyatli Muddat, byudjet va talablarga mos 50% Muammoli Kechikkan, qimmatga tushgan yoki chala 19% Muvaffaqiyatsiz Bekor qilingan yoki hech qachon ishlatilmagan Standish Group hisobotlaridan olingan taxminiy ko'rsatkichlar
Muhandislik yondashuvi aynan shu raqamlarni yaxshilash uchun kerak
Nima uchun loyihalar muvaffaqiyatsizlikka uchraydi?
SababUlushi
Talablar noaniq yoki o'zgaruvchanJuda yuqori
Foydalanuvchi ishtirok etmaganYuqori
Rejalashtirishdagi xatoYuqori
Real bo'lmagan kutishlarO'rtacha
Rahbariyat qo'llab-quvvatlamaganO'rtacha
Texnik murakkablikPast

E'tibor bering: sabablarning ko'pchiligi texnik emas. Bu dasturiy muhandislikning asosiy saboqlaridan biri.

Dasturiy ta'minotning xususiyatlari #

Ko'prik quruvchi muhandis bilan solishtiring:

Ko'prikDasturiy ta'minot
Ko'rinadimiHaYo'q
O'zgartirishDeyarli imkonsiz"Oson" ko'rinadi
Nusxalash narxiYuqoriDeyarli nol
EskirishJismoniy yeyiladiJismonan eskirmaydi
Muammo sababiMateriallar, tabiatDeyarli har doim inson xatosi
TalablarBarqarorDoim o'zgaradi
"Dasturiy ta'minot yeyilmaydi, lekin buziladi"

Ko'prik vaqt o'tishi bilan zanglaydi. Dastur esa jismonan o'zgarmaydi.

Lekin u atrofidagi dunyo o'zgargani uchun buziladi: operatsion tizim yangilandi, kutubxona eskirdi, qonun o'zgardi, foydalanuvchilar soni o'nlab barobar oshdi.

Shuning uchun dasturiy ta'minot doimiy qo'llab-quvvatlashni talab qiladi.

Sifat mezonlari #

Dasturiy ta'minot sifati nimadan iborat? Foydalanuvchi ko'radi • To'g'ri ishlaydi • Tez javob beradi • Qulay va tushunarli • Ishonchli, buzilmaydi Biznes ko'radi • Vaqtida yetkazildi • Byudjetga sig'di • Yuklamaga bardosh beradi • Xavfsiz Dasturchi ko'radi • O'qish oson • O'zgartirish oson • Testlar bor • Hujjatlashtirilgan Muvozanat masalasi Uchala guruh talablarini bir vaqtda to'liq qondirib bo'lmaydi Muhandisning ishi - to'g'ri murosani topish
Sifat - faqat "xato yo'q" degani emas
MezonSavol
FunksionallikKerakli ishni bajaradimi?
IshonchlilikBuzilmasdan ishlaydimi?
SamaradorlikTez va resurslarni tejab ishlaydimi?
QulaylikFoydalanish osonmi?
Qo'llab-quvvatlanuvchanlikO'zgartirish osonmi?
Ko'chiriluvchanlikBoshqa muhitda ishlaydimi?
XavfsizlikMa'lumot himoyalanganmi?
KengaytiriluvchanlikYuk oshsa bardosh beradimi?

Xato narxi #

Xato qanchalik kech topilsa - shunchalik qimmat Xato topilgan bosqich Tuzatish narxi 1x Talablar 5x Loyihalash 10x Kod yozish 25x Testlash 100x Ishlab chiqarish Shuning uchun talablar va loyihalashga vaqt ajratish tejamkorlikdir
Erta topilgan xato - arzon xato
Amaliy xulosa

Talablar bosqichida bir soatlik suhbat, ishlab chiqarishdagi bir haftalik shoshilinch tuzatishdan arzonroq.

Shuning uchun tajribali muhandis kod yozishga shoshilmaydi - u avval savol beradi.

Kasb rollari #

RolNima qiladi
Biznes tahlilchiMijoz ehtiyojini talablarga aylantiradi
Mahsulot menejeriNima qilinishini va tartibini belgilaydi
ArxitektorTizimning umumiy tuzilishini loyihalaydi
DasturchiKod yozadi va testlaydi
QA muhandisiSifatni tekshiradi, testlarni avtomatlashtiradi
DevOps muhandisiDeploy va infratuzilmani boshqaradi
Texnik yozuvchiHujjatlarni tayyorlaydi
Loyiha menejeriMuddat, resurs va jarayonni boshqaradi
Kichik jamoada bitta odam bir necha rolni bajaradi

5 kishilik startapda alohida arxitektor yoki texnik yozuvchi bo'lmaydi. Lekin ishlar baribir bajarilishi kerak.

Rollarni bilish - kim nima uchun javobgar ekanini tushunish demak.

Muhandislik prinsiplari #

Asosiy prinsiplar
  1. Murakkablikni boshqaring - katta muammoni kichiklarga bo'ling
  2. Takrorlamang (DRY) - bir mantiq bitta joyda tursin
  3. Soddalikni saqlang (KISS) - eng oddiy ishlaydigan yechimni tanlang
  4. Kerak bo'lmaganini yozmang (YAGNI) - "kelajakda kerak bo'lar" degan kod yozmang
  5. O'zgarishga tayyorlaning - talablar albatta o'zgaradi
  6. Erta va tez-tez tekshiring - fikr-mulohaza qanchalik tez kelsa, shunchalik yaxshi
  7. Aniq nom bering - kod odamlar uchun yoziladi
PHP
// YAGNI buzilgan: hozir kerak bo'lmagan imkoniyat
class HisobotYaratuvchi
{
    public function yarating(
        string $format = 'pdf',
        bool $imzolansinmi = false,
        ?string $shifrlashKaliti = null,
        array $bulutgaYuklashSozlamalari = [],
        bool $blokcheynGaYozilsinmi = false,   // ???
    ) { /* ... */ }
}

// KISS: hozir kerak bo'lgan narsa
class HisobotYaratuvchi
{
    public function pdfYarating(Hisobot $hisobot): string
    {
        // ...
    }
}

Nima o'rganamiz? #

Bo'limlarMavzu
1-2Kirish va ishlab chiqish modellari
3-5Talablar, Agile, rejalashtirish
6-9Arxitektura, naqshlar, SOLID, UML
10-11Ma'lumot va API loyihalash
12-15Testlash, TDD, kod tekshiruvi, refaktoring
16-18Jamoaviy ish, CI/CD, xavfsizlik
19-20Hujjatlar va amaliy loyiha
Amaliy topshiriq
  1. O'zingiz ishlatadigan uchta dasturni tanlang va ularni sifat mezonlari bo'yicha baholang.
  2. Har birida sizni bezovta qiladigan bitta kamchilikni yozing.
  3. Bu kamchilik qaysi sifat mezoniga tegishli?
  4. Siz bilgan biror IT loyiha nima uchun muvaffaqiyatsiz bo'lganini tahlil qiling.
  5. "Dasturlash" va "muhandislik" farqini o'z so'zlaringiz bilan yozing.
  6. O'z loyihangizda YAGNI buzilgan joyni toping.
  7. Yuqoridagi rollardan qaysi biri sizga qiziqroq va nima uchun?

Xulosa #

  • Dasturlash - kod yozish; muhandislik - ishonchli tizim yaratish va uni yillar davomida qo'llab-quvvatlash.
  • IT loyihalarining katta qismi muddat, byudjet yoki talablarga mos kelmaydi.
  • Muvaffaqiyatsizlik sabablarining ko'pchiligi texnik emas - talablar va muloqot bilan bog'liq.
  • Dasturiy ta'minot jismonan eskirmaydi, lekin atrof-muhit o'zgargani uchun buziladi.
  • Sifat - funksionallik, ishonchlilik, samaradorlik, qulaylik, qo'llab-quvvatlanuvchanlik va xavfsizlikning yig'indisi.
  • Xatoni tuzatish narxi har bir bosqichda bir necha barobar oshadi.
  • Asosiy prinsiplar: DRY, KISS, YAGNI, murakkablikni boshqarish.

Keyingi bo'limda ishlab chiqish modellarini ko'rib chiqamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.