Когда большинство проектов давно находятся на стадии поддержки, а не разработки, то поддержание документации в актуальном виде зачастую не проводится. Тогда довольно полезно будет получить диаграмму UML по существующему коду. Это также необходимо в случае, если предпроектная документация велась не полностью или проектированию подвергались не все части системы. Вопрос особенно актуален, когда появляется новый разработчик.
В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
Интересной, на мой взгляд, реализацией механизма создания UML модели является консольный скрипт php2xmi, подробнее про который написано здесь.
Чем интересен этот вариант:
Для генерации моделей существующих проектов целиком можно добавить поддержку __autoload в этот скрипт.
Вывод: данный скприпт позволяет получить диаграмму существующих классов без дополнительных усилий. То, что он написан на PHP позволяет редактировать его любому разработчику по своему усмотрению.
Другой вариант создания UML диаграмм по существующему коду. Это также реализованный средствами PHP инструмент, но в отличие от предыдущего это уже библиотека для создания моделей. Ознакомление можно начать с просмотра примеров, которые входят в архив.
Там же находится и основная документация с описанием возможностей. Выделю основные и на мой наиболее важные и интересные:
Вывод: по сравнению со скриптом php2xmi данный проект выглядит более профессионально выполненным, поэтому следует более пристальное внимание уделить его изучению.
В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
- Консольный скрипт php2xmi
- Библиотека PHP_UML
Консольный скрипт php2xmi
Интересной, на мой взгляд, реализацией механизма создания UML модели является консольный скрипт php2xmi, подробнее про который написано здесь.
Чем интересен этот вариант:
- Написан на PHP. Мы можем изменять его алгоритмы как захотим
- Заявленная поддержка PHP Doc
- Требует от наших проектов определённого правила подключения файлов
- Не добавляет в модель исходный код для методов
- Отсутствие постоянных обновлений
<?php
require_once 'Zend/config.php';
require_once 'Zend/Config/ini.php';
require_once 'Zend/Config/xml.php';
require_once 'Zend/exception.php';
require_once 'Zend/Config/exception.php';
* This source code was highlighted with Source Code Highlighter & me.
Для генерации моделей существующих проектов целиком можно добавить поддержку __autoload в этот скрипт.
Вывод: данный скприпт позволяет получить диаграмму существующих классов без дополнительных усилий. То, что он написан на PHP позволяет редактировать его любому разработчику по своему усмотрению.
Библиотека PHP_UML
Другой вариант создания UML диаграмм по существующему коду. Это также реализованный средствами PHP инструмент, но в отличие от предыдущего это уже библиотека для создания моделей. Ознакомление можно начать с просмотра примеров, которые входят в архив.
Там же находится и основная документация с описанием возможностей. Выделю основные и на мой наиболее важные и интересные:
- Поддержка XMI 2.1 – последняя версия данного стандарта. Одна из самых распространённых и качественных сред UML моделирования Umbrello также поддерживает эту версию.
- Написан на PHP.
- Удобная классовая структура.
- Запускается как обычное web приложение
- Читает PHP Doc
- Не добавляет в модель исходный код методов
Вывод: по сравнению со скриптом php2xmi данный проект выглядит более профессионально выполненным, поэтому следует более пристальное внимание уделить его изучению.