Файл: Алгоритмизация как обязательный этап разработки программы..pdf
Добавлен: 27.04.2023
Просмотров: 274
Скачиваний: 2
Каждый язык программирования ограничивает разработчика строго предопределенным набором ключевых слов и команд, которые могут быть использованы при разработке. Выделяют несколько уровней языков:
Машинный код – команды, операнды и адреса, записанные с помощью двоичных чисел. ЭВМ «понимает» только машинный язык!
Языки программирования низкого уровня (ассемблер) – это такие языки, которые требуют учитывать тип и возможности процессора. Операторы и методы работы таких языков программирования достаточно близки к машинному коду, они требуют знания устройства памяти персонального компьютера и того, как процессор обращается к ней. Перевод программы, написанной на языке Ассемблера, на машинный язык осуществляется с помощью программы – транслятора.
Языки программирования высокого уровня (C++, C#, Java и др.) –разработаны для быстроты и удобства использования программистом. Основная черта высокоуровневых языков – это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Во время разработки программного продукта могут выделяться разные уровни абстракций. То есть по-разному представляться объекты реального мира. В зависимости от этого языки программирования принято разбивать на следующие виды:
Процедурные – определяют решение задачи шаг за шагом, вся система разбивается на ряд связанных между собой процедур.
Объектно-ориентированные – программа разрабатывается как совокупность взаимосвязанных объектов, каждый из которых может порождать множество конкретных реализаций. С точки зрения декомпозиции объекта разработки может быть удобнее; Данный подход подразумевает написание программы в виде системы объектов, каждый из которых отражает тот или иной объект реального мира. Объектам реального мира в соответствие ставятся классы. А от каждого класса, в свою очередь, может порождаться бесчисленное количество объектов класса. К примеру, если мы будем разрабатывать программу для автосервиса, классами будут: автомобиль, двигатель, подвеска, корпус, тормозная система и другие запчасти. А объекты класса — конкретные модели этих запчастей, которые используются в процессе
В настоящее время все языки программирования можно условно разделить на специализированные и универсальные:
Специализированные языки программирования используются для решения узкого класса задач. На универсальном языке можно запрограммировать любую задачу (вопрос об эффективности программирования и эффективности программы здесь не ставится).
Универсальные языки программирования условно делятся на простые и сложные. Простые имеют ограниченный набор средств и за счет этого проще в изучении и дают экономичный код (то есть откомпилированная программа занимает меньше места в памяти и быстрее выполняется). Сложные, имеют большее разнообразие синтаксических конструкций и зачастую сильно упрощают программирование, но сложны в изучении и дают менее экономичный код.
Кроме того существует и другое деление языков - на императивные и декларативные:
Императивные языки программирования позволяют формулировать алгоритм в форме схемы отдельных операций (согласно приведенному выше определению алгоритма)
Декларативные языки программирования позволяют формулировать сразу цель программы, а алгоритм ее решения строится автоматически. Естественно, такие языки пригодны не для всех, а только для определенного класса задач, для которых формализован процесс составления алгоритма в классическом смысле
Размеры многих реальных программ исчисляются тысячами команд, а количество выполняемых ими действий - десятками миллионов. Такие объёмы в сочетании с элементарным характером машинных команд делают программирование очень сложным, и монотонным процессом. Поэтому для успешной реализации поставленной задачи программированию придан характер многоэтапного процесса, каждый этап которого есть постепенная конкретизация и детализация плана решения задачи, полученного на предыдущем этапе.
Алгоритмизация – как ключевой этап программирования
И так для выявления роли этапа алгоритмизации в программировании, рассмотрим процесс создания программы на языке высокого уровня в несколько этапов:
Анализ и уточнение требований, предъявляемых к программе. (постановка задачи). Образно говоря, на этом этапе нужно четко обозначить задачу, опираясь на тщательное изучение объекта автоматизации (составив датологическую и инфологическую модели) совместно с пользователем (заказчиком) программы. Это необходимый и весьма ответственный этап, на котором формулируются основные требования к создаваемому продукту.
Проектирование алгоритма и выбор структур данных или алгоритмизация – формализованное описание или представление алгоритма представляющее собой некоторую систему соглашений или правил, позволяющую более точно передать логику решения задачи. Алгоритмы пишутся для специалистов, которые участвуют в процессе разработки и сопровождения проекта, для четкого понимания реализации поставленной задачи и координации действий команды программистов. Описания алгоритмов составляют обязательную часть документации процесса проектирования программ. Несложно догадаться что, от качества подхода к алгоритмизации поставленной задачи полностью зависят дальнейшие этапы разработки, и успех проекта в целом. А потому, без ложной скромности, данный этап разработки программы можно назвать ключевым!
Программирование, компиляция, отладка и тестирование программы. Данные этапы создания программного продукта подразумевают фиксацию построенного алгоритма в форме текста программы на языке высокого уровня с последующей его компиляцией в машинный код и выявления синтаксических ошибок в тексте программы (присутствие таковых неизбежно). Исправленная программа компилируется до тех пор, пока все синтаксические ошибки не будут исправлены. Программу, в которой нет синтаксических ошибок, необходимо отладить. Отладкой называется процесс проверки правильности работы программы, то есть соответствия программы поставленной задаче. Поиск логических ошибок в программе очень трудоемкий этап. Наиболее общий способ отладки заключается в проверке функционирования программы для максимально возможного числа вариантов разнообразных входных наборов данных. В большинстве случаев даже в программе, которая верно работает для широкого набора входных значений, обнаруживаются ошибки.
В традиционной схеме программирования все этапы выполняются отдельно с помощью различных инструментов (прикладных программ): один инструмент (текстовой редактор) служит для ввода текста программы, другой инструмент (компилятор) компилирует текст программы в машинный код, третий инструмент (редактор связей) собирает программу, затем на заранее подобранных исходных данных с известными результатами программа проверяется. При наличии ошибок весь цикл повторяется сначала, и так до тех пор, пока программа не окажется без изъянов. Для того, чтобы облегчить труд программистов, были созданы такие программные комплексы, которые позволяли решать эти задачи, оставаясь внутри этих программных комплексов. Подобные комплексы принято называть средой программирования.
Сопровождение (поддержка) программного обеспечения – процесс улучшения, оптимизации и устранения дефектов программного обеспечения после передачи в эксплуатацию. В ходе сопровождения в программу вносятся изменения, с тем, чтобы исправить обнаруженные в процессе использования дефекты и недоработки, а также для добавления новой функциональности, с целью повысить удобство использования и применимость разработанного программного обеспечения.
ЗАКЛЮЧЕНИЕ
На основе проведенного исследования можно сделать краткие выводы.
Любой человек в процессе жизнедеятельности постоянно сталкивается с решением огромного множества задач: от самых простых и хорошо известных до очень сложных. Для решения множества из них существуют определенные правила (инструкции, предписания, последовательности действий), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучить заранее или сформулировать сам в процессе решения. Чем более точно и однозначно будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять. Такие правила принято называть алгоритмами, а процесс их создания алгоритмизацией.
Соответственно роль алгоритмизации в жизни современного общества определяется не только техническими аспектами ее использования. Алгоритмизация позволяет эффективно переформулировать исходный (зачастую довольно хаотичный) объем информации в алгоритмический вид, четкий, упорядоченный и структурированный. При этом выделяют все объекты, которые участвуют в операциях, идентифицируют их, определяют исполнителей и задают алгоритм последовательных действий. Важное условие – обязательная однозначность толкования любого этапа. Это правило – основа алгоритмизации. Алгоритмический подход невозможно отделить от повседневной жизни людей, от их обычной работы. Алгоритмизация – это эффективный метод автоматизации широчайшего спектра задач, рабочих процессов, в которых участвуют люди. Формирование программ, алгоритмов в первую очередь используется для упрощения вычислительных задач, которые раньше можно было решить только вручную. Так же алгоритмизация позволяет создать последовательность действий управления машинами.
Сложность и ответственность реализации данного этапа программирования обусловлена тем, что для решения одной и той же задачи, как правило, существует множество различных алгоритмов, и требуется выбрать оптимальный. что позволяет сделать вывод «алгоритмизация является обязательным этапом разработки программы».