ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
92309 Топик полностью
Evgeny_CD (23.06.2007 14:44, просмотров: 1) ответил AlexandrY на Я и говорю, не надо пытаться изобразить неизобразимое.
Идея предельно проста. Не надо ставить телегу впереди лошади. Я знаю, как это решить. Есть браузеры кода и диаграммеры. Они занимаются маразмом - глядя в код, пытаются понять, что же такое программе написал. Есть кодогенераторы - они пытаются генерить код за программера. Тоже маразм. Пишем описание софтового модуля. Отдельный файл на отдельном очень простом языке. Если модуль экспортирует методы во внешний мир, пишем, что же он export. Если модуль использует что-то за пределами себя, import. Отдельно описываем configure - конфигурация при компиляции. Отдельно описываем IPC (inter procecc communications) - что именно от оси он испольщует, как называются мьютексы, пайпы и пр. Все диаграммы рисуются для модулей на основании таких описаний. Картинки генерируются автоматически. Вся необходимая информация там будет. Все лишнее будет скрыто. По сути дела, речь идет о языке описания модулей. Очень простом и понятном. Модуль - это совокупность файлов. Генерируется заготовка - пустой файл с name space - да хоть просто идентификаторы сущностей по одному на строке, закомметированный блок в начале файла. Далее программер пишет код как ему вздумается, используя для связи с наружым миром только этот name space. Для любого редактора нетрудно написать макрос, который будет парсить этот блок, и давать программеру list box, из которого он и будет выбирать названия сущностей. Интерактивный процесс. Написали описание. Начали писать код. Поняли, что что-то про..и. Идем к файлу описания и дописываем что надо. Запуск генератора. Он правит только начальный блок, не трогая код программера. Есть проверяльщик кода. Python. Он берет описание модуля, парсит код, и смотри, соотвествует ли написанное программером спецификации модуля. Также на этом языке описываем данные для тестирования модуля. Таким образом, все что творится внутри модуля - забота программера и test unit. Общение с внешним миром жестко специфцировано и автоматом проверяется. Усе. Идет на всех платформах, со всеми компилерами и IDE.