Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основные понятия объектно-ориентированного программирования»

Содержание:

ВВЕДЕНИЕ

Актуальность темы - сложность современного программного обеспечения требует от разработчиков владения наиболее перспективными технологиями его создания. Одной из таких технологий на настоящий момент является объектно-ориентированное программирование (ООП).

Расцвет объектно-ориентированных технологий совпал с началом применения Интернета в качестве платформы для бизнеса, развлечений и медицины. [6]

Предмет исследования – изучение основных понятий объектно-ориентированного программирования.

Цель работы – рассмотреть основные понятия объектно-ориентированного программирования.

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

1. Рассмотреть основные понятия программирования.

2. Описать история возникновения объектно-ориентированной парадигмы программирования.

3. Описать последовательность разработки программ на объектно-ориентированном языке программирования.

4. Описать основные понятия объектно-ориентированного программирования.

5. Обобщить знания по объектно-ориентированным языкам программирования

7. Показать пример разработки программы на объектно-ориентированном языке программирования.

Тема курсовой работы широко освещена в работах в работах зарубежных и российских авторов: Д. Кнут, Иванова Г.С., Климов А., Культин Н., Майо Дж., Макконнелл С. , Мацяшек, Лешек А., Лионг, Орлов, С. А., Цилькер, Б.

Основным источником литературы являются книги, написанные для программистов [1],[2],[5],[6], как для новичков [7], так и для профессионалов [8], [9], выпущенные издательствами, специализирующимися на выпуске технической литературы. Особое внимание в источниках литературы уделяется электронным источникам компаний разработчиков языка[16]

Структура работы. Курсовая работа выполнена на 43 листах, содержит 34 рисунка.

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

.

1. ОБЩИЕ ВОПРОСЫ ПРОГРАММИРОВАНИЯ

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

Никлаус Вирт, в своем известном выражении так высказался о программировании: «Программы = алгоритмы + структуры данных»[1] [10]. Исходя из этого можно выделить следующие ключевые задачи, которые следует изучить, чтобы стать хорошим программистом: научиться использовать алгоритмы и структуры данных.

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

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

http://bourabai.kz/alg/img/020.1.gif

Рисунок 1 - Профессиональное программирование

  • Знать теорию программирования (Рисунок 2) - т.е. иметь представление об алгоритмах, задачах и вычислителях[2] [10];

Рисунок 2 – Теория программирования

  • Знать математические основы программирования (Рисунок 3) – т.е. обладать знаниями в высшей, дискретной математике, уметь применять на практике теорию алгоритмов, методы математического моделирования и т.д[3] [5].

Рисунок 3 - Математические основы программирования

1.1. Языки программирования и их классификация

Язык программирования - это формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, выполняемые исполнителем (обычно компьютером) под его контролем[4] [3].

Все языки программирования имеют похожий набор лексических единиц, к ним относят:

1) строчные и заглавные буквы алфавитов (основной латиница и любой другой национальный язык),

2) числа,

3) знаки операций

4) Знаки скобок

5) символы подчеркивания _ и пробел,

6) специальные символы.

Картинки по запросу Лексемы языка программирования

Рисунок 4 – Лексические правила

Синтаксические правила (Рисунок 5) - описывают структуру программ независимо от содержания. Синтаксис языка противоположен его семантике.

Рисунок 5 – Пример синтаксического правила для языка программирования Паскаль

Семантические правила языка программирования отражают смысловое значение команд языка. Логически фрагмента кода изображенного на рисунке 6 выполняют одно и то же, результаты их работы идентичны. В то же время семантически это два разных цикла[5] [7].

Рисунок 6 – Пример семантического выражения

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

Начиная с 50-х годов 20 века, то есть с момента появления первой вычислительной машины, количество языков программирования постоянно увеличивается. Со временем некоторые языки развиваются, приобретая новые функции являясь востребованными, другие утрачивают свою актуальность и представляют на сегодняшний день только чисто теоретический интерес. Это во многом связано с такими факторами, как[6] [4]:

  • Наличие среды программирования;
  • Простота обслуживания и тестирования программ;
  • Стоимость разработки с использованием конкретного языка программирования;
  • Применение объектно-ориентированного подхода.

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

