Что такое разработка программного обеспечения? Характеристики, определение.

⚡ Умное резюме

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

  • 📘 Основное определение: В разработке программного обеспечения применяются систематические, дисциплинированные инженерные принципы для создания, эксплуатации и сопровождения надежного программного обеспечения.
  • ⚠️ Программный кризис: Неудачи в реализации проектов конца 1960-х годов и рост затрат создали необходимость в структурированной инженерной дисциплине.
  • 📈 Почему это важно: Это позволяет создавать крупномасштабное, адаптируемое и экономически эффективное программное обеспечение с постоянным управлением качеством.
  • 🔗 Смежные дисциплины: В его основе лежат знания в области информатики, менеджмента, экономики и системной инженерии.
  • ✅ Хорошее программное обеспечение: Качественное программное обеспечение должно быть работоспособным, адаптируемым и поддерживаемым в условиях меняющейся среды.

Что такое разработка программного обеспечения?

Что такое программная инженерия?

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

Рассмотрим различные определения программной инженерии:

  • В своем стандарте 610.12-1990 организация IEEE определяет разработку программного обеспечения как применение систематического, дисциплинированного и вычислительного подхода к разработке, эксплуатации и сопровождению программного обеспечения.
  • Фриц Бауэр определил это как «установление и использование стандартных инженерных принципов. Это помогает экономично получать надежное программное обеспечение, эффективно работающее на реальных машинах».
  • Бём определяет разработку программного обеспечения как «практическое применение научных знаний к творческому проектированию и созданию компьютерных программ. Это также включает в себя соответствующую документацию, необходимую для разработки».pingэксплуатация и техническое обслуживание этих устройств.

Почему программная инженерия? Программный кризис и его решение

Что такое кризис программного обеспечения?

  • Это было в конце 1960-х годов, когда многие программные проекты потерпели неудачу.
  • Значительная часть программного обеспечения вышла за рамки бюджета. В результате получилось ненадежное программное обеспечение, обслуживание которого обходилось дорого.
  • Более крупное программное обеспечение было сложно и довольно дорого поддерживать.
  • Многие программные продукты не смогли удовлетворить растущие потребности клиентов.
  • Сложность программных проектов возрастала по мере увеличения их аппаратных возможностей.
  • Спрос на новое программное обеспечение рос быстрее по сравнению с возможностью создания нового программного обеспечения.

Все вышеперечисленные проблемы привели к «программному кризису».

Решение

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

  • В конце 1970-х годов принципы программной инженерии получили широкое распространение.
  • В 1980-х годах произошла автоматизация процесса разработки программного обеспечения и получило развитие автоматизированное проектирование программного обеспечения (CASE).
  • В 1990-е годы возрос акцент на управленческих аспектах проектов, а также на стандартах качества и процессах, таких как ISO 9001.

Почему программная инженерия популярна?

Вот важные причины популярности разработки программного обеспечения:

Почему программная инженерия популярна

  • Большое программное обеспечение – В реальной жизни построить стену гораздо проще, чем дом или здание. Точно так же, по мере увеличения размера программного обеспечения, разработка программного обеспечения помогает его создавать.
  • Масштабируемость – Если процесс разработки программного обеспечения основан на научных и инженерных концепциях, то проще создать новое программное обеспечение, масштабируемое для существующего.
  • Адаптивность – Когда процесс разработки программного обеспечения основан на научных и инженерных принципах, легко создать новое программное обеспечение с помощью методов программной инженерии.
  • Стоимость – Индустрия аппаратного обеспечения продемонстрировала свои возможности, а масштабное производство снизило стоимость компьютеров и электронного оборудования.
  • Динамичная природа – Программное обеспечение постоянно развивается и адаптируется. Это зависит от среды, в которой работает пользователь.
  • Управление качеством – Предлагает более эффективный метод разработки программного обеспечения для создания качественных программных продуктов.

Связь программной инженерии с другими дисциплинами

Вот как разработка программного обеспечения связана с другими дисциплинами:

  • Информатика: Закладывает научную основу для программного обеспечения, подобно тому как физика является основой для электротехники.
  • Наука управления: Разработка программного обеспечения — это трудоемкая работа, требующая как технического, так и управленческого контроля. Поэтому она широко используется в науке управления.
  • Экономика: В этом секторе разработка программного обеспечения помогает в оценке ресурсов и контроле затрат. Необходимо разработать вычислительную систему и регулярно поддерживать данные в рамках заданного бюджета.
  • Системная инженерия: Большинство программ являются компонентами гораздо более крупных систем, например, программное обеспечение в промышленной системе мониторинга или программное обеспечение для управления полетом самолета. Для изучения таких систем следует применять методы программной инженерии.

Проблемы программной инженерии

Вот некоторые критические проблемы, с которыми сталкиваются инженеры-программисты:

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

Атрибуты программных продуктов

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

Речь идёт не об услугах, предоставляемых продуктом. Вместо этого, это связано с динамическим поведением продукта и способом его использования.

Примеры этих атрибутов:

Efficiency, reliability, robustness, maintainability, etc.

Однако относительная важность этих характеристик варьируется от одной программной системы к другой.

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

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

Характеристики хорошего программного обеспечения

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

Каждое программное обеспечение должно удовлетворять следующим атрибутам:

  • Operaонные
  • Переходный
  • Обслуживание

Вот некоторые важные характеристики качественного программного обеспечения, разработанного профессионалами в этой области.

Operaонные

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

  • Бюджет
  • Эффективность
  • Удобство использования
  • Надежность
  • правильность
  • Функциональность системы
  • Безопасность
  • Безопасность.

Переходный

Это важный аспект при переносе программного обеспечения с одной платформы на другую:

  • Взаимодействие
  • Повторное использование
  • Портативность
  • Адаптивность

Обслуживание

Этот аспект говорит о том, насколько хорошо программное обеспечение способно адаптироваться к быстро меняющейся среде:

  • Гибкость
  • Ремонтопригодность
  • модульность
  • Масштабируемость

Часто задаваемые вопросы (FAQ)

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

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

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

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

Подведем итог этой публикации следующим образом: