Proqram konfiqurasiyasının idarə edilməsi
Proqram konfiqurasiyasının idarə edilməsi (ing. Software Configuration Management, SCM) — proqramın inkişaf prosesi zamanı meydana gələn bütün dəyişiklikləri izləmək,[1] idarə etmək və nəzarət etmək üçün istifadə edilən sistematik yanaşmadır. Bu, proqram təminatının keyfiyyətini və sabitliyini qorumaq, layihədə dəyişikliklərin təsirlərini anlamaq və layihənin hər mərhələsini uyğunlaşdırmaq üçün çox vacibdir.[2]
- Versiya izləmə (ing. Version Control)
- Proqramın müxtəlif versiyalarının izlənilməsi və saxlanılması üçün istifadə edilir.[3]
- Məsələn,
Git
,SVN
və yaMercurial
kimi versiya idarəetmə sistemləri (VCS) ilə proqram fayllarının hər dəyişiklikdə yeni versiyaları qeyd olunur. - Versiya izləmə həm də komanda üzvlərinin eyni faylda konflikt yaratmadan çalışmasına imkan verir.
- Dəyişikliklərin İdarə Edilməsi (ing. Change Management)
- Layihəyə əlavə ediləcək və ya dəyişdiriləcək hər hansı tələbin və ya funksionallığın təsdiqlənməsi, izlənməsi və tətbiq edilməsi prosesidir.
- Dəyişikliklərdən əvvəl və sonra proqramın vəziyyətini müqayisə etmək və dəyişikliklərin müsbət və mənfi təsirlərini qiymətləndirmək üçün istifadə edilir.[4]
- Konfiqurasiya elementlərinin identifikasiyası (ing. Configuration Item Identification)
- Proqramda izlənilməsi vacib olan hər bir element müəyyənləşdirilir və unikal bir identifikatorla qeyd olunur.
- Bu elementlərə kod faylları, sənədlər, kitabxanalar, qurma (ing. build) skriptləri, testlər və ya sistem arxitekturası sənədləri aid ola bilər.
- Dəyişikliklərin təhlili və təsdiqi (ing. Configuration Control)
- Proqramda baş verən hər bir dəyişiklik konfiqurasiya idarəetmə komitəsi (ing. Configuration Control Board, CCB) tərəfindən təsdiqlənməlidir.
- CCB dəyişikliklərin layihəyə təsirini qiymətləndirir və tətbiq olunacaq dəyişiklikləri təhlil edərək qərar qəbul edir.
- Konfiqurasiya statusunun hesabatı (ing. Configuration Status Accounting)
- Konfiqurasiyanın vəziyyəti və dəyişikliklərin tarixçəsi barədə hesabatların aparılmasıdır.
- Bu hesabatlar dəyişikliklərin izlənməsini, problemlərin həllini və konfiqurasiyanın düzgün aparılmasını təmin edir.
- Auditoriya və nəzarət (ing. Configuration Audits and Reviews)
- Proqramın müəyyən versiyalarının tələblərə uyğun olaraq hazırlanıb-hazırlanmadığını yoxlamaq məqsədilə konfiqurasiya yoxlamaları həyata keçirilir.
- Bu, həmçinin tətbiq edilən hər dəyişikliyin düzgün olub olmadığını və proqramın uyğun versiyada olmasını yoxlayır.
- Davamlılıq — proqramın hər hansı bir mərhələdə dəqiq vəziyyətini əldə etmək və əvvəlki versiyalara qayıtmaq üçün imkan yaradır.
- Problem həlli — kodda problem yaranarsa, problemli versiyanı və kodu tez bir zamanda müəyyən etməyə imkan verir.[5]
- Komanda işini təşviq — versiya nəzarət sistemləri ilə bir çox inkişafçı eyni layihədə təhlükəsiz işləyə bilər və işlər bir-birinə mane olmadan inteqrasiya olunur.
- Keyfiyyətə nəzarət — SCM sistemləri vasitəsilə kodun düzgün işləyib-işləmədiyi, hər dəyişiklikdən sonra testlərin icra olunması və keyfiyyətin qorunması təmin edilir.
Bir çox SCM aləti proqram konfiqurasiyasının idarə edilməsində geniş istifadə olunur. Əsas alətlərdən bəziləri bunlardır:
- Git — ən populyar SCM alətlərindən biridir, versiyaların idarə olunması və kodun müvəqqəti (branching) şaxələndirilməsi üçün istifadə edilir.
- SVN (ing. Subversion) — açıq mənbəli VCS olub, versiya izləmə və dəyişikliklərin idarə olunmasını təmin edir.
- Jira və Trello — dəyişikliklərin idarə olunması, tapşırıqların izlənməsi və layihə idarəetmə sistemləri kimi istifadə olunur.
Proqram konfiqurasiyasının idarə edilməsi vasitəsilə layihələrdə səmərəlilik artır, dəqiqlik təmin olunur və proqram təminatı yüksək keyfiyyət standartlarına uyğun hazırlanır.
- ↑ Roger S. Pressman. Software Engineering: A Practitioner's Approach (7th International). New York: McGraw-Hill. 2009.
- ↑ Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. ISBN 0-321-68586-5
- ↑ 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering. 2012. doi:10.1109/IEEESTD.2012.6170935. ISBN 978-0-7381-7232-3.
- ↑ Babich, W.A. (1986). Software Configuration Management, Coordination for Team Productivity. 1st edition. Boston: Addison-Wesley
- ↑ Amies, A; Peddle S; Pan T M; Zou P X. "Develop cloud applications with Rational tools". IBM DeveloperWorks. IBM. June 5, 2012.
- Dennis, A., Wixom, B.H. & Tegarden, D. (2002). System Analysis & Design: An Object-Oriented Approach with UML. Hoboken, New York: John Wiley & Sons, Inc.
- Department of Defense, USA (2001). Military Handbook: Configuration management guidance (rev. A) (MIL-HDBK-61A). Retrieved January 5, 2010, from http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/
- Futrell, R.T. et al. (2002). Quality Software Project Management. 1st edition. Prentice-Hall.
- International Organization for Standardization (2003). ISO 10007: Quality management systems – Guidelines for configuration management.
- Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. CAiSE 2003, 374–389.
- Scott, J.A. & Nisse, D. (2001). Software configuration management. In: Guide to Software Engineering Body of Knowledge. Retrieved January 5, 2010, from http://www.computer.org/portal/web/swebok/htmlformat
- Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. ISBN 0-321-33638-0.