Разработка программного обеспечения для моделирования комбинационных схем

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    813,83 Кб
  • Опубликовано:
    2016-02-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программного обеспечения для моделирования комбинационных схем















КУРСОВОЙ ПРОЕКТ

по курсу: Системное программное обеспечение

на тему: Разработка программного обеспечения для моделирования комбинационных схем

Содержание

Введение

. Постановка задачи

. Теоретические сведения

.1 Обзор.NET и CLR

.2 Язык C#

.3 САПР

. Техническое задание

.1 Наименование и область применения

.2 Основание для разработки

.3 Назначение разработки

.4 Требования к программе

.4.1 Требования к функциональным характеристикам

.4.2 Требования к надежности

.4.3 Условия эксплуатации

.4.4 Требования технических средств

. Разработка алгоритма работы программы

.1 Структура программы

.2 Описание алгоритма программы

. Описание программы

.1 Пособие оператора

Заключение

Список используемых источников

Введение

Заданием для данной курсовой работы является разработка программного обеспечения для моделирования простых комбинационных логических схем. Такой класс программ называют EDA.Design Automation (EDA, автоматизация проектирования электронных приборов) - комплекс программных средств для облегчения разработки электронных устройств, создания микросхем и печатных плат.

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

Системы автоматизации проектирования электроники могут иметь возможность моделирования разрабатываемого устройства и исследования его работы до того, как оно будет воплощено в аппаратуру.

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

Дата выдачи задания: 05.03.2014

1. Постановка задачи

Согласно полученного задания необходимо реализовать программное обеспечение для моделирования простых логических схем. Для реализации будут необходимы знания дискретной математики, навыки работы с графикой и вычисления пересечений геометрических фигур. Для выполнения поставленной задачи будут спроектированы абстрактная модель данных и графический интерфейс пользователя. Написание программы будет осуществляться на языке программирования С# с использованием Microsoft.NET Framework 4. В результате проведённой работы необходимо получить работоспособный программный продукт.

2. Теоретические сведения

2.1 Обзор.NET и CLR

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

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

Microsoft.NET - платформа.Framework - инфраструктура платформы Microsoft.NET. Включает следующие основные компоненты: Common Language Runtime (CLR) и.NET Framework Class Library (.NET FCL).(Common Language Specification) - общая спецификация языков программирования. Это набор конструкций и ограничений, которые являются руководством для создателей библиотек и компиляторов в среде.NET Framework. Библиотеки, построенные в соответствии с CLS, могут быть использованы из любого языка программирования, поддерживающего CLS. Языки, соответствующие CLS (к их числу относятся языки Visual C# 2.0, Visual Basic, Visual C++), могут интегрироваться друг с другом. CLS - это основа межъязыкового взаимодействия в рамках платформы Microsoft.NET.(Common Language Runtime) - Среда Времени Выполнения или Виртуальная Машина. Обеспечивает выполнение сборки. Основной компонент.NET Framework. Под Виртуальной Машиной понимают абстракцию инкапсулированной (обособленной) управляемой операционной системы высокого уровня, которая обеспечивает выполнение (управляемого) программного кода.

Управляемый код - программный код, который при своем выполнении способен использовать службы, предоставляемые CLR. Соответственно, неуправляемый код подобной способностью не обладает. Об особенностях управляемого кода можно судить по перечню задач, решение которых возлагается на CLR:

Управление кодом (загрузка и выполнение).

Управление памятью при размещении объектов.

Изоляция памяти приложений.

Проверка безопасности кода.

Преобразование промежуточного языка в машинный код.

Доступ к метаданным (расширенная информация о типах).

Обработка исключений, включая межъязыковые исключения.

Взаимодействие между управляемым и неуправляемым кодами (в том числе и COM-объектами).

Поддержка сервисов для разработки (профилирование, отладка и т.д.).

Т.е, если говорить в общем, то CLR - это набор служб, необходимых для выполнения управляемого кода.

.2 Язык C#

Синтаксис C# очень выразителен, но прост в изучении. Все, кто знаком с языками C, C++ или Java с легкостью узнают синтаксис с фигурными скобками, характерный для языка C#. Разработчики, знающие любой из этих языков, как правило, смогут добиться эффективной работы с языком C# за очень короткое время. Синтаксис C# делает проще то, что было сложно в C++, и обеспечивает мощные возможности, такие как типы значений Nullable, перечисления, делегаты, лямбда-выражения и прямой доступ к памяти, чего нет в Java.C# поддерживает универсальные методы и типы, обеспечивая более высокий уровень безопасности и производительности, а также итераторы, позволяющие при реализации коллекций классов определять собственное поведение итерации, которое может легко использоваться в клиентском коде. Выражения LINQ делают строго типизированный запрос очень удобной языковой конструкцией.

Как объектно-ориентированный язык, C# поддерживает понятия инкапсуляции, наследования и полиморфизма. Все переменные и методы, включая метод Main- точку входа приложения - инкапсулируются в определения классов. Класс может наследовать непосредственно из одного родительного класса, но может реализовывать любое число интерфейсов. Для методов, которые переопределяют виртуальные методы в родительском классе, необходимо ключевое слово override, чтобы исключить случайное повторное определение.

В дополнение к основным описанным объектно-ориентированным принципам, язык C# упрощает разработку компонентов программного обеспечения. Благодаря нескольким инновационным конструкциям языка, в число которых входят следующие:

          Инкапсулированные сигнатуры методов, называемые делегатами, которые поддерживают безопасные уведомления о событиях.

          Свойства, выступающие в роли методов доступа для закрытых переменных-членов.

          Атрибуты с декларативными метаданными о типах во время выполнения.

          Встроенные комментарии XML-документации.

          LINQ, предлагающий встроенные возможности запросов в различных источниках данных.

Язык C# поддерживает даже указатели и понятие "небезопасного" кода для тех случаев, когда прямой доступ к памяти имеет крайне важное значение.

Процесс построения C# по сравнению с C и C++ прост и является более гибким, чем в Java.Нет отдельных файлов заголовка, а методы и типы не требуется объявлять в определенном порядке.В исходном файле C# может быть определено любое число классов, структур, интерфейсов и событий.

.3 САПР

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

Типовая САПР для проектирования электронных схем включает такие примитивы, как логический элемент, порт, проводник.

Логические элементы - устройства, предназначенные для обработки информации в цифровой форме (последовательности сигналов высокого - «1», низкого - «0» и безразличного - «х» уровней в двоичной логике). Физически логические элементы могут быть выполнены механическими, электромеханическими (на электромагнитных реле), электронными (на диодах и транзисторах), пневматическими, гидравлическими, оптическими и др. Логические элементы выполняют логическую функцию (операцию) над входными сигналами (операндами, данными). Для изображения логических элементов применяются две основные формы: зарубежная и отечественная. Отечественная форма изображает логические вентили в форме прямоугольников с обозначением выполняемой операции в виде символа. В данной работе будет использована отечественная форма.

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

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

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

интерфейс алгоритм программа электрический

3. Техническое задание


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

.2 Основание для разработки

Основанием для разработки данного программного продукта послужило отсутствие достаточной технической базы для изучения разделов дискретной математики и прикладных разделов цифровых автоматов. Существующие программы, отвечающие требованиям имеют высокую цену, например «Proteus PCB Design Starter Kit» - 248 долларов США. Таким образом, данный продукт позволит сэкономить значительные средства для студентов.

.3 Назначение разработки

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

3.4 Требования к программе

.4.1 Требования к функциональным характеристикам

Программа должна позволять задание и моделирование логических схем. Комбинационные схемы задаются в виде набора входных и выходных контактов, логических элементов (AND, NAND, OR, NOR, XOR, XNOR, NOT) и связей между ними. Необходимо реализовать алгоритм трассировки линий межэлементных соединений с возможностью дальнейшего удаления. Нужно реализовать возможность подключения линии к входам и выходам элементов. Моделирование заключается в изменении значений на входах (по двойному щелчку мышкой). При этом выполняется распространение сигнала по всем линиям межсоединений с изменением отображения линии и вычисление значений внутренних сигнальных соединений. Количество входных и выходных контактов - произвольное, количество информационных входов логических элементов должно быть от 2 до 8.

3.4.2 Требования к надежности

Надежное функционирование программы должно быть обеспечено надлежащей обработкой критических ситуаций. Входные данные должны контролироваться. Для элементов количество контактов должно быть ограниченным: для бинарных операций - от 2 до 8, для унарных - 1. У портов начальное значение должно меняться только для входов.

.4.3 Условия эксплуатации

Программа будет корректно работать при температуре помещения от плюс 5 до плюс 35 °C при относительной влажности 90 % и атмосферном давлении 762 мм.рт.ст., поскольку такие условия приблизительно соответствуют условиям эксплуатации современных компьютеров непромышленного исполнения.

3.4.4 Требования к составу и параметрам технических средств

К вычислительной машине предъявляются следующие требования:

1. Процессор: 233 МГц или выше

2. Оперативная память: 128 МБ или выше

3. Видеоадаптер и монитор: Super VGA (800×600)

4. Свободное место на жёстком диске: 1,5 ГБ или больше

5. Оптические накопители: CD-ROM (требуется для установки)

6. Устройства взаимодействия с пользователем: Клавиатура и мышь

Для успешного выполнения программы, необходима операционная система семейства Microsoft Windows версии Windows 7 или более поздней с установленной платформой Microsoft.NET Framework 4 или выше.

4. Разработка алгоритма работы программы

.1 Структура программы

Разработанная программа имеет модульную структуру. На самом верхнем уровне созданы несколько пространств имён (см. табл.4.1).

Таблица 4.1 - Пространства имён проекта.

Название

Описание

Содержание

SchemX

Общее пространство имён всего проекта. Содержит точку входа программы.

Program, Contoller

SchemX .Model

Абстрактная модель логических элементов, образующих древовидную иерархию.

Gate, AND, OR, NOR, NAND, XOR, XNOR, NOT, Pin, SourcePin, ResultPin, Wire

SchemX .View

Графическое представление содержимого модели.

PrimitivePaint


Так как данный курсовой проект разрабатывался командой из трех человек, обязанности были разделены. Мне необходимо реализовать статический класс PrimitivePaint, который предоставляет возможность адресовки интерфейса и элементов схемы, используя объектную модель и класс рисования объектов. В таблице 4.2 представлены основные методы, используемые в данном классе. В таблице 4.3 представлены поля структуры используемые в данном классе.

Таблица 4.2 - Основные методы класса Primitive Paint

Прототип метода

Назначение

public static void draw(Gate data, Graphics graphics)

Предоставляет возможности отрисовки элемента модели предметной области data в графическом контексте graphics

public static bool isSelect(Gate data, Point coord)

Определяет был ли выделен элемент комбинационной схемы data после нажатия кнопки мыши в точке coord

public static connectPin inPinRegion(Gate gate, Point mouseCoord, Graphics graphics)

Определяет наведена ли мышь, находясь в координатах точки mouseCoord на один из входных или выходных контактов элемента gate. Если мышь наведена на контакт на нем отрисовывается индикатор в графическом контексте graphics, а ссылка на контакт возвращается из метода


Таблица 4.3 - Поля структуры connectPin

Имя переменной

Тип

Назначение

pinType

string

Тип контакта (входной или выходной)

bindingPoint

Point

Точка привязки контакта к линии


4.2 Описание алгоритма работы программы

На рисунках 4.1 и 4.2 представлен общий алгоритм работа программы.

При создании программы широко использовались принципы ООП. Так, наследование позволило исключить повторяемость кода. Принцип полиморфизма позволил производить вычисление значений единообразно для всех логических элементов. Также при проектировании был применен подход MVC.view-controller (MVC, «Модель-представление-контроллер») - схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Эта схема помогла распределить обработку рисования и размещения графических линий.

Рисунок 4.1 - Общий алгоритм работы программы

Рисунок 4.2 - Общий алгоритм работы программы (продолжение)

5. Описание программы

.1 Пособие оператора

После запуска бинарного файла на выполнение, будет отображено главное окно программы (рис.5.1).

Рисунок 5.1 - Главное окно программы.

Программа имеет два вида инструментов - Gate и Service, которые являются взаимоисключающими.

выбрать объект в одном из ListBox`ов;

если выбран объект в поле Gate, то можно задать количество входов в поле ввода, расположенном ниже;

передвижением курсора выбрать место создания объекта;

нажать на левую кнопку мыши в поле рисования;

Добавление логических элементов возможно только при выключенном курсоре . Курсор становится неактивным, если нажать на кнопку курсора или кликнуть любой кнопкой мыши в области рисования. В результате, в области рисования появляются выбранные элементы (рис.5.2).

Рисунок 5.2 - Выборка элементов.

В главном окне имеется кнопка привязки к сетке . При включенной привязке все действия с объектами выравниваются по координатной сетке.

Для любого элемента, при нажатии правой кнопки мыши, в области рисования доступно свойство «Delete element» (рис.5.3). При нажатии на кнопку очистки области рисования  оператору будет выдано сообщение для подтверждения очистки (рис.5.4).

Рисунок 5.3 - Свойство «Delete element»

Рисунок 5.4 - Подтверждение очистки

Если навести курсор на любой из входов или выхода объекта, то он будет подсвечен, что указывает на то, что к нему можно подключить линию (рис. 5.5).

Рисунок 5.5 - Подсветка входа

Для подключения линии нужно:

нажатием правой кнопки мыши выбрать вход/выход одного объекта;

навести курсор на выход/вход другого объекта;

отпустить кнопку;

Стоит отметить, что подключение линии возможно только от входа к выходу или наоборот. К одному выходу можно подключить множество линий, а к входу только одну.

Каждый объект, кроме линии, можно перемещать. Это действие выполняется в такой очередности:

нажать правую кнопку мыши над объектом (изменится курсор);

не отпуская кнопку, передвинуть объект на новое место;

отпустить кнопку;

При перемещении контуры объекта будут подсвечиваться красным цветом. Также, возможно перемещение всей схемы нажатием клавиш на клавиатуре (стрелки).

Элемент SourcePin, расположенный в Service box предназначен для моделирования схемы. При подключении его значения транслируются подписавшемуся объекту. Элемент ResultPin предназначен для вывода результата моделирования. Общий порядок моделирования включает:

выбор необходимых объектов;

установление соединительных линий между объектами;

подключение входов, на которые подаются входные воздействия к SourcePin`ам;

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

изменение значения входа (0, 1 или Х) двойным нажатием на любой из SourcePin`ов;

На рисунке 5.6 представлена смоделированная схема.

Для вызова справки нужно в меню выбрать File->Help (рис.5.7).

Для получения информации о программе в меню выбрать File->About (рис.5.8).

Для выхода из программы нажать на кнопку выхода  или в меню выбрать File->Exit.

Рисунок 5.6 - Моделирование схемы

Рисунок 5.7 - Справка

Рисунок 5.8 - О программе

Заключение

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

Для упрощения задач проектирования, при разработке, был использован язык С#, и платформа. NET Framework. Готовая база графических элементов Windows Forms которая позволила создать работоспособный и комфортный пользовательский интерфейс.

Из недостатков программы, можно выделить: отсутствие тестового покрытия, неоптимальность алгоритма перерисовки элементов, несовершенство вычисления позиций размещения линий и отсутствие возможности создавать пользовательские компоненты.

Возможно дальнейшее развитие в разработке приложения в таких направлениях:

·   использование методики Test driven development, написание тестового покрытия, с целью уменьшить возникновение возможных ошибок;

·   улучшение кодовой базы с помощью рефакторинга;

·   рисование элементов с помощью WPF, вместо Windows Forms;

·   расширение стандартного набора примитивов;

·   моделирование последовательностной логики;

·   возможность создания библиотек пользовательских элементов.

Список используемых источников

1. Эндрю Троелсен Язык программирования C# 5.0 и платформа.NET 4.5, 6-е издание. - М.: «Вильямс», 2013. - 1312 с.

. Джеффри Рихтер. CLR via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке C#. - Питер, Русская Редакция, 2012 г., - 656 стр.

. http://msdn.microsoft.com. - Библиотека MSDN - библиотека официальной технической документации для разработчиков под ОС Microsoft Windows.

. http://stackoverflow.com - система вопросов и ответов о программировании.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!