Добрый день.
Есть большой проект на .NET состоящий из множества слабо связанных частей, во время проектирования забыли согласовать, как хранить настройки для каждой части, в результате каждый разработчик придумывал на свой вкус и в итоге систему просто невозможно поддерживать. Задача создать подсистему, которая позволит:
1. Централизованно хранить и изменять настройки в виде строк в БД по имени группы (части системы) и имени настройки.
2. Получать значение настройки по имени группы (части системы) и имени настройки любой части системы.
Подсистему хочу спроектировать на UML, но знаний мало, а доступная информация туманна. Прошу помочь, кто чем может, указать на ошибки и направить на правильный путь.
Для проектирования использую Visio, ибо куплен (есть бесплатные альтернативы?).
Пока решил сосредоточиться на пункте 2.
Итак:
1. Диаграмма Сценарий выполнения (use case diagram):
Все просто и понятно.
2. Диаграмма Деятельности (activity diagram):
a. Получение одной настройки
b. Получение набора настроек
Вроде все тоже просто, только что-то у меня диаграмма деятельности сильно смахивает на блок смеху или так и должно быть? И правильно ли указано состояние "Определить одну настройку", это состояние описывается диаграммой "Получение одной настройки" (2.а)
3. Диаграмма Последовательности (sequence diagram):
А вот тут не пойму как отразить что «Менеджер настроек» возвращает сам объект «Настройка»?
4. Диаграмма классов (class diagram):
Класс Setting реализует интерфейс ISetting – отношение обобщение. Вроде правильно.
SettingCashe изображен как объект, так как является экземпляром класс Hashtable из .NET. Вроде логично.
SettingCashe может существовать только с SettingManager – отношение композиция. Вроде по учебнику.
А вот отношение ассоциации между Setting и SettingManager вроде должна быть, но что-то меня смущает, как-то не очевидно это, не чувствую логики, но тем не менее думаю связь между ними должна быть. Как правильно?
Вот на этом пока затык…