- •Введение
- •1 Анализ предметной области
- •1.1 Анализ задач допускового проектирования
- •1.2 Анализ средств моделирования выходных характеристик рэа
- •1.3 Анализ возможностей сапр в задачах допускового проектирования.
- •1.4 Анализ языков представления математических формул
- •1.4.1 Язык разметки математических текстов MathMl
- •1.4.2 LaTeX – типографическая разметка
- •1.6 Выводы к разделу 1
- •2 Анализ програмных средств
- •2.1 Обзор особенностей выбранного языка программирования
- •1.5 Функциональные требования
- •2.2 Достоинства платформы .Net
- •2.3 Недостатки платформы .Net
- •2.4 Особенности среды разработки
- •2.5 Использование сторонних библиотек
- •2.6 Выводы к разделу 2
- •3 Основные решения по реализации компонентов системы
- •3.1 Реализация общей архитектуры программной системы
- •3.2 Библиотека формирования математических моделей
- •3.2.1 Разработка языка представления математических моделей
- •3.2.2 Разработка основных алгоритмов формирования мм
- •3.2.3 Взаимодействие компонента формирования мм с внешними системами
- •3.2.4 Разработка диаграмм классов
- •3.3 Библиотека расчета допусков
- •3.3 Библиотека обмена данными с внешними источниками
- •3.4 Выводы к разделу 3
- •4 Руководство программиста
- •4.1 Назначение и условия применения программы
- •4.2 Характеристика программы
- •4.3 Обработка ошибочных ситуаций
- •5 Руководство пользователя
- •5.5 Сообщения
- •6 Экономико-организационная часть
- •6.1 Введение
- •6.2 Организационно-экономическая часть
- •6.2.1 Планирование разработки программного изделия
- •6.2.2 Определение затрат на разработку программы
- •6.3 Оценка экономической эффективности
- •6.4 Анализ технико-экономических показателей
- •7 Охрана труда и безопасность при чрезвычайных ситуациях
- •7.1 Анализ потенциальных опасностей
- •7.2 Мероприятия по обеспечению безопасности
- •7.3 Мероприятия по производственной санитарии и гигиене труда
- •7.3 Мероприятия по пожарной безопасности
- •7.4 Мероприятия по обеспечению безопасности в чрезвычайных ситуациях
- •Перечень ссылок
- •Приложение а Техническое задание
- •3 Листа
- •3 Листа
- •Приложение б Спецификация Спецификация
- •Приложение в Описание программы
- •В.4 Требования к составу и параметрам технических средств
- •Приложение г Текст программы
- •15 Листов
- •Приложение д Слайды презентации
1.5 Функциональные требования
Согласно техническому заданию на дипломный проект необходимо разработать программную систему, которая позволяет решать следующие задачи:
Осуществление ввода математических формул в текстовом формате на специализированом языке.
Визуализация формул в графическом виде на математически-ориентированном языке.
В языке должны быть реализованы возможность ввода следующих типов математических конструкций:
арифметические операторы;
элементарные функции (sin, cos, tan, pow, abs, sqrt, th, sh, ch, log);
операторы цикла;
функции взятия частных производных;
представление математической модели в виде нескольких математических формул.
Вычисление значений выходных характеристик радиоэлектронных устройств по заданной математической модели.
Возможность передачи значений выходных характеристик в программный модуль для расчета допусков.
Реализация алгоритмов анализа и синтеза допусков с использованием заданной математической модели.
Обработка алгоритмами синтеза допусков данных полученных от сторонних САПР.
Обеспечить возможность сохранения проделанной работы.
1.6 Выводы к разделу 1
Проанализировав задачи допускового проектирования, были сделаны следующие выводы:
Решение задач допускового проектирования для радиоаппаратуры происходит путем проведения серий экспериментов над их математическими моделями заданных математическим описаниям или их представлениями средствами сторонних САПР.
Для решения задач допускового проектирования необходимо обеспечить взаимодействие алгоритмов расчетов допусков, математических моделей и сторонних САПР РЭА.
Успешное решение задач допускового проектирования способно в значительной мере уменьшить затраты на разработку проектированного радиоэлемента.
В ходе анализа множества существующих САПР РЭА было выявлено, что ни в одной из них не реализовано решение задач синтеза допусков. Таким образом, система специализированая на решении задач допускового проектирования является уникальным востребованным продуктом.
2 Анализ програмных средств
2.1 Обзор особенностей выбранного языка программирования
При проектировании системы выбор языка программирования является важным фактором, влияющим на успех всего проекта. Большинство существующих языков в зависимости от своих специфических особенностей имеют четкое распределение по назначениям. Так языки низкого уровня ориентированы на разработку высокопроизводительных приложений, а кроссплатформенные более позиционируются на мобильные устройства т.к. написанное с их помощью программное обеспечение легко портируется на постоянно обновляющиеся мобильные платформы без больших ресурсных затрат. У каждого языка есть свои плюсы и недостатки.
При выборе языка программирования для разрабатываемого проекта я выбрал три обязательных требования, которым данный язык должен удовлетворять:
высокая производительность;
устойчивость к сбоям;
легкость внесения изменений в код, читабельность.
Одним из главных отличий среди языков, применяемых в научном программировании, была производительность. Компиляторы и генераторы кода часто считаются факторами, ограничивающими производительность, но это утверждение не вполне корректно.
Например, наиболее распространенные компиляторы C++ хорошо справляются с генерацией и оптимизацией кода. Здесь есть некоторые тонкости, но обычно они не так важны, как эффективность кода. Скажем, в C++ следует избегать создания слишком большого количества временных объектов, тем более что в этом языке очень легко неосознанно создать массу безымянных временных объектов. Поэтому лучше использовать шаблоны выражений, позволяющие отложить реальные вычисления математического выражения до его присвоения. В результате удается избежать больших потерь из-за абстракций в период выполнения.
Нельзя сказать, что единственный фактор, влияющий на производительность, – особенности языка. При сравнении быстродействия языков на самом деле сравнивается мастерство создателей компиляторов, а не сами языки [13].
Язык С++ хорошо справляется с задачами требующими высокой производительности, однако по сравнению с более современными аналогами, имеет ряд недостатков: недостаточная отказоустойчивость, привязка к железу, необходимость следить за сборкой мусора и распределением памяти.
Таким образом, для реализации моего проекта был выбран другой язык программирования – С#. Это объектно-ориентированный язык программирования построенный на платформе .NET, обладающий современными технологиями программирования и схожим синтаксисом с языком С++ .
