Управління конфігурацією програмного забезпечення в програмній інженерії

Що таке керування конфігурацією програмного забезпечення?

У розробці програмного забезпечення, Керування конфігурацією програмного забезпечення (SCM) це процес систематичного керування, організації та контролю змін у документах, кодах та інших об’єктах протягом життєвого циклу розробки програмного забезпечення. Основна мета — підвищити продуктивність з мінімальною кількістю помилок. SCM є частиною міждисциплінарної сфери управління конфігурацією, і вона може точно визначити, хто зробив яку версію.

Навіщо нам потрібне керування конфігурацією?

Основними причинами для впровадження системи управління конфігурацією технічного програмного забезпечення є:

  • Багато людей працюють над програмним забезпеченням, яке постійно оновлюється
  • Це може бути випадок, коли кілька версій, гілок, авторів залучено до проекту конфігурації програмного забезпечення, а команда територіально розподілена та працює одночасно
  • Необхідно врахувати зміни у вимогах користувача, політиці, бюджеті, розкладі.
  • Програмне забезпечення має працювати на різних машинах і Operating Systems
  • Допомагає розвивати координацію між зацікавленими сторонами
  • Процес SCM також корисний для контролю витрат, пов’язаних із внесенням змін до системи

Потрібне керування конфігурацією

Будь-які зміни в елементах конфігурації програмного забезпечення вплинуть на кінцевий продукт. Тому зміни в елементах конфігурації необхідно контролювати та керувати ними.

Завдання в процесі SCM

  • Ідентифікація конфігурації
  • Базові лінії
  • Контроль змін
  • Облік стану конфігурації
  • Аудит конфігурації та Reviews

Ідентифікація конфігурації

Ідентифікація конфігурації - це метод визначення обсягу програмної системи. За допомогою цього кроку ви можете керувати чи контролювати щось, навіть якщо ви не знаєте, що це таке. Це опис, який містить тип CSCI (елемент конфігурації програмного забезпечення комп’ютера), ідентифікатор проекту та інформацію про версію.

Дії під час цього процесу:

  • Ідентифікація елементів конфігурації, таких як модулі вихідного коду, тестовий випадокта специфікація вимог.
  • Ідентифікація кожного CSCI в репозиторії SCM за допомогою об’єктно-орієнтованого підходу
  • Процес починається з базових об’єктів, які групуються в сукупні об’єкти. Деталі того, які, чому, коли та ким внесені зміни в тест
  • Кожен об’єкт має власні особливості, які визначають його ім’я, яке є явним для всіх інших об’єктів
  • Список необхідних ресурсів, таких як документ, файл, інструменти тощо.

приклад:

Замість того, щоб називати файл login.php, його слід називати login_v1.2.php, де v1.2 означає номер версії файлу

Замість назви папки «Code» її слід назвати «Code_D», де D означає код, який потрібно створювати щодня.

Базова лінія

Базовий рівень — це офіційно прийнята версія елемента конфігурації програмного забезпечення. Він призначається і фіксується на певний час під час проведення процесу SCM. Його можна змінити лише через офіційні процедури контролю змін.

Дії під час цього процесу:

  • Полегшення створення різних версій програми
  • Визначення та визначення механізмів керування різними версіями цих робочих продуктів
  • Функціональна базова лінія відповідає розглянутим системним вимогам
  • Широко використовувані базові лінії включають функціональні базові лінії, базові лінії розвитку та базові лінії продукту

Простими словами базовий рівень означає готовність до випуску.

Контроль змін

Контроль змін — це процедурний метод, який забезпечує якість і узгодженість під час внесення змін в об’єкт конфігурації. На цьому кроці запит на зміну надсилається менеджеру конфігурації програмного забезпечення.

Дії під час цього процесу:

  • Контролюйте випадкові зміни для створення стабільного середовища розробки програмного забезпечення. Зміни фіксуються в репозиторії
  • Запит буде перевірено на основі технічних переваг, можливих побічних ефектів і загального впливу на інші об’єкти конфігурації.
  • Він керує змінами та робить доступними елементи конфігурації протягом життєвого циклу програмного забезпечення

Облік стану конфігурації

Облік стану конфігурації відстежує кожен випуск під час процесу SCM. Цей етап передбачає відстеження того, що має кожна версія, і змін, які призводять до цієї версії.

Дії під час цього процесу:

  • Зберігає записи про всі зміни, внесені до попереднього базового рівня для досягнення нового базового рівня
  • Визначте всі елементи, щоб визначити конфігурацію програмного забезпечення
  • Відстежуйте статус запитів на зміни
  • Повний список усіх змін з моменту останнього базового рівня
  • Дозволяє відстежувати прогрес до наступного базового рівня
  • Дозволяє перевіряти попередні випуски/версії, які потрібно розпакувати для тестування

Аудит конфігурації та Reviews

Аудити конфігурації програмного забезпечення перевіряють, чи всі програмні продукти відповідають базовим потребам. Це гарантує, що те, що побудовано, те й доставлено.

Дії під час цього процесу:

  • Аудит конфігурації проводиться аудиторами шляхом перевірки дотримання визначених процесів і забезпечення досягнення цілей SCM.
  • Для перевірки відповідності стандартам контролю конфігурації. перевірка та звітування про внесені зміни
  • Аудити SCM також гарантують, що під час процесу підтримується відстежуваність.
  • Забезпечує відповідність змін, внесених до базової лінії, звітам про стан конфігурації
  • Перевірка повноти та узгодженості

Учасник процесу СКМ

Нижче наведені основні учасники SCM

Учасник процесу СКМ

1. Менеджер конфігурацій

  • Менеджер конфігурації — це керівник, який відповідає за визначення елементів конфігурації.
  • CM гарантує, що команда дотримується процесу SCM
  • Він/вона має схвалити або відхилити запити на зміни

2. Розробник

  • Розробнику необхідно змінити код відповідно до стандартних дій розробки або запитів на зміни. Він відповідає за підтримку конфігурації коду.
  • Розробник повинен перевірити зміни та вирішити конфлікти

3. Ревізор

  • Аудитор несе відповідальність за аудити та огляди SCM.
  • Необхідно забезпечити послідовність і повноту випуску.

4. Керівник проекту:

  • Переконайтеся, що продукт розроблено протягом певного періоду часу
  • Відстежує хід розробки та виявляє проблеми в процесі SCM
  • Створення звітів про стан програмної системи
  • Переконайтеся, що процеси та політики дотримуються для створення, зміни та тестування

5. Користувач

Кінцевий користувач повинен розуміти ключові терміни SCM, щоб переконатися, що він має останню версію програмного забезпечення

План керування конфігурацією програмного забезпечення

Планування процесу SCMP (планування керування конфігурацією програмного забезпечення) починається на ранніх етапах кодування проекту. Результатом етапу планування є план SCM, який може бути розширений або переглянутий під час проекту.

  • SCMP може дотримуватися загальнодоступного стандарту, як-от IEEE 828, або спеціального стандарту організації
  • Він визначає типи документів для управління та іменування документа. Приклад Test_v1
  • SCMP визначає особу, яка відповідатиме за весь процес SCM та створення базових показників.
  • Виправте політики для керування версіями та контролю змін
  • Визначте інструменти, які можна використовувати під час процесу SCM
  • База даних керування конфігурацією для запису інформації про конфігурацію.

Інструменти керування конфігурацією програмного забезпечення

Будь-яке програмне забезпечення для керування змінами повинно мати наступні 3 ключові функції:

Управління паралелізмом:

Коли два або більше завдань виконуються одночасно, це називається паралельною операцією. Паралельність у контексті SCM означає, що той самий файл редагується кількома особами одночасно.

Якщо за допомогою інструментів SCM неправильно керувати паралелізмом, це може створити багато нагальних проблем.

Контроль версій:

SCM використовує метод архівування або зберігає всі внесені зміни у файл. За допомогою функції архівування або збереження можна повернутися до попередньої версії у разі виникнення проблем.

Syncхронізація:

Користувачі можуть отримати більше одного файлу або всю копію репозиторію. Потім користувач працює над потрібним файлом і повертає зміни до репозиторію. Вони можуть синхронізувати свою локальну копію, щоб бути в курсі змін, внесених іншими членами команди.

Нижче наведені популярні засоби

1.Git: Git — це безкоштовний інструмент із відкритим кодом, який допомагає контролювати версії. Він призначений для виконання всіх типів проектів швидко та ефективно.

Посилання для скачування: https://git-scm.com/

2. команда Foundation Сервер: професіонали Foundation це група інструментів і технологій, які дозволяють команді співпрацювати та координувати роботу для створення продукту.

Посилання для скачування: https://azure.microsoft.com/en-us/services/devops/server/

3. Анзибль: це інструмент керування конфігурацією програмного забезпечення з відкритим кодом. Окрім керування конфігурацією, він також пропонує розгортання додатків і автоматизацію завдань.

Посилання для скачування: https://www.ansible.com/

Перевірте інші інструменти конфігурації ПЗ: https://www.guru99.com/software-configuration-management-tools.html

Висновок

  • Найкращі практики керування конфігураціями допомагають організаціям систематично керувати, організовувати та контролювати зміни в документах, кодах та інших об’єктах під час Життєвий цикл розробки програмного забезпечення.
  • Основною метою процесу SCM є підвищення продуктивності з мінімальними помилками
  • Основна причина процесу керування конфігурацією полягає в тому, що багато людей працюють над програмним забезпеченням, яке постійно оновлюється. SCM допомагає встановити паралелізм, синхронізацію та контроль версій.
  • Базовий рівень — це офіційно прийнята версія елемента конфігурації програмного забезпечення
  • Контроль змін — це процедурний метод, який забезпечує якість і узгодженість під час внесення змін в об’єкт конфігурації.
  • Облік стану конфігурації відстежує кожен випуск під час процесу SCM
  • Аудити конфігурації програмного забезпечення перевіряють, чи всі програмні продукти відповідають базовим потребам
  • Керівник проекту, менеджер конфігурації, розробник, аудитор і користувач є учасниками процесу SCM
  • Планування процесу SCM починається на ранніх стадіях проекту.
  • Git, Team Foundation Sever і Ansible — кілька популярних інструментів SCM.