Файл: Алгоритмизация как обязательный этап разработки программы (Моделирование как средство поддержки принятия решений в профессиональной области.).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 19.06.2023

Просмотров: 62

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение


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

1.Языки программирования высокого уровня их основные элементы

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

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

Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования.
Примеры: C++, Visual Basic, Python, Perl, Delphi (Pascal), строковых типов, объектов, операций файлового ввода-вывода и т. П.
Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 гг. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).


1. Переносимость программ


Распространено мнение, что программы на языках высокого уровня можно написать один раз и потом использовать на компьютере любого типа. В действительности же это верно только для тех программ, которые мало взаимодействуют с операционной системой, например, выполняют какие-либо вычисления или обработку данных. Большинство же интерактивных (а тем более мультимедийных) программ обращаются к системным вызовам, которые сильно различаются в зависимости от операционной системы. Например, для отображения графики на экране компьютера программы под Microsoft Windows используют функции Windows API, которые недоступны в системах, поддерживающих стандарт программный интерфейс X-сервера.
К настоящему времени создан целый ряд программных библиотек (например, библиотека wxWidgets), скрывающих несоответствия системных вызовов различных операционных систем от прикладных программ. Однако такие библиотеки, как правило, не позволяют полностью использовать все возможности конкретных операционных систем.


2. Новые тенденции

Новой тенденцией является появление языков программирования еще более высокого уровня (ультра-высокоуровневых). Такого рода языки характеризуются наличием дополнительных структур и объектов, ориентированных на прикладное использование. Прикладные объекты, в свою очередь, требуют минимальной настройки в виде параметров и моментально готовы к использованию. Использование ультра-высокоуровневых языков программирования снижает временные затраты на разработку программного обеспечения и повышает качество конечного продукта за счет, опять таки, уменьшения объема исходных кодов.
Пример:
• ApplicationXML;
• JavaFx Scene;

2. Моделирование как средство поддержки принятия решений в профессиональной области.

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


  1. Система поддержки принятия решений

СППР (Decision Support Systems, DSS) — это компьютерная система, которая путем сбора и анализа большого количества информации может влиять на процесс принятия решений организационного плана в бизнесе и предпринимательстве. Интерактивные системы позволяют руководителям получить полезную информацию из первоисточников, проанализировать ее, а также выявить существующие бизнес-модели для решения определенных задач. С помощью СППР можно проследить за всеми доступными информационными активами, получить сравнительные значения объемов продаж, спрогнозировать доход организации при гипотетическом внедрении новой технологии, а также рассмотреть все возможные альтернативные решения.
Система поддержки решений СППР решает две основные задачи:
выбор наилучшего решения из множества возможных (оптимизация),
упорядочение возможных решений по предпочтительности (ранжирование).
В обеих задачах первым и наиболее принципиальным моментом является выбор совокупности критериев, на основе которых в дальнейшем будут оцениваться и сопоставляться возможные решения (будем называть их также альтернативами). Система СППР помогает пользователю сделать такой выбор.

2. Динамическое моделирование

  1. Особый класс систем стратегического управления и поддержки принятия решений представляют собой системы, позволяющие осуществлять динамическое моделирование процессов. При использовании методов динамического моделирования деятельность компании описывается в виде математической модели, в которой все бизнес-задачи и процессы
  2. представляются как система взаимосвязанных вычисляемых показателей.
  3. 3. Основные этапы разработки программ
    Разработка программы – это не только написание программы. Написание программы является одним из этапов. Для начала перечислим все этапы разработки программ, а затем подробно расскажем о них.


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

устраивают.

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

  1. Составление математической модели
    Начнем опять же с определения. Для более четкого понимания рассмотрим определения математической модели, объявленные в разных (математических, физических, экономических и т.д.) источниках и попробуем создать собственное определение, подходящее для программирования.
    «Математическая модель — это математическое представление реальности» - это определение созданное математиками.
    Делаем выводы: математическая модель в программировании – это система математических соотношений, приближенно отражающий сформулированную задачу. И она позволяет осуществить предварительный выбор оптимальных вариантов решений по определенным критериям.
    Создание математической модели не займет у нас много времени, т.к. мы должны были подробно разобрать задачу по предыдущему пункту.
     
  2. 4. Составление алгоритма задачи

    Изначально появление алгоритма связывают с возникновением математики. Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
    У алгоритма есть 2 обязательных условия:
    • Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
    • Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
    Так же у алгоритмов есть свойства:
    1. Дискретность, т. е. алгоритм должен состоять из конкретных действий, следующих в определенном порядке.
    2. Детерминированность, т. е. любое действие должно быть строго и недвусмысленно определено в каждом случае.
    3. Конечность, т. е. каждое действие и алгоритм в целом должны иметь возможность завершения.
    4. Массовость, т. е. один и тот же алгоритм можно использовать с разными исходными данными.
    5. Результативность, т. е. отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях.
    В мире существует несколько видов алгоритмов:
    • Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
    • Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено условие);
    • Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий);

5. Создание программы


Процесс создание программы, а точнее разработка программного обеспечения – это второй этап создания программы.
Это, наверное, самый сложный из этапов, требующий наибольшего внимания. По сути, составление текста программы – это запись алгоритма задачи при помощи одного из языков программирования. Чтобы этот текст был понятен пользователю и составителю, используются комментарии.
Отладка программы — это специальный этап в разработке программы, состоящий в выявлении и устранении программных ошибок, факт существования которых уже установлен.
Синтаксическая отладка – поиск синтаксических ошибок в тексте программы. Обнаружив ошибку, транслятор выводит сообщение, указывая на место ошибки в программе и ее характер. Получив такое сообщение, программист должен исправить ошибку и снова повторить трансляцию. Так продолжается до тех пор, пока не будут исправлены все синтаксические ошибки.
Если вы сталкиваетесь с синтаксической ошибкой, то чаще всего вы можете решить проблему с помощью справочной системы, из которой можно получить дополнительную информацию об ошибке, и исправить эту ошибку, уделив дополнительное внимание точному синтаксису используемых вами функций, объектов, методов и свойств.

6.Тестирование и семантическая отладка

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

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