В настоящее время во все сферы деятельности человека широко внедряются информационные технологии. Это приводит к разработке огромного количества программных средств (ПС) различного функционального назначения. При этом объем и сложность используемых ПС постоянно возрастают.
В этой связи многие подходы к разработке ПС, применяемые на начальных этапах развития вычислительной техники, теряют свои позиции, поскольку не позволяют в полной мере получить ПС необходимого уровня качества за заданный промежуток времени при ограниченных финансовых, людских и технических ресурсах. Связано это с рядом причин.
Во-первых, интуитивный поход к разработке ПС, основанный на знаниях, умениях и талантах отдельных программистов-одиночек, не позволяет разрабатывать сложные ПС и противоречит принципам их коллективной разработки.
Во-вторых, использование коллективных методов разработки требует структурированного подхода к понятиям жизненного цикла (ЖЦ) и модели жизненного цикла программных средств (ЖЦ ПС). В противном случае возникают существенные риски не довести проект до конца или не получить продукт с заданными свойствами.
В-третьих, используемые методологии разработки ПС с ростом сложности и критичности последних перестают удовлетворять целям и задачам, стоящим перед их разработчиками.
В-четвертых, рост сложности и объема разрабатываемых ПС автоматически приводит к появлению достаточно сложных в применении методологий анализа, проектирования и последующих этапов разработки. Использование таких методологий становится невозможным без применения инструментальных средств их поддержки.
Вышеназванные причины зачастую приводят к неудовлетворительным результатам выполнения проектов.
Известно, что 30 – 40 % проектов по разработке ПС не доходят до завершения. Около 70 % всех проектов реализуют поставленные задачи не полностью. Средний проект завершается с опозданием на 220 %.
В 10 % проектов результат не соответствует требованиям. В 12 % заказчик недостаточно привлекался к работе, чтобы обеспечить требуемые характеристики продукта. В 22 % проектов не все вносимые изменения принимались во внимание.
Поэтому в последние десятилетия во всем мире ведущими специалистами в области теории и практики программного обеспечения (ПО) активно выполняются работы по усовершенствованию подходов к разработке ПС. Эти работы ведутся в различных направлениях. Основными из них являются следующие.
- Стандартизация жизненного цикла программных средств. В настоящее время разрабатывается и постоянно обновляется большое количество международных и национальных стандартов, посвященных различным аспектам ЖЦ ПС. В 2008 г. Международной организацией по стандартизации ИСО принята вторая редакция основного в данном направлении международного стандарта ISO/IEC 12207:2008 – Системная и программная инженерия – Процессы жизненного цикла программных средств.
- Структуризация моделей жизненного цикла программных средств. С 80-хг. XX в. ведутся работы по усовершенствованию стратегий разработки ПС и созданию моделей ЖЦ, реализующих данные стратегии. В настоящее время широко используются три базовые стратегии разработки ПС: каскадная, инкрементная, эволюционная. Разработано большое количество моделей ЖЦ, реализующих данные стратегии.
- Разработка методов выбора моделей жизненного цикла. К настоящему моменту разработан ряд методик и процедур выбора моделей ЖЦ, исходя из условий и характеристик конкретного проекта.
- Создание методологий анализа и проектирования программных средств. В настоящее время создано большое количество методологий, направленных в первую очередь на начальные этапы процесса разработки ПС – анализ предметной области, разработку требований к системе и ПС, проектирование системы и ПС.
- Разработка инструментальных средств поддержки современных методологий разработки программных средств и систем. С 80-х г. ХХ в. бурно развиваются CASE-средства, предназначенные для автоматизации процессов ЖЦ ПС и систем. К настоящему времени многими компаниями разработаны линейки CASE-средств, поддерживающие практически весь ЖЦ ПС и систем.
- Управление качеством разрабатываемых программных средств. Основу управления качеством составляет оценка качества ПС. В настоящее время ведутся активные работы в области стандартизации оценки качества ПС и их сертификации. Основными международными стандартами, регламентирующими вопросы качества ПС и их оценки, являются следующие серии стандартов: ISO/IEC 9126–1–4:2001–2004– Программная инженерия – Качество продукта; ISO/IEC 14598–1–6:1998–2001– Информационная (программная) инженерия – Оценка программного продукта.
В настоящее время разрабатывается серия стандартов ISO/IEC 250ХХ – Разработка программного обеспечения – Требования к качеству и оценка программного продукта (SQuaRE). Стандарты данной серии призваны заменить две вышеназванные серии стандартов.