На этом шаге рассмотрим моделирование исходного кода в UML.
Главное назначение артефактов – моделирование физических частей реализации. Второе по важности их применение – моделирование конфигурации всех файлов исходного кода, которые нужны средству разработки для построения исполняемых артефактов. Эти файлы представляют собой артефакты продуктов процесса разработки.
Моделирование исходного кода в графическом виде полезно, в частности, для визуализации зависимостей компиляции между файлами исходного кода, а также для управления расщеплением и слиянием групп этих файлов при распараллеливании и соединении самого процесса разработки. В этом смысле артефакты UML могут быть графическим интерфейсом инструментов управления конфигурацией и контроля версий.
Для большинства систем файлы исходного кода создаются с учетом решений, принятых вами относительно того, как должен быть сегментирован исходный код для нужд среды разработки. Эти файлы используются для хранения деталей реализации классов, интерфейсов, коопераций и других логических элементов – промежуточной фазы процесса создания физических бинарных артефактов, которые производятся из таких элементов инструментальными средствами разработки. Большей частью подобные инструменты определяют стиль организации (часто – один или два файла на класс), но все же для разработчика полезно визуализировать связи между этими файлами. Решения относительно того, как организовать исходные файлы в пакеты и как управлять их версиями, принимаются на основе выбранных способов управления изменениями.
Чтобы смоделировать исходный код, необходимо:
На рис. 1 показаны некоторые файлы исходного кода, используемые для построения библиотеки render.dll из предыдущих примеров. Рисунок включает четыре заголовочных файла (render.h, rengine.h, poly.h и colortab.h), которые представляют исходный код спецификации определенных классов. Также имеется файл реализации (render.cpp), представляющий реализацию одного из этих заголовков.
Рис.1. Моделирование исходного кода
По мере развития ваших моделей вы обнаружите, что многие файлы исходного кода, концептуально и семантически связанные, имеют тенденцию собираться в группы. Как правило, инструменты разработки будут размещать их в разных директориях. В UML для моделирования подобных кластеров исходного кода можно использовать пакеты.
Кроме того, в UML есть возможность визуализировать отношения между классом и его файлом исходного кода, а также, в свою очередь, связь файла исходного кода с исполняемой программой или библиотекой посредством трассировки (trace relationship). Одна ко необходимость в такой детализации при моделировании возникает редко.
На следующем шаге рассмотрим понятие узла в UML.