Comments 8
Q в начале имён классов сначала сбило с толку…
0
Да уж… с кутями придется дружить только посредством костыля(
0
Namespaces ради этого, вроде, и были придуманы… Мне интересно, авторы знали про Qt, когда начинали писать эту либу?
0
А вообще спасибо за статью, ранее догадывался о таком подходе, но не думал, что есть столь развитые средства для его применения.
0
Рад стараться. В моей компании эта штука сильно помогла решить ряд проблем одного важного проекта. Удивило, что о QP на хабре всего один пост.
0
А какого рода проект?
0
RTOS. Сервер на C под uCLinux без поддержки динамической линковки и pthreads. Программа реализует некий интерфейс для настройки ряда устройств, посредством которого можно мгновенно в любой момент времени изменить их конфигурацию. Действительно же применение новой конфигурации занимает некоторое время и представляет собой довольно сложный процесс взаимодействия с утройствами, который сильно зависит от текущего состояния устройств и применяемых настроек.
Стоит заменить, что до применения QP софт не раз переписывался, т.к. сложность алгоритма конфигурирования постоянно приводила к почти полной потере расширяемости и изобилию багов.
Применение UML диаграмм состояний и последовательности позволило решить эти проблемы. В итоге получилось 4 класса сущностей (один из которых имел 5-ти-уровневую диаграмму состояний!). QP помог реализовать эти сущности, превратив их соответственно в 4 класса активных объектов.
Ядро кооперативной многозадачности мы использовали свое, сделанное на основе предлагаемого фреймворком легковесного Vanilla Kernel (хотя, проще и лучше было бы прицепить GNU Pth).
Стоит заменить, что до применения QP софт не раз переписывался, т.к. сложность алгоритма конфигурирования постоянно приводила к почти полной потере расширяемости и изобилию багов.
Применение UML диаграмм состояний и последовательности позволило решить эти проблемы. В итоге получилось 4 класса сущностей (один из которых имел 5-ти-уровневую диаграмму состояний!). QP помог реализовать эти сущности, превратив их соответственно в 4 класса активных объектов.
Ядро кооперативной многозадачности мы использовали свое, сделанное на основе предлагаемого фреймворком легковесного Vanilla Kernel (хотя, проще и лучше было бы прицепить GNU Pth).
0
Sign up to leave a comment.
Quantum Leaps QP и UML statecharts