Гъвкав модел в софтуерното инженерство
Какво е гъвкав модел?
Agile моделът е постепенен и итеративен процес на разработка на софтуер. Той предварително определя броя, продължителността и обхвата на всяка итерация. Всяка итерация се счита за кратък „кадър“ в модела на процеса Agile, който обикновено продължава от две до четири седмици.
Agile Model разделя задачите във времеви кутии, за да осигури специфична функционалност за изданието. Всяка компилация е инкрементална по отношение на функционалност, като окончателната компилация съдържа всички атрибути. Разделянето на целия проект на малки части спомага за минимизиране на риска по проекта и общото време за изпълнение на проекта.
Кои са важните манифести на Agile модела?
Ето основния манифест на гъвкавия модел:
- На индивидите и взаимодействията се дава приоритет пред процесите и инструментите.
- Адаптивен, овластен, самоорганизиращ се екип.
- Фокусира се върху работещ софтуер, а не върху изчерпателна документация.
- Гъвкавият модел в софтуерното инженерство има за цел да достави пълно удовлетворение на клиентите чрез бързо доставяне на ценен софтуер.
- Добре дошли промените в изискванията, дори в края на фазата на разработка.
- Ежедневно сътрудничество между бизнесмени и разработчици.
- Приоритет е сътрудничеството с клиента пред преговорите по договора.
- Позволява ви да задоволите клиентите чрез ранна и честа доставка.
- Силен акцент се поставя върху комуникацията лице в лице.
- Разработването на работещ софтуер е основният индикатор за напредък.
- Promoтемп на устойчиво развитие.
- Постоянният фокус е поставен върху техническото съвършенство и звуковия дизайн.
- Екипът редовно извършва преглед на подобренията.
Фази на гъвкав модел
Ето различните фази на Agile:
Ето важните етапи, включени в процеса на Agile Model в жизнения цикъл на SDLC:
- Събиране на изисквания: В тази фаза на Agile модел трябва да дефинирате изискванията. Възможностите за бизнес и времето и усилията, необходими за проекта, също трябва да бъдат обсъдени. Като анализирате тази информация, можете да определите икономическата и техническа осъществимост на системата.
- Проектирайте изискванията: След проучването за осъществимост можете да работите със заинтересованите страни, за да определите изискванията. Използвайки UFD диаграмата или UML диаграмата на високо ниво, можете да определите как новата система ще бъде включена във вашата съществуваща софтуерна система.
- Разработване/итерация: Истинската работа започва на този етап, след като екипът за разработка на софтуер дефинира и проектира изискванията. Продуктови, дизайнерски и развойни екипи започват работа и продуктът ще премине през различни етапи на подобрение, използвайки проста и минимална функционалност.
- Тест: Тази фаза на гъвкавия модел включва екипа за тестване. Например екипът за осигуряване на качеството проверява производителността на системата и съобщава за грешки по време на тази фаза.
- внедряване: В тази фаза първоначалният продукт се пуска на потребителя.
- Обратна връзка: След пускането на продукта, последната стъпка от гъвкавия модел е обратната връзка. В тази фаза екипът получава обратна връзка за продукта и работи по коригиране на грешки въз основа на получената обратна връзка.
В сравнение с Waterfall, Agile циклите са кратки. Може да има много такива цикли в един проект. Фазите се повтарят до доставката на продукта.
Видове Agile
Ето някои важни типове Agile:
спорна топка: Този гъвкав метод се фокусира предимно върху управлението на задачи в условия на екипна разработка. В Scrum Agile модел, екипът трябва стриктно да следва работен план за всеки Sprint. Освен това хората, участващи в този тип проекти, имат предварително дефинирани роли.
Crystal: Използването на методологията на Crystal е един от най-простите и най-гъвкави подходи за разработване на софтуер, като се признава, че всеки проект има уникални характеристики. Следователно политиките и практиките трябва да бъдат пригодени за тях.
Кристалните методологии са категоризирани както следва:
- ЯСНО: Потребител за малки и ниски критични усилия.
- ОРАНЖЕВ: Потребител за умерено по-големи и критични проекти.
- ORANGE WEB: Обикновено електронен бизнес
Динамичен метод за разработка на софтуер (DSDM): Този подход за бързо разработване на приложения (RAD) включва активно участие на потребителите и екипите са упълномощени да вземат решения с цел честа доставка на продукти.
Разработка, управлявана от функции (FDD): Този Agile метод се фокусира върху функциите за „проектиране и изграждане“. Той е разделен на няколко кратки фази на работа, които трябва да бъдат изпълнени за всяка функция поотделно. Включва преглед на домейна, проверка на дизайна, проверка на кода и т.н.
Разработка на щадящ софтуер: Тази методология се основава на принципа „Производство точно навреме“. Помага за увеличаване на скоростта на разработка на софтуер и намаляване на разходите.
В резултат на модел на икономично развитие, отпадъците се елиминират, обучението се усилва, постига се ранна доставка и се изгражда почтеност.
Екстремно програмиране (XP): Екстремно програмиране е полезен Agile модел, когато има постоянно променящи се изисквания или искания от клиенти. Използва се и когато не е сигурно във функционалността на системата.
Кога да използваме гъвкавия модел?
Ето често срещаните сценарии, при които се използва методът Agile:
- Използва се, когато има чести промени, които трябва да бъдат изпълнени.
- Проекти с ниски регулаторни изисквания
- Проекти с не много строг съществуващ процес
- Проекти, при които собственикът на продукта е много достъпен
- Проекти с гъвкави срокове и бюджет
Предимства на гъвкавия модел
Ето някои общи плюсове/предимства на гъвкавия модел:
- Комуникацията с клиентите е индивидуална.
- Осигурява много реалистичен подход към разработката на софтуер
- Agile Model в софтуерното инженерство ви позволява да проектирате ефективни проекти и да отговаряте на нуждите на компанията.
- Всяка седмица се пускат актуализирани версии на работещ софтуер.
- Той предоставя ранни частични работни решения.
- Промените са приемливи по всяко време.
- Можете да намалите общото време за разработка, като използвате този гъвкав модел.
- Той позволява едновременно разработване и доставка в рамките на цялостен планиран контекст.
- Крайният продукт е разработен и достъпен за употреба в рамките на няколко седмици.
Недостатъци на гъвкавия модел
Ето някои общи минуси/недостатъци на гъвкавия модел:
- Съществува по-висок риск от устойчивост, поддръжка и разширяемост.
- В някои корпорации самоорганизацията и интензивното сътрудничество може да не са съвместими с тяхната корпоративна култура.
- На документацията и дизайна не се обръща много внимание.
- Без ясна информация от клиента екипът за разработка може да бъде подведен.
- Не е подходящ метод за обработка на сложни зависимости.
Agile модел Vs. Модел водопад
Моделите Agile и Waterfall са два различни метода за процеса на разработка на софтуер. Въпреки различията в подхода, и двете методологии могат да се използват понякога, в зависимост от проекта и изискванията.
Гъвкав модел | Модел на водопад |
---|---|
Гъвкавите методологии предлагат инкрементални и итеративни подходи към софтуерния дизайн | Разработката на софтуер протича последователно от началната до крайната точка. |
Гъвкавият модел в софтуерното инженерство е разделен на отделни модели, върху които работят дизайнерите | Процесът на проектиране не е разделен на отделни модели |
Клиентът има ранни и чести възможности да разгледа продукта и да вземе решения и промени. | Клиентът може да види продукта само в края на проекта. |
Моделът Agile се счита за неструктуриран в сравнение с модела на водопада | Водопадните модели са по-сигурни, защото са ориентирани към плана |
Малките проекти могат да бъдат изпълнени много бързо. За големи проекти не е лесно да се оцени времето за разработка. | Всички видове проекти могат да бъдат оценени и завършени. |
Тестовият план се преглежда след всеки Sprint | Тестовият план почти не се обсъжда по време на тестовата фаза. |
Моля, вижте тази връзка за подробности сравнение между модел Agile и Waterfall.
Oбобщение
- Agile моделът е постепенен и итеративен процес на разработка на софтуер.
- Той се фокусира върху работещ софтуер, а не върху изчерпателна документация.
- Гъвкавият модел е разделен на различни етапи като 1) Събиране на изисквания, 2) Проектиране на изискванията, 3) Разработване/итерация, 4) Тестване, 5) Внедряване 6) Обратна връзка.
- Различни видове гъвкави типове са: 1) Scrum, 2) Crystal, 3) Динамичен метод за разработка на софтуер (DSDM): 4) Разработка, управлявана от функции (FDD), 5) Разработка на щадящ софтуер 6) Екстремно програмиране (XP).
- Гъвкавият модел се използва, когато трябва да се прилагат чести промени.
- Той предоставя много реалистичен подход към разработката на софтуер
- Този модел има по-голям риск за устойчивост, поддръжка и разширяемост.
- Гъвкавите методологии в софтуерното тестване възприемат инкрементални и итеративни подходи към софтуерния дизайн, докато разработката на софтуер протича последователно от началната до крайната точка.