Программная инженерия против информатики
В современном обществе компьютеры стали неотъемлемой и неизбежной частью. Однако мы меньше сосредотачиваемся на внутренней работе этих знакомых вещей. Информатика - это теоретическая основа компьютерных систем, тогда как программная инженерия - это применение этих принципов в задачах разработки программного решения.
Компьютерная наука
Информатика - это фундаментальная наука о компьютерном оборудовании и программном обеспечении. Он обеспечивает понимание механизма как программных, так и аппаратных компонентов, а также теоретических основ вычислений для реализации и применения в компьютерных системах.
Информатика состоит из множества основных дисциплин. Теория вычислений, теория информации и кодирования, алгоритмы и структура данных, а также теория языков программирования относятся к теоретической информатике. Поддисциплины прикладной информатики: искусственный интеллект, компьютерная архитектура и инженерия, компьютерная графика и визуализация, криптография и компьютерная безопасность, компьютерные сети, параллельные, параллельные и распределенные системы, базы данных и поиск информации, а также разработка программного обеспечения.
Многие из этих дисциплин основаны на математических теориях. Некоторые прикладные аспекты связаны с мехатроникой и другими прикладными науками.
Кроме того, эти субдисциплины распространяются на второстепенные области обучения. Например, Теория вычислений содержит такие области изучения, как теория автоматов, теория вычислимости, теория сложности, криптография и теория квантовых вычислений.
Программная инженерия
Программная инженерия может рассматриваться как одна из основных дисциплин прикладной информатики. Он ориентирован на создание эффективных программных систем с использованием строгого инженерного подхода. Его можно описать как систематический, дисциплинированный, поддающийся количественной оценке подход к проектированию, разработке, эксплуатации и обслуживанию программного обеспечения, а также к изучению этих подходов. Не существует единого общепринятого определения программной инженерии, кроме интерпретации ее цели.
Фриц Бауэр определил программную инженерию как «установление и использование надежных инженерных принципов для получения экономически разработанного программного обеспечения, которое является надежным и эффективно работает на реальных машинах».
Программное обеспечение не является физическим; это логические объекты, работающие в компьютерной системе. Следовательно, он должен быть разработан для оптимальной производительности как в аппаратном, так и в операционном аспектах. Для достижения этих целей инженеры-программисты используют модели разработки. Эти модели включают в себя основные этапы разработки программного обеспечения, такие как проектирование, кодирование, устранение неполадок и обслуживание, в единую структуру, которая обеспечивает систематический прогресс программного обеспечения на протяжении его жизненного цикла.
В чем разница между программной инженерией и информатикой?
• Информатика фокусируется на теоретических аспектах вычислений как в программном, так и в аппаратном обеспечении.
• Программная инженерия нацелена на систематическую разработку программного обеспечения. Кодирование или программирование - ключевой компонент программной инженерии.
• Программная инженерия может рассматриваться как приложение теории вычислений (например, эффективность алгоритма может быть измерена с использованием сложности, которая описана в теории информатики, но его применение находится в области разработки программного обеспечения, где наиболее подходит алгоритм подбирается по сложности).