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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание 1

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

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

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

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

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

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

Дата написания статьи: 15.04.2019
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

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

Перейти в Telegram Bot