Если рассматривать одну из множества классификаций языков программирования, то - по способу получения результата выделяют[7] [8] (Рисунок 7):

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

Рисунок 7 - Классификация языков программирования по степени ориентации на класс задач

1.2. История появления объектно-ориентированной парадигмы программирования

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

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

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

Картинки по запросу линейный алгоритм

Рисунок 8– Процедурное программирование

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

Картинки по запросу алгоритм с функциями

Рисунок 9 – Структурное программирование

Во второй половине 1980-х годов появилась новая методология программирования, которая смогла решить все сложные проблемы (увеличение объемов кода, постоянное изменение требований клиентов, повышение надежности программного обеспечения). Он стал называться методологией объектно-ориентированного программирования (ООП)[10] [6].

Прагматика необходима для разработки программных систем. При формулировании целей, связанных объектов и концепций реального мира, относящихся к создаваемой системе (Рисунок 10) в объектно-ориентированном подходе, эти объекты и концепции заменяются моделями, т. е определенными формальными структурами.

Семантика (смысл программы с точки зрения выполняющего ее компьютера) и прагматика (смысл программы с точки зрения ее пользователей) [3].

Рисунок 10– Объектно-ориентированное программирование

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

Объектно-ориентированный подход к программированию имеет следующие достоинства по отношению к разрабатываемому программному обеспечению:

  • Снижение сложности разработки;
  • повышение надежности продукта;
  • изоляция изменений;
  • повторное использование кода

1.3. Современные подходы к разработке объектно-ориентированной программы

На практике принято выделять следующие популярные подходы к разработке кода:

  • Waterfall — традиционный подход к разработки программных приложений.
  • RUP (Rational Unified Process) — рациональный подход к разработки программных приложений.
  • Agile — общая методология гибкой разработки программных приложений.
  • Spiral — спиральный подход к разработки программных приложений.
  • Scrum — концепция работы в условиях сорванных сроков и идеологического кризиса.

Рассмотрим некоторые модели более подробно:

1. «Waterfall Model» (каскадная модель или «водопад») [11][14]

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

В модели Waterfall (Рисунок 11) легко управлять проектом. Из-за своей жесткости, разработка идет быстро, затраты и время предопределены. Спиральная модель является классическим примером применения стратегии эволюционного проектирования. Модель основана на лучших свойствах классического жизненного цикла и прототипировани. Модель определяет четыре действия, представленные четырьмя квадрантами спирали[12][14]

  1. Планирование - определение целей, вариантов и ограничений.
  2. Анализ рисков - анализ рисков и идентификация / выбор рисков.
  3. Проектирование - это разработка продукта следующего уровня.
  4. Оценка - оценка клиента текущих результатов проекта.

Спиральная модель жизненного цикла программного обеспечения

Рисунок 11 – Этапы разработки программного обеспечения, согласно спиральной модели

2. Scrum - «экстремальное программирование» (Рисунок 12) -способность развиваться в постоянно меняющейся среде. Вот некоторые особенности[13][11]

  • Планирование процесса разработки.
  • Высокая частота выпусков.
  • Контакт с клиентом.
  • Коллективная ответственность.

Рисунок 12 – Методология Scrum

Спиральная модель является наиболее распространенной в настоящее время. Наиболее известными из ее вариантов являются RUP (Rational Unified Process) от Rational и MSF (Microsoft Solution Framework). Язык моделирования - UML (Unified Modeling Language). Предполагается, что создание системы должно выполняться итеративно, перемещаясь по спирали и проходя через те же этапы, чтобы уточнить характеристики будущего продукта на каждом шагу.

1.4. Качество программ и методы его контроля

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

Основными характеристиками и атрибутам качественных программных продуктов (Рисунок 13) согласно ISO 9126: 2001 являются[14] [19] :

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

Картинки по запросу ISO 9126: 2001:

Рисунок 13– Характеристики качества ПО

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

Удобство использования (usability) данная характеристика отвечает за характеристику, которую легко оценивают пользователи и могут сравнить с другими аналогичными программами. [8]У каждого атрибута существует набор метрик, позволяющих его оценить

    • Контролировать качество - возможно с помощью процесса верификации и валидации(Рисунок 14)[15] [19].
    • Верификация – это возможность проверить, что программное обеспечение было разработано в соответствии с требованиями, или что результаты следующего этапа развития, разработаны в установленных пределах, которые определены на предыдущих стадиях[13];

