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

Разработка программного обеспечения включает в себя анализ, проектирование, реализацию и тестирование (рис. 6.2).

Анализ

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

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

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

Проектирование

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

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

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

Реализация

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

Тестирование

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

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


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



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