Файл: Анализ методов современного программирования.pdf

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

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

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

Добавлен: 04.07.2023

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

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

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

Введение

Изобретение языка программирования высшего уровня позволило нам общаться с машиной, похоже, даже понимать её. Действительно, если мы обратим внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Такие языки могут по праву носить имя «высочайших». Возможно, концепция решения этого вопроса проста, а ближайшее будущее этого проекта уже не за горами, и в этот момент, где-нибудь горбится молодой, никем не признанный специалист и разрабатывает новейшую систему искусственного интеллекта, которая наконец-то позволит человеку, с помощью своих машинных языков, вести диалог с компьютером на «ТЫ».

Цель курсовой работы: изучение методов современного программирования. Формирование представления об основных понятиях и подходах технологии программирования, приемах обеспечения технологичности программных продуктов, разработке пользовательских интерфейсов, тестирование программных продуктов, отладке программного обеспечения.

Задачи курсовой работы:

  1. Рассмотреть виды технологии программирования.
  2. представить основную информацию о методах современного программирования.
  3. Проанализировать преимущества/ недостатки рассмотренных методов современного программирования.

1.Понятие технологии программирования.

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

  • указание последовательности выполнения технологических операций;
  • перечисление условий, при которых выполняется та или иная операция;
  • описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. (рис.1)

Рис.1. Структура описания технологической операции

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


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

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

Изначально понятие технологии как таковой — это 60-е годы прошлого столетия — это период «стихийного» программирования. В этот период отсутствовало понятие структуры программы, типов данных и т.д. Вследствие этого код получался запутанным, противоречивым. Программирование тех лет считалось искусством. Конец 60-х — кризис в программирование.

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

Другим базовым принципом структурного программирования является использование при составлении программ только базовых алгоритмических структур, запрет на использование оператора GOTO.[2]

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

Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные «структурные» операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. Среди наиболее известных языков этой группы стоит назвать PL/1, ALGOL-68, Pascal, С.


2.Состав и назначение инструментария технологии программирования

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

2.1 Инструментарий технологии программирования

Инструментарий технологии программирования делится на два больших класса инструментальных средств:

  1. Инструментальные средства для создания отдельных приложений (программ):

- Локальные средства (языки программирования, системы программирования, инструментальные среды пользователя);

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

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

2.2 Языки программирования

  • Машинно-ориентированные (язык С) – объединяет идеи ассемблера и алгоритмического языка. Программы компактны и работают очень быстро.
  • Универсальные (Turbo Pascal, Basic, Fortran) - приближены максимально, насколько это возможно, к естественному английскому языку: название каждой команды – английское слово; -Функциональные. Применяются, как правило, для машинного моделирования той или иной проблематики. Имеют в составе:
  • проблемно-ориентированные (GPSS) - моделируют систему с помощью последовательности событий. Применяются, в частности, при проектировании вычислительных комплексов;
  • бъектно-ориентированные (Forth) - имеют встроенные средства для моделирования новых объектов программирования;
  • логико-ориентированные (Prolog) - отдельно описываются правила предметной области, по которым затем выводятся новые факты. [5]

Системы программирования включают:

  • Интегрированную среду разработчика программы. Основное назначение инструментария данного вида – повышение производительности труда программистов, автоматизация создания кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложений для архитектуры клиент-сервер, запросов и отчетов;
  • Транслятор – программу, переводящую исходный текст во внутреннее представление компьютера;
  • Отладчик – программу для трассировки и анализа выполнения прикладных программ. Позволяет отслеживать выполнение программы в пооператорном режиме, идентифицировать место и вид ошибок в программе, наблюдают за изменением значений переменных, выражений и т.д.;
  • Компоновщик – программа для подготовки прикладной программы к работе в конкретных адресах основной памяти компьютера;
  • справочные системы.[3]

Инструментальная среда пользователя – это специальные программные средства, встроенные в пакет прикладных программ:

1. Библиотеки функций, процедур, объектов и методов обработки;

2. Макрокоманды;

3. Программные модули-вставки;

4. Конструкторы экранных форм и отчетов;

5. Языки запросов высокого уровня;

6. Клавишные макросы;

7. Языковые макросы;

8. Генераторы приложений;

9. Языки манипулирования данными;[2]

Основные алгоритмические структуры.

Понятие алгоритма

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

Можно утверждать, что алгоритмы – это способ фиксации и передачи знаний, накопленных человечеством, это богатство культуры, науки и техники. Роль алгоритмов в жизни человека весьма многогранна и не сводится только к обработке информации. Однако в процессе обработки информации алгоритмы играют первостепенную роль. Алгоритмы обладают важнейшим качеством – исполнение одного того же алгоритма в одних и тех же условиях различными людьми (в общем случае – исполнителями), как правило, приводит к одинаковым результатам. Следовательно, можно утверждать, что алгоритма обладают (точнее, должны обладать) некоторыми свойствами, которые обеспечивают этот эффект.[6]


Используются различные способы записи алгоритмов. Широко распространен словесный способ записи: это записи рецептов приготовления различных блюд в кулинарной книге, инструкции по использованию технических устройств, правила правописания и многие другие. Наглядно представляется алгоритм языком блок-схем. Компьютер «понимает» только алгоритмы, которые заданы в виде двоичных машинных кодов. Однако этот «естественный» для компьютеров, обладающий всеми свойствами способ записи алгоритмов, очень сложен для использования человеком. Поэтому в информатике применяется ряд специальных способов, языков задания, записи алгоритмов. Которые, во-первых, призваны обеспечить соответствие алгоритма всем необходимым требованиям, во-вторых, приспособлены для их использования как человеком, так и – после специальной обработки – компьютером. Такие искусственные языки, использующие для записи алгоритмов и обеспечивающие им наличие всех необходимых свойств, называются алгоритмическими языками.

Понятие исполнителя алгоритма.

Понятие исполнителя невозможно определить с помощью какой-либо формализации. Исполнителем может быть человек, группа людей, робот, станок, компьютер, язык программирования и т.д. Важнейшим свойством, характеризующим любого из этих исполнителей, является то, что исполнитель умеет выполнять некоторые команды. Так, исполнитель-человек умеет выполнять такие команды как «встать», «сесть», «включить компьютер» и т.д., а исполнитель-язык программирования Бейсик - команды PRINT, END, LIST и другие аналогичные. Вся совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя (СКИ).

На рис.2. рассмотрен исполнитель-робот, работа которого состоит в собственном перемещении по рабочему полю (квадрату произвольного размера, разделенному на клетки) и перемещении объектов, в начальный момент времени находящихся на «складе» (правая верхняя клетка).[4]

Рис.2 Исполнитель-робот.

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