Разработка проекта
Процесс разработки включает построение моделей реализации ПО и кодирование. Обязательным является обеспечение соответствия между моделью и программным кодом, который создается на основе разработанной модели.
Разработка проекта представляет собой итеративный процесс создания и предъявления Заказчику прототипов ПО, каждый из которых расширяет функциональность предыдущего. Помимо прототипов развивается и уточняется модель ПО, которая служит для понимания структуры и функционирования ПО и может использоваться в дальнейшем при выполнении работ по сопровождению и развитию ПО. Обязательным является обеспечение соответствия между моделью и программным кодом, который создается на основе разработанной модели.
В отдельной итерации выполняются следующие основные деятельности: Архитектурный анализ и дизайн, Детальный дизайн, Прототипирование.
Архитектурный анализ и дизайн
Эта деятельность призвана создать устойчивую архитектуру, на основе которой можно спроектировать ПО, легкое для понимания, построения и развертывания. Архитектура должна быть согласована со средой реализации с целью удовлетворения требований к производительности, устойчивости, безопасности, расширяемости и тестируемости.
Цели проведения архитектурного анализа и дизайна заключаются в следующем:
- разработка точной архитектуры ПО;
- адаптация дизайна к среде реализации с целью повышения производительности разработки;
- выбор механизмов реализации и определение ограничений на реализацию;
- проектирование архитектуры базы данных;
- определение стратегии повторного использования;
- обеспечение начала процесса планирования.
В процессе архитектурного анализа рассматриваются изложенные в Спецификации требования к ПО, определяются требования к архитектуре и производится выбор архитектурного стиля. При этом выполняется уточнение архитектурных моделей, построенных на этапе Разработки Спецификации. Определяется первоначальный набор архитектурно значимых элементов и механизмов реализации, выполняется начальное разбиение на уровни, определяется структура ПО, выбираются ВИ, которые будут реализовываться в очередном прототипе (первый прототип реализует только пользовательский интерфейс с нулевой функциональностью). В результате создается эскиз архитектуры ПО. На основе анализа архитектурно значимых ВИ определяются основные классы и их взаимодействие, которые включаются в архитектурную модель ПО.
В процессе архитектурного дизайна выполняется выделение компонент и определение их интерфейсов, распределение компонент по узлам сети, а также уточнение архитектуры на основе повторного использования. Уточняется реализация ВИ на основе определенных компонент. Разрабатывается архитектура базы данных, для чего определяются персистентные (постоянно хранимые) классы и строится концептуальная модель данных, в которой отражаются основные сущности и отношения между ними.
Результатами этой деятельности являются модель архитектуры ПО, которая будет развиваться, уточняться и дополняться в процессе Детального Дизайна (то есть постепенно преобразовываться в модель ПО), и документ «Архитектурный анализ и дизайн», в котором будет строго и детально описана архитектура ПО, включая выбранное окружение (framework) и взаимодействие с ним, а также механизмы реализации.
Детальный дизайн
В ОО подходе бизнес логика описывается набором моделей, показывающих различные аспекты ПО логический, функциональный, физический. Процесс построения модели идет следующим образом. Исходной является модель требований, включающая ВИ и сценарии, уточняющие требования. Начинается детализация сценариев взаимодействий, в результате чего постепенно определяются классы и объекты, включаемые в модель ПО. Задачей аналитика при этом является определение атрибутов и методов классов, отношений между классами, установление иерархий наследования, определение повторно используемых классов. В результате этой деятельности формируется библиотека классов проекта. Часть входящих в нее классов уже реализована и используется в проекте повторно, остальные классы должны быть реализованы.
В процессе детального дизайна созданная ранее концептуальная модель данных детализируется и строится реляционная модель. Эта модель может быть оптимизирована (инструментальные средства предоставляют возможности автоматизации такого процесса).
Прототипирование
В процессе разработки ПО создается инкрементная по функциональности последовательность прототипов, каждый из которых предъявляется Заказчику. Последний изучает прототип и формулирует свои замечания, которые учитываются при создании следующего прототипа. Замечания Заказчика могут привести к уточнению, изменению или дополнению требований к ПО, что должно быть зафиксировано в отдельном документе.
Число прототипов зависит от размера и характера проекта. В первом из них разрабатывается только пользовательский интерфейс, содержащий экранные и отчетные формы. Изучая его, Заказчик убеждается, что ПО будет делать именно то, что ему требуется (или указывает Разработчику, что следует изменить в требованиях к ПО). Второй и последующие промежуточные прототипы содержат реализованную в том или ином объеме функциональность ПО, причем каждый последующий прототип включает всю функциональность предыдущего, дополняя ее. При трех прототипах во втором реализуется вся основная функциональность ПО. Последний прототип содержит полностью реализованную функциональность ПО, заданную в требованиях. Это еще не полностью готовый программный продукт, так как и по нему у Заказчика могут возникнуть замечания, которые должны быть исправлены в окончательной версии ПО.
В процессе работы над прототипом осуществляется кодирование на языке реализации, генерируется схема базы данных, производится тестирование отдельных компонент и прототипа в целом. По результатам внутреннего тестирования исправляются ошибки. Сборка прототипа в процессе его разработки может осуществлять многократно.
По завершении каждого прототипа выполняется коррекция и уточнение модели на основе реинжиниринга. Тем самым обеспечивается соответствие модели и программного кода как для каждого реализованного прототипа, так и для ПО в целом.