HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Жизненный цикл софта</a><ul><li><a>Примеры с жизненным циклом</a></li>
1 <ul><li><a>Жизненный цикл софта</a><ul><li><a>Примеры с жизненным циклом</a></li>
2 </ul></li>
2 </ul></li>
3 <li><a>Какие есть модели разработки</a><ul><li><a>Водопадный подход</a><ul><li><a>Преимущества</a></li>
3 <li><a>Какие есть модели разработки</a><ul><li><a>Водопадный подход</a><ul><li><a>Преимущества</a></li>
4 <li><a>Недостатки</a></li>
4 <li><a>Недостатки</a></li>
5 </ul></li>
5 </ul></li>
6 <li><a>Через тестирование</a><ul><li><a>Недостатки</a></li>
6 <li><a>Через тестирование</a><ul><li><a>Недостатки</a></li>
7 </ul></li>
7 </ul></li>
8 <li><a>Инкрементная модель</a><ul><li><a>Преимущества</a></li>
8 <li><a>Инкрементная модель</a><ul><li><a>Преимущества</a></li>
9 <li><a>Недостатки</a></li>
9 <li><a>Недостатки</a></li>
10 </ul></li>
10 </ul></li>
11 </ul></li>
11 </ul></li>
12 </ul><p>Разработка программного обеспечения может быть разной. Перед тем, как создать новый продукт, важно не только продумать саму идею проекта, но и определиться с методом его реализации. В этом помогут методологии. Знать их полезно не только программисту, но и<strong>тестировщику</strong>, т. к. методологии разработки ПО спрашивают практически на любом собеседовании.</p>
12 </ul><p>Разработка программного обеспечения может быть разной. Перед тем, как создать новый продукт, важно не только продумать саму идею проекта, но и определиться с методом его реализации. В этом помогут методологии. Знать их полезно не только программисту, но и<strong>тестировщику</strong>, т. к. методологии разработки ПО спрашивают практически на любом собеседовании.</p>
13 <p>В современных источниках полно данных о том, что это такое, а также как их отличать друг от друга. Однако новичкам бывает трудно разобраться в методах разработки и их особенностях. В данной статье соответствующая тема окажется максимально раскрыта. Основной упор сделан на так называемый Agile.</p>
13 <p>В современных источниках полно данных о том, что это такое, а также как их отличать друг от друга. Однако новичкам бывает трудно разобраться в методах разработки и их особенностях. В данной статье соответствующая тема окажется максимально раскрыта. Основной упор сделан на так называемый Agile.</p>
14 <h2>Жизненный цикл софта</h2>
14 <h2>Жизненный цикл софта</h2>
15 <p>Во время разработки программного обеспечения владелец продукта должен понимать, что у контента есть жизненный цикл. Это - этапы, которые проходит софт от начала создания до конца разработки и релиза. Обычно это: подготовка, проектирование, создание, поддержка. Каждый шаг способен делиться на несколько более мелких.</p>
15 <p>Во время разработки программного обеспечения владелец продукта должен понимать, что у контента есть жизненный цикл. Это - этапы, которые проходит софт от начала создания до конца разработки и релиза. Обычно это: подготовка, проектирование, создание, поддержка. Каждый шаг способен делиться на несколько более мелких.</p>
16 <p>Наиболее подробно жизненный цикл ПО выглядит так:</p>
16 <p>Наиболее подробно жизненный цикл ПО выглядит так:</p>
17 <ul><li>подготовка;</li>
17 <ul><li>подготовка;</li>
18 <li>проектирование;</li>
18 <li>проектирование;</li>
19 <li>обдумывание дизайна;</li>
19 <li>обдумывание дизайна;</li>
20 <li>кодирование;</li>
20 <li>кодирование;</li>
21 <li>тестирование;</li>
21 <li>тестирование;</li>
22 <li>документирование;</li>
22 <li>документирование;</li>
23 <li>внедрение;</li>
23 <li>внедрение;</li>
24 <li>поддержка.</li>
24 <li>поддержка.</li>
25 </ul><p>Каждый шаг - это отдельная задача, которая помогает решать поставленные проблемы. Для разработки продуктов они крайне важны.</p>
25 </ul><p>Каждый шаг - это отдельная задача, которая помогает решать поставленные проблемы. Для разработки продуктов они крайне важны.</p>
26 <h3>Примеры с жизненным циклом</h3>
26 <h3>Примеры с жизненным циклом</h3>
27 <p>Каждый этап разработки предусматривает свои особенности. Далее будет приведен пример жизненного цикла онлайн магазина в Сети. Он выглядит следующим образом:</p>
27 <p>Каждый этап разработки предусматривает свои особенности. Далее будет приведен пример жизненного цикла онлайн магазина в Сети. Он выглядит следующим образом:</p>
28 <ol><li>Подготовка. Человек решает запустить собственный магазин по продажам книг в интернете. Он анализирует потенциальных конкурентов. После - собирает данные о трафике, функциональных возможностях.</li>
28 <ol><li>Подготовка. Человек решает запустить собственный магазин по продажам книг в интернете. Он анализирует потенциальных конкурентов. После - собирает данные о трафике, функциональных возможностях.</li>
29 <li>Проектирование. Тот, кто решил выпустить в свет интернет-магазин, собрал команду или выбрал подрядчика для реализации задачи. С ними он проговорил архитектуру и внешний вид (дизайн) продукта.</li>
29 <li>Проектирование. Тот, кто решил выпустить в свет интернет-магазин, собрал команду или выбрал подрядчика для реализации задачи. С ними он проговорил архитектуру и внешний вид (дизайн) продукта.</li>
30 <li>Создание. Это - этап заключения договора с разработчиками. Они стали реализовывать дизайн и прописывать кодификацию будущего магазинчика.</li>
30 <li>Создание. Это - этап заключения договора с разработчиками. Они стали реализовывать дизайн и прописывать кодификацию будущего магазинчика.</li>
31 <li>Поддержка. Здесь происходит подписание акта приемки-передачи итогового продукта, а также расчет с разработчиками. Магазин размещен на реальных серверах и открыл свои двери для покупателей. Посетители не только приобретают продукцию, но и сообщают об обнаруженных ошибках/неполадках. Программисты оперативно исправляют жалобы, делая интернет-проект стабильно функционирующим.</li>
31 <li>Поддержка. Здесь происходит подписание акта приемки-передачи итогового продукта, а также расчет с разработчиками. Магазин размещен на реальных серверах и открыл свои двери для покупателей. Посетители не только приобретают продукцию, но и сообщают об обнаруженных ошибках/неполадках. Программисты оперативно исправляют жалобы, делая интернет-проект стабильно функционирующим.</li>
32 </ol><p>Модель разработки - это то, что описывает стадии жизненного цикла продукта. А еще - что происходит на каждом из пройденных шагов.</p>
32 </ol><p>Модель разработки - это то, что описывает стадии жизненного цикла продукта. А еще - что происходит на каждом из пройденных шагов.</p>
33 <p>Методология - это набор методов, которые отвечают за реализацию разработки. Сюда относят правила, принципы, техники создания программного обеспечения, которые делают процесс более грамотным и эффективным.</p>
33 <p>Методология - это набор методов, которые отвечают за реализацию разработки. Сюда относят правила, принципы, техники создания программного обеспечения, которые делают процесс более грамотным и эффективным.</p>
34 <h2>Какие есть модели разработки</h2>
34 <h2>Какие есть модели разработки</h2>
35 <p>Планирование алгоритма по созданию качественного программного обеспечения - это уже половина успеха итогового продукта. Для того, чтобы у заказчиков и программистов в ходе сотрудничества было меньше проблем, были придуманы разнообразные методы написания ПО. Каждый обладает собственными преимуществами и недостатками, которые должен оценить разработчик для конкретного заказа.</p>
35 <p>Планирование алгоритма по созданию качественного программного обеспечения - это уже половина успеха итогового продукта. Для того, чтобы у заказчиков и программистов в ходе сотрудничества было меньше проблем, были придуманы разнообразные методы написания ПО. Каждый обладает собственными преимуществами и недостатками, которые должен оценить разработчик для конкретного заказа.</p>
36 <p>Среди подходов к созданию программных продуктов выделяют следующие варианты:</p>
36 <p>Среди подходов к созданию программных продуктов выделяют следующие варианты:</p>
37 <ul><li>code and fix - кодирование и устранение ошибок;</li>
37 <ul><li>code and fix - кодирование и устранение ошибок;</li>
38 <li>v-model - подход, реализуемый посредством тестирования;</li>
38 <li>v-model - подход, реализуемый посредством тестирования;</li>
39 <li>incremental model - инкрементная модель;</li>
39 <li>incremental model - инкрементная модель;</li>
40 <li>waterfall - "водопад", каскадный прием;</li>
40 <li>waterfall - "водопад", каскадный прием;</li>
41 <li>iterative - итеративная;</li>
41 <li>iterative - итеративная;</li>
42 <li>spiral - спиральный вариант;</li>
42 <li>spiral - спиральный вариант;</li>
43 <li>chaos model - "хаотичная" модель;</li>
43 <li>chaos model - "хаотичная" модель;</li>
44 <li>prototype - прототипная.</li>
44 <li>prototype - прототипная.</li>
45 </ul><p>Грамотный выбор метода написание продукта - это гарант качества результата при хорошо подобранной команде. На практике среди перечисленных подходов выделяют 5 основных: V-образную, каскадную, итерационную, инкрементную и спиральную. Работающий в команде разработчик человек должен хорошо разбираться в этих приемах. Именно они будут рассмотрены далее более подробно.</p>
45 </ul><p>Грамотный выбор метода написание продукта - это гарант качества результата при хорошо подобранной команде. На практике среди перечисленных подходов выделяют 5 основных: V-образную, каскадную, итерационную, инкрементную и спиральную. Работающий в команде разработчик человек должен хорошо разбираться в этих приемах. Именно они будут рассмотрены далее более подробно.</p>
46 <h3>Водопадный подход</h3>
46 <h3>Водопадный подход</h3>
47 <p>Для создания качественного ПО нужно хорошо разбираться не только в языках программирования, но и в методах коддинга. Первый вариант - это схема "водопад".</p>
47 <p>Для создания качественного ПО нужно хорошо разбираться не только в языках программирования, но и в методах коддинга. Первый вариант - это схема "водопад".</p>
48 <p>Впервые метод появился в 1970-х годах. Базируется на поэтапном выполнении: каждая следующая стадия начинается лишь после того, как заканчивается предыдущий шаг. При грамотной реализации "водопад" послужит наиболее быстрой, качественной и простой моделью.</p>
48 <p>Впервые метод появился в 1970-х годах. Базируется на поэтапном выполнении: каждая следующая стадия начинается лишь после того, как заканчивается предыдущий шаг. При грамотной реализации "водопад" послужит наиболее быстрой, качественной и простой моделью.</p>
49 <p>Выше показана наглядная схема соответствующего приема. Запутаться в нем невозможно. "Водопад" - это четкий план, которого стоит придерживаться во время процесса разработки.</p>
49 <p>Выше показана наглядная схема соответствующего приема. Запутаться в нем невозможно. "Водопад" - это четкий план, которого стоит придерживаться во время процесса разработки.</p>
50 <h4>Преимущества</h4>
50 <h4>Преимущества</h4>
51 <p>У каждого рассматриваемого варианта есть свои сильные и слабые стороны, начиная с самого начала продумывания итогового продукта. Waterfall - прием, который встречается на практике весьма часто.</p>
51 <p>У каждого рассматриваемого варианта есть свои сильные и слабые стороны, начиная с самого начала продумывания итогового продукта. Waterfall - прием, который встречается на практике весьма часто.</p>
52 <p>Он имеет следующие преимущества:</p>
52 <p>Он имеет следующие преимущества:</p>
53 <ul><li>можно быстро и легко осуществлять контроль за процессом;</li>
53 <ul><li>можно быстро и легко осуществлять контроль за процессом;</li>
54 <li>"водопад" позволяет определять стоимость всего проекта на первых порах;</li>
54 <li>"водопад" позволяет определять стоимость всего проекта на первых порах;</li>
55 <li>после заключения договора development осуществляется "от и до", без остановок и тормозов;</li>
55 <li>после заключения договора development осуществляется "от и до", без остановок и тормозов;</li>
56 <li>для проверки работоспособности кода нет необходимости в найме опытных и дорогостоящих тестировщиков.</li>
56 <li>для проверки работоспособности кода нет необходимости в найме опытных и дорогостоящих тестировщиков.</li>
57 </ul><p>Проверка полученных результатов при "водопаде" может осуществляться даже новичками путем изучения подробной технической документации.</p>
57 </ul><p>Проверка полученных результатов при "водопаде" может осуществляться даже новичками путем изучения подробной технической документации.</p>
58 <h4>Недостатки</h4>
58 <h4>Недостатки</h4>
59 <p>Waterfall - это лучший по скорости метод по созданию программных продуктов. Но он имеет ряд недостатков:</p>
59 <p>Waterfall - это лучший по скорости метод по созданию программных продуктов. Но он имеет ряд недостатков:</p>
60 <ul><li>тестинг проводится на последних этапах создания ПО;</li>
60 <ul><li>тестинг проводится на последних этапах создания ПО;</li>
61 <li>комментарии по доработкам и полученному результату удастся дать только в самом конце процесса;</li>
61 <li>комментарии по доработкам и полученному результату удастся дать только в самом конце процесса;</li>
62 <li>написание кода осуществляется по технической документации, что несколько задерживает разработку.</li>
62 <li>написание кода осуществляется по технической документации, что несколько задерживает разработку.</li>
63 </ul><p>Такой прием не лучшим образом подходит для сложных и крупных продуктов. Связано это с тем, что при обнаружении ошибки, ее исправление окажется долгим и дорогостоящим. А если у заказчиков в процессе создания контента появятся пожелания или критика, то разрабам предстоит переписывать почти всю кодификацию.</p>
63 </ul><p>Такой прием не лучшим образом подходит для сложных и крупных продуктов. Связано это с тем, что при обнаружении ошибки, ее исправление окажется долгим и дорогостоящим. А если у заказчиков в процессе создания контента появятся пожелания или критика, то разрабам предстоит переписывать почти всю кодификацию.</p>
64 <p>"Водопад" сгодится для космической и медицинской отраслей, где уже есть база документации. Основная задача для успешной реализации проекта по подобному принципу - это написание подробных требований к разработке. В процессе осуществления тестинга должно быть минимум ошибок или полное их отсутствие.</p>
64 <p>"Водопад" сгодится для космической и медицинской отраслей, где уже есть база документации. Основная задача для успешной реализации проекта по подобному принципу - это написание подробных требований к разработке. В процессе осуществления тестинга должно быть минимум ошибок или полное их отсутствие.</p>
65 <h3>Через тестирование</h3>
65 <h3>Через тестирование</h3>
66 <p>Роль выбора метода по созданию ПО становится для программистов основополагающей. Когда решается этот вопрос, нужно оценивать преимущества и недостатки каждого подхода. Есть моделька V-образного типа. Это - следующее популярное направление.</p>
66 <p>Роль выбора метода по созданию ПО становится для программистов основополагающей. Когда решается этот вопрос, нужно оценивать преимущества и недостатки каждого подхода. Есть моделька V-образного типа. Это - следующее популярное направление.</p>
67 <p>Появилось оно в 1980-х годах. Усовершенствованная каскадная модель. В ней заказчик вместе с командой программистов одновременной составляет требование к системе, после чего описывает процесс тестирования. Требования выдвигаются для каждого этапа работки.</p>
67 <p>Появилось оно в 1980-х годах. Усовершенствованная каскадная модель. В ней заказчик вместе с командой программистов одновременной составляет требование к системе, после чего описывает процесс тестирования. Требования выдвигаются для каждого этапа работки.</p>
68 <p>Выше - схема, объясняющая принцип работе соответствующего приема.</p>
68 <p>Выше - схема, объясняющая принцип работе соответствующего приема.</p>
69 <p>Среди преимуществ - это качество разработки. При помощи V-образа появляется возможность свести ошибки архитектуры продукта к минимуму.</p>
69 <p>Среди преимуществ - это качество разработки. При помощи V-образа появляется возможность свести ошибки архитектуры продукта к минимуму.</p>
70 <h4>Недостатки</h4>
70 <h4>Недостатки</h4>
71 <p>Многим нравится разработка через тестирование. Но это - вариант, который сгодится для проектов, где на передовую выходит надежность. Связано это с недостатками метода:</p>
71 <p>Многим нравится разработка через тестирование. Но это - вариант, который сгодится для проектов, где на передовую выходит надежность. Связано это с недостатками метода:</p>
72 <ul><li>требуется грамотно подобранная команда тестировщиков;</li>
72 <ul><li>требуется грамотно подобранная команда тестировщиков;</li>
73 <li>нужен немалый бюджет, особенно для крупных проектов;</li>
73 <li>нужен немалый бюджет, особенно для крупных проектов;</li>
74 <li>дороговизна исправления обнаруженных в ходе тестинга ошибок.</li>
74 <li>дороговизна исправления обнаруженных в ходе тестинга ошибок.</li>
75 </ul><p>Подойдет для решения ПО, предназначенного для отслеживания поведения пациентов в клиниках, а также при разработке систем безопасности для транспортных средств. Это - только несколько примеров. В них сведение рисков на нет важнее, чем стоимость корректировки обнаруженных багов.</p>
75 </ul><p>Подойдет для решения ПО, предназначенного для отслеживания поведения пациентов в клиниках, а также при разработке систем безопасности для транспортных средств. Это - только несколько примеров. В них сведение рисков на нет важнее, чем стоимость корректировки обнаруженных багов.</p>
76 <h3>Инкрементная модель</h3>
76 <h3>Инкрементная модель</h3>
77 <p>Некоторые программисты создают программные продукты по частям. Здесь на помощь приходить Increment Model. Она - одна из самых старых. Начинается история такого подхода в 1930-х годах.</p>
77 <p>Некоторые программисты создают программные продукты по частям. Здесь на помощь приходить Increment Model. Она - одна из самых старых. Начинается история такого подхода в 1930-х годах.</p>
78 <p>Чтобы лучше понять принцип работы такого приема, лучше рассмотреть наглядный пример. Нужно создать новую социальную сеть. Тогда по Increment Model разработка будет осуществляться так:</p>
78 <p>Чтобы лучше понять принцип работы такого приема, лучше рассмотреть наглядный пример. Нужно создать новую социальную сеть. Тогда по Increment Model разработка будет осуществляться так:</p>
79 <ol><li>Заказчик принял решение о создании социальной сети. Он составил подробное ТЗ. Разработчики изучили документацию и предложили дополнительные функции для будущей социалки. Пример - введение страницы с личной информацией, а также чаты. После - провести тестинг на потенциальной целевой аудитории.</li>
79 <ol><li>Заказчик принял решение о создании социальной сети. Он составил подробное ТЗ. Разработчики изучили документацию и предложили дополнительные функции для будущей социалки. Пример - введение страницы с личной информацией, а также чаты. После - провести тестинг на потенциальной целевой аудитории.</li>
80 <li>Команда разработчиков создает продукт и демонстрирует его заказчику. Далее - осуществляет запуск на рынок. Если и заказчиков, и посетителей все устраивает - работа над пилотным проектом продолжается. Она будет проводиться по частям.</li>
80 <li>Команда разработчиков создает продукт и демонстрирует его заказчику. Далее - осуществляет запуск на рынок. Если и заказчиков, и посетителей все устраивает - работа над пилотным проектом продолжается. Она будет проводиться по частям.</li>
81 <li>Программисты параллельно создают инструментарий для выгрузки фотографий, обмена файлами и прослушивания музыки. Также осуществляется реализация иных важных для социальной сети функций. Инкремент за инкрементом они начнут совершенствовать продукт, позволяя приблизиться к заданному ТЗ.</li>
81 <li>Программисты параллельно создают инструментарий для выгрузки фотографий, обмена файлами и прослушивания музыки. Также осуществляется реализация иных важных для социальной сети функций. Инкремент за инкрементом они начнут совершенствовать продукт, позволяя приблизиться к заданному ТЗ.</li>
82 </ol><p>Предложенная схема наглядно дает понять, как работает инкрементная модель в программировании.</p>
82 </ol><p>Предложенная схема наглядно дает понять, как работает инкрементная модель в программировании.</p>
83 <h4>Преимущества</h4>
83 <h4>Преимущества</h4>
84 <p>К сильным сторонам процесса относят:</p>
84 <p>К сильным сторонам процесса относят:</p>
85 <ul><li>отсутствие необходимости крупных финансовых вложений на первоначальном этапе;</li>
85 <ul><li>отсутствие необходимости крупных финансовых вложений на первоначальном этапе;</li>
86 <li>быстрый фидбэк от потенциальной целевой аудитории;</li>
86 <li>быстрый фидбэк от потенциальной целевой аудитории;</li>
87 <li>корректировка багов более дешевая, чем в предыдущих вариантах.</li>
87 <li>корректировка багов более дешевая, чем в предыдущих вариантах.</li>
88 </ul><p>Здесь конечным результатом удастся насладиться в кратчайшие сроки. Но для успешного старта придется хорошенько подумать над техническим заданием. Если оно составлено без конкретики, разработчики не смогут воспользоваться инкрементным подходом.</p>
88 </ul><p>Здесь конечным результатом удастся насладиться в кратчайшие сроки. Но для успешного старта придется хорошенько подумать над техническим заданием. Если оно составлено без конкретики, разработчики не смогут воспользоваться инкрементным подходом.</p>
89 <h4>Недостатки</h4>
89 <h4>Недостатки</h4>
90 <p>Хотя Increment Model может показаться идеальным вариантом, особенно если успех проекта находится под вопросом, она тоже имеет ряд недочетов:</p>
90 <p>Хотя Increment Model может показаться идеальным вариантом, особенно если успех проекта находится под вопросом, она тоже имеет ряд недочетов:</p>
91 <ul><li>возможные конфликты между разработчиками и программистами;</li>
91 <ul><li>возможные конфликты между разработчиками и программистами;</li>
92 <li>разрабы будут доделывать мелочи, вместо того, чтобы в первую очередь подумать над основным функционалом.</li>
92 <li>разрабы будут доделывать мелочи, вместо того, чтобы в первую очередь подумать над основным функционалом.</li>
93 </ul><p>Если в компании две команды программеров, они могут по-своему смотреть на реализацию всего ПО, а также его интерфейса. Иногда прийти к общему мнению не получается. Из-за этого каждая команда будет переделывать функционал и интерфейс "под себя". А это может сказываться на сроках сдачи результата.</p>
93 </ul><p>Если в компании две команды программеров, они могут по-своему смотреть на реализацию всего ПО, а также его интерфейса. Иногда прийти к общему мнению не получается. Из-за этого каждая команда будет переделывать функционал и интерфейс "под себя". А это может сказываться на сроках сдачи результата.</p>
94 <p>Продолжение статьи читайте<a>здесь</a>.</p>
94 <p>Продолжение статьи читайте<a>здесь</a>.</p>
95 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
95 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
96  
96