Картинки по запросу верификация и валидация программного обеспечения

Рисунок 14 – Методы контроля качества программ

    • Валидация — проверяет, что продукт правилен, т.е. он удовлетворяет потребностям заказчиков, т.е. разработан табличный редактор, а не калькулятор.

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

Выводы по главе 1

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

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

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

2. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

2.1. Классы и объекты

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

На практике объектно-ориентированное программирование сводится к созданию ряда классов (Рисунок 15), включая интерфейс и реализацию, и их последующее использование[16] [9].

Рисунок 15 – Описание класса

Графическое представление ряда классов и отношений между ними называется диаграммой классов[17] [12] (Рисунок 16).

Картинки по запросу класс диаграмма

Рисунок 16 – Диаграмма классов

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

У класса определены две роли[18] [1]:

  • модуль. Модульная конструкция - основное свойство программных систем. Модульная конструкция - главное средство борьбы со сложностью системы.
  • тип данных- определяет реализацию абстракции данных, характеристика проблемной области, сущностей реального мира.

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

Общий синтаксис описания класса представляет в следующем виде:

[атрибуты][модификаторы]class имя_класса[:список_родителей]

{тело_класса}

Модификаторы класса могут быть :

  • abstract, sealed, необходимы для наследования,
  • private и protected - необходимы для вложенных классов.
  • public – доступны для всех.

В теле класса могут быть объявлены:

  • конструкторы и деструкторы;
  • методы;
  • константы;
  • поля;
  • события;
  • классы (структуры, делегаты, интерфейсы, перечисления).

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

Объект характеризуется характеристиками конкретных значений из списка всех возможных свойств данного объекта. Каждый объект, получив сообщение, обязан «реагировать» на них определенным образом, выполнив определенные действия для сообщения[19] [1].

Объекты отображаются на диаграмме объектов (Рисунок 17)

Картинки по запросу диаграмма объектов uml

Рисунок 17 – Диаграмма объектов

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

Возможные операции над объектами[20] [13](Рисунок 18) :

  • создание – первоначальное объеявление объета;
  • модификация – изменение объекта;
  • Уничтожение – удаление из памяти объекта;
  • выбор - определения состояния объекта;
  • Итерация - способность касаться содержимого объекта по частям в определенной последовательности.

Рисунок 18 - - Типы операций над объектом

2.2. Наследование и полиморфизм

Основные средства разработки классов

Наследование. (Рисунок 19) Базовый класс, часто называют родителем, а производный - потомком. Механизм наследования обеспечивает классу-потомку возможность использования полей и методов одного или нескольких родительских классов.

Рисунок 19- Иерархия классов при различных видах наследования

Простой полиморфизм [21][13] (Рисунок 20). Создавая иерархии классов можно обнаружить, что некоторые характеристики объектов, сохраняя название, изменяются, по сути. Полиморфизм называют простым, а методы, имеющие одинаковое название - статически полиморфными методами. Объединение полиморфных методов с одним именем для иерархии классов образует единый полиморфный метод иерархии.

Рисунок 20 - Полиморфизм

2.3. События

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

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

Событие - это особое состояние, в котором может быть объект класса. Кнопка может быть нажата - событие Click, документ может быть закрыт - событие Close и т. Д.

Интерфейс и многие другие программные объекты имеют стандартный набор предопределенных событий. Класс, в котором есть событие будет содержать следующие пункты[22] [15]

  • объявленное событие в классе;
  • зажигания события в соответствующее время, передача обработчику, необходимых аргументов. (Ignite или switch event означает некоторый механизм, который позволяет объекту уведомлять класс о том, что произошло событие.);
  • анализ события.

Одно и то же сообщение может быть получено и обработано( Рисунок 21).Обработчик события - это обычная процедура с аргументами. Сообщение, посылаемое при зажигании события, является аналогом вызова процедуры. Объявление события синтаксически задает сигнатуру процедуры.

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

Взаимодействие объектов. Посылка и получение сообщения о событии

Рисунок 21- Взаимодействие объектов. Посылка и получение сообщения о событии

Выводы по главе 2

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

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

