Документация проекта и кода

Документирование - финальный этап процесса разработки. Если хочется общей картины, то вот как это выглядит в типичном случае:

  1. Заказ. Клиент заказывает проект, незная примерно чего он хочет.
  2. Предложение. Компания хвалится что уже делала много подобных проектов и спрашивает детали и плавно переходит к заключению договора.
  3. Разработка
    1. Анализ - много беседы с клиентом что-бы понять его ситуацию и его нужды
    2. Дизайн - проектирование на высоком уровне БД и оценка необходимых задач
    3. Кодинг
    4. Тестирование (Quality Assurance)
    5. Документирование
  4. Поддержка (Support)
  5. Оценка квалитета

Цель документации в предоставлении детальной информации о продукте/системе. Если в анализе рассматривались абстрактные пользователи, процессы, связи, то в документации всё чётко.


Документирование интерфейса или user's manual

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

  1. MS Office + Adobe Acrobat
  2. WikiPad, media wiki
  3. MS OneNote

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

Документирование кода

Если wiki ещё может быть полезным программистам, то Office Word - наврядли. Всё дело в неудобном оглавлении, необходимости кроссылочности и связями с кодом. Поэтому для документирования кода используют программы-генераторы, сканирующие файлы проекта в поиске комментариев. Если же комментариев нет, а как работает система вы не знаете то прийдётся заняться неприятной работой reverse-engineering'а.

Многие IDE (Zend, Visual Studio, Netbeans) уже включают в себя средства документирования, но никакого общего стандарта до сих пор нет. В своём большинстве, цель генераторов - составить нечто типа энциклопедии всех функций, классов, объектов, иерархий классов, связей между файлами, используемые компоненты и третьи программные продукты. Вся эта огромная информация редко когда может быть полезна начинающему программисту, которому в действительности сначала нужны UML схемы общей архитектуры:

  • Логические разделы или то что видет пользователь (use case, интерфейс, цель инфосистемы)
  • Общий вид потока информации (связь с БД, темплейты, сервисы, глобальные объекты)
  • Соответсвие логическим разделам физическим файлам и таблицам БД (модульность платформы)

Генераторы можно условно разделить на:

Генераторы как правило по-своему хранят данные и комментарии, завися от языка, однако последние тенденции например в Visual Studio показывают популяризацию xml. DocBook - одна их предлагаемых универсальных схем.

Читайте также:

Файлы

RSS

Комментарии

  • Дмитрий
    avatar
    Возможно Вам будет интересен мой инструмент для документирования веб-проектов.

    Посмотрите пожалуйста:
    www.bulldoc.ru

    BullDoc — это система для создания документации. Представляет собой комплекс на php, который можно использовать без веб-сервера через командную строку, или в виде сайта под управлением apache. Исходники документации хранятся в текстовых файлах и могут быть помещены в svn. Документация экспортируется в полностью статический html(один файл на одну страницу или один монолитный файл), для размещения на сайте и для скачивания. Имеется экспорт в файл справки chm.
  • Не совсем понял её особенности. Практически как я понял там нет никакого автоматического анализа кода, а просто интерфейс для вбивания документации вручную по типу wiki с возможностью chm экспорта и консольного поиска. Конечно может пригодиться кому-то
  • Дмитрий
    avatar
    тут собственно задача именно сгенерить меню, навигацию, предметный указатель и аккуратно собрать в статический html.

    по типу вики, но файлы хранятся в SVN проекта и это удобно.

    Спасибо, что посмотрели :)