Пока был в отпуске, накидал дополнения:
Поддержка последовательных версий программных проектовИсходный программный код каждого программного проекта должен сохраняться в отдельный файл, содержащий базу данных. В качестве СУБД рекомендуется Firebird, но возможен и другой выбор. В базе данных программного проекта должна храниться не только текущая версия проекта, но и полная история его изменений. Это позволит производить сравнение версий и откат изменений на любую глубину как в Википедии.
Также на основании истории изменений можно наглядно воспроизвести последовательность работы программиста в виде автоматической анимированной презентации или со сменой последовательных кадров вручную. Это, например, позволит преподавателю программирования увидеть ход мыслей студента.
Сравнение версий и откат изменений должны быть возможны как в целом по проекту, так и по отдельному модулю, функции и т.п.
Если в ранней версии содержатся части программного кода, которые должны быть возвращены в текущую версию, то это может осуществляться копированием в буфер обмена (где программист может подвергнуть программный код рефакторингу) и вставкой в текущую версию проекта. С той же целью может быть использован и механизм, аналогичный средству экспорта и импорта таблиц, запросов и других объектов в Microsoft Access. В случае совпадения идентификаторов копируемых модулей, функций и т.п. с идентификаторами в текущей версии проекта конфликт должен разрешаться по выбору программиста: перезаписать, записать с новым именем или отменить изменения.
Если в проекте участвуют несколько программистов, то изменения помечаются их именем как в Википедии.
Изменения каждого модуля, функции и т.п. сопровождаются нередактируемым автоматическим комментарием в таблице, отображающей изменения, например, «Произведен откат к версии от 14.09.2012 13:57». Может быть также добавлен комментарий программиста, а в необходимых случаях семантический редактор может требовать от программиста ввода комментария.
Любую версию можно сохранить в отдельный проект с новым именем (форк, то есть, параллельный вариант).
Поддержка стадий готовностиЗначок каждого проекта, модуля, функции и т.п. сопровождается дополнительным значком, обозначающим стадию готовности: от предполагаемого функционала до принятого заказчиком кода. В частности, соответствующими значками должен помечаться программный код, не содержащий ошибок времени компиляции, и программный код, не содержащий ошибок при последнем тестировании на указанном наборе данных. Также должны отображаться дата и время достижения текущей стадии готовности.
Поддержка списка ToDoСписок ToDo должен храниться в базе данных проекта – как текущая версия списка ToDo, так и полная история его изменений, в том числе изменений стадии готовности пунктов списка ToDo. Список ToDo может просматриваться как в целом по программному проекту (в порядке очередности исполнения), так и в разрезе модулей, функций и т.п., к которым относятся соответствующие пункты списка ToDo (т.е., иерархически).
Поддержка форков (веток, параллельных вариантов) программных проектовСемантический редактор должен обеспечить сравнение двух проектов, имеющих общего предка, а также копирование (по выбору программиста) несовпадающих частей программного кода из одного проекта в другой – аналогично принятию исправлений в сравниваемых документах Microsoft Word.
Однако при этом семантический редактор может ошибочно находить мнимые отличия из-за измененных идентификаторов или общей структуры сравниваемых проектов. Для исправления таких ошибок программист может в ходе сравнения проектов производить рефакторинг или изменение общей структуры любого из двух проектов.
При копировании модуля, функции и т.п. из одного проекта в другой история изменений этого модуля, функции и т.п. тоже копируется.
Поддержка комментариев к программному кодуКомментарии к программному коду хранятся в базе данных проекта в привязке к модулям, функциям и т.п. Комментарий может относиться к строке алгоритма, к строке объявления или к строке свойства объявленной переменной или иного объявленного объекта программы.
Поддержка тестированияТестирующие модули, тестовые данные и результаты тестирования с комментариями хранятся в базе данных проекта в привязке к соответствующей версии проекта, а также к тестируемому модулю, функции и т.п.
При отладке программ стандартный именованный ввод тестовых данных и вывод результатов тестирования осуществляется в табличной форме в формате, совместимом с Microsoft Excel.
Манипулирование ветвями многоветочной конструкцииПри щелчке левой клавишей мыши по треугольной стрелке сворачивается или разворачивается соответствующая ветвь многоветочной конструкции. При этом треугольная стрелка поворачивается острием вправо или вниз.
При щелчке правой клавишей мыши по треугольной стрелке появляется локальное меню, содержащее, в частности, пункты «Добавить ветвь выше» и «Добавить ветвь ниже».
При щелчке левой клавишей мыши и удержании ее на треугольной стрелке ветвь сворачивается и может быть перемещена вверх или вниз в данной многоветочной конструкции.
Элементарные типы данных семантического редактораЭлементарные типы данных семантического редактора должны быть совместимы с типами данных:
- встроенной в семантический редактор СУБД Firebird,
- промышленных СУБД и ERP: Oracle, Microsoft SQL Server, SAP, MySQL,
- хранилищ данных BusinessObject, Cognos,
- промышленных языков программирования C++ и Java, платформы .NET и XML,
- офисных программных продуктов Microsoft Excel и Microsoft Access,
- современных архитектур процессоров и микроконтроллеров.