Автоматизация проектирования
Порт расчётной программы на Qt: порядок шагов и проверка на каждом
Переписать расчётную программу целиком за один шаг нельзя: нечем проверить. Пошаговый порт с тестами на каждом этапе, граница ядра и интерфейса и честные ограничения такой работы.
Почему не переписывают целиком
Расчётная программа 2000-х живёт в рабочем процессе: ей считают, её результат сверяют с нормами, к ней привыкли. Переписать её за один шаг — значит на месяцы остаться без проверенного результата.
Обратная проблема тоже реальна: без автотестов каждый шаг порта — это версия, которую нечем сравнить с исходной.
Порядок шагов
- Инвентаризация: что входит в программу, где интерфейс, где численное ядро, что вообще считается.
- Граница: ядро не должно знать об интерфейсе. Тогда расчёт проверяется без окна и на сервере.
- Перенос ядра с тестами на каждом этапе: сетка, элементы, решатель.
- Перенос интерфейса поверх проверенного ядра.
- Сверка с исходной версией и независимым расчётом.
Исходная сборка сохраняется отдельной веткой или тегом: она остаётся эталоном до конца работы.
Что дают тесты
На порте инженерной программы расчёты проверяются аналитическими задачами, у которых есть точное решение, и независимой реализацией. Расхождение в таких проверках видно сразу, а не через месяц на объекте.
Тесты фиксируют и границу слоёв: отдельный тест падает, если ядро потянуло за собой интерфейс. Это дешевле, чем объяснять новому разработчику, что можно менять, а что нет.
Что остаётся за рамками
Порт не добавляет проверок, которых не было в исходной программе. Новые элементы, новые нормы и просмотрщик результатов — отдельные этапы со своими критериями. Обещать «новую программу к дате» до того, как ядро сверено, нельзя.
Ограничения
Сверка с аналитикой не доказывает соответствие нормам. Она доказывает, что реализация считает то, что заявлено. Нормативная проверка — отдельная работа с отдельным подтверждением.
Услуги по теме
Объекты по теме
Другие статьи из категории
- Отклонение башни от вертикали: что измерять и как читать результат
- Каркас промышленного здания: порядок проектирования и типовые ошибки
- Поиск по нормам с источником: как проверять ответ ИИ-инструмента
- Идемпотентная загрузка: повторный запуск не должен менять данные
- История атрибутов вместо перезаписи: почему отчёты не сходятся
Похожие статьи
Все статьи →Автоматизация проектирования
История атрибутов вместо перезаписи: почему отчёты не сходятся
Один и тот же договор в двух отчётах даёт разные суммы, когда атрибуты перезаписываются. Историчность строки объясняет расхождение версией,…
Автоматизация проектирования
Идемпотентная загрузка: повторный запуск не должен менять данные
Загрузку перезапускают всегда: сбой, правка, повтор после исправления. Идемпотентность — свойство, без которого повтор удваивает строки, а…
Автоматизация проектирования
Поиск по нормам с источником: как проверять ответ ИИ-инструмента
Ответ без ссылки на пункт проверять нечем. Что должен отдавать инструмент поиска по нормативной базе, чтобы им можно было пользоваться в…
Автоматизация проектирования
Каркас промышленного здания: порядок проектирования и типовые ошибки
Порядок работы над каркасом: компоновка, схема, нагрузки, сечения, узлы. Где чаще всего возвращаются назад и как этого избежать, не…
Автоматизация проектирования
Отклонение башни от вертикали: что измерять и как читать результат
Одно число отклонения ничего не говорит: нужен профиль по ярусам, привязка к высоте и сравнение с проектом. Как измеряется и где результат…
Нужен расчёт?
Пришлите исходные данные — уточним состав работы и ответим по срокам.