Основные средства разработки классов:

  • Наследование.
  • Простой полиморфизм
  • механизм событий.

3. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Популярность языков программирования по данным сайта[23] [18] в 2016 году была следующая: (Рисунок 22)

Рисунок 22 - Популярность языков программирования в 2016

Рассмотрим тройку популярных языков программирования.

3.1. Популярные объектно-ориентированные языки программирования

1. Java

Java (дата официального релиза 23 мая 1995 года) является сильно типизированным объектно-ориентированным языком программирования, разработанный компанией Sun Microsystems. Приложения, разработанные на языке высокого уровня Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины.

Первоначально язык назывался Oak («Дуб») и был разработан Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Названный в честь бренда кофе Java, который, в свою очередь, получил название острова с таким же названием (Java - Ява), поэтому официальный логотип этого языка показывает чашку горячего кофе (Рисунок 23).

Похожее изображение

Рисунок 23 – Логотип Java

Особенности языка[24] [6]:

  • Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM).
  • полная независимость байт-кода от операционной системы и оборудования,
  • гибкая система безопасности.

Недостатки языка

  • снижение производительности.

Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, нашли выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.

2. C#[25][17]

C# (Рисунок 24) —объектно-ориентированный язык, предназначенный для разработки разнообразных безопасных и мощных приложений, выполняемых в среде .NET Framework.

Картинки по запросу c# логотип

Рисунок 24 – Логотип C#

С помощью языка C# можно создавать обычные приложения Windows, XML-веб-службы, распределенные компоненты, приложения "клиент-сервер", приложения баз данных и т. д. Visual C# предоставляет развитый редактор кода, конструкторы с удобным пользовательским интерфейсом, встроенный отладчик и множество других средств, упрощающих разработку приложений на базе языка C# и .NET Framework.[10]

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

3. JavaScript [26][6]

JavaScript - мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили (Рисунок 25).

Картинки по запросу javascript логотип

Рисунок 25 - Логотип JavaScript

В 1992 году компания Nombas начала разработку встраиваемого скриптового языка Cmm, который должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си. Главным отличием от Си была работа с памятью. В новом языке всё управление памятью осуществлялось автоматически: не было необходимости создавать буфера, объявлять переменные, осуществлять преобразование типов.

Cmm был переименован в ScriptEase, поскольку исходное название звучало слишком негативно, а упоминание в нём Си «отпугивало» людей.

В конце ноября 1995 года Nombas разработала версию CEnvi, внедряемую в веб-страницы. Страницы, которые можно было изменять с помощью скриптового языка, получили название Espresso Pages. Работали они только в 16-битовом Netscape Navigator под управлением Windows[15]

Далее перед языком ставилась цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией. На синтаксис оказали влияние языки Си и Java, и, поскольку Java в то время было модным словом, 4 декабря 1995 года появился язык JavaScript.

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

Отличие Си от JavaScript:

  • В JavaScript функции представляются как объекты первого класса;
  • В JavaScript идет автоматическое приведение типов;
  • В JavaScript имеются анонимные функции.

В JavaScript отсутствуют:

  • модульная система;
  • стандартная библиотека;
  • стандартные интерфейсы к веб-серверам и базам данных;
  • система управления пакетами.

3.2. Среда разработки объектно-ориентированного программирования

Популярной средой разработки, поддерживающей популярные объектно-ориентированные языки программирования, среди программистов является Visual Studio .NET[27] [16].

Visual Studio .NET (вышла на рынок в 2002) является современной средой разработки (Рисунок 26), которая предоставляет программистам мощное и удобное средство для написания, редактирования, компиляции, отладки и запуска приложений, использующих совместимые с .NET языки. В Visual Studio .NET были включены средства разработки для четырех объектно-ориентированных языков программирования:

  • C #,
  • VB.NET,
  • C ++
  • J #.

Картинки по запросу .net framework

Рисунок 26 - Логотип NET Framework

Особенностью разработки на платформе .NET (дотнет)[28][16] является независимость разработчика при создании приложений различных типов, выполнимые на различных устройствах и в различных средах. Это достигается использованием общеязыковой среды исполнения Common Language Runtime (CLR) Функции CLR доступны в любых языках программирования, использующих эту среду

