Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание сложных программ

284
20 августа 2006 года
michael_is_98
587 / / 25.02.2005
Здравствуйте!
У меня вопрос к специалистам, имеющим опыт разработки структурно сложных программных продуктов.
Имеется некий набор подпрограмм, функций (вычислительного характера), для которых необходимо создать интерфейс пользователя. Понятно, что при таком подходе набор этих функций (который может не зависеть от версии ОС, компилятора Си++) будет максимально отделен от интерфейса (который "привязан" к версии ОС, компилятора, библиотекам). Выполнение функций может занять длительное время, поэтому желательно, чтобы интерфейс "работал" в отдельном потоке, а выполняемая функция - в другом потоке или даже нескольких потоках.
Т.к. функции содержат в своем составе параметр - массив, необходимо дать возможность осуществлять пользователю ввод, чтение и сохранение табличных данных. Визуализация - одна из возможностей программного продукта.
Представив такую задачу становится ясно, что без жесткой ее структуризации, разчленению ее сложно осмыслить.
Представив, что выполнение подпрограмм пользователь будет осуществлять с помощью командной строки,я попытался выделить несколько одельных блоков (которые можно реализовать в виде классов) такой программы:
1) блок парсера применяется для чтение данных пользователя, хранящихся на диске, а также для чтения лексем, входящих в состав команд пользователя
2) блок таблицы символов - хранит пользовательские переменные вместе с их именем и описанием. Это могут быть те массивы данных (представленные в виде одно- двумерных массивов), которые пользователь создал в процессе работы или в результате выполнения какой-либо команды. Для чтения значения переменной (из файла) используется блок парсера. Также значение переменной может записываться в файл - в этом случае таблица символов должна по команде осуществить запись переменной в файл, имя которого совпадает с именем переменной
3) блок вычисления значения выражений - применяется совместно с блоком парсера и блоком таблицы символов для вычисления выражений
4) блок выполнения команд - используется совместно с вышеперечисленными блоками для запуска процедур совместно с истинными значениями переменных. Команды пользователь вводит в текстовое поле.

для реализации процедур чтения/записи предполагается использовать специальные функции, а для вывода графики - блок вывода графики.
Кроме того, для редактирования данных предполагается использовать специальный компонент - что-то вроде FlexGrid'a.
Для удобства пользователя могут быть созданы специализированные диалоги, параметры которых задаются пользователем. После закрытия диалога действия автоматически переводятся в текстовое представление, пригодное для выполнения блоком выполнения команд

Исходя из всего сказанного возникает вопрос - с помощью каких средств можно описать структуру такого программного продукта во всех ее деталях. Для того чтобы еще до разработки описать все требуемые структуры и блоки.
Какие промежуточные блоки могут потребоваться для реализации программного продукта.? Является ли структура подобного продукта верной и есть ли в ней недостатки?

Хотелось бы увидеть конкретные примеры... Ведет ли в сети кто-то подобные проекты, в которых бы могли участвовать все желающие?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог