Управление на конфигурацията на софтуера в софтуерното инженерство
Какво представлява управлението на конфигурацията на софтуера?
В софтуерното инженерство, Управление на софтуерната конфигурация (SCM) е процес за систематично управление, организиране и контрол на промените в документите, кодовете и други обекти по време на жизнения цикъл на разработка на софтуер. Основната цел е да се увеличи производителността с минимални грешки. SCM е част от междудисциплинарната област на управление на конфигурацията и може точно да определи кой коя ревизия е направил.
Защо се нуждаем от управление на конфигурацията?
Основните причини за внедряване на система за управление на техническата софтуерна конфигурация са:
- Има много хора, които работят върху софтуер, който непрекъснато се актуализира
- Може да е случай, когато множество версии, клонове, автори участват в проект за конфигурация на софтуера и екипът е географски разпределен и работи едновременно
- Промените в изискванията на потребителите, политиката, бюджета, графика трябва да бъдат съобразени.
- Софтуерът трябва да може да работи на различни машини и Operaтинг системи
- Помага за развитието на координация между заинтересованите страни
- SCM процесът също е полезен за контролиране на разходите, свързани с извършването на промени в системата
Всяка промяна в елементите на софтуерната конфигурация ще се отрази на крайния продукт. Следователно промените в конфигурационните елементи трябва да се контролират и управляват.
Задачи в SCM процес
- Идентификация на конфигурацията
- База
- Контрол на промените
- Отчитане на състоянието на конфигурацията
- Конфигурационни одити и Reviews
Идентификация на конфигурацията
Идентификацията на конфигурацията е метод за определяне на обхвата на софтуерната система. С помощта на тази стъпка можете да управлявате или контролирате нещо, дори и да не знаете какво е то. Това е описание, което съдържа типа CSCI (елемент за конфигурация на компютърен софтуер), идентификатор на проекта и информация за версията.
Дейности по време на този процес:
- Идентифициране на конфигурационни елементи като модули с изходен код, тестов случайи спецификация на изискванията.
- Идентифициране на всеки CSCI в хранилището на SCM чрез използване на обектно-ориентиран подход
- Процесът започва с основни обекти, които са групирани в агрегатни обекти. Подробности за това какви, защо, кога и от кого се правят промени в теста
- Всеки обект има свои собствени характеристики, които идентифицират името му, което е изрично за всички останали обекти
- Списък на необходимите ресурси като документ, файл, инструменти и др.
Пример:
Вместо да наименува файл login.php, той трябва да бъде наименуван login_v1.2.php, където v1.2 означава номера на версията на файла
Вместо да наименува папка „Код“, тя трябва да бъде наименувана „Код_D“, където D представлява кодът, който трябва да се архивира ежедневно.
Baseline
Базовата линия е официално приета версия на софтуерен конфигурационен елемент. Той се определя и фиксира в определено време по време на провеждане на SCM процеса. Той може да бъде променен само чрез официални процедури за контрол на промените.
Дейности по време на този процес:
- Улесняване на изграждането на различни версии на приложение
- Дефиниране и определяне на механизми за управление на различни версии на тези работни продукти
- Функционалната базова линия съответства на прегледаните системни изисквания
- Широко използваните базови линии включват функционални, развойни и продуктови базови линии
С прости думи базовата линия означава готовност за пускане.
Контрол на промените
Контролът на промените е процедурен метод, който гарантира качество и последователност, когато се правят промени в конфигурационния обект. В тази стъпка заявката за промяна се изпраща до мениджъра за конфигурация на софтуера.
Дейности по време на този процес:
- Контролирайте ad hoc промяната, за да изградите стабилна среда за разработка на софтуер. Промените се ангажират в хранилището
- Заявката ще бъде проверена въз основа на техническите предимства, възможните странични ефекти и цялостното въздействие върху други конфигурационни обекти.
- Той управлява промените и прави конфигурационни елементи достъпни по време на жизнения цикъл на софтуера
Отчитане на състоянието на конфигурацията
Отчитането на състоянието на конфигурацията проследява всяко издание по време на SCM процеса. Този етап включва проследяване какво има всяка версия и промените, които водят до тази версия.
Дейности по време на този процес:
- Поддържа запис на всички промени, направени в предишната базова линия, за да се достигне нова базова линия
- Идентифицирайте всички елементи, за да дефинирате софтуерната конфигурация
- Наблюдавайте състоянието на заявките за промяна
- Пълен списък на всички промени от последната базова линия
- Позволява проследяване на напредъка към следващата базова линия
- Позволява проверка на предишни издания/версии, които да бъдат извлечени за тестване
Конфигурационни одити и Reviews
Одитите на конфигурацията на софтуера проверяват дали всички софтуерни продукти отговарят на базовите нужди. Той гарантира, че това, което е построено, е това, което е доставено.
Дейности по време на този процес:
- Одитът на конфигурацията се извършва от одитори, като се проверява дали се следват определени процеси и се гарантира, че целите на SCM са изпълнени.
- За проверка на съответствието със стандартите за контрол на конфигурацията. одитиране и докладване на направените промени
- 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/
Вижте още инструменти за конфигурация на SW: https://www.guru99.com/software-configuration-management-tools.html
Заключение
- Най-добрите практики за управление на конфигурацията помагат на организациите систематично да управляват, организират и контролират промените в документите, кодовете и други обекти по време на Жизнен цикъл на разработката на софтуер.
- Основната цел на SCM процеса е да увеличи производителността с минимални грешки
- Основната причина за процеса на управление на конфигурацията е, че има много хора, работещи върху софтуер, който непрекъснато се актуализира. SCM помага за установяване на едновременност, синхронизация и контрол на версиите.
- Базовата линия е официално приета версия на софтуерен конфигурационен елемент
- Контролът на промените е процедурен метод, който гарантира качество и последователност, когато се правят промени в конфигурационния обект.
- Отчитането на състоянието на конфигурацията проследява всяко издание по време на SCM процеса
- Одитите на конфигурацията на софтуера проверяват дали всички софтуерни продукти отговарят на базовите нужди
- Мениджърът на проекта, мениджърът на конфигурацията, разработчикът, одиторът и потребителят са участници в SCM процеса
- Планирането на процеса SCM започва в ранните фази на проекта.
- Git, Team Foundation Sever и Ansible са няколко популярни SCM инструмента.