Источник: Сборник материалов конференции | Электронная библиотека

    Информатика и компьютерные технологии 2006. Программа международной студенческой научно-технической конференции. ДонНТУ, ФВТИ, 13.12.2006.

РАЗРАБОТКА ПРОТОТИПА РЕАЛИЗАЦИИ ПРИНЦИПА
САМОДОКУМЕНТИРОВАНИЯ


Анискин С.В., Мальчева Р.В.
Донецкий национальный технический университет
<

    В работе рассматриваются практические результаты разработки прототипа модели самодокументирующегося кода на примере использования механизма платформы .NET, теоретические и практические аспекты разработки и реализации модели.

Введение
    В основе принципа самодокументирования (понятие дано в [1], анализ самодокументирующегося кода дано в [2]) лежит достижение доступности документации после сборки библиотеки.


1. Постановка задачи
    Прототип реализуется в рамках разработки имитационной модели документирования программного кода и является частью методологии использования имитационных моделей и их внедрения в учебный процесс. С целью обобщения материала, полученного во время разработки и реализации прототипа модели самодокументирующегося кода, путем использования механизмов отражения и атрибутов, предоставляемых платформой .NET (описание этих механизмов в [3]).


2. Модель самодокументирующегося кода
    Пример использования нотации языка для реализации принципа самодокументирующегося кода приведен в [4]. На данный момент языки платформ Java и .NET не предоставляют схожих возможностей. Возможности этих языков по внутреннему документированию с помощью систем тегов ограничены временем написания программного кода и не могут использоваться динамически, например, при работе с собранной библиотекой. Ключевым моментом предлагаемой модели является документирование кода, которое будет доступно и во время написания программы и после сборки библиотеки.
    Разработан прототип подпрограммы – компоненты класса, которую можно описать с помощью синтаксической схемы (смотри [5]) представленной на рис. 1.

Рисунок 1. Синтаксическая схема подпрограммы

Рис. 1 – Синтаксическая схема подпрограммы

    Для данной синтаксической схемы можно выделить следующие объекты документирования: возвращаемое значение, краткое описание, описание параметров. Эти объекты представлены в прототипе модели атрибутов, приведенной на рис. 2.

Рис. 2 - Прототип статической модели атрибутов для документирования подпрограммы

Рис. 2 - Прототип статической модели атрибутов для документирования подпрограммы

3. Реализация прототипа самодокументирующегося кода

    Для реализации прототипа имплементированы классы атрибутов, например, для атрибута параметра функции:
        [AttributeUsage(…)]
        public class Parameter : Attribute {…}

    Тогда при написании программного кода выполняется документирование путем использования соответствующих атрибутов, схожее с документированием путем использования тегов XML, например:
        [Summary("Move circle to point")]
        [Parameter("x", "X position")]
        [Parameter("y", "Y position")]
        public override void Move(float x, float y) {…}

    После сборки библиотеки можно осуществлять доступ к ней для получения документации (с помощью механизма отражения, пример использования которого приведен в [6])

Заключение
    Данная работа показывает возможность использования механизмов платформы .NET для реализации принципа самодокументирующегося кода. В работе представлена разработка и реализации эффективного прототипа самодокументирующегося кода.


Литература
    [1] Мейер Б. Объектно-ориентированное конструирование программных систем / Пер. с
        англ. - М. : Издательско-торговый дом «Русская редакция», 2005. - С.54-56.
    [2] Макконелл С. Совершенный код. Мастер-класс / Пер. с англ. - М. : Издательско-
        торговый дом «Русская редакция»; Спб. : Питер, 2005. - С. 760-799.
    [3] Троелсен Э. C# и платформа .NET. Библиотека программиста. - СПб.: Питер, 2004. -
        796 с.: ил.
    [4] Мейер Б. Объектно-ориентированное конструирование программных систем / Пер. с
        англ. - М. : Издательско-торговый дом «Русская редакция», 2005. - С. 179-180.
    [5] Пратт Т., Зелковиц М.Языки программирования: разработка и реализация / Под
        общей ред. А. Матросова. - СПб.: Питер, 2002. - 688 с.: ил.
    [6] Bishop J., Horspool N. Cross-Platform Development: Software that Lasts // Computer. -
        October 2006 - Volume 39 Number 10, - P. 29.