УДК 004.41
СТАНДАРТЫ ПРОГРАММНОЙ ДОКУМЕНТАЦИИ НА ИНФОРМАЦИОННЫЕ СИСТЕМЫ
К.А. Валеев, В.Н. Квасницкий
THE SOFTWARE STANDARDS DOCUMENTATION IN INFORMATION SYSTEMS
К.А. Valeev, V.N. Kvasnitsky
Аннотация. В статье проводится обзор существующих стандартов в области разработки и ведения документации программных средств и информационных систем. Особое внимание уделяется рассмотрению отечественных стандартов в данной области.
Ключевые слова: программная документация, стандарты, ГОСТ-19, ГОСТ-34, IEEE.
Abstract. The article focuses on review of existing standards in the field of software and information system documentation development and management. Special attention is given to Russian standards in the field.
Keywords: software documentation, standards, GOST-19, GOST-34, IEEE.
Программная документация - документация, содержащая данные, необходимые для разработки, производства, эксплуатации и сопровождения - необходимая и неотъемлемая составляющая программного средства или информационной системы на всем протяжении их жизненного цикла [5].
Разработка программного обеспечения и информационных систем - крайне быстроменяющаяся отрасль. За последнее время были разработаны и внедрены множество различных методологий разработки программного обеспечения (далее: ПО), разительно отличающихся друг от друга.
Как следствие, специалистами в области разработки программного обеспечения и информационных систем создано множество методик и рекомендаций о том, как использовать такие методологии, и, в частности, как разрабатывать и вести программную документацию.
Однако весь этот объем знаний, рекомендаций и успешных практик практически никак не отражен в текущих государственных стандартах, регламентирующих программную документацию - стан-
cjb
МОСКОВСКИЙ ФИНАНСОВО-ЮРИДИЧЕСКИЙ УНИВЕРСИТЕТ МФЮА
дартах ГОСТ 19-й и 34-ой серий, выпущенных, как и большинство остальных отечественных стандартов в области разработки программных средств и систем, более двух десятилетий назад.
Как следствие, частные компании, занимающиеся разработкой программного обеспечения, практически не используют устаревшие отечественные стандарты, отдавая предпочтения актуальным методикам, собранным, например, в документах SWEBoK (Software Engineering Body of Knowledge) и PMBoK (Project Management Body of Knowledge), а также международным стандартам, таким, как стандарты ISO, IEC и IEEE, или же ведут разработку, совсем не опираясь ни на какие стандарты: по данным Института программной инженерии (Software Engineering Institute, SEI) в последние годы до 80 % всего эксплуатируемого ПО разрабатывалось без использования какой-либо методики проектирования, методом «code and fix» - кодирования и исправления ошибок [3].
Однако стандарты ГОСТ являются практически обязательными к использованию в государственных организациях и при работе с государственными заказчиками - в соответствии с законом РФ «О стандартизации» эти стандарты становятся обязательными на контрактной основе, то есть при ссылке на них в договоре на разработку или поставку программных средств.
За рубежом методики, рекомендации и практики по разработке ПО, в том числе и программной документации, зачастую агрегируются и выпускаются в виде стандартов или в виде различных руководящих документов (например, «манифестов» методологий [4]).
Большинство основных международных стандартов и методик собраны в периодически обновляющемся обзорном документе Software Engineering Body of Knowledge (SWEBOK), который сам является отдельным стандартом ISO/IEC TR 19759:2005.
Основные стандарты, покрывающие большую часть различных программных документов - от документации требований до пользовательской документации и графических нотаций, указаны ниже.
Сбор и документирование требований к программному обеспечению и системам:
- IEEE Guide to Software Requirements Specifications, IEEE Standard 830-1984;
- IEEE Recommended Practice for Software Requirements Specifications, IEEE Standard 830-1998;
<j!b
МФЮА МОСКОВСКИЙ ФИНАНСОВО-ЮРИДИЧЕСКИЙ УНИВЕРСИТЕТ
- IEEE Guide for Developing System Requirements Specifications, IEEE Standard 1233:1998.
Технические описания:
- Software Design Descriptions, IEEE Standard 1016-2009;
- IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, IEEE Standard 1471-2000
Пользовательская документация:
- Standard for Software User Documentation, IEEE Standard 1063;
- Software user documentation process, IEEE Standard 15910:1999;
- Requirements for managers of user documentation, ISO/IEC/IEEE Standard 26511;
- Systems and software engineering-Requirements for acquirers and suppliers of user documentation, ISO/IEC/IEEE Standard 26512;
- Requirements for testers and reviewers of user documentation, ISO/ IEC/IEEE Standard 26513;
- Requirements for designers and developers of user documentation, ISO/IEC/IEEE Standard 26514;
- Requirements for acquirers and suppliers of user documentation, ISO/ IEC/IEEE Standard 26512:2011;
- Developing user documentation in an agile environment, Standard ISO/IEC/IEEE 26515:2011.
Документация тестирования - IEEE Standard for Software Test Documentation, IEEE Standard 829-1998.
Ведение документации - Guidelines for the management of software documentation, ISO/IEC TR 9294:2005.
Основные графические нотации:
- Unified Modeling Language, ISO Standard 19501:2005;
- Syntax and Semantics for IDEF0, IEEE Standard 1320.1.
Кроме этого, множество крупных компаний разработали и используют внутренние стандарты по ведению и оформлению программной документации, например:
- Microsoft Manual of Style;
- Apple Style Guide;
- NASA Software Documentation Standard.
<4Ь
МОСКОВСКИЙ ФИНАНСОВО-ЮРИДИЧЕСКИЙ УНИВЕРСИТЕТ МФЮА
Здесь стоит отметить, что некоторые гибкие методологии разработки ПО не оговаривают каких-либо требований к программной документации и, более того, постулируют ее необязательность [4]. Однако и в этом случае существует множество подходов к рациональному ведению программной документации с учетом специфических особенностей такого рода методологий.
В рамках данной статьи следует отдельно рассмотреть состояние российских стандартов программный документации и их влияние на отечественную 1Т-индустрию.
Комплекс стандартов Единой системы программной документации (ЕСПД, ГОСТы 19-й серии) - это основа российской нормативной базы в области документирования программного обеспечения. Подавляющее большинство стандартов серии ЕСПД было разработано в 70-х и 80-х гг. прошлого века. Стандарты этой серии устанавливают два вида программного обеспечения: компонент и комплекс.
ГОСТ 34 разрабатывался в конце 1980-х гг. как всеобъемлющий комплекс взаимоувязанных межотраслевых документов. Объектами стандартизации являются автоматизированные системы (АС) различных видов и все виды их компонентов, в том числе входящие в их состав программное обеспечение и базы данных.
В 1980-х гг. сложилось ситуация, при которой в различных отраслях и областях деятельности использовалась плохо согласованная или несогласованная «нормативно-техническая документация». Это затрудняло интеграцию систем, обеспечение их эффективного совместного функционирования. Действовали различные комплексы и системы стандартов, устанавливающие требования к различным видам АС. Для преодоления этих сложностей и была начата работа над комплексом стандартов для создания АС [2].
Разработка стандартов ГОСТ 19-й и 34-й серий была прервана после распада ССС. С тех пор эти стандарты не получили развития и не актуализируются. Далее мы кратко рассмотрим основные недостатки этих стандартов программной документации.
Предметная область, покрываемая стандартами, значительно изменилась, что, однако, не нашло отражения в их содержании. Появились новые программные и аппаратные средства, решения и технологии: облачные и распределенные вычисления, различные
серверные и веб-системы, мобильные решения и т.д. Тем не менее, стандарты ГОСТ 19-й серии (в частности, ГОСТ 19.201-78) предусматривают только двухуровневые приложения, состоящие из клиентской программы и СУБД. Характерным примером также является тот факт, что стандарты ГОСТ 19-й серии предусматривают наличие только одного окна пользовательского интерфейса.
Одно из следствий устарелости стандартов - их терминология, различающаяся с общепринятой в современном инженерном сообществе. Так, например, в стандарте ГОСТ 34.602-89 пользователь - это «организация-заказчик (пользователь), для которой создаются АС и которая обеспечивает финансирование, приемку работ и эксплуатацию АС, а также выполнение отдельных работ по созданию АС». В современной терминологии такие требования относятся не к пользовательским, а к бизнес-требованиям.
Стандарты, относящиеся к документированию требования к ПО и ИС, не учитывают современных методик по сбору требований: визуальное моделирование, структурный анализ, CASE-технологии, объектно-ориентированный анализ и проектирование, UML и т.д.
Отсутствуют рекомендации по составу, содержанию и оформлению перспективных документов на программные средства, согласованных с рекомендациями международных и региональных стандартов.
Стандарты не учитывают современные подходы к разработке программного обеспечения, не интегрируются с современными методологиями к разработке ПО, не имеют четких рекомендаций по документированию характеристик качества программного обеспечения, поддерживают исключительно процедурный подход к работе ПО: разрабатываемая программа должна быть ориентирована на решение узкоспециализированной «задачи обработки информации» и работать в соответствии с четким алгоритмом или алгоритмами.
Стандарты ГОСТ серии 19 фактически ориентируются на единственную модель жизненного цикла программного обеспечения -каскадную (Waterfall model). Здесь следует отметить, что стандарт ГОСТ 34.601-90 содержит существенную оговорку: «Стадии и этапы, выполняемые организациями участниками работ по созданию АС, устанавливаются в договорах и техническом задании на основе
cjb
МОСКОВСКИЙ ФИНАНСОВО-ЮРИДИЧЕСКИЙ УНИВЕРСИТЕТ МФЮА
настоящего стандарта. В зависимости от специфики создаваемых АС и условий их создания допускается выполнять отдельные этапы работ до завершения предшествующих стадий, параллельное во времени выполнение этапов работ, включение новых этапов работ». Таким образом, появляется возможность применять методологии и подходы, отличные от каскадной модели - однако утрачивается смысл использования самого стандарта, он теряет свое рекомендательное и руководствующее предназначение, а единственная его ценность в этом случае - в формальной возможности его придерживаться, при этом фактически не используя.
Кроме стандартов программной документации 34-й и 19-й серии в рамках ГОСТ существуют также и некоторые международные стандарты, переведенные на русский язык (например, стандарт IEEE 15910:1999), однако они включены выборочно, не выстраиваются в стройную систему, не адаптированы к использованию с остальными стандартами.
Наличие современных и продуманных стандартов помогает любой инженерной деятельности. В контексте документирования программных средств такие стандарты способны значительно помочь работе аналитиков, менеджеров проектов, разработчиков, технических писателей и других специалистов IT-индустрии, что, как следствие, приводит к созданию более качественного ПО в меньшие сроки, упрощает затраты на его поддержку и обновление.
Нынешние отечественные стандарты в области программной документации, в частности, в одной из важнейшей ее составляющей - области сбора требований, значительно устарели и нуждаются в обновлении и актуализации, особенно учитывая тот факт, что они являются обязательными при работе с государственными заказчиками. Примечательно, что в последнее время между отраслью и государством наметился диалог в этом направлении [1].
Библиографический список
1. Аналитический центр при Правительстве Российской Федерации. Новый методический документ должен скорректировать существующие ГОСТы. URL: http://ac.gov.ru/events/06866.html (дата обращения: 12.12.2015).
2. Васютович В.В. С.С.С. Стандартизация в области документирования программных средств // Computerworld. 1999. № 25.
3. Вендров А. Современные технологии создания программного обеспечения. обзор // Jet Info Online. 2014. № 4.
4. Fowler M., Highsmith J. The Agile Manifesto // Software Development. 2001. Vol. 9. August. P. 28-35.
5. Guide to the Software Engineering Body of Knowledge - SWEBOK / ed. A. Abran et al. Piscataway, NJ, USA: IEEE Press, 2004.
К.А. Валеев
аспирант Научно-исследовательского центра информатики при Министерстве иностранных дел Российской Федерации, г. Москва
E-mail: kvaleev@gmail.com В.Н. Квасницкий
доктор технических наук, профессор начальник отдела Научно-исследовательского центра информатики при Министерстве иностранных дел Российской Федерации, г. Москва