Управление на конфигурацията на софтуера в софтуерното инженерство

⚡ Умно обобщение

Управлението на конфигурацията на софтуера (SCM) е процес за систематично управление, организиране и контрол на промените в документи, код и други елементи през целия жизнен цикъл на разработка на софтуер. Основната му цел е да увеличи производителността, като същевременно запази...ping грешките да бъдат сведени до минимум.

  • Определение: SCM систематично управлява и контролира промените в документи, код и обекти през целия жизнен цикъл на разработка.
  • 🎯 Защо има значение: Координира множество разработчици, версии и клонове, като същевременно контролира разходите за промяна.
  • 🗂️ Пет основни задачи: Идентифициране на конфигурацията, базови линии, контрол на промените, отчитане на състоянието и одити.
  • 👥 Ключови участници: Мениджър конфигурация, разработчик, одитор, ръководител на проекти и краен потребител.
  • 📋 План за управление на оборота (SCM): Планирането следва стандарти като IEEE 828 и определя инструменти, именуване и отговорности.
  • 🛠️ Популярни инструменти: Git, Екип Foundation Server и Ansible поддържат контрол на версиите и автоматизация.

Управление на софтуерната конфигурация

Какво представлява управлението на конфигурацията на софтуера?

В софтуерното инженерство, Управление на конфигурацията на софтуера (SCM) е процес за систематично управление, организиране и контрол на промените в документите, кодовете и други обекти по време на жизнения цикъл на разработка на софтуер. Основната цел е да се увеличи производителността с минимални грешки. SCM е част от интердисциплинарната област на управлението на конфигурациите и може точно да определи кой е направил коя ревизия.

Защо се нуждаем от управление на конфигурацията?

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

  • Много хора работят върху софтуер, който непрекъснато се актуализира.
  • Възможно е да има случай, в който множество версии, клонове и автори участват в проект за конфигурация на софтуер, а екипът е географски разпределен и работи едновременно.
  • Промените в изискванията на потребителите, политиката, бюджета и графика трябва да бъдат съобразени.
  • Софтуерът трябва да може да работи на различни машини и Operaтинг системи.
  • Спомага за развитието на координацията между заинтересованите страни.
  • Процесът на SCM е полезен и за контрол на разходите, свързани с извършването на промени в системата.

Нуждаете се от управление на конфигурацията

Всяка промяна в елементите на софтуерната конфигурация ще се отрази на крайния продукт. Следователно промените в конфигурационните елементи трябва да се контролират и управляват.

Задачи в SCM процес

  • Идентификация на конфигурацията
  • База
  • Контрол на промените
  • Отчитане на състоянието на конфигурацията
  • Конфигурационни одити и Reviews

Идентификация на конфигурацията

Идентифицирането на конфигурацията е метод за определяне на обхвата на софтуерната система. С помощта на тази стъпка можете да управлявате или контролирате нещо, дори и да не знаете какво е то. Това е описание, което съдържа CSCI типа (елемент за конфигурация на компютърен софтуер), идентификатор на проекта и информация за версията.

Дейности по време на този процес:

  • Идентифициране на конфигурационни елементи като модули с изходен код, тестов случайи спецификация на изискванията.
  • Идентифициране на всеки CSCI в SCM хранилището, чрез използване на обектно-ориентиран подход.
  • Процесът започва с основни обекти, които се групират в агрегирани обекти. Подробности за това какво, защо, кога и от кого се правят промените в теста.
  • Всеки обект има свои собствени характеристики, които идентифицират името му, което е ясно за всички останали обекти.
  • Списък с необходимите ресурси, като например документа, файла, инструментите и др.

Пример:

Вместо да се именува файл login.php, той трябва да се нарече login_v1.2.php, където v1.2 е номерът на версията на файла.

Вместо да именувате папка „Code„, трябва да се казва „Code_D“, където D означава, че кодът трябва да се архивира ежедневно.

Baseline

Базовата линия е официално приета версия на софтуерен конфигурационен елемент. Той се определя и фиксира в определено време по време на провеждане на SCM процеса. Той може да бъде променен само чрез официални процедури за контрол на промените.

