В чем разница между Computer Science и Software Engineering?
Мне было предложено задать вопрос, отвечая на вопрос о Software Engineering Videos. Вот ответ:
В стороне, будьте осторожны, что вы здесь связываете. Программное обеспечение и информатика - очень разные дисциплины. Программного обеспечения Инжиниринг охватывает жизненный цикл разработки программного обеспечения (в том числе методологии и процесс), моделирование, связь, предприятие SE культура и т.д., и это гораздо меньше касается кода, алгоритмов, эффективности и т.д.
Отвечено 12 мая Джошем Джорданом
и это был мой комментарий:
Я должен не согласиться. Программная инженерия - это субдисциплина компьютерных наук. Одна из подпространств Software Engineering - это Строительство, которое касается кода. См. SWEBOK.
Я думаю, что алгоритмы выходят за рамки Software Engineering, но объектно-ориентированное программирование, защищенное программирование и т.д. нет.
Некоторые сказали, что это дубликат, но компьютерная инженерия касается аппаратного обеспечения, а Software Engineering - о программном обеспечении.
Ответы
Ответ 1
В большинстве редукционистских и упрощенных терминов: информатика - это теория, а разработка программного обеспечения - это практика. Это похоже на взаимосвязь между, например, химией (связями, валентными оболочками, периодической таблицей, квантовой теорией) и химической инженерией (промышленное производство, выход чистоты, нахождение лучшего материала с учетом набора ограничений).
Ответ 2
Я просто прочитал статью через /. по этой теме:
Разработка программного обеспечения ≠ Информатика
Это изображение из статьи подводит итог:
![Red line separating computer science and software engineering]()
Ответ 3
Как великая информатика Дейкстра знаменито сказал: "Информатика больше не о компьютерах, чем о астрономии о телескопах". Итак, говоря, что разработка программного обеспечения (которая имеет отношение к компьютерам) является поддисциплиной в области информатики, это похоже на то, что какая-то оптика (которая имеет отношение к телескопам) является субдисциплиной астрономии; -).
Мне, я забочусь о телескопах, oops я имею в виду компьютеры, так что я не астроном, а я имею в виду компьютерного ученого;-) [whatever wikipedia настаивает на том, чтобы сказать обо мне;-)], точно так же, как я когда-то писал в мой блог.
Ответ 4
Компьютерные науки - это больше теории, чем практические; Программная инженерия все еще теория, но больше рук; Компьютерные информационные системы более практичны и менее теоретизированы, а системы управленческой информации - практические, очень мало теории.
Ответ 5
Для духа:
http://en.wikipedia.org/wiki/Computer_science
http://en.wikipedia.org/wiki/Software_Engineering
Ответ 6
Ну, все эти дисциплины - всего лишь субдисциплина Философии.
Ответ 7
Информатика: она охватывает основные концепции и технологии, связанные с тем, как заставить компьютер что-то делать. Обучение программированию компьютера путем написания программного обеспечения имеет важное значение, а компьютерное программирование используется на большинстве курсов по информатике.
Программное обеспечение Engineering: SE занимается проектированием и разработкой программного обеспечения. Методы, технологии, передовая практика, тестирование и т.д. Чтобы сделать пример, ваш браузер был разработан инженерами-программистами.
Ответ 8
Я бы сказал, что Computer Science - это вся область теории и приложения, которая включает в себя выполнение вычислений на компьютерах, а также использование компьютеров. Это полная наука о компьютерах.
Разработка программного обеспечения - это гораздо меньшая подмножество Computer Science, которая просто связана с теорией, концепциями и приложениями написания реальных программ.
Компьютерная наука относится к гораздо большему, чем просто к написанию программ.