Proqram təminatı tərtibatı

(Proqram təminatının inkişafı səhifəsindən yönləndirilmişdir)

Proqram təminatı tərtibatı (ing. software development) — tətbiqləri, freymvorkları və ya digər proqram komponentlərini yaratmaq və müşayiət üçün nəzərdə tutmaq, dəqiqləşdirmək, dizayn etmək, proqramlaşdırmaq, sənədləşdirmək, sınaqdan keçirmək və səhvləri düzəltmək üçün istifadə olunan proses. Proqram təminatının tərtibatı mənbə kodunun yazılmasını və müşayiət olunmasını əhatə edir, lakin daha geniş mənada o, arzu olunan proqram təminatının konsepsiyasından yekun təzahürə qədər bütün prosesləri, adətən proqram təminatı mühəndisliyi ilə üst-üstə düşən planlı və strukturlaşdırılmış prosesdə bütün prosesləri əhatə edir. Proqram təminatının hazırlanmasına həmçinin tədqiqat, yeni inkişaf, prototipləşdirmə, modifikasiya, təkrar istifadə, yenidən mühəndislik, texniki xidmət və ya proqram məhsulları ilə nəticələnən hər hansı digər fəaliyyətlər daxildir.[1]

Proqram tərtibatı — bir ideyanın konsepsiyadan son istifadəyə qədər tam işlək proqram təminatına çevrilməsini təmin edən prosesdir. Bu proses proqramın planlaşdırılması, kodlaşdırılması, test olunması, yerləşdirilməsi və dəstəklənməsindən ibarətdir. Proqram tərtibatının məqsədi, müəyyən problemi həll etmək və ya istifadəçilərin ehtiyaclarını qarşılamaq üçün effektiv, etibarlı və istifadəyə yararlı bir proqram təminatı hazırlamaqdır.[2]

Əsas mərhələləri

redaktə
  1. Tələblərin toplanması və analizi
    • Proqramın tələblərinin və məqsədlərinin aydın şəkildə müəyyən edilməsi ilk mərhələdir.
    • İstifadəçilərin ehtiyaclarını, proqramın əsas funksiyalarını və gözləntilərini başa düşmək üçün müştərilər və digər maraqlı tərəflərlə məsləhətləşmələr aparılır.[3]
  2. Dizayn
    • Dizayn (ing. Design) mərhələsində proqramın strukturu, arxitekturası və istifadəçi interfeysi planlaşdırılır.
    • Burada məlumat axınları, modul və komponentlərin qarşılıqlı əlaqəsi və verilənlər bazası quruluşu kimi texniki detallar müəyyən edilir.
  3. Kodlaşdırma
    • Proqram dizaynına əsaslanaraq kod (ing. Coding) yazılır.
    • Kodlaşdırma proqramlaşdırma dilləri (məsələn, Python, Java, C++, JavaScript) vasitəsilə aparılır və proqramın hər bir funksional komponenti yazılır.
    • Bu mərhələ həmçinin kodun optimallaşdırılması və proqramın daha səmərəli işləməsi üçün əhəmiyyətlidir.
  4. Test və təkmilləşdirmə
    • Proqramda potensial səhvləri və nasazlıqları müəyyən etmək üçün testlər aparılır.
    • Test (ing. Testing) mərhələsində proqramın düzgün işlədiyindən, tələbləri qarşıladığından və gözlənilməz hallara cavab verə bildiyindən əmin olunur.
    • Bura fərdi test, inteqrasiya testi, sistem testi və istifadəçi testi daxil ola bilər.
  5. Yerləşdirmə
    • Proqram təminatının istifadəyə verilməsi, yəni istifadəçilər üçün əlçatan edilməsi bu mərhələdə baş verir.
    • Yerləşdirmə (ing. Deployment) yerli sistemlərdə, serverlərdə və ya bulud texnologiyaları vasitəsilə həyata keçirilə bilər.
  6. Dəstək və baxım
    • İstifadəyə verildikdən sonra proqramın fəaliyyəti izlənir (ing. Maintenance) və lazım olduqda yenilənir və təkmilləşdirilir.
    • Təhlükəsizlik problemlərinin həll edilməsi, səhvlərin düzəldilməsi və yeni funksionallıqların əlavə edilməsi bu mərhələdə həyata keçirilir.[4]

Əsas modelləri

redaktə

Proqram tərtibatı müxtəlif metodologiya və modellərə uyğun olaraq həyata keçirilə bilər. Əsas modellər bunlardır:

  • Şəlalə Modeli (ing. Waterfall Model) — mərhələli prosesdir və hər mərhələ ardıcıl olaraq tamamlanmalıdır. Bu model əsasən sabit tələblərə malik layihələr üçün uyğundur.
  • Agile Modeli — çevik və təkrar olunan bir modeldir. Layihələr qısa dövrlərlə (sprintlər) həyata keçirilir və hər bir sprintdə proqramın yeni funksiyaları əlavə olunur.
  • V-Modeli — şəlalə modelinin bir variantıdır və hər mərhələ üçün test mərhələsi əlavə olunur. Bu model həm inkişafı, həm də testləri paralel şəkildə nəzərdə tutur.
  • Spiral Model — risklərin idarə olunması üçün istifadə olunur və layihə mərhələlərini dövrlər şəklində təkrarlamağa imkan verir.

Əsas prinsipləri

redaktə
  • Modulyarlıq və yenidən istifadə — proqram modullara bölünməli və təkrar istifadə edilə bilən komponentlərdən ibarət olmalıdır.
  • Kodun oxunaqlılığı — kod həm komanda üzvləri, həm də gələcəkdə proqramı dəstəkləyən şəxslər tərəfindən asan başa düşülən və izlənilən olmalıdır.
  • Təhlükəsizlik və sabitlik — proqram təhlükəsiz və möhkəm olmalıdır, yəni zərərli müdaxilələrə davamlı və yüksək yüklərə davam gətirə bilməlidir.
  • İstifadəçi fokuslu dizayn — istifadəçi tələblərinə cavab verən funksionallıq və interfeys təmin edilməlidir.

Proqram tərtibatı texnologiya sahəsinin mərkəzi proseslərindən biridir və bu prosesin uğurlu aparılması üçün layihə idarəetmə bacarıqları, texniki biliklər və ən yaxşı təcrübələrə əməl etmək vacibdir.[5]

Metodologiyalar

redaktə

Bir sistemin tərtibat metodologiyası bütün layihələr tərəfindən istifadə üçün uyğun deyil. Mövcud metodologiyaların hər biri müxtəlif texniki, təşkilati, layihə və komanda mülahizələrinə əsaslanan spesifik layihələr üçün uyğundur.[6]

İşçi qrupu

redaktə

Proqram tərtibatçısı araşdırma, dizayn, proqramlaşdırma, sınaq və kompüter proqram təminatının yaradılmasının digər aspektləri daxil olmaqla proqram təminatının hazırlanması prosesi ilə məşğul olan şəxs və ya şirkətdir. Bənzər mənaları olan insanlar üçün digər iş başlıqlarına proqramçı, proqram analitiki və ya proqram mühəndisi daxildir. Proqram təminatı sahəsində ixtisaslaşmış şirkətləri proqram evləri adlandırmaq olar. Böyük bir şirkətdə sadəcə bir hissədən məsuliyyət daşıyan işçilər ola bilər. Daha kiçik tərtibat mühitlərində bir neçə nəfər və ya tək bir şəxs bütün prosesi idarə edə bilər. Açıq mənbəli proqram təminatı kimi əməkdaşlıq mühitləri bir çox tərtibatçını bir araya gətirə bilər.

İstinadlar

redaktə
  1. DRM Associates. "New Product Development Glossary". 2002. 13 July 2018 tarixində arxivləşdirilib. İstifadə tarixi: 2006-10-29.
  2. Laukkanen, Eero; Itkonen, Juha; Lassenius, Casper. "Problems, causes and solutions when adopting continuous delivery—A systematic literature review". Information and Software Technology. 82. 2017: 55–79. doi:10.1016/j.infsof.2016.10.001.
  3. Edward J. Barkmeyer ea (2003). Concepts for Automating Systems Integration Arxiv surəti 25 yanvar 2017 tarixindən Wayback Machine saytında Arxivləşdirilib 25 yanvar 2017 at the Wayback Machine NIST 2003.
  4. Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020. ISBN 978-1492043454.
  5. System Development Methodologies for Web-Enabled E-Business: A Customization Framework Linda V. Knight (DePaul University, USA), Theresa A. Steinbach (DePaul University, USA) and Vince Kellen (Blue Wolf, USA)
  6. System Development Methodologies for Web-Enabled E-Business: A Customization Framework Linda V. Knight (DePaul University, USA), Theresa A. Steinbach (DePaul University, USA) and Vince Kellen (Blue Wolf, USA)

Əlavə ədəbiyyat

redaktə

Xarici keçidlər

redaktə