на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Автоматизированное редактирование частиц в компьютерной графике
p align="left">Язык С++ был выбран мною по причине его высочайшей гибкости и, конечно же, высокой проработанности парадигмы объектно-ориентированного программирования. С применением именно этой парадигмы осуществлена реализация приложения. Приложение полностью построено на объектах C++ классов (в качестве исключения имеется несколько используемых C-функций), при этом широко используются концепции наследования, инкапсуляции и полиморфизма, mutable-члены данных, шаблонные классы и функции. Достаточно широко применяются шаблоны контейнеров из стандартной библиотеки шаблонов (STL), входящей в библиотеку C++. В то же время, ввиду достаточно высокой проработанности используемых в качестве базовых для приложения библиотек среды wxWidgets, отпала необходимость в создании сложных разветвлённых структур отношений родитель-потомок (наследования) на уровне кода разрабатываемого приложения. В основном, наследование свелось к созданию потомков для достаточно большого упорядоченного множества используемых стандартных компонентов wxWidgets.

1.5.3 wxWidgets

wxWidgets представляет собой набор библиотек для создания легко переносимых приложений для платформ Win32, Mac OS X, GTK+ и других (X11, Motif, WinCE). Он предоставляет в распоряжение разработчика единый, простой в использовании API. wxWidgets можно использовать с С++, Python, Perl, C#. В отличие от некоторых других межплатформенных средств разработки, wxWidgets позволяет создавать естественно-выглядящие на любой из перечисленных платформ приложения, так как использует собственные графические элементы платформы, вместо их эмуляции. wxWidgets - хорошо продуманный, бесплатный, расширяемый продукт с открытым исходным кодом, что делает его весьма полезным при разработке приложений. Более подробная информация доступна на официальном сайте [14], а также в прочих источниках Интернета.

Ввиду того обстоятельства, что в будущем запланировано расширение приложения в целях реализации возможности использования его под Mac OS, для разработки уже первой версии потребовалось использование межплатформенных SDK, таких как wxWidgets или Qt. Первый был выбран ввиду его простоты и доступности.

1.5.4 FreeImage

Бесплатная библиотека с открытым исходным кодом, FreeImage используется для работы с данными изображений. FreeImage предоставляет разработчику удобные средства для загрузки изображений различных форматов и унифицирует работу с ними. Это библиотека с открытым исходным кодом, поддерживающая работу с такими популярными сегодня графическими форматами, как PNG, BMP, JPEG, TIFF и другими. Для реализации отдельных аспектов (оговоренных в последующих главах) приложения возникла необходимость использования подобного рода средств. FreeImage была выбрана мною, так как библиотека довольно проста в использовании, быстра, поддерживает многопоточное использование, совместима с всеми 32-х разрядными версиями Windiws, кроме того, поддерживает межплатформенную разработку (для Linux и Mac OS X). FreeImage может использоваться с С, С++, VB, C#, Delphi, Java, а также в скриптах на Perl, Python, PHP и других. За более полной информацией можно обратиться к официальному сайту проекта [15].

1.5.5 TinyXML

TinyXML - простой, небольшой, бесплатный С++ анализатор XML. TinyXML - одно из многих средств, используемых для анализа XML документов, обладает удобным и компактным внешним интерфейсом, не требует специальных знаний и длительного обучения для использования. Использовано в реализации некоторых функций приложения для работы с файловой системой. Официальный сайт проекта содержит дополнительную информацию [16].

1.5.6 Microsoft Office Visio 2003

Microsoft Office Visio 2003 -- редактор диаграмм и блок-схем для Windows. Использует векторную графику для создания диаграмм.

Корпорация Visio была создана в 1990 г., и она довольно быстро стала известна на рынке благодаря одноименному программному продукту. По данным корпорации, в 2000 г. его применяли около четырех млн. пользователей в 60 странах мира.

Microsoft Visio 2000, сменивший предыдущую версию Visio 5.0, - первый продукт, вышедший под совместной торговой маркой Microsoft и Visio. В технологическом и организационном плане Visio Corporation стала работать в составе группы Microsoft по приложениям делового назначения.