Основные принципы работы .NET Framework является (Рисунок 27):

1. Программы, сначала переводятся в промежуточный байт-код Common Intermediate Language (CIL).

2. Далее код выполняется Common Language Runtime (CLR) и переводится в исполняемый код для конкретного процессора[29] [16].

От исходного кода на C# к машинному выполнению

Рисунок 27– Архитектура платформы .NET Framework для языка C#

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

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

.NET Framework[30] [16] имеет мощный инструмент для поиска и исправления ошибок в программе - отладчик. Отладчик позволяет отслеживать программу, наблюдать за значениями переменных и контролировать вывод программы.

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

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

.NET Framework обеспечивает два режима трассировки[6] (Рисунок 28):

  • без захода в процедуру (Step over), который выполняет код программы без выполнения операторов, находящихся в процедуре, выдавая только результат выполнения процедуры
  • с заходом в процедуру (Trace into) с выполнение операций процедуры

Рисунок 28 – Меню отладка

При отладке широко используется метод, который называют методом точек останова[31] [20] (Рисунок 29).

Рисунок 29– Точка останова

Суть метода – необходимо отметить некоторую инструкцию программы (поставить точку останова), при достижении которой программа приостанавливает свою работу, и программист может начать трассировку или проконтролировать значения переменных. [10]

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

3.3. Пример создания программы на объектно-ориентированном языке программирования

Рассмотрим небольшой пример написания программы на языке C # в среде разработки Visual Studio .NET. Исходный код приложения «Калькулятор с яркими кнопками» находится в двух модулях:

  • Calc2.cs (Рисунок 30)
  • SetDlg.cs

Рисунок 30 – Главная форма «Калькулятор с яркими кнопками» в режиме конструктора

Calc2.cs – является главной форма приложения «Калькулятор с яркими кнопками». SetDlg.cs – окно диалога, с помощью которого можно настроить калькулятор.

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

Обработчики кнопок упорядочены по группам, каждая имеет свой цвет и свой обработчик события Click на все кнопки группы.

Рисунок 31 – Обработка нажатий

Для того, чтобы убедиться в работоспособности программы проведем несколько тестовых решений примеров. Программа тестировалась на ноутбуке Dell, Intel® Core™ i7-2670QM CPU 2/20GHz ОЗУ 6,00 ГБ 8

1. Сложение двух чисел.

Сложим два числа: 2+2 =4. Проверим, как складывает числа программа. Введем последовательно:

1. Щелчок по кнопке «2».

2. Щелчок по кнопке «+»

3. Щелчок по кнопке «2»

4. Щелчок по кнопке «=»

5. На экране видим (Рисунок 32)

Рисунок 32 – Результат 1 теста

2. Изменим значения количество знаков после запятой. Введем последовательно:

1. Щелчок по кнопке «?»

2. В открытом диалоговом окне с помощью счетчика установим значение 5 в поле «Количество знаков после запятой» (Рисунок 33)

3. Нажмем кнопку «ОК»

Рисунок 33 – Изменение количества знаков после запятой

3. Проверим сложение двух чисел из первого теста с новыми установками (Рисунок 34)

Рисунок 34 – Сложение двух чисел с новыми установками

Выводы по главе 3.

Популярность объектно-ориентированных языков программирования из года в год меняется, но неизменно в топе языки семейства Си, С++, C#, Java.

Современные языки программирования имеют среду разработки программ, которая помогает разработчику проектировать, разрабатывать и тестировать программу.

В курсовой работе рассмотрена поэтапная разработка программы на языке высокого уровня C#. Основная задача программы – создание программы аналога от Windows - Калькулятор, но более упрощенной версией при более ярком интерфейсе. Процесс создание приложений на языке C# начинается с создания форм, элементов форм, написания кодов для обработчиков. Проведено тестирование контрольных примеров, которое показало, работоспособность разработанного приложения.

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

Основные средства разработки классов:

  • Наследование.
  • Простой полиморфизм
  • механизм событий.

Популярность объектно-ориентированных языков программирования из года в год меняется, но неизменно в топе языки семейства Си, С++, C#, Java.

Современные языки программирования имеют среду разработки программ, которая помогает разработчику проектировать, разрабатывать и тестировать программу.

В курсовой работе рассмотрена поэтапная разработка программы на языке высокого уровня C#. Основная задача программы – создание программы аналога от Windows - Калькулятор, но более упрощенной версией при более ярком интерфейсе. Процесс создание приложений на языке C# начинается с создания форм, элементов форм, написания кодов для обработчиков. Проведено тестирование контрольных примеров, которое показало, работоспособность разработанного приложения.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Источники на русском языке:

        1. А. Васильев - Программирование на C# для начинающих. Основные сведения- СПб.:Питер, 2018 г. - 516 с
        2. А. Стиллмен. Изучаем C# / А. Стиллмен – С.-П.:Питер, 2014 г. - 816 с
        3. Алгоритмы и структуры данных: Учебник / Белов В.В., Чистякова В.И. - М.:КУРС, НИЦ ИНФРА-М, 2016. - 240 с
        4. Алгоритмы компьютерной арифметики / Окулов С.М., Лялин А.В., Пестов О.А., - 2-е изд., (эл.) - М.:БИНОМ. ЛЗ, 2015. - 288 с.
        5. Бадд Т. Объектно-ориентированное программирование в действии: Пер. с англ. СПб.: Питер, 2016. 464 с,
        6. Пугачев Е.К. Объектно-ориентированное программирование: Учеб. для вузов/ Под ред. Г.С. Ивановой. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. - 320 с , ил. (Сер. Информатика в техническом университете).
        7. ХьюзДэс.,. Структурный подход к программированию: Пер. с англ. М.: Мир, 2012. 278 с.
        8. Макконнелл С. Совершенный код. Мастер класс / Пер. с англ. — М. : Издательство «Русская редакция», 2014. — 896 стр. : ил.
        9. Программирование на СИ#: Учебное пособие / Медведев М.А., Медведев А.Н., - 2-е изд., стер. - М.:Флинта, Изд-во Урал. ун-та, 2017. - 64 с.
        10. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев ; под ред. Л.Г. Гагариной. — М. : ИД «ФОРУМ» : ИНФРА-М, 2018. — 512 с.
        11. Программирование / Давыдова Н.А., Боровская Е.В., - 3-е изд., (эл.) - М.:БИНОМ. ЛЗ, 2015. - 241 с.
        12. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд. : Пер. с англ. СПб.: Питер, 2015. 464 с.
        13. Стиллмен Э., Грин Дж. Head First. Изучаем C#. 3-е изд. : Пер. с англ. СПб.: Питер, 2017. - 816 с.
        14. Федоренко, Ю. П. Алгоритмы и программы на C++Builder / Ю. П. Федоренко. - М.: ДМК Пресс, 2014. - 544 с.
        15. Хейлсберг А., Торгерсен М., Вилтамут С., Голд П. Язык программирования C#. Классика Computers Science. 4-е изд. : Пер. с англ. СПб.: Питер, 2014. - 784 с.

