Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пи_ответы.docx
Скачиваний:
8
Добавлен:
22.01.2023
Размер:
425.73 Кб
Скачать

1. Кризис программного обеспечения (по). Проблемы и цели программной инженерии. Определение инженерии по.

С.Н. Карпенко — Введение в программную инженерию

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

В конце 60-х – начале 70-х годов 20 века произошёл первый кризис программного обеспечения. Он выражался в быстром росте стоимости разработки ПО, которая приближалась к стоимости аппаратуры («железа»). Динамика этого роста предполагала, что программистов будет требоваться всё больше. Тогда и возникло понятие программной инженерии (или технологии промышленного программирования, как это называлось в России). Развитие этой дисциплины было направлено на сокращение стоимости программ и их сроков разработки. Это была главная цель.

В преддверии первого кризиса и в его процессе состоялось несколько встреч руководителей программных проектов (конференция подкомитета НАТО по науке и техники в 1968 г., Лондонская встреча разработчиков) на которых были выдвинуты основополагающие тезисы Software Engineering’а. Были рассмотрены существующие проблемы проектирования, разработки, распространения и поддержки программ, впервые введена концепция SLC – Software Lifetime Cycle или жизненного цикла ПО. В 1970 г. Уинстон Уокер Ройс произвёл идентификацию нескольких стадий ЖЦ ПО, в результате чего было высказано предположение, что контроль выполнения этих стадий приведёт к повышению качества ПО и сокращению стоимости разработки.

Первые возникавшие проблемы:

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

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

  3. Переход от разработки простых программ к разработке сложных программных комплексов с трудом ложился на ранее выстроенные процессы разработки. Решение: Дисциплина проектирования и разработки: планирование и документирование проекта, поддержка соответствия кода проектной документации. А также структурное программирование с разбиением программы на основные функциональные подсистемы.

  4. Учащающиеся изменения требований к программе ещё на стадии проектирования. Решение: объектно-ориентированное проектирование и программирование облегчило внесение изменений, так как это стало развитием модульного программирования и позволило постоянно держать в изоляции отдельные элементы программы.

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

Например, США вливает ежегодно более $200 млрд. на более чем 170 тыс. проектов разработки ПО в сфере IT. При этом треть из них закрываются не завершившись, а половина превышают первоначальные оценки бюджета/срока и качества (см. рис.). Денежные потери от недополученного эффекта внедрения ПО измеряются триллионами.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]