Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmnaya_inzheneria_Lektsii.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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

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

осознания программистами требований и ожиданий заказчика; второе означает предварительный макет, эскиз, план системы на бумаге). Трудозатраты на анализ и проектирование, а также форма представления их результатов сильно варьируются от видов проектов и предпочтений разработчиков и заказчиков.

Разработку системы необходимо выполнять с учетом удобств ее дальнейшего

сопровождения, повторного использования и интеграции с другими системами. Это

значит, что система разбивается на компоненты, удобные в разработке, годные для

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

Все эти и другие дополнительные виды деятельности, выполняемые в процессе

промышленного программирования и необходимые для успешного выполнения заказов и

будем называть программной инженерией (software engineering)1. Получается, что так мы обозначаем, во-первых, некоторую практическую деятельность, а во-вторых, специальную область знания. Или другими словами, научную дисциплину. Ведь для облегчения выполнения каждого отдельного проекта, для возможности использовать разнообразный положительный опыт, достигнутый другими командами и разработчиками, этот самый опыт подвергается осмыслению, обобщению и надлежащему оформлению. Так появляются различные методы и практики (best practices) –тестирования, проектирования, работы над требованиями и пр., архитектурных шаблонов и пр. А также стандарты и методологии, касающиеся всего процесса в целом (например, MSF, RUP, CMMI, Scrum). Вот эти-то обобщения и входят в программную инженерию как в область знания.

Программная инженерия использует достижения информатики, тесно связана с системотехникой, часто предваряется бизнес-реинжинирингом. Немного подробнее об этом контексте программной инженерии.

Информатика (computer science) – это свод теоретических наук, основанных на

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

Системотехника (system engineering) объединяет различные инженерные

дисциплины по разработке всевозможных искусственных систем – энергоустановок,

телекоммуникационных систем, встроенных систем реального времени и т.д. Очень часто

ПО оказывается частью таких систем, выполняя задачу управления соответствующего

оборудования. Такие системы называются программно-аппаратными, и участвуя в их

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

Бизнес-реинжиниринг (business reengineering) – в широком смысле обозначает модернизацию бизнеса в определенной компании, внедрение новых практик,

поддерживаемых соответствующими, новыми информационными системами. При этом

акцент может быть как на внутреннем переустройстве компании так и на разработке

нового клиентского сервиса (как правило, эти вопросы взаимосвязаны). Бизнес-

реинжиниринг часто предваряет разработку и внедрение информационных систем на

предприятии, так как требуется сначала навести определенный порядок в

делопроизводстве, а лишь потом закрепить его информационной системой.

Связь программной инженерии (как области практической деятельности) с

информатикой, системотехникой и бизнес-реинжинирингом показана на рис. 1.1

5

Рис. 1. Связь с другими науками.

Разработка информационных систем

Вопросы разработки и использования ПО часто рассматриваются в контексте разработки информационных систем. Понятие информационной системы в достаточно широком смысле трактует Федеральный закон РФ от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации»: «информационная система — совокупность содержащейся в базах данных информации и обеспечивающих её обработку информационных технологий и технических средств».

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

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

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

Стандарт ISO/IEC 2382-1 дает следующее определение: «Информационная система — система обработки информации, работающая совместно с организационными ресурсами, такими как люди, технические средства и финансовые ресурсы, которые обеспечивают и распределяют информацию»[5].

Российский ГОСТ РВ 51987 определяет информационную систему как «автоматизированную систему, результатом функционирования которой является представление выходной информации для последующего использования».

В узком смысле информационной системой называют только подмножество компонентов ИС в широком смысле, включающее базы данных, СУБД и специализированные прикладные программы. ИС в узком смысле рассматривают как программно-аппаратную систему, предназначенную для автоматизации целенаправленной деятельности конечных пользователей, обеспечивающую, в соответствии с заложенной в неё логикой обработки, возможность получения, модификации и хранения информации[6].

Российская практика разработки ПО, подготовка специалистов и отечественные ГОСТы в основном разрабатывались применительно к АИС.