Proqram Mühəndisliyinə Giriş
Proqram mühəndisliyi proqram təminatı sistemlərinin işlənib hazırlanmasını və texniki xidmətini nəzərdə tutan kompüter elminin bir sahəsidir. Bu intizam kompüter elmləri və mühəndislikdən proqram təminatının layihələndirilməsi, işlənib hazırlanması, sınaqdan keçirilməsi və idarə edilməsinə qədər prinsipləri birləşdirir. Proqram mühəndisliyinin məqsədi yüksək keyfiyyətli proqram təminatını sərfəli şəkildə istehsal etməkdir.
Proqram təminatının İnkişafının Həyat Dövrünü Anlamaq (SDLC)
Software Development Life Cycle (SDLC) proqram təminatının hazırlanması prosesində iştirak edən mərhələləri təsvir edən çərçivədir. Bu mərhələlərə aşağıdakılar daxildir:
- Tələblərin təhlili: Proqram təminatının nə etməli olduğunu başa düşmək və sənədləşdirmək.
- Dizayn: Proqram təminatının arxitekturası və komponentlərinin planlaşdırılması.
- İcra: Dizayna uyğun kodun yazılması.
- Test: Proqram təminatının nəzərdə tutulduğu kimi işlədiyini yoxlamaq.
- Yerləşdirmə: Proqram təminatının istifadəyə verilməsi.
- Baxım: Problemlərin aradan qaldırılması və proqram təminatının zamanla yenilənməsi.
Proqram Mühəndisliyinin Əsas Prinsipləri
Proqram mühəndisliyi bir neçə əsas prinsipləri rəhbər tutur, o cümlədən:
- Modulluq: Proqram təminatının daha kiçik, idarə oluna bilən hissələrə bölünməsi.
- Abstraksiya: Proqram komponentlərini daha yüksək səviyyədə modelləşdirməklə mürəkkəb reallıqların sadələşdirilməsi.
- İnkapsulyasiya: Verilənlərin həmin verilənlər üzərində işləyən metodlarla birləşdirilməsi.
- Varislik: Kodun təkrar istifadəsini təşviq etmək üçün mövcud olanlardan yeni siniflər əldə etmək.
- Polimorfizm: Fərqli siniflərin obyektlərinə ümumi super sinif obyektləri kimi baxılmasına icazə verilir.
Proqram Dizayn Nümunələri
Proqram dizayn nümunələri proqram dizaynında ümumi problemlərə ümumi, təkrar istifadə edilə bilən həllərdir. Bəzi məşhur dizayn nümunələri bunlardır:
- Singleton Pattern: Sinfin yalnız bir nümunəsi olmasını təmin edir və ona qlobal giriş nöqtəsini təmin edir.
- Zavod metodu nümunəsi: Obyekt yaratmaq üçün interfeysi müəyyən edir, lakin alt siniflərə hansı sinfi yaratmağa qərar verməyə imkan verir.
- Müşahidəçi Nümunəsi: Obyektlər arasında birdən çox asılılıqdır ki, bir obyekt vəziyyəti dəyişdikdə, onun bütün asılıları avtomatik olaraq xəbərdar edilir və yenilənir.
- Strategiya nümunəsi: Alqoritmlər ailəsini müəyyən edir, hər birini əhatə edir və onları bir-birini əvəz edə bilir.
Çevik proqram təminatının inkişafı
Çevik proqram təminatının inkişafı iterativ inkişafa əsaslanan metodologiyalar toplusudur, burada tələblər və həllər özünü təşkil edən çarpaz funksional komandalar arasında əməkdaşlıq yolu ilə inkişaf edir. Çevik proqram təminatının inkişafının əsas dəyərlərinə aşağıdakılar daxildir:
- Fərdlər və proseslər və alətlər üzərində qarşılıqlı əlaqə .
- Hərtərəfli sənədlər üzərində işləyən proqram təminatı .
- Müqavilə danışıqları üzərində müştəri əməkdaşlığı .
- Plana uyğun olaraq dəyişikliyə cavab vermək .
Proqram Mühəndisliyində Keyfiyyət Təminatı
Keyfiyyət təminatı (QA) keyfiyyət standartlarına cavab verilməsini təmin etmək üçün layihənin, xidmətin və ya obyektin müxtəlif aspektlərinin sistematik monitorinqini və qiymətləndirilməsini əhatə edir. Proqram mühəndisliyində QA proqram təminatının hazırlanması prosesinin təkmilləşdirilməsinə və proqram məhsulunda qüsurların qarşısının alınmasına diqqət yetirir. QA təcrübələrinə aşağıdakılar daxildir:
- Kod Baxışı: Proqram təminatının ümumi keyfiyyətini və tərtibatçıların bacarıqlarını təkmilləşdirməklə, ilkin inkişaf mərhələsində nəzərdən qaçırılmış səhvləri tapmaq və düzəltmək məqsədi daşıyan kompüter mənbə kodunun sistematik tədqiqi.
- Davamlı İnteqrasiya və Çatdırılma (CI/CD): Tətbiqlərin işlənib hazırlanması mərhələlərində avtomatlaşdırma tətbiq etməklə müştərilərə tez-tez proqramlar çatdırmaq üçün bir üsul. CI/CD-yə aid edilən əsas anlayışlar davamlı inteqrasiya, davamlı çatdırılma və davamlı yerləşdirmədir.
- Avtomatlaşdırılmış Test: Gözlənildiyi kimi davranmasını təmin etmək üçün hazırlanmaqda olan proqram təminatı üzərində testlər aparmaq üçün proqram alətlərindən istifadə.
Proqram təminatının ölçüləri və ölçüləri
Proqram təminatı ölçüləri proqram proseslərinin, məhsulların və xidmətlərin modellərinin hazırlanması və təsdiqlənməsi üçün kəmiyyət əsasını təmin edən ölçü standartlarıdır. Ümumi proqram ölçülərinə aşağıdakılar daxildir:
- Kodun mürəkkəbliyi: Proqramın strukturunun başa düşülməsinin nə qədər çətin olduğunu ölçür. Nümunələrə \(n\) binar qərarları olan modul üçün \(M = n + 1\) kimi təyin edilə bilən Siklomatik Mürəkkəblik daxildir.
- Line of Code (LOC): Proqramın mənbə kodundakı mətn sətirlərini saymaqla proqram proqramının ölçüsünü ölçür.
- Funksiya Nöqtələri (FP): Girişlərin, çıxışların, sorğuların, faylların və interfeys fayllarının sayına və mürəkkəbliyinə əsaslanaraq istifadəçiyə çatdırılan funksionallığı ölçür.
Proqram mühəndisliyi proqram təminatının konsepsiyasını, dizaynını, işlənməsini, sınaqdan keçirilməsini və texniki xidmətini əhatə edən mürəkkəb, çoxşaxəli bir fəndir. Bu sahə təkcə texniki bacarıq və proqramlaşdırma dilləri və proqram təminatının işlənib hazırlanması metodologiyaları haqqında bilik tələb etmir, həm də proqram dizayn nümunələri, keyfiyyət təminatı, komanda əməkdaşlığı və layihənin idarə edilməsi haqqında anlayış tələb edir. Bu anlayışları və təcrübələri effektiv şəkildə tətbiq etmək bacarığı son nəticədə proqram təminatı layihələrinin uğurunu müəyyən edir.