Программная инженерия

Программная инженерия

Комплекс учебников и монографий

ВВЕДЕНИЕ

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

Массовое создание сложных программных средств промышленными методами и большими коллективами специалистов вызвало необходимость их четкой организации, планирования работ по требуемым ресурсам, этапам и срокам реализации. Для решения этих задач в программной инженерии формируется новая область знания и научная дисциплина − экономика жизненного цикла программных средств, как часть экономики промышленности и вычислительной техники в общей экономике государств и предприятий. Объективно положение осложнено трудностью измерения экономических характеристик таких объектов. Широкий спектр количественных и качественных показателей, которые с различных сторон характеризуют содержание этих объектов, и невысокая достоверность оценки их значений, определяют значительную дисперсию при попытках описать и измерить экономические свойства создаваемых или используемых крупных комплексов программ. Вследствие роста сфер применения и ответственности функций, выполняемых программами, резко возросла необходимость гарантирования высокого качества программных продуктов, регламентирования и корректного формирования требований к характеристикам реальных комплексов программ и их достоверного определения. В результате специалисты в области теории и методов, определяющих качество продукции, вынуждены осваивать область развития и применения нового, специфического продукта – программных средств и систем в целом, и их качество при использовании. Сложность анализируемых объектов – комплексов программ и психологическая самоуверенность ряда программистов в собственной «непогрешимости», часто приводят к тому, что реальные характеристики качества функционирования программных продуктов остаются неизвестными не только для заказчиков и пользователей, но также для самих разработчиков. Отсутствие четкого декларирования в документах понятий и требуемых значений характеристик качества программных комплексов вызывает конфликты между заказчиками-пользователями и разработчиками-поставщиками из-за разной трактовки одних и тех же характеристик.

Методы программной инженерии поддерживают и конкретизируют технологический процесс, а также отслеживание значений качества компонентов на этапах жизненного цикла производства. Для каждого проекта, выполняющего ответственные функции, должны разрабатываться и применяться система качества, специальные планы и Программа, методология и инструментальные средства разработки и испытаний, обеспечивающие требуемые качество, надежность и безопасность функционирования программных продуктов. Эти методы и процессы позволяют разработчикам и заказчикам программных продуктов более корректно взаимодействовать при определении и реализации требований контрактов и технических заданий. Основные концепции программной инженерии сконцентрировались и формализовались в целостном комплексе систематизированных международных стандартов, охватывающих и регламентирующих практически все процессы жизненного цикла сложных программных средств. Несколько десятков стандартов этого комплекса допускают целеустремленный отбор необходимых процессов, в зависимости от характеристик и особенностей конкретного проекта, а также формирование на их базе проблемно-ориентированных профилей стандартов для определенных типов проектов и/или предприятий. Практическое применение профилей стандартов, сосредоточивших мировой опыт создания различных типов крупных комплексов программ, способствует значительному повышению производительности труда специалистов и качества создаваемых программных продуктов. Эти стандарты определяют модификацию, мобильность и возможность повторного применения программных компонентов и комплексов, их расширяемость и переносимость на различные аппаратные и операционные платформы, что непосредственно отражается на росте экономической эффективности технологий и процессов создания различных программных средств и систем. Для регламентирования процессов жизненного цикла такие профили стандартов должны адаптироваться и конкретизироваться применительно к определенным классам и функциям проектов, процессов и компонентов программных средств. При этом должна сохраняться концептуальная целостность применяемой совокупности стандартов и их эффективное, положительное влияние на процессы и результаты, на качество, надежность и безопасность программных продуктов при реальных ограничениях на использование доступных ресурсов проектов.

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

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

В комплекс книг входят

Очерки истории отечественной программной инженерии 1940-е - 80-е годы.

Монография начинается с истории появления в нашей стране электронных вычислительных машин (ЭВМ) и программирования в 1940-е - 60-е годы. Далее изложена история проектирования и производства отечественных ЭВМ, а также средств и систем автоматизации технологических процессов производства программных продуктов в 1960-е - 80-е годы. Подробно представлена история формирования основных компонентов программной инженерии в 1960-е - 70-е годы. Внимание акцентируется на особенностях решения сложных задач по государственным заказам и на создании программных продуктов для мобильных и бортовых ЭВМ реального времени.
Подробнее

Надежность и функциональная безопасность комплексов программ реального времени.

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

Проектирование и производство сложных заказных программных продуктов.

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

Экономика производства программных продуктов.

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

Человеческие факторы в программной инженерии: рекомендации и требования к профессиональной квалификацииспециалистов.

Учебник целесообразно использовать при обучении студентов старших курсов, аспирантов и менеджеров проектов для повышения квалификации по созданию сложных комплексов программ на всем их жизненном цикле с учетом человеческих факторов. Курс лекций (30 часов)ориентирован также на заказчиков, менеджеров крупных проектов, аналитиков и ведущих специалистов, обеспечивающих все этапы жизненного цикла сложных программных систем, к которым предъявляются высокие требования к качеству и безопасности функционирования и ограничены доступные ресурсы и сроки разработки.
Подробнее
Скачать книгу в формате pdf (4.56 Мб)

Тестирование компонентов и комплексов программ

Учебник состоит из двух частей. Учебник ориентирован на специалистов, студентов и аспирантов для обучения тестированию модулей и программных компонентов, а также крупных программных комплексов высокого качества.
Подробнее
Скачать книгу в формате pdf (5.49 Мб)

Сопровождение и управление конфигурацией сложных программных средств.

Рассматриваются особенности управления проектами, методы и процессы сопровождения программных средств (ПС). Изложены характеристики дефектов, ошибок и модификаций в сложных ПС. Представлены этапы и процедуры при сопровождении, а также ресурсы, необходимые для обеспечения изменений ПС и их характеристики качества. Значительное внимание уделено задачам и особенностям переноса программ и данных в информационных системах, а также факторам, влияющим на эффективность переноса на иные платформы, верификации и тестированию модификаций при сопровождении ПС. Представлены методы и процессы, этапы и процедуры при управлении конфигурацией программных средств.
Подробнее
Скачать книгу в формате pdf (5.49 Мб)

Документирование сложных программных средств.

Рассматривается организация документирования сложных программных средств (ПС), а также формирование требований к документам проектов комплексов программ. Изложены особенности планирования документооборота проектов сложных ПС и организация работы специалистов при их документировании. Представлена структура и содержание шаблонов свыше шестидесяти документов охватывающих документирование: предварительных требований, спецификаций и ресурсов для разработки ПС; процессов проектирования и характеристик качества, а также разработки и программирования компонентов. Значительное внимание уделено документированию верификации и тестирования компонентов, квалифицированного тестирования, испытаний и оценивания качества ПС.
Подробнее
Скачать книгу в формате pdf (0.99 Мб)

Сертификация программных средств

Учебник состоит из трех частей: методические основы обеспечения качества и сертификации сложных программных средств (лекции 1-2); сертификация процессов производства программных средств (лекции 3-6) и сертификация готовых программных продуктов (лекции 7-11). Учебник ориентирован на студентов старших курсов и аспирантов по Программной инженерии, а также на заказчиков, менеджеров, аналитиков и ведущих специалистов, обеспечивающих все этапы жизненного цикла сложных ПС, к которым предъявляются высокие требования к качеству и безопасности функционирования, ограничены доступные ресурсы и сроки разработки.
Подробнее
Скачать книгу в формате pdf (6.09 Мб)

Экономика производства сложных программных продуктов.

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

Функциональная безопасность программных средств.

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

Методы обеспечения качества крупномасштабных программных средств.

Монография состоит из двух частей. В первой части рассмотрены основные понятия, факторы и методы представления качества в жизненном цикле (ЖЦ) крупномасштабных программных средств (ПС). Описаны основы базовых стандартов административного управления качеством продукции, процессов жизненного цикла и характеристик качества ПС. Выделены основные факторы, определяющие свойства и атрибуты качества функциональных возможностей, защиты, конструктивных характеристик и качества баз данных. Исследована зависимость качества программ от ряда внешних и внутренних факторов, а также от ограниченности ресурсов при создании и применении ПС по прямому назначению. Представлены методы оценки затрат ресурсов на обеспечение функциональной пригодности, на конструктивные характеристики качества для обеспечения ЖЦ ПС.
Подробнее

Анализ и сокращение рисков проектов сложных программных средств.

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

Отечественная программная инженерия: фрагменты истории и проблемы.

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

Двенадцать ключевых точек линии жизни

Из предисловия: "В моей биографии выделены двенадцать наиболее важных ключевых точек линии жизни, которые, как мне представляется, определили относительно прямые участки продолжительностью в несколько лет. Среди них можно отметить три – четыре точки, в которых происходил особенно крутой поворот в моей судьбе, кардинально изменявший профессию, деятельность и даже отразившийся на моем характере. Эти критические точки отражались негативно или положительно на длительные участки жизни. Поэтому события после ключевых точек описаны с разной подробностью, с учетом их влияния и конкретного отражения на моей судьбе."
Подробнее
Скачать книгу в формате pdf (511 Кб)

Об авторе: доктор технических наук, профессор, главный научный сотрудник Института системного программирования РАН
Публикуются в музее c 8 августа 2012 г., с разрешения автора