Автоматизация сборки и модификации разнородной компьютерной документации: разработка графического интерфейса приложения и формата файлов проекта. Исполнитель: Утяшева И.А. Научный руководитель: к.ф.-м.н. Винокур В.В. Тема магистерской диссертации:
Задача Предоставлена библиотека SomeToCM, осуществляющая модификацию и конвертацию документации форматов CHM и HTML в формат CHM. Разработать: 1.Графический интерфейс для данной библиотеки. 2.Формат файлов проекта.
Проектирование интерфейса 1 этап: Описаны сценарии работы пользователей с приложением. Одно из достоинств использования их: проблема юзабилити на ранней стадии изучена. 2 этап: Построены прототипы интерфейса приложения: бумажные протипы и прототипы, построенные с помощью Microsoft Expression Blend + SketchFlow.
Реализация графического интерфейса Выбран способ организации графического интерфейса приложений в отдельных окнах (Single document interface) в силу простоты реализации его и подходящей модели поведении. Графический интерфейс построен на очень простом и одновременно очень мощном паттерне проектирования клиентских приложений DataModel-View-ViewModel.
Реализация графического интерфейса Средства реализации: Windows Presentation Foundation (WPF) графическая (презентационная) подсистема в составе.NET Framework(начиная с версии 3.0). XAML (eXtensible Application Markup Language) основанный на XML язык разметки для декларативного программирования приложений, разработанный Microsoft. Microsoft Expression Blend программа от компании Microsoft, предназначенная для разработки дизайна web интерфейсов и графических настольных приложений.
Model View ViewModel (MVVM) Модель (Model) отвечает за бизнес-логику и управление состоянием объекта. Представление (View) отвечает только за отображение элементов графического интерфейса. ViewModel не содержит ссылок на Представление! Cвязывания между View и ViewModel становятся возможными потому, что экземпляр ViewModel задается в View как DataContext.
Базовый класс для представлений Все наследуемые классы представляют собой отдельные представления. Благодаря наследуемому интерфейсу INotifyPropertyChanged представления оповещают модели данных об изменениях и событиях. IActivable позволяет представлению задавать поведение при добавлении и удалении из визуального дерева.
Каналы связи представлений С помощью интерфейса IMessageBroker и его реализацией представления могут обмениваться сообщениями между собой. Метод GetChannel () – установка канала связи. Подписка на канал связи: метод Subscribe() объекта канала. Для передачи информации в канал: вызывать метод OnNext(value).
Каналы связи представлений Канал связи это класс, который наследуется от класса Subject, где Subject – это класс из библиотеки реактивных расширений Rx Framework. Rx Framework – набор библиотек для работы с коллекциями данных.
Представления В результате работы разработаны Представления: AdditionDirectoriesView; AdditionFilesView; CommonSettingsView; ContentsModifiersView ; Table Of Contents Tags; ImportFromChm, ImportFromHTML; TopicFilters; Templates ; Index And Toc Files;
Формат файлов проекта Если процедуру сборки документации необходимо проводить неоднократно, тогда её целесообразно автоматизировать. Для этой цели разработан файл проекта. В качестве формата описания файлов проекта был выбран XML.
Формат файлов проекта
Проведен анализ предметной области. Описаны сценарии работы пользователей с графическим интерфейсом. Построен прототип графического интерфейса приложения. Реализован графический интерфейс пользователя для библиотеки, осуществляющей модификацию и конвертацию документации форматов CHM и HTML в формат CHM. Разработан формат файлов проекта, для конфигурирования работы библиотеки SomeToChm