Какие браузеры вы используете чаще всего
 

Реклама

Различия

Различие между инженерией программного обеспечения и компьютерной наукой

Существенное различие заключается в том, что компьютерная наука (computer science) охватывает теорию и методы построения вычислительных и программных систем, тогда как инженерия программного обеспечения акцентирует внимание на практических про­блемах разработки ПО. Знание компьютерной науки необходимо специалистам по про­граммному обеспечению так же, как знание физики — инженерам-электронщикам.

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

Различие между инженерией программного обеспечения и системотехникой

Системотехника (system engineering) или, точнее, технология создания вычислитель­ных систем охватывает все аспекты создания и модернизации сложных вычислительных систем, где программное обеспечение играет ведущую роль. Сюда можно отнести техно­логию разработки аппаратных средств, внутренних вычислительных процессов и развер­тывания всей системы, а также технологию создания ПО. Инженеры-системотехники на основе спецификации системы (технических требований) определяют ее архитектуру и затем, собрав воедино се отдельные части, создают законченную систему. Они рассматри­вают систему преимущественно как составной объект с заданными компонентами и уде­ляют сравнительно мало внимания самим системным компонентам (конкретным аппарат­ным средствам, соответствующему программному обеспечению и т.д.).

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

Процесс создания программного обеспечения

Создание ПО — это совокупность процессов, приводящих к созданию программного продукта. Эти процессы основываются главным образом на технологиях инженерии про­граммного обеспечения. Существует четыре фундаментальных процесса (более подробно описанных далее в книге), которые присущи любому проекту создания ПО.

1. Разработка спецификации требований на программное обеспечение. Требования опреде­ляют функциональные характеристики системы и обязательны для выполнения.

2. Создание программного обеспечения. Разработка и создание ПО согласно специфика­ции на него.

3. Аттестация программного обеспечения. Созданное ПО должно пройти аттестацию для подтверждения соответствия требованиям заказчика.

4. Совершенствование (модернизация) программного обеспечения. ПО должно быть таким, чтобы его можно было модернизировать согласно измененным требованиям по­требителя.

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