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

Программная инженерия

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

Определения терминов программной инженерии

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

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

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

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

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

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

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

Основные составляющие программной инженерии

Основополагающими составляющими программной инженерии являются:

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

В ходе предварительного ознакомления и при уточнении задач перед началом создания продукта программный инженер ставит следующие вопросы и ищет на них ответы:

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

При уточнении необходимости разработки продукта «с нуля» или возможности использования отдельных созданных процедур и написания только недостающего кода - программный инженер задает уже иные вопросы:

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

В ходе проведения тестирования возникают уже совершенно непохожие на ранее сформулированные вопросы с поиском ответов:

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

Цель и процессы программной инженерии

Из всего вышесказанного можно сделать вывод: программная инженерия непосредственно связана напрямую со всеми процессами жизненного цикла любого программного обеспечения.

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

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

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

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

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

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

Перейти в Telegram Bot