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

Методы программной инженерии

В период появления термина «программная инженерия», когда ресурсы по разработке программного обеспечения стали приближаться к стоимости самих вычислительных средств (компьютеров), что ознаменовалось так называемым «кризисом программирования» - возникла идея удешевления создания программ использованием различных инженерных методов при их создании. Инновационная на тот период идея со временем и стала называться во всем мире программной инженерией и в 21 веке продолжает неуклонно развиваться, обрастая постепенно различными методами ускорения разработки и внедрения программных продуктов.

Модульное программирование

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

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

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

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

Структурное программирование

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

  • объему кода (более миллиона строк);
  • количествам связей между элементами программы;
  • коллективу программистов (несколько отделов с узкой специализацией) и пользователей,
  • длительности использования во времени.

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

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

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

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

Каскадный и гибкие методы

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

Замечание 1

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

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

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

Каскадный метод. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Каскадный метод. Автор24 — интернет-биржа студенческих работ

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

Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 15.04.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

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

Перейти в Telegram Bot