Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

6.2.6Реализация

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

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

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

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

6.2.8Современные тенденции

Ранние подходы к разработке программного обеспечения требовали строго последовательного выполнения этапов анализа, проектирования, реализации и тестирования. Существовало мнение, что слишком рискованно создавать большие системы программного обеспечения с помощью метода проб и ошибок. Разработчики настаивали на том, что прежде чем начать проектирование, нужно полностью завершить анализ системы, а прежде чем приступить к реализации, необходимо завершить проектирование. Такой метод разработки сейчас называется водопадной моделью (waterfall model), поскольку процесс разработки может протекать только в одном направлении.

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

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

Возникновение инкрементной модели свидетельствует о наличии тенденции создавать программное обеспечение с помощью макетирования (prototyping), при котором производятся и оцениваются незаконченные версии системы, называемые макетами (prototypes). В случае инкрементной модели построение нескольких версий макетов в итоге завершается созданием конечной версии системы. Такой процесс называется эволюционным макетированием (evolutionary prototyping). В других случаях макеты могут использоваться только на ранних стадиях разработки. Такой подход называется временным макетированием (throwaway prototyping). В качестве примера можно привести разновидность временного макетирования — быстрое макетирование, при котором на ранней стадии разработки создается простая версия системы. Такой макет может состоять только из нескольких изображений на экране, которые показывают, как система будет взаимодействовать с пользователем и какими возможностями она будет обладать. Цель в данном случае состоит не в том, чтобы создать работающую версию продукта, а в том, чтобы получить демонстрационный инструмент, который можно использовать для наглядного представления взаимодействия частей системы. Например, быстрое проектирование эффективно при определении требований к системе в процессе анализа или во время демонстрации продукта потенциальному покупателю.

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

Другое направление в разработке программного обеспечения — это применение компьютерных технологий к процессу создания систем программного обеспечения. В результате этого подхода была создана система CASE (Computer-Aided Software Engineering — система автоматизированной разработки программ). Эти компьютерные системы называются CASE-инструментами и включают в себя инструменты планирования проекта (помогающие оценить затраты, составить расписание и разместить персонал), инструменты управления проектом (помогающие контролировать работу над проектом), инструменты для создания документации (помогающие написать и систематизировать документацию), инструменты макетирования (позволяющие создавать макеты), инструменты создания интерфейса (применяемые при создании графического пользовательского интерфейса) и инструменты программирования (обеспечивающие написание и отладку программы). Некоторые из перечисленных инструментов представляют собой гораздо больше, чем текстовые редакторы, электронные таблицы и системы электронной почты, которые используются в других приложениях. Эти достаточно сложные пакеты программ создавались, главным образом, как средства поддержки программных разработок. Например, некоторые CASE-инструменты включают в себя генераторы кода, которые, располагая техническими характеристиками части системы, порождают программу на языке высокого уровня, являющуюся реализацией этой части системы.