Хотя процессы разработки всех типов ПО в главном схожи, каждый его вид имеет свои специфические черты, которые оказывают значительное влияние на процесс разработки. Поэтому сначала перечислим и кратко охарактеризуем основные виды ПО, существующие на сегодняшний день. Это:
- Заказное ПО. Продукт разработки предназначается определенному заказчику, который финансирует процесс разработки и определяет требования к программному продукту. По исполнении заказа все права на продукт переходят к заказчику, который в будущем для совершенствования данного программного продукта может привлечь либо прежнего, либо любого другого исполнителя.
- Инвестиционное ПО. Отличается от заказного отсутствием конкретного заказчика (хотя разработка может вестись и на средства, выделенные внешним инвестором). Обычно в этом случае права на программный код сохраняет исполнитель. Благодаря этому создаются условия для работы по постоянному совершенствованию данного ПО, выпуска его новых версий и обновлений для действующих. Вероятна и организация непрерывно работающей службы технической поддержки. Коммерческий эффект достигается обычно путем продажи программного продукта заинтересованным пользователям. Почти все программные продукты, представленные на свободном рынке относятся к данному типу ПО.
- Игровое ПО. Это условное название, поскольку большинство компьютерных игр можно отнести скорее к инвестиционному типу ПО. Но в целом данный тип ПО характеризуется тем, что в процессе его разработки отсутствует (или до минимума ограничена по сроку) фаза сопровождения, что сильно влияет на экономику процесса разработки и его организацию.
- Встроенное ПО. Это прикладное ПО, создаваемое под конкретные технические изделия и поставляемое вместе с ними. Сопровождению, как правило, не подлежит, но характеризуется повышенными требованиями к качеству, надежности и безотказности. Объясняется это тем, что отзыв партии изделий производителем – ситуация очень неприятная, несущая серьезные прямые коммерческие и репутационные потери для производителя изделий.
Этапы разработки ПО
Любой процесс, в том числе и разработка ПО состоит из какого-то количества определенных этапов. Процесс разработки ПО отличается тем, что обычно к работам над следующим этапом приступают, когда уровень готовности предыдущего достигает около 80–90%. В наибольшей степени данное обстоятельство относится к разработке требований, поскольку именно в них какой-то уровень неопределенности иногда сохраняется практически до завершения проекта. Этот момент является серьезным фактором риска, и должен непрерывно контролироваться.
Далее перечислим основные этапы разработки инвестиционного ПО. Практика показывает, что данный процесс обладает наиболее сложной структурой, поскольку здесь довольно часто ведутся параллельные работы над несколькими версиями программного продукта.
- Подготовка. Определение общей концепции системы, востребованности, реализуемости и т.д.
- Разработка конкретных требований к программному продукту.
- Разработка архитектуры. Целью данного этапа является создание физической и логической архитектуры верхнего уровня, способной выполнить все требования к разрабатываемому программному продукту. На данном этапе возможна коррекция концепции, первоначального технического решения и требований. По его завершении, возможно начало параллельных работ над созданием следующей версии данного программного продукта.
- Этап поставки. Может включать несколько промежуточных этапов, в зависимости от масштабности проекта. На данной стадии проект приобретает форму относительно готового программного продукта.
- Опытная эксплуатация. Продолжительность данного этапа также зависит от масштабности проекта. На этом этапе выявляются и устраняются недочеты, баги, уязвимости и т.д. Проверяется качество работы ПО в различных условиях эксплуатации, совместимость с другими программными продуктами и т.д. Данный этап можно также назвать этапом основной отладки и оптимизации программного продукта.
- Этап коммерческой реализации, промышленной эксплуатации и т.д. Сопровождение и техническая поддержка.
- Вывод из эксплуатации. Прекращение технической поддержки и выпуска обновлений.
- Завершение работ.
Отметим, что в инвестиционных ПО работы продолжаются до вывода из эксплуатации всех версий данного программного продукта. Относительно Заказного ПО следует отметить, что здесь большое значение имеют взаимоотношения заказчика с исполнителем, особенно на стадии формулирования требований.
Что касается Встроенного ПО, то громадное значение приобретает этап отладки, поскольку осуществление техподдержки, выпуск и поставка обновлений обычно бывают крайне затруднены, если вообще возможны.