Справочник от Автор24
Нужна помощь?
Найдем эксперта за 5 минут
Подобрать эксперта
+2

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

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

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

Введение

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

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

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

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

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

«Введение в программную инженерию» 👇
Помощь автора по теме работы
Найти автора
Решение задач от ИИ за 2 минуты
Решить задачу
Более 10 нейросетей для написания рефератов и решения задач
Найти нейросеть

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

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

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

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

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

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

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

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

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

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

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

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

Дата написания статьи: 28.04.2021
Не знаешь, как приступить к заданию?
За 5 минут найдем эксперта и проконсультируем по заданию. Переходи в бота и получи скидку 500 ₽ на первый заказ.
Запустить бота
Нужна помощь с заданием?

Эксперт возьмёт заказ за 5 мин, 400 000 проверенных авторов помогут сдать работу в срок. Гарантия 20 дней, поможем начать и проконсультируем в Telegram-боте Автор24.

Перейти в Telegram Bot