Пользовательский интерфейс Microsoft Visio 2003 выполнен в традиционном стиле продуктов Microsoft Office.

Для построения диаграмм и схем пользователь может применять два основных приема: рисовать вручную и автоматически формировать изображение на основе некоторых данных с помощью широкого набора мастеров.

Например, если вы хотите нарисовать блок-схему алгоритма, вычисляющего факториал, то следует выбрать в наборе готовых шаблонов. Далее нужно просто перетаскивать мышью необходимые графические объекты на рисунок, вставлять в них нужный текст, соединять объекты. При этом можно установить режим автоматического связывания объектов. Кроме набора обычных свойств (текст, оформление, цвет и пр.) каждому объекту может быть приписана одна или несколько гиперссылок.

Отметим также, что кроме файлов Visio (.vsd) можно использовать достаточно широкий спектр других файлов, в том числе графических и .html.

Конечно, это далеко не все возможности стандартного пакета Microsoft Visio 2003. Отметим только, что кроме различных диаграмм и графиков он позволяет, например, работать с простейшими географическими картами.

Для специалистов информационных отделов и разработчиков ПО особый интерес представляют функции пакета Microsoft Visio Professional, такие как построение схем компьютерных сетей, диаграмм баз данных, структурной схемы программ и карт Web-сайтов. При моделировании баз данных разработчик может формировать описание непосредственно в среде пакета или импортировать данные из существующих БД.

Microsoft Visio 2003 представляет большой набор средств для визуального моделирования программ - здесь можно использовать практически все распространенные типы диаграмм, описываемые с помощью Unified Modeling Language (UML) версии 1.2. При этом поддерживаются языки программирования C++, Visual Basic и Java.

После установки Microsoft Visio 2003 на компьютер в средствах разработки, в частности в Microsoft Visual Studio 2005, автоматически прописываются ссылки на пакет. С помощью команды Reverse Engineer UML Model можно автоматически сформировать описание текущего приложения, которое отображается в виде иерархического дерева в окне UML Navigator. Надо сказать, что в данном случае мы получаем детальную информацию о программе (включая описания внутренних переменных процедуры).

Это весьма краткий обзор функций Microsoft Visio 2003. Для получения более полной информации можно воспользоваться ресурсами из официального источника [13].

2. Проектирование и реализация задачи

2.1 Выбор формальных моделей

Любой проект - это уникальный процесс, в ходе выполнения которого получают уникальный продукт. Таким образом, для разработки продукта в проекте, скорее всего, должен применяться уникальный процесс. Оптимальным же решением при этом является использование одной из обобщенных, проверенных на практике методик, адаптировав ее для конкретного проекта. Как правило, всегда есть возможность выбора среди нескольких начальных жизненных циклов.

На протяжении десятилетий теоретических исследований и практических разработок было разработано множество различных моделей жизненных циклов ПО. Можно выделить наиболее известные из них: каскадная модель, V-образная модель, модель быстрого прототипирования, модель быстрой разработки приложений (RAD), инкрементная модель. Каждая из них хорошо подходит для проектов определённого типа, однако применение её в иных случаях может привести к неудаче (большим затратам ресурсов), поэтому к выбору необходимо отнестись очень внимательно.

Для разработки редактора “Easy Particles” за основу модели жизненного цикла была взята модель быстрого прототипирования. В отличие от каскадной модели, в основе неё лежит не последовательная линейная структура, а цикловая, поэтому обратная связь между фазами (в целях исправления какой-либо проблемы или недостатка, например) не приводит к значительному увеличению затрат и сбою в графике. Использование V-образной модели не имело смысла, так как она применяется при разработке программного продукта командой разработчиков, и особо ориентирована на верификацию и аттестацию продукта. Обособленному разработчику было бы весьма непросто справиться с параллельными событиями, возникающими при её использовании. К тому же, как и в каскадной модели, в ней не учтены итерации между фазами. Что касается инкрементной модели жизненного цикла, она не могла быть использована, так как определение полной функциональной системы в ней должно осуществляться в начале жизненного цикла, а также, поскольку в данной модели создание одних модулей завершается значительно раньше других, необходимости в четко определенных (также в начале жизненного цикла) интерфейсах. Это недопустимые условия для разработки редактора, требования к функциональности, поддерживаемым платформам, пользовательскому интерфейсу были изменены несколько раз в процессе разработки.

В общем, необходимость применения структурной эволюционной модели быстрого прототипирования в данном случае выражена достаточно явно. Признаками тому служат следующие факторы:

- полные требования не известны заранее и не постоянны;

- существует потребность в разработке достаточно сложных пользовательских интерфейсов;

- осуществляются временные демонстрации;

- требуется уменьшить неточности в определении требований; т.е. уменьшается риск создания системы, которая не имеет никакой ценности для заказчика;

- разработчики не уверены в том, какую оптимальную архитектуру или алгоритмы следует применять;

- системные интерфейсы усложнены;

Создание модели быстрого прототипирования было бы невозможным без работ выдающегося Фреда Брукса (“The Mythical Man-Month”, "No Silver Bullet, the Essence and Accidents of Programming"). Его идеи, изложенные в данных книгах, сегодня столь же актуальны, как и в 1975 году. Технологии радикально изменили мир, но многие недостатки менеджмента программных проектов по-прежнему те же. Десятки лет тому назад Брукс сказал:

"В большинстве проектов первая построенная система едва ли пригодна к употреблению. Она может быть слишком медленной, слишком объемной, неудобной в использовании или обладать всеми тремя перечисленными недостатками. Нет другого выбора, кроме как начать с самого начала, приложив все усилия, и построить модернизированную версию, в которой решались бы все три проблемы...

В случае, когда в проекте используется новая системная концепция или новая технология, разработчик вынужден построить систему, которой впоследствии не воспользуется, поскольку даже при наилучшем планировании невозможно предвидеть достижение нужного результата”.

Эти слова замечательно передают сущность рассматриваемой модели, её основную идею - построение экспериментальных моделей реального приложения, иными словами - прототипирование.

Согласно Джону Коннэллу и Линде Шафер, эволюционным ускоренным прототипом является "легко поддающаяся модификации и расширению рабочая модель предполагаемой системы, не обязательно представляющая собой все свойства системы, благодаря которой пользователи данного приложения получают физическое представление о ключевых частях системы до ее непосредственной реализации; это -- легко создаваемая, без труда поддающаяся модификации, максимально расширяемая, частично заданная рабочая модель основных аспектов предполагаемой системы".

Таким образом, прототип -- это эквивалент экспериментальной модели или "макета" в мире аппаратного обеспечения.

Выполнение эволюционных программ при разработке редактора, как и должно, происходило в рамках контекста плана, направленного на достижение предельно высокой производительности. При этом для заказчика был очевиден этот факт, что во многом облегчило работу. Заказчик принимал активное участие в течение всего процесса разработки, что в целом является одним из главных условий успешности реализации метода прототипирования.

Схему метода можно изобразить следующим образом:

Рисунок 2.1 - Метод быстрого прототипирования

Начало жизненного цикла разработки помещено в центре эллипса. В соответствии со схемой, базовый анализ (на основе предварительных требований) необходимых свойств и функций редактора был произведён на начальной стадии разработки (и жизненного цикла в целом). Заказчик и программист совместно определили требования и спецификации для важнейших частей системы. В результате был получен документ, описывающий в общих чертах примерные графики и результативные данные.

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

Модель была продемонстрирована заказчику с целью получения предложений по ее усовершенствованию. Заказчик оценил первичный прототип и совместно с программистом определил проблемы, над устранением которых необходимо было работать в рамках разработки последующего прототипа системы. В основном, изменения коснулись пользовательского графического интерфейса редактора, функциональность ядра системы полностью удовлетворила пользователя на базе первичного прототипа (за исключением небольших ошибок, обнаруженных и исправленных впоследствии).

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.