'

Шаблонное проектирование информационных систем

Понравилась презентация – покажи это...





Слайд 0

1 Исполнитель: Кирьянов Егор Михайлович, ПИ-001 Научный руководитель: Дрыгин К.Ю., ст. преп. Шаблонное проектирование информационных систем


Слайд 1

2 Проблемы проектирования программного обеспечения Затруднено: повторное использование кода сопровождения и развитие использование сторонними разработчиками Неудачное проектирование Сложная, неэффективная структура


Слайд 2

3 Базовые шаблоны


Слайд 3

4 Шаблон «Адаптер»: приводит интерфейс класса к требуемому виду


Слайд 4

5 Шаблон «Состояние»: позволяет динамически изменить поведение, сохраняя интерфейс


Слайд 5

6 Задачи для решения с использованием шаблонов проектирования Библиотека универсального доступа к файлам (file, http) Система управления приложениями (executable, service) Работа с внешней системой распознавания речи (Philips SpeechPearl)


Слайд 6

7 Библиотека универсального доступа к файлам Работа с файлами на локальном компьютере и на http-сервере Использование различных режимов доступа (R, A, RW, W+) Поддержка буферизации чтения и записи Возможность чтения данных блоками фиксированного размера Работа через proxy-сервер Поддержка режима keep-alive


Слайд 7

8 Система универсального доступа к файлам CFileShell p; // Связывание файла p.assignFile("http://www.ya.ru"); // Установка параметров p.setParam("MaxResponseProcessWait","1000"); p.setParam("ProxyServer", "217.116.156.33"); p.setParam("ProxyPort", "3128"); // Файл открывается p.open(READ_WRITE); p.setMaintainOpen(false); std::string content=""; // Чтение содержимого файла p.read(content);


Слайд 8

9 Библиотека универсального доступа к файлам – пример работы CFileShell fShell; fShell.setParam("MaxResponseProcessWait","1000"); fShell.setMaintainOpen(false); std::string content=""; // Указывается путь к файлу fShell.assignFile("http://www.ya.ru"); // Файл открывается fShell.open(READ_WRITE); // Чтение содержимого fShell.read(content); // Файл закрывается fShell.tear(); // Открывается локальный файл fShell.assignFile(“C:/boot.ini"); fShell.open(READ_WRITE); fShell.read(content);


Слайд 9

10 Диаграмма классов библиотеки доступа Фабрика классов – создает один или несколько объектов, принадлежащих заданным семействам


Слайд 10

11 Чтение файлов Главная страница поисковой системы Яндекс (http://www.ya.ru)… …и файл boot.ini


Слайд 11

12 Система унифицированного управления приложениями Запуск, остановка или завершение приложения Определение состояния приложения Перенаправление стандартных потоков ввода и вывода Использование системы зависимостей Предоставление web-интерфейса для удаленного управления Возможность работы в режиме консольного приложения или сервиса


Слайд 12

13 Диаграмма классов системы Фабрика классов Одиночка – гарантирует создание не более одного экземпляра класса и обеспечивает глобальный доступ к нему


Слайд 13

14 Механизм удаленного управления приложениями HTTP-сервер Клиент Web-интерфейс Система управления приложениями


Слайд 14

15 Web-интерфейс системы управления Web-интерфейс позволяет управлять приложениями на удаленной машине


Слайд 15

16 MachineSettings cst, st; st._coreSettings._exeName="C:\\HelloWorld\\SystemSpecific\\Debug\\SystemSpecific.exe"; st._coreSettings._homeDir="C:\\HelloWorld\\SystemSpecific\\Debug"; st._type=WIN32_APP; st._coreSettings._stopTimeout=500; st._coreSettings._feedback=TextReceiver; st._captureIn=true; st._captureOut=true; st._coreSettings._name="SystemSpecific"; cst._coreSettings._name="ClipSrv"; cst._type=WIN32_SERVICE; cst._coreSettings._exeName="ClipSrv"; cst._dependency.push_back("SystemSpecific"); MachineSet * mSet=Storage::getInstance()->getMachineSet(); mSet->addMachine(st); mSet->addMachine(cst); StrList failed; unsigned int started=0; started=mSet->startAll(failed);


Слайд 16

17 Работа отдельного канала системы распознавания речи Philips SpeechPearl


Слайд 17

18 Интерфейс работы с системой распознавания речи (ASR) Унификация интерфейса к системам ASR разных производителей Облегчение работы по интеграции ASR в прикладные системы Преобразование некоторых синхронных функций API SpeechPearl в асинхронные


Слайд 18

19 Диаграмма классов Фасад скрывает сложное внутреннее устройство системы за простым интерфейсом Шаблонный метод – определяет структуру алгоритма, реализуя некоторые его этапы в производных классах Одиночка


Слайд 19

20 Пример работы unsigned int opened=0; SRMachine *srMachine=new SRMachine; // Инициализация системы – открываются 3 канала if (srMachine->init("C:\\Open\\ConfigPrm\\Log\\client.prm", "C:\\Open\\ConfigPrm\\Log", opened, WCallback, 3)!=DS_SUCCESS) … ValueSet resources; resources.putValue(SHADE_REQUESTED_RESOURCE, “test”); // Запрашивается ресурс распознавания “test” srMachine->getResource(resources); resources.getValue(SHADE_ENGINE_INDEX, firstId); … // Аудиофайл отправляется на распознавание srMachine->putFile(firstId, "Own/gloomy.wav"); … RecognitionResult r; // Получение и печать результата распознавания srMachine->getLastResult(firstId, r) printRes(r); … // Освобождение запрошенного ресурса srMachine->releaseResource(resources); … delete srMachine;


Слайд 20

21 Результаты работы Созданы: Библиотека универсального доступа к файлам Система унифицированного управления приложениями Интерфейс работы с системой распознавания речи SpeechPearl


Слайд 21

22 Преимущества использования шаблонов проектирования Упрощение развития и сопровождения программ Аккумуляция опыта разработчиков Единая терминология


Слайд 22

23 Презентация «Шаблонное проектирование информационных систем» Докладчик – Кирьянов Е. М., ПИ-001 Научный руководитель – Дрыгин К.Ю. Вопросы?


×

HTML:





Ссылка: