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

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

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

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

Добавлен: 25.05.2023

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

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

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

Введение

Актуальность исследования.

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

Первые программы были организованы очень просто. Они состояли из собственно программы на машинном языке и обрабатываемых данных. Но постепенно все усложнилось. Появились новые языки программирования, и параллельно появились и новые методы и средства программирования.

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

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

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

Для достижения данной цели необходимо решение следующих задач:

  • Дать определения понятия основных понятий по данной теме;
  • Раскрыть суть методологии программирования;
  • Раскрыть суть модульного программирования;
  • Раскрыть сущность структурного программирования;
  • Раскрыть сущность объектно-ориентированного программирования;
  • Описать основные понятия связанные с объектно-ориентированным программированием.

Объектом исследования данной курсовой работы методы программирования. Предметом исследования выступает современные методы программирования.

Работа состоит из введения, трех глав («Глава 1. Основные понятия и определения», «Глава 2. Методы современного программирования», «Глава 3 Объектно-ориентированный подход в разработке программ»), заключения и списка использованной литературы.

Глава 1. Основные понятия и определения

1.1. Основные понятия

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


Итак, рассмотрим основные понятия.

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

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

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

Аппаратное обеспечение (англ. hardware, HW) – это общее описание любого физического (электронного/механического) компонента компьютерной системы, что состоит из печатной платы, микросхемы или другого вида электроники. Прекрасный пример аппаратного средства это экран. Будь то дисплей компьютера, планшета или смартфона – всё это аппаратная часть.

Аппаратное обеспечение также называют: аппаратные средства, компьютерные комплектующие или просто «железо».

Без аппаратного обеспечения компьютер не может существовать и программное обеспечение не может быть использовано[2].

Как компромисс между требованиями аппаратного обеспечения и лёгкостью описания решения задач, были созданы специальные языки для «общения» человека и машины - языки программирования.

Язык программирования - это средство общения между человеком (пользователем) и компьютером (исполнителем). С помощью языка программирования формируются сообщения для компьютера. Эти сообщения должны быть понятны компьютеру[3].

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

Основные составляющие языка программирования является синтаксис и семантика.

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

Синтаксис языка программирования - это сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят - безотносительно к содержанию). Каждый язык программирования имеет синтаксическое описание. Обычно синтаксис языка определяют посредством правил Бэкуса-Наура (формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории)[4].


Семантика языка программирования, вообще говоря, противопоставляется синтаксису. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям (иными словами, это правила истолкования). Имеется несколько подходов к определению семантики языков программирования, причем наиболее широко распространены разновидности следующих трех: операционного, денотационного (математического) и деривационного (аксиоматического). При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ. Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания предусловий и постусловий. Денотационная семантика оперирует понятиями, типичными для математики (множества, соответствия, а также суждения, утверждения и др.)[5].

​​​​​​​1.2. Методология программирования

Программирование - это не только код, спецификации, операционные системы, это еще и методология. Существуют книги, которые не связаны непосредственно ни с одним языком программирования, но помогают чувствовать направление и основные тенденции развития индустрии[6].

Методология программирования – совокупность методов, применимых в жизненном цикле программного обеспечения и объединенных общим философским подходом[7].

Все существующие методологии характеризуется следующем:

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

• согласованным множеством моделей методов, которые осуществляют данную методологию;

• концепциями (понятиями), которые позволяют более точно определить методы.

В частном случае, когда методология используется на начальной стадии программирования, то есть на стадии конструирования, она называется парадигмой программирования[8].

Выделяют три пути возникновения методологий. Во-первых, они могут являться выражением практического опыта. Во-вторых, методологии могут происходить от одной из четырёх моделей алгоритма:


  • абстрактная машина Тьюринга,
  • рекурсивные функции Гильберта и Аккермана,
  • лямбда-исчисление Черча,
  • нормальные алгоритмы Маркова.

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

Далее рассмотрим классификацию.

По ядрам

При подходе к методологии, как имеющей ядро, которое соответствует способу описания алгоритма, и дополнительные особенности, выделяют следующие пять основных ядер методологий:

• Методология императивного программирования

• Методология ООП

• Методология функционального программирования

• Методология логическое программирование

• Методология программирования в ограничениях

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

По топологической специфике

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

По специфике реализации

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

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

Следует отметить, что еще проводятся исследования и по унификации методологий программирования

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

Так же методологии программирования делят по общим затратам на решения задач с разными характеристиками (научные расчёты, финансовые задачи, системы реального времени и т. п.). Масштаб задач и эффективность создаваемого программного обеспечения также являются важными факторами при выборе методологии программирования[9].


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

Глава 2. Методы современного программирования

2.1 Модульное программирование

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

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

Концепцию модульного программирования можно сформулировать в виде нескольких понятий и положений. Основа концепции модульного программирования модуль, который является продуктом процесса разбиения большой задачи на ряд более мелких функционально самостоятельных подзадач. Этот процесс называется функциональной декомпозицией задачи. Каждый модуль в функциональной декомпозиции представляет собой «черный ящик» с одним входом и одним выходом. Модули связаны между собой только входными и выходными данными[10].

Понятие модульного программирование можно рассмотреть с двух точек зрения с точки зрения теории и с точки зрения практики. А именно:

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

С практической точки зрения модульное программирование – представляет собой процесс разделение программы на отдельно компилируемые фрагменты.

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

Большей популярностью пользуется метод "сверху вниз". Сущность метода в том, что исходная задача сначала разбивается на относительно независимые друг от друга подзадачи. Если подзадача еще сложная, то она разбивается на более простые и т.д. Данный процесс «деления» продолжается до тех пор, пока полученные подзадачи становятся простыми для каждой из них разрабатывается алгоритм и затем реализуется на каком-либо языке программирования. Такая организация задачи является программным модулем. Таким образом, применение модулей является естественным способом разработки и создания сложных программ. Причем созданный программный модуль в дальнейшем может быть детализирован, и полученные в результате этого подзадачи реализуются в виде процедур и функций. В результате, процедуры и функции являются инструментом пошаговой детализации при разработке программ на нижнем, более детальном уровне, а модули - на более верхнем[11].