Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Совместимость проектов "снизу-вверх" / 7 сообщений из 7, страница 1 из 1
17.07.2006, 15:54
    #33858414
Mykola Kovalchuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
Привет всем!

Есть такая задача: после рефакторинга(ов) бизнес-модели, нужно обеспечить совместимость со старыми проектами (возможность их открытия, конвертации в новую модель и сохранения). [Предметная область - сборка неких строительных конструкций]
Бизнес модель предстваляет собой сложную иерархию объектов, под-объектов и систем объектов (дерево), а также не менее сложную сеть взаимосвязей между ними (не дерево - очень запутанный граф).
После рефакторинга целые системы объектов могут быть заменены другими, могут поменяться связи, могут появиться новые типы объектов. И проекты в старой модели нужно [по возможности] точно перевести в новую модель.

Есть пока две идеи:
- Писать конвертеры между каждыми изменениями всех подсистем бизнес-модели, и затем прогонять проект по цепочке конвертеров. Это даст наиболее точный результат, но является довольно трудоемкой задачей;
- Запоминать проект как последовательность комманд пользователя и потом восстанавливать эту цепочку комманд. Но тут могут возникнуть пробемы, если по новым правилам комманда отрабатывает несколько по другому. Накопление этих небольших отклонений может привести к тому, что следущая комманда не сможет отработать или будет бессмысленной.

Буду очень благодарен, если вы поделитесь своим опытом или идеями :)
...
Рейтинг: 0 / 0
17.07.2006, 16:48
    #33858644
man_555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
От балды, конечно, но, что если хранить модель в независимом от версий формате? Типа XML файлика?
...
Рейтинг: 0 / 0
17.07.2006, 17:05
    #33858713
Mykola Kovalchuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
man_555От балды, конечно, но, что если хранить модель в независимом от версий формате? Типа XML файлика?

А как XML файл отвязан от версии?
Ведь если там была записана например информация о объекте/системе типа A, а в новой версии программы данному типу соответсвует другой тип объекта или системы объектов B, то все равно нужно делать конвертер из одной версии в другую.
...
Рейтинг: 0 / 0
17.07.2006, 18:37
    #33858990
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
Mykola Kovalchuk man_555От балды, конечно, но, что если хранить модель в независимом от версий формате? Типа XML файлика?

А как XML файл отвязан от версии?
Ведь если там была записана например информация о объекте/системе типа A, а в новой версии программы данному типу соответсвует другой тип объекта или системы объектов B, то все равно нужно делать конвертер из одной версии в другую.
... либо использовать готовые маршаллеры/демаршаллеры.
для Java например Castor, XMLBeans, etc.
...
Рейтинг: 0 / 0
18.07.2006, 09:45
    #33859689
man_555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
А если до кучи поддерживать словарь типов и прочих сущностей? Как выглядит алгоритм конвертации?
...
Рейтинг: 0 / 0
18.07.2006, 11:09
    #33859996
Олег Артемов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
Привет, Коля !
Возможно, вам стоит проанализировать, как решают такую задачу компании, которые давно существуют на рынке (Microsoft, Corel, Adobe). Майкрософт поставляет конвертор для предыдущих версий продукта, Adobe - тоже.
А насчет трудоемкости - очень редко качественный продукт бывает нетрудоемким.

С уважением,
Артемов Олег.
...
Рейтинг: 0 / 0
18.07.2006, 12:19
    #33860290
Mykola Kovalchuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совместимость проектов "снизу-вверх"
Олег АртемовВозможно, вам стоит проанализировать, как решают такую задачу компании, которые давно существуют на рынке (Microsoft, Corel, Adobe). Майкрософт поставляет конвертор для предыдущих версий продукта, Adobe - тоже.
А насчет трудоемкости - очень редко качественный продукт бывает нетрудоемким.

И тебе привет!

Ну ты должен знать, что у Microsoft и Adobe не такие запутанные проеты :) , там простая древодная структура.

man_555Как выглядит алгоритм конвертации?

Ну например, в новой версии в бизнес модель добавлен новый вспомогательный объект. Нужно после открытия проекта, созданного при старой версии бизнес модели, добавить в нужные места экземпляры нового объекта, проинициализировать их и настроить все ссылки на него и из него.

У нас есть пока два варианта решения этой задачи:
1) повторить создание проекта по сохраненной цепочке комманд создания;
2) написать анализатор для каждого такого случая и вручную подправить исходный проект.
Вариант о каком-то промежуточном представлении модели проекта (его мето-описание) пока не до конца понятен.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Совместимость проектов "снизу-вверх" / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]