Электронные ресурсы:

        1. Visual Studio-[Электронный ресурс] URL: https://www.microsoft.com/ru-ru/ Дата обращения 29.12.2018
        2. C#. Быстрый старт-[Электронный ресурс] URL: https://geekbrains.ru/courses/87 Дата обращения 29.12.2018
        3. Основы программирования на C#-[Электронный ресурс] URL: https://www.intuit.ru/studies/courses/2247/18/infoДата обращения 29.12.2018
        4. ISO 9126 - [Электронный ресурс] URL: http://www.nspru.ru/downloads/iso9126.pdf Дата обращения 29.12.2018
        5. Учим C# -[Электронный ресурс] URL: https://habrahabr.ru/post/49404/Дата обращения 29.12.2018
  1. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев ; под ред. Л.Г. Гагариной. — М. : ИД «ФОРУМ» : ИНФРА-М, 2018. — C. 45

  2. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев ; под ред. Л.Г. Гагариной. — М. : ИД «ФОРУМ» : ИНФРА-М, 2018. — C. 47

  3. Бадд Т. Объектно-ориентированное программирование в действии: Пер. с англ. СПб.: Питер, 2016.- С.145

  4. Алгоритмы и структуры данных: Учебник / Белов В.В., Чистякова В.И. - М.:КУРС, НИЦ ИНФРА-М, 2016. – С.245

  5. ХьюзДэс.,. Структурный подход к программированию: Пер. с англ. М.: Мир, 2012. C 78

  6. Алгоритмы компьютерной арифметики / Окулов С.М., Лялин А.В., Пестов О.А., - 2-е изд., (эл.) - М.:БИНОМ. ЛЗ, 2015. – C. 188

  7. Макконнелл С. Совершенный код. Мастер класс / Пер. с англ. — М. : Издательство «Русская редакция», 2014. — С.33

  8. Алгоритмы и структуры данных: Учебник / Белов В.В., Чистякова В.И. - М.:КУРС, НИЦ ИНФРА-М, 2016. – C.91

  9. А. Стиллмен. Изучаем C# / А. Стиллмен – С.-П.:Питер, 2014 г. – C.77

  10. Пугачев Е.К. Объектно-ориентированное программирование: Учеб. для вузов/ Под ред. Г.С. Ивановой. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. – C,467

  11. Федоренко, Ю. П. Алгоритмы и программы на C++Builder / Ю. П. Федоренко. - М.: ДМК Пресс, 2014. – C. 144

  12. Федоренко, Ю. П. Алгоритмы и программы на C++Builder / Ю. П. Федоренко. - М.: ДМК Пресс, 2014. – C. 145

  13. Программирование /Давыдова Н.А., Боровская Е.В.,- 3-е изд., (эл.) - М.:БИНОМ. ЛЗ, 2015. – C. 41

  14. ISO 9126 - [Электронный ресурс] URL: http://www.nspru.ru/downloads/iso9126.pdf Дата обращения 29.12.2018

  15. ISO 9126 - [Электронный ресурс] URL: http://www.nspru.ru/downloads/iso9126.pdf Дата обращения 29.12.2018

  16. Программирование на СИ#: Учебное пособие / Медведев М.А., Медведев А.Н., - 2-е изд., стер. - М.:Флинта, Изд-во Урал. ун-та, 2017. - C. 24

  17. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд. : Пер. с англ. СПб.: Питер, 2015. C -260.

  18. А. Васильев - Программирование на C# для начинающих. Основные сведения- СПб.:Питер, 2018 г. – c 317 с

  19. А. Васильев - Программирование на C# для начинающих. Основные сведения- СПб.:Питер, 2018 г. – c 333 с

  20. Стиллмен Э., Грин Дж. Head First. Изучаем C#. 3-е изд. : Пер. с англ. СПб.: Питер, 2017. – C 616

  21. Стиллмен Э., Грин Дж. Head First. Изучаем C#. 3-е изд. : Пер. с англ. СПб.: Питер, 2017. – C 626

  22. Хейлсберг А., Торгерсен М., Вилтамут С., Голд П. Язык программирования C#. Классика Computers Science. 4-е изд. : Пер. с англ. СПб.: Питер, 2014. – C 584

  23. Основы программирования на C#-[Электронный ресурс] URL: https://www.intuit.ru/studies/courses/2247/18/infoДата обращения 29.12.2018

  24. Пугачев Е.К. Объектно-ориентированное программирование: Учеб. для вузов/ Под ред. Г.С. Ивановой. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. – C 120 с , ил. (Сер. Информатика в техническом университете).

  25. C#. Быстрый старт-[Электронный ресурс] URL: https://geekbrains.ru/courses/87 Дата обращения 29.12.2018

  26. Пугачев Е.К. Объектно-ориентированное программирование: Учеб. для вузов/ Под ред. Г.С. Ивановой. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. – C 130 с , ил. (Сер. Информатика в техническом университете).

  27. Visual Studio-[Электронный ресурс] URL: https://www.microsoft.com/ru-ru/ Дата обращения 29.12.2018

  28. Visual Studio-[Электронный ресурс] URL: https://www.microsoft.com/ru-ru/ Дата обращения 29.12.2018

  29. Visual Studio-[Электронный ресурс] URL: https://www.microsoft.com/ru-ru/ Дата обращения 29.12.2018

  30. Visual Studio-[Электронный ресурс] URL: https://www.microsoft.com/ru-ru/ Дата обращения 29.12.2018

  31. Учим C# -[Электронный ресурс] URL: https://habrahabr.ru/post/49404/Дата обращения 29.12.2018