Методы разработки ПО, способы распространения ПО, виды лицензий на ПО
Каскадная модель
анная модель также носит название «водопад». Классическими представителями реализации данной методологии являются стандарты ISO и CMM.
Модель предполагает следующие свойства взаимодействия этапов:
• модель состоит из последовательно расположенных этапов;
• каждый этап полностью заканчивается до того, как начнется следующий;
• этапы не перекрываются во времени: следующий этап не начинается до тех пор, пока не завершится предыдущий;
• возврат к предыдущим этапам не предусмотрен либо всячески ограничен;
• исправление ошибок происходит лишь на стадии тестирования;
• результат появляется только в конце разработки.
Критерием появления результата является отсутствие ошибок и точное соответствие продукта первоначальной спецификации.
Поэтапная модель с промежуточным контролем
анная модель еще известна как итерационная модель или «водоворот».
Модель характеризуется следующими свойствами взаимодействия этапов:
• модель состоит из последовательно расположенных этапов (точно так же, как и «водопад»);
• каждый этап имеет обратную связь с предыдущими этапами;
• исправление ошибок происходит на каждом из этапов, сразу при выявлении проблемы — это промежуточный контроль;
• этапы перекрываются во времени по причине наличия обратной связи: следующий этап не начинается, пока не завершится предыдущий; при первом проходе по модели вниз, как только обнаружена ошибка, осуществляется возврат снизу вверх к предыдущим этапам, которые повлекли ошибку; таким образом, фактически этапы оказываются растянутыми во времени;
• результат появляется только в конце разработки, как и в модели «водопад».
Критерием появления результата является приемлемое качество продукта, то есть такое состояние продукта, когда наиболее критические для клиента ошибки устранены, а с наличием непринципиальных для жизнедеятельности системы ошибок клиент согласилcя — данные ошибки описаны в документации и фактически переведены таким образом в разряд особенностей системы.
Спиральная модель
оммерческими представителями данной методологии являются RUP (Rational Unified Process), MSF (Microsoft Consulting Services), и об этом будет рассказано в следующих частях данной публикации.
Результат появляется фактически на каждом витке спирали. Этот результат, который является промежуточным, анализируется, а затем выявленные недостатки продукта становятся поводом для инициирования следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в итоге выбирается обоснованный вариант, который доводится до реализации. Спираль завершается тогда, когда клиент и разработчик приходят к согласию относительно результата.
Модель предполагает также свойства взаимодействия этапов:
• модель состоит из последовательно расположенных этапов (как и «водопад») в пределах одного витка спирали;
• внутри витка спирали этапы не имеют обратной связи; анализ результата осуществляется в конце витка и инициирует новый виток спирали;
• исправление ошибок происходит на этапе тестирования на каждом из витков спирали; фактически часть ошибок исправляется в пределах одного витка посредством связи этапов кодирования и тестирования; ошибки, которые не могут быть исправлены и требуют более глубоких структурных изменений, инициируют новый виток спирали;
• этапы могут перекрываться во времени в пределах одного витка спирали;
• результат появляется в конце каждого витка спирали и подвергается подробному анализу, анализируются новые требования заказчика и инициируется новый виток спирали;
• при переходе от витка к витку происходит накопление и повторное использование программных средств, моделей и прототипов;
• процесс ориентирован на развитие и модификацию системы в процессе ее проектирования, на анализ рисков и издержек в процессе проектирования.
Отметим, что основная особенность данной методологии состоит в концентрации сложности на начальных этапах жизненного цикла ПО (анализ, проектирование); при этом сложность и трудоемкость последующих этапов в пределах одного витка спирали относительно невысокие. По этой методологии предлагается способ снижения затрат в целом при разработке ПО за счет предотвращения потенциальных ошибок на этапах анализа и проектирования. Этап определения стратегии присутствует на первом витке спирали либо «склеен» с этапом анализа первого витка спирали.