Файл: Алгоритмизация как основной этап разработки программ.pdf
Добавлен: 04.04.2023
Просмотров: 311
Скачиваний: 2
СОДЕРЖАНИЕ
Роль этапа алгоритмизации в процессе разработки программ
Понятие алгоритма и его свойства
Формализация и проектирование алгоритма
Разработка программы для решения поставленной задачи
Постановка задачи и анализ предметной области
Выбор языка программирования и среды разработки
Этапы формализации и алгоритмизации
Формализация и проектирование алгоритма
Для того, чтобы проанализировать задачу, помимо написания точной спецификации алгоритма, пользователь должен написать точные спецификации для входных и выходных данных. Эти спецификации должны включать начальные условия и граничные условия, которые связаны с математическими моделями и вычислительным моделированием, в дополнение к используемым уравнениям или формулам. Некоторые задачи не имеют точных решений. Такие задачи должны быть проанализированы на предмет способов получения приближенных решений, определения качества этих решений и необходимой степени точности. Побочные эффекты, различные варианты и возможные исключительные случаи также должны быть рассмотрены. Как только проблема будет четко понята и соответствующие побочные эффекты будут решены, можно начинать программирование [13.].
Существуют задачи инженерного и научного типа, требующие экспериментального решения уравнений с известными и неизвестными переменными. Существуют и другие задачи, для которых математические модели должны быть разработаны в форме процесса, которому необходимо следовать с использованием зависимых и независимых переменных. Существует три основных типа решений. Во-первых, когда известно решение задачи в замкнутой форме, в программе могут использоваться соответствующие уравнения. Во-вторых, когда решения в замкнутой форме неизвестны, или, когда математическое решение связано с методом проб и ошибок, для аппроксимации решения могут использоваться численные методы. В-третьих, некоторые типы задач имеют так много независимых переменных, что вместо одного ответа желательно получить множество возможных решений.
Процедура анализа задачи включает в себя анализ категорий возможных исходных данных [13.]. В некоторых случаях входные значения являются внешними по отношению к программе, в других случаях они генерируются внутри. Когда используются внешние значения данных, ввод должен быть подтвержден компьютером в соответствии с четко определенными спецификациями, поскольку компьютер не может угадать намерения человека, вводящего данные. Спецификация данных включает в себя такие требования, как тип ожидаемых данных (числовые или символьные), форма данных (целые, действительные числа, комплексные числа, логические данные и т.д.), размер данных (количество цифр или символов) хранение данных (списки, таблицы, записи и т.д.) и любые ограничения диапазона значений данных. Например, можно предположить, что набор измерений глубины воды в озере содержит по крайней мере одно измерение; содержит положительные, действительные числа, а не целые; определено с точностью до двух знаков после запятой; и имеет единицы измерения, такие как метры. Программная документация должна указывать на это, а алгоритм должен проверять, соответствуют ли данные этим условиям.
После того, как задача была четко сформулирована и проанализирована, а данные уточнены, решение может быть разработано [13.]. Оно включает в себя проектирование ввода, вывода, внутренних данных, разработку алгоритма и разработку тестовых данных для алгоритма. Например, компьютер должен знать, состоят ли значения данных из целых или действительных чисел и находятся ли они в принятом десятичном или экспоненциальном формате. Он должен знать, сколько значений данных ожидается и как определить конец списка значений данных. Если алгоритм включает в себя повторные вычисления, предполагаемые предварительные условия и постусловия должны быть распознаны. На этапе проектирования алгоритм может быть представлен структурными схемами, псевдокодом и/или блок-схемами или другими методами логического представления.
Разработка программы для решения поставленной задачи
Постановка задачи и анализ предметной области
В качестве решаемой задачи рассмотрена разработка приложения для обучения работы с графической библиотекой объектно-ориентированного языка программирования высокого уровня C#. Анализ предметной области выполняется далее.
Использование современных средств информационно-коммуникационных технологий и обеспечение сферы образования методологией и практикой разработки позволяет значительно повысить эффективность процесса обучения. Процесс программированного обучения подразумевает усвоение учебного материала при помощи специального устройства (электронный учебник, видеотренажер и т.д.). При таком подходе учебная информация делится на небольшие части, которые подаются в определенной логической последовательности. Работы педагогов-исследователей в этой предметной области поспособствовали развитию трех различных видов обучающих программ: разветвленных, адаптивных и линейных [3.]. С их помощью строится процесс программированного обучения.
В линейных обучающих программах весь учебный материал представляется набором «порций» – логически связанных единиц, которые охватывают весь предмет. В конце каждой из них обучающийся должен выполнить контрольные задания, от результатов которых порядок изучения материала не зависит. В разветвленных программах обучающемуся в случае неправильного ответа может предоставляться дополнительная информация, позволяющая выполнить задание. Адаптивные программы позволяют автоматически повышать степень трудности обучения при возрастании количества допущенных в процессе выполнения заданий ошибок и понижать в противном случае.
Методическая структура педагогических программных средств, которые характеризуют программированный подход к обучению, подразумевает наличие нескольких блоков [9.]:
- теоретического блока, содержащего текстовое (а также, возможно, графическое) изложение теоретических сведений одного из разделов автоматизированного курса;
- контрольно-диагностического блока, который содержит специализированный тест для проверки усвоения теоретических основ;
- блока контроля знаний, формирующего результат прохождения теста (а также, возможно, итоговую оценку знаний) обучающегося.
Таким образом, можно определить следующие функции разрабатываемого приложения:
- корректная презентация информации в виде совокупности разделов, каждый из которых состоит из теоретической либо практической части;
- обеспечение проверки изученной информации;
- сохранение материалов и результатов тестирования.
При разработке приложения учитывалась специфика выбранного учебного материала по изучению основ графической библиотеки языка. Основные положения легли в основу поставленной задачи. Теоретический блок представлен дополнительными материалами – файлами электронных книг по выбранной тематике.
Итоговый контролирующий тест работает с заданиями, имеющими одиночный тип выбора ответов. Обучающийся не ограничен жесткими временными рамками и может проходить тест, контролирующий усвоение пройденного материала, в наиболее удобном ему темпе. Возможность вернуться к вводу данных для прохождения теста позволяет также повторить ранее пройденный материал. По окончании теста на экране появляется результат тестирования: показывается, сколько заданий содержится в тесте и сколько из них было выполнено верно. На основании процента правильных ответов выводится итоговая оценка. В случае успешной сдачи теста (при получении любой оценки, кроме неудовлетворительной) обучающийся может сравнить свои ответы с правильными и записать полученные результаты в файл.
Таким образом, разработка приложения для обучения является решением актуальной задачи создания прикладного программного обеспечения для повышения эффективности изучения объектно-ориентированного программирования.
Выбор языка программирования и среды разработки
C# был разработан в качестве конкурента языка Java; подразумевалось, что он будет чистым объектно-ориентированным языком программирования. C# дебютировал в 2000 году на конференции профессиональных разработчиков, где основным докладчиком был основатель Microsoft Билл Гейтс. В то же время была представлена среда разработки Visual Studio .NET.
Высокоуровневый язык программирования C# является флагманом разработки от Microsoft. Можно выделить следующие плюсы [12.] языка, отличающие его от конкурентов:
- Доступность
Если для Java необходимо отдельно устанавливать виртуальную машину, то .NET-разработка требует только .NET-платформы, которая есть на большинстве компьютеров с ОС Windows. Соответственно, оптимизация исполняемого кода ложится на платформу, что облегчает жизнь разработчика.
- Универсальность
Приложения C# функционируют на всех компьютерах с ОС Windows – притом можно указывать версию .NET Framework для работы с более ранними версиями. Среда разработки Xamarin также распространяет C# на Unix-системы, C# отныне является кроссплатформенным языком.
- Эргономичность
Поставляемые пакеты NuGet, интерактивное взаимодействие с объектами, ADO/OLE/Entity/ASP, интеллектуальная подсказка, одно из самых широчайших и полезных сообществ.
- Инновационность
С# стал флагманом не просто так – именно в нем реализуются многие особенности архитектуры программ, протоколов, принципов работы с памятью, структурами данных, подходов и принципов проектирования.
C# – отличный язык для корпоративных приложений, но у него есть некоторые недостатки. Поскольку C# является частью .NET Framework, сервер, на котором выполняется приложение, должен иметь Windows. Другими словами, любому приложению .NET требуется платформа Windows для выполнения. Многие новые компании работают с серверами Linux, поскольку это намного более дешевая среда. Microsoft перестает поддерживать старые платформы .NET после нескольких обновлений операционных систем. Например, старые серверы Windows 2000 могут поддерживать только приложения .NET 2.0. Хотя установка старой операционной системы кажется ошибкой, многие корпоративные организации сохраняют старые операционные системы из-за множества проблем, которые может привести к обновлению платформы. Основные обновления серверной архитектуры должны быть протестированы и утверждены перед развертыванием, что увеличивает время и затраты на разработку. Если организация использует рабочие станции и серверы Windows, .NET проще всего интегрировать. C# может использоваться для автоматизации, такой как Windows Services или веб-приложения.
Microsoft Visual Studio – это современная интегрированная среда, предназначенная для разработки программного обеспечения [4.]. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Присутствует удобный редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода.
Основными преимуществами [4.] Visual Studio являются:
- система проверки и дополнения ввода текста IntelliSense;
- быстрый рефакторинг кода;
- простая реализация общих задач и индивидуальный подход;
- быстрое создание высококачественного кода;
- возможность реализации идей и решений для широкого спектра платформ, включая Windows, Windows Server, веб-среду, облачную среду, Office и SharePoint;
- огромное количество плагинов;
- возможность интеграции проектов на разных языках;
- поддержка множества языков, заточенных под необходимую задачу.
Главными недостатками среды является ее ориентированность на платформу .NET и тот факт, что точно так же, как и в случае с Windows, лицензия VS для коммерческих продуктов является платной.
Плюсы C# в целом перевешивают минусы, поэтому в качестве языка для разработки программного обеспечения был выбран именно этот язык программирования, более производительный и портативный.
Таким образом, в следующих разделах рассматривается разработка обучающей программы с тестовым контролем знаний, для создания которой был выбран язык программирования высокого уровня C#, а также интерфейс программирования приложений Windows.Forms, являющийся частью Microsoft .NET Framework. С помощью Windows.Forms можно создавать приложения с полнофункциональным графическим интерфейсом, в то же время простые в использовании и обновлении. Выбранный язык программирования вместе со средой разработки позволяет полностью реализовать программу, отвечающую всем предъявленным ей требованиям.
Этапы формализации и алгоритмизации
На основании исследования предметной области обучающего приложения была получена схема архитектуры программы, в соответствии с которой построены отдельные функциональные модули. Разрабатываемая программа состоит из нескольких модулей (форм):