Екстремальне програмування (XP від англ. extreme programming) — методологія розробки програмного забезпечення, найпопулярніша серед так званих гнучких методологій. Має на меті поліпшення якості програмного забезпечення та чутливість до змін у вимогах замовників. Як вид гнучких методологій, XP радить часті «випуски» програми у коротких циклах розробки, що має на меті поліпшити продуктивність праці та покращити можливості виконання вимог замовника, що змінюються. Авторами даної методології є Кент Бек, Ворд Каннінгем, Мартін Фаулер та інші.[]
Інші елементи екстремального програмування включають в себе: парне програмування, проведення обширної перевірки сирцевого коду, модульне тестування всього коду, уникання створення функціональності до того, як вона дійсно необхідна, простота та ясність коду, очікування на зміну вимог замовників з плином часу та коли вимоги до продукту стають ясніші, досить часте спілкування із замовником та між самими програмістами. Назва методології походить від ідеї застосувати корисні методи і практики розробки програмного забезпечення, піднявши їх до «екстремальних» рівнів.
Критики XP зауважують на потенційні недоліки цієї методології — нестабільні вимоги, незадокументовані компроміси конфліктів користувачів, відсутність загального документу дизайну програми.
Історія
Технологія екстремального програмування була розроблена Кентом Беком, Уардом Каннінґхемом та Роном Джеффріесом під час роботи над (C3). У 1996 Кент Бек став лідером проєкту і почав вдосконалювати методи розробки, що застосовувалися в роботі над проєктом. Свій метод він виклав у книзі «Extreme Programming Explained», котру було видано у жовтні 1999. Після купівлі Крайслера компанією Даймлер-Бенц проєкт C3 було скасовано у лютому 2000.
Хоча саме екстремальне програмування є відносно новим, багато її практик вже існували і використовувались протягом певного часу; однак, методологія підносить «найкращі практики» до екстремального рівня. Для прикладу, практика по плануванню і написанню тестів перед написанням кожної маленької частини коду було використано раніше в проєкті НАСА «Меркурій». Для зменшення часу на розробку ПЗ деякі формальні документи тестування (такі як приймальне тестування) писались паралельно (або й раніше) з написанням самого ПЗ. Незалежна група тестування НАСА може писати процедури тестування базуючись на формальних вимогах до продукту до того як програмне забезпечення розроблене та інтегроване в систему. В ХР ця концепція піднесена до «екстремального рівня» завдяки написанню автоматичних тестів які перевіряють поведінку навіть малих частинок коду, а не тільки значних функціональних частин ПЗ.
Мета ХР
Посібник Extreme Programming Explained: Embrace Change описує Екстремальне Програмування, як:
- Спроба примирити гуманність і продуктивність
- Механізм для соціальної зміни
- Шлях до удосконалення
- Стиль розвитку
- Дисципліна розробки програмного забезпечення
Головною метою Екстремального Програмування є скорочення вартості неочікуваних змін. У традиційних методах розробки (на кшталт SSADM) вимоги до розвитку системи визначаються на початку роботи над проєктом, і часто виправляються пізніше. Це означає, що вартість проєкту через зміни буде більшою за заплановану (традиційна особливість для програмного забезпечення, що проєктується).
XP використовується для скорочення вартості змін, завдяки представленню простих значень, принципів і методів. При використанні екстремального програмування, проєкт повинен стати гнучкішим щодо змін.
Концепція
Задачі
Extreme Programming Explained описує екстремальне програмування як дисципліну розробки програмного забезпечення яка змушує людей створювати високоякісне ПЗ якомога швидше.
ХР намагається зменшити ціну зміни вимог до ПЗ завдяки малим циклам розробки, а не одним довгим циклом. Екстремальне програмування сприймає зміни до вимог як звичайні, неминучі та бажані аспекти розробки ПЗ, і ці зміни мають бути очікуваним. Основна ідея полягає в тому що неможливо розробити самодостатній пакет вимог до ПЗ, зміни в вимогах — неминучі.
Екстремальне програмування також вводить набір практик та принципів на основі методології гнучкої розробки програмного забезпечення.
Активності
Екстремальне програмування описує чотири базові активності що виконуються при розробці програмного забезпечення: написання коду, тестування, слухання та дизайн.
Написання коду
Прихильники ХР заявляють що єдиним дійсно важливим результатом розробки ПЗ є код: без готового коду нема продукту.
Тестування
Методологія екстремального програмування заявляє, що якщо дрібне тестування може перевірити незначну частину функціональності, то багато дрібних тестів можуть перевірити набагато більше частинок і продукт в цілому.
Слухання
Дизайн
Основні прийоми XP
Дванадцять основних прийомів екстремального програмування (за першим виданням книги Extreme programming explained) можуть бути об'єднані в чотири групи:
- Короткий цикл зворотного зв'язку (Fine scale feedback)
- Розробка через тестування (Test driven development)
- Гра в планування (Planning game)
- Замовник завжди поруч (Whole team, Onsite customer)
- Парне програмування (Pair programming)
- Безперервний, а не пакетний процес
- Безперервна інтеграція (Continuous Integration)
- Рефакторинг (Design Improvement, Refactor)
- Часті невеликі релізи (Small Releases)
- Розуміння, що поділяється всіма учасниками
- Простота (Simple design)
- Метафора системи (System metaphor)
- Колективне володіння кодом (Collective code ownership) або обраними шаблонами проєктування (Collective patterns ownership)
- (Coding standard or Coding conventions)
- Соціальна захищеність програміста (Programmer welfare) :
- 40-годинний робочий тиждень (Sustainable pace, Forty hour week)
Див. також
Література
- Кент Бек. Экстремальное программирование. — СПб : Питер, 2002. — .(рос.)
- Кент Бек, Мартин Фаулер. Экстремальное программирование: планирование. — СПб : Питер, 2003. — .(рос.)
- Кент Бек. Экстремальное программирование: разработка через тестирование. — СПб : Питер, 2003. — .(рос.)
- Кен Ауэр, Рой Миллер. Экстремальное программирование: постановка процесса с первых шагов и до победного конца. — СПб : Питер, 2003. — .(рос.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ekstremalne programuvannya XP vid angl extreme programming metodologiya rozrobki programnogo zabezpechennya najpopulyarnisha sered tak zvanih gnuchkih metodologij Maye na meti polipshennya yakosti programnogo zabezpechennya ta chutlivist do zmin u vimogah zamovnikiv Yak vid gnuchkih metodologij XP radit chasti vipuski programi u korotkih ciklah rozrobki sho maye na meti polipshiti produktivnist praci ta pokrashiti mozhlivosti vikonannya vimog zamovnika sho zminyuyutsya Avtorami danoyi metodologiyi ye Kent Bek Vord Kanningem Martin Fauler ta inshi dzherelo Inshi elementi ekstremalnogo programuvannya vklyuchayut v sebe parne programuvannya provedennya obshirnoyi perevirki sircevogo kodu modulne testuvannya vsogo kodu unikannya stvorennya funkcionalnosti do togo yak vona dijsno neobhidna prostota ta yasnist kodu ochikuvannya na zminu vimog zamovnikiv z plinom chasu ta koli vimogi do produktu stayut yasnishi dosit chaste spilkuvannya iz zamovnikom ta mizh samimi programistami Nazva metodologiyi pohodit vid ideyi zastosuvati korisni metodi i praktiki rozrobki programnogo zabezpechennya pidnyavshi yih do ekstremalnih rivniv Kritiki XP zauvazhuyut na potencijni nedoliki ciyeyi metodologiyi nestabilni vimogi nezadokumentovani kompromisi konfliktiv koristuvachiv vidsutnist zagalnogo dokumentu dizajnu programi IstoriyaTehnologiya ekstremalnogo programuvannya bula rozroblena Kentom Bekom Uardom Kanninghemom ta Ronom Dzheffriesom pid chas roboti nad C3 U 1996 Kent Bek stav liderom proyektu i pochav vdoskonalyuvati metodi rozrobki sho zastosovuvalisya v roboti nad proyektom Svij metod vin viklav u knizi Extreme Programming Explained kotru bulo vidano u zhovtni 1999 Pislya kupivli Krajslera kompaniyeyu Dajmler Benc proyekt C3 bulo skasovano u lyutomu 2000 Hocha same ekstremalne programuvannya ye vidnosno novim bagato yiyi praktik vzhe isnuvali i vikoristovuvalis protyagom pevnogo chasu odnak metodologiya pidnosit najkrashi praktiki do ekstremalnogo rivnya Dlya prikladu praktika po planuvannyu i napisannyu testiv pered napisannyam kozhnoyi malenkoyi chastini kodu bulo vikoristano ranishe v proyekti NASA Merkurij Dlya zmenshennya chasu na rozrobku PZ deyaki formalni dokumenti testuvannya taki yak prijmalne testuvannya pisalis paralelno abo j ranishe z napisannyam samogo PZ Nezalezhna grupa testuvannya NASA mozhe pisati proceduri testuvannya bazuyuchis na formalnih vimogah do produktu do togo yak programne zabezpechennya rozroblene ta integrovane v sistemu V HR cya koncepciya pidnesena do ekstremalnogo rivnya zavdyaki napisannyu avtomatichnih testiv yaki pereviryayut povedinku navit malih chastinok kodu a ne tilki znachnih funkcionalnih chastin PZ Meta HRPosibnik Extreme Programming Explained Embrace Change opisuye Ekstremalne Programuvannya yak Sproba primiriti gumannist i produktivnist Mehanizm dlya socialnoyi zmini Shlyah do udoskonalennya Stil rozvitku Disciplina rozrobki programnogo zabezpechennya Golovnoyu metoyu Ekstremalnogo Programuvannya ye skorochennya vartosti neochikuvanih zmin U tradicijnih metodah rozrobki na kshtalt SSADM vimogi do rozvitku sistemi viznachayutsya na pochatku roboti nad proyektom i chasto vipravlyayutsya piznishe Ce oznachaye sho vartist proyektu cherez zmini bude bilshoyu za zaplanovanu tradicijna osoblivist dlya programnogo zabezpechennya sho proyektuyetsya XP vikoristovuyetsya dlya skorochennya vartosti zmin zavdyaki predstavlennyu prostih znachen principiv i metodiv Pri vikoristanni ekstremalnogo programuvannya proyekt povinen stati gnuchkishim shodo zmin KoncepciyaZadachi Extreme Programming Explained opisuye ekstremalne programuvannya yak disciplinu rozrobki programnogo zabezpechennya yaka zmushuye lyudej stvoryuvati visokoyakisne PZ yakomoga shvidshe HR namagayetsya zmenshiti cinu zmini vimog do PZ zavdyaki malim ciklam rozrobki a ne odnim dovgim ciklom Ekstremalne programuvannya sprijmaye zmini do vimog yak zvichajni neminuchi ta bazhani aspekti rozrobki PZ i ci zmini mayut buti ochikuvanim Osnovna ideya polyagaye v tomu sho nemozhlivo rozrobiti samodostatnij paket vimog do PZ zmini v vimogah neminuchi Ekstremalne programuvannya takozh vvodit nabir praktik ta principiv na osnovi metodologiyi gnuchkoyi rozrobki programnogo zabezpechennya Aktivnosti Ekstremalne programuvannya opisuye chotiri bazovi aktivnosti sho vikonuyutsya pri rozrobci programnogo zabezpechennya napisannya kodu testuvannya sluhannya ta dizajn Napisannya kodu Prihilniki HR zayavlyayut sho yedinim dijsno vazhlivim rezultatom rozrobki PZ ye kod bez gotovogo kodu nema produktu Testuvannya Metodologiya ekstremalnogo programuvannya zayavlyaye sho yaksho dribne testuvannya mozhe pereviriti neznachnu chastinu funkcionalnosti to bagato dribnih testiv mozhut pereviriti nabagato bilshe chastinok i produkt v cilomu Sluhannya DizajnOsnovni prijomi XPDvanadcyat osnovnih prijomiv ekstremalnogo programuvannya za pershim vidannyam knigi Extreme programming explained mozhut buti ob yednani v chotiri grupi Korotkij cikl zvorotnogo zv yazku Fine scale feedback Rozrobka cherez testuvannya Test driven development Gra v planuvannya Planning game Zamovnik zavzhdi poruch Whole team Onsite customer Parne programuvannya Pair programming Bezperervnij a ne paketnij proces Bezperervna integraciya Continuous Integration Refaktoring Design Improvement Refactor Chasti neveliki relizi Small Releases Rozuminnya sho podilyayetsya vsima uchasnikami Prostota Simple design Metafora sistemi System metaphor Kolektivne volodinnya kodom Collective code ownership abo obranimi shablonami proyektuvannya Collective patterns ownership Coding standard or Coding conventions Socialna zahishenist programista Programmer welfare 40 godinnij robochij tizhden Sustainable pace Forty hour week Div takozhAdaptivna rozrobkaLiteraturaKent Bek Ekstremalnoe programmirovanie SPb Piter 2002 ISBN 5 94723 032 1 ros Kent Bek Martin Fauler Ekstremalnoe programmirovanie planirovanie SPb Piter 2003 ISBN 5 318 00111 4 ros Kent Bek Ekstremalnoe programmirovanie razrabotka cherez testirovanie SPb Piter 2003 ISBN 5 8046 0051 6 ros Ken Auer Roj Miller Ekstremalnoe programmirovanie postanovka processa s pervyh shagov i do pobednogo konca SPb Piter 2003 ISBN 5 318 00132 7 ros