LINUX.ORG.RU

Грамотное начальное проектирование проекта

 ,


1

2

Поступила задача переписать старый проект с delphi на Qt. Так как старый проект писали в разный период времени 4 «программиста» (а точнее «дизайнер», «студент», «ЧСВшник» и «мистер Я-все-знаю») разной степени упоротости, то нетрудно догадаться, во что он со временем превратился. Посему получилась подзадача - разработать изначальную основную структуру программы так, чтобы тот, кто будет писать после имел надобность править только один конкретный модуль (или подключить написанный собственноручно без всяких проблем). Основная загвоздка в том, что, собственно программа - это GUI-оболочка для некой железки - она опрашивает её по COM-порту (должна быть предусмотрена возможность добавления модуля для LAN и USB) и, произведя некие математические расчеты, выводит на экран результат (график + таблица). Сама загвоздка в том, что версий устройства много, у каждого свой набор команд и, частично, версия протокола, свой набор операций над данными и т.п. Писать версию программы под каждое устройство не выдет - одна и та же программа должна корректно работать что у гл. инженера с новейшей железкой, что с «прослойкой-интерпретатором» для Wayne Kerr'a.

Собственно сабж. Какую структуру программы следует разработать чтобы иметь полную модульность - буквально до того, чтобы при появлении новой железки с новыми функциями и потребностью в новом гуе нужно было просто написать 5 строк (не буквально, нутыпонел)?


править только один конкретный модуль

в идеальном мире :) У нас вот такой х*ней как идеальное «проектирование проекта» (enjoy your recursion) любит страдать формальный архитектор... А давайте все на хранимках и все лулзыкомиты в схему базы только через ДБгерл... В итоге телодвижения ДБгерл отзываются в нескольких модулях сразу, хранимки хронически отстают от таблиц, а код сопряжения с базой приходится местами существенно переписывать: то она не спросясь алиасы введет, там где они невперлись, то простой селект заменит джойном через три промежуточных таблицы и кол другой процедуры... которой подавай строку параметров через точку с запятой, которую она парсит базой. А сделать просто, быстро и надежно - «это ж не Ъ-ынтерпрайзно» :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)
Ответ на: комментарий от ZuBB

Окей, прикидка. Обычно в боевых условиях идет 8-10 пьезоэлементов, на каждый где-то по 3-4 измерения. Итого в пределе 40. Примерно делают по 1000 точек. На стандартном delphi-tchart'е не лагает при скроле/зуме и пр. Есть второй проект-демонстрашка для другого прибора на Qt-qwt_plot. Тоже около двух тысяч точек, правда больше не показываем - идет что-то типа timeline'а. Не лагает.

А вообще кол-во данных, которые мы снимаем можно примерно так посчитать - скорость 115200, данные передаются в binary (float = 4 байта). Данные идут парами - float_X, float_Y. Канал забит под завязку почти всегда.

inn
() автор топика
Ответ на: комментарий от anonymous

Чушь. Единственно верный подход это:

1) Открываешь Eclipse

2) Пишешь код на Java

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.