Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Введение в программную инженерию

Определение 1

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

Введение

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

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

С того времени программная инженерия непрерывно развивалась. Этапы развития программной инженерии разные специалисты выделяют по-разному. Однако все этапы связаны с возникновением, а иногда и с осознанием, новой проблемы и определении методик и способов её разрешения.

Общие сведения о программной инженерии

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

«Введение в программную инженерию» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

Самыми простыми с этой точки зрения явились модули разрешения математических задач, а именно:

  • Задачи решения уравнений.
  • Задачи решения системы уравнений.
  • Оптимизационные задачи.
Замечание 1

На текущий момент сформированы и с успехом применяются целые библиотечные наборы подобных модулей.

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

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

  1. Разработка систем управления космическими объектами.
  2. Разработка систем управления оборонными объектами.
  3. Разработка систем автоматизации больших финансовых организаций и так далее.

Сложность этих программных комплексов может быть оценена следующими аспектами:

  1. Значительные размеры программного кода, исчисляемые миллионами строк.
  2. Огромное число связей среди компонентов программного кода.
  3. Значительное число программистов, исчисляемое сотнями специалистов.
  4. Значительное число пользователей программного комплекса, исчисляемое тысячами человек.
  5. Длительный период применения программного комплекса.

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

  1. Проектный этап.
  2. Этап реализации.
  3. Этап тестирования.
  4. Этап пуска в эксплуатацию.
  5. Этап сопровождения.

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

Дата написания статьи: 28.04.2021
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot