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

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

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

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

Другое отличие разработки программного обеспечения от традиционного проектирования — это роль допустимого отклонения от нормы. Обычное проектирование занимается разработкой продуктов, которые годны до тех пор, пока они выполняют свою задачу в определенных границах. Стиральная машина, которая выполняет цикл «стирка-полоскание-отжим» с 2-процентным отклонением от желаемого времени, годится для использования. В отличие от этого, программное обеспечение может работать либо правильно, либо неправильно. Систему бухгалтерского учета с допустимым отклонением точности 2 % нельзя использовать.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: