Маглинец Ю.А. Анализ требований к автоматизированным информационным системам: Учебное пособие, М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2008. — 200 с.: ил., табл. — (Серия «Основы информационных технологий»). Автор пособия, Ю.А. Маглинец, профессор Сибирского федерального университета в Красноярске, заведующий кафедрой систем искусственного интеллекта, сделал кцент на рассмотрении «программно-аппаратных систем, предназначенных для автоматизации целенаправленной деятельности конечных пользователей и обеспечивающих в соответствии с заложенной в нее логикой обработки возможность получения, модификации и хранения информации».

Основной материал книги составили лекции, посвященные рассмотрению условий или возможностей, которым должна соответствовать система. Автор предлагает понимать под требованиями исходные данные, на основании которых проектируются и создаются информационные системы. Далее он подразделяет требования на те, которые формулирует заказчик системы (требования к продукту), и те, что не входят в его компетенцию (требования к проекту), задает три уровня требований: бизнес-требования, требования пользователей и функциональные. В пособии особо выделяются системные требования и требования к программному обеспечению. Первые, по существу, определяют модель исходной системы как продукт, в основе которого лежит программная, программно-аппаратная или человеко-машинная модели. Наиболее общее толкование понятия системы предлагается INCOSE (International Council on Systems Engineering), а также в стандарте ГОСТ Р ИСО/МЭК 12207/99, и включает основные системные компоненты автоматизации информационных систем. При этом в пособии автор опирается на требования к программному обеспечению, полагая по умолчанию достаточность этого для успешных проектов информационных систем.

Классификация требований завершается обсуждением функциональных и нефункциональных требований к продукту, регламентирующих поведение исходной системы и определяющих внутренние или внешние условия или атрибуты ее функционирования (внешние интерфейсы, атрибуты качества и ограничения).

Отдельная лекция пособия содержит материал о свойствах требований, к которым автор относит именно те, что интересны при разработке программных систем: полнота, ясность, корректность, согласованность, верифицируемость, необходимость, полезность при эксплуатации, осуществимость, модифицируемость, трассируемость, упорядоченность по важности и стабильности, наличие метрик для оценки выполнимости требований.

Разумеется, в книге обсуждаются вопросы анализа требований, контекста задачи анализа и, конечно выявления требований, позволяющие сформировать итоговое видение проектного результата (информационной системы как продукта).

Классификация и спецификация требований, как полагает автор пособия, поможет разработчику в проведении расширенного анализа требований, а также, возможно, окажется полезной при моделировании, создании иллюстрированных сценариев и прототипа продукта.

В завершающей части пособия автор описывает, как быть с документированием и проверкой требований, как вносить в них необходимые изменения, управлять требованиями, а также совершенствовать процессы работы с ними. И наконец, как учитывать требования при управлении процессом разработки.

В заключительной лекции автор рассматривает современные тенденции развития автоматизированных информационных систем и технологий их создания, в частности обсуждает критерии выбора покупного или заказного программного обеспечения, стратегии и процесс выбора решения для АИС.

Полезными в пособии являются списки литературы, приводимые после каждой лекции, и обязательные материалы по выполнению лабораторных работ для соискателей зачета о прохождении курса в ИНТУИТ.

Стоит заметить, что разрыв системных и программных требований, к сожалению, приводит к получению моделей информационных систем, весьма далеких от реальных, исходных систем. В частности, используемая при этом модель жизненного цикла программ, даже при скрупулезном следовании всем рекомендациям анализа требований, не позволяет предложить приемлемых реализаций для исходных систем, прежде всего потому, что не охватывает всех состояний этой модели. При попытках спроектировать системы с эффективным управлением при чисто программном подходе это приводит к необходимости решать обратные задачи, которые некорректны.