Дейности по време на този процес:

  • Улесняване на изграждането на различни версии на приложение.
  • Дефиниране и определяне на механизми за управление на различни версии на тези работни продукти.
  • Функционалната базова линия съответства на прегледаните системни изисквания.
  • Широко използваните базови линии включват функционални, развойни и продуктови базови линии.

С прости думи базовата линия означава готовност за пускане.

Контрол на промените

Контролът на промените е процедурен метод, който осигурява качество и последователност при извършване на промени в конфигурационния обект. На тази стъпка заявката за промяна се подава към мениджъра на конфигурацията на софтуера.

Дейности по време на този процес:

  • Контролирайте ad-hoc промените, за да изградите стабилна среда за разработка на софтуер. Промените се записват в хранилището.
  • Заявката ще бъде проверена въз основа на техническата ѝ същност, възможните странични ефекти и цялостното ѝ въздействие върху други конфигурационни обекти.
  • Той управлява промените и предоставя елементи за конфигурация по време на жизнения цикъл на софтуера.

Отчитане на състоянието на конфигурацията

Отчитане на състоянието на конфигурацията tracks всяко издание по време на SCM процеса. Този етап включва tracкралят какво има всяка версия и промените, които водят до тази версия.

Дейности по време на този процес:

  • Поддържа запис на всички промени, направени в предишната базова линия, за да се достигне нова базова линия.
  • Идентифицирайте всички елементи, за да дефинирате конфигурацията на софтуера.
  • Следете състоянието на заявките за промяна.
  • Пълен списък на всички промени от последната базова линия.
  • Позволява tracкрал на напредъка към следващата базова линия.
  • Позволява предишни издания/версии да бъдат използваниtracтед за тестване.

Конфигурационни одити и Reviews

Одитите на конфигурацията на софтуера проверяват дали всички софтуерни продукти отговарят на базовите нужди. Той гарантира, че това, което е построено, е това, което е доставено.

Дейности по време на този процес:

  • Одитът на конфигурацията се извършва от одитори, като се проверява дали се следват определени процеси и се гарантира, че целите на SCM са изпълнени.
  • За да се провери съответствието със стандартите за контрол на конфигурацията, да се извърши одит и да се докладват направените промени.
  • Одитите на SCM също така гарантират, че tracУдобството се поддържа по време на процеса.
  • Гарантира, че промените, направени в базовата линия, съответстват на отчетите за състоянието на конфигурацията.
  • Валидиране на пълнота и последователност.

Участник в процеса на 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/

Въпроси и Отговори

Контрол на версиите tracks промени във файловете и ви позволява да се върнете към по-ранни версии. SCM е по-широк: той обхваща също идентифициране на конфигурацията, базови линии, контрол на промените, отчитане на състоянието и одити. Контролът на версиите е една важна част от по-широкия SCM процес.

SCM се фокусира върху контрола и tracпромени в елементите за конфигурация на софтуера. DevOps е по-широка култура и набор от практики, които обединяват разработката и операциите за непрекъсната доставка. SCM инструментите и базовите линии често поддържат автоматизацията, на която разчитат DevOps тръбопроводите.

IEEE 828 е признат стандарт, който определя как да се създаде план за управление на конфигурацията на софтуера. Той определя дейностите, отговорностите и документацията, необходими за последователно управление на конфигурационните елементи, така че екипите да могат да следват доказана структура, вместо да измислят своя собствена.

Изкуственият интелект може да преглежда заявки за промени, да прогнозира въздействието на промяната и да маркира рискови или конфликтни редакции, преди да достигнат базовата линия. Той също така помага за анализа на данни за отчитане на състоянието, забелязвайки модели, които човешките проверяващи биха могли да пропуснат в големи, бързо развиващи се кодови бази.

Да. Изкуственият интелект може да автоматизира рутинни задачи като версиране, маркиране на издания и генериране на одитни отчети. В комбинация с инструменти като Ansible, той може да открива отклонения в конфигурацията и да се самовъзстановява, докато хората все още одобряват основни базови промени и политики.

Обобщете тази публикация с: