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

Анализ и оценка средств реализации объектно–ориентированного подхода к проектированию экономической информационной системы (Суть объектно–ориентированного подхода)

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

  • рассмотреть суть объектно–ориентированного подхода;
  • охарактеризовать основные категории объектно–ориентированного подхода;
  • осуществить анализ и оценку языков C ++, Python, Java.

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

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

1. Объектно–ориентированный подход к проектированию экономической информационной системы

1.1. Суть объектно–ориентированного подхода

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

Исторически первой была идея процедурного структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые – пятидесятые годы). Типичным примером процедурно–ориентированного языка является Фортран – первый и все еще один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы [14].

По мере прогресса в области вычислительной математики акцент в программировании стал смещаться с процедур в сторону организации данных. Оказалось, что эффективная разработка сложных программ нуждается в действенных способах контроля правильности использования данных. Контроль должен осуществляться как на стадии компиляции, так и при прогоне программ, в противном случае, как показала практика, резко возрастают трудности создания крупных программных проектов. Отчетливое осознание этой проблемы привело к созданию Алгола–60, а позже – Паскаля, Модулы–2, Си и множества других языков программирования, имеющих более или менее развитые структуры типов данных. Логическим следствием развития этого направления стал модульный подход к разработке программ, характеризующийся стремлением «спрятать» данные и процедуры внутри модуля.

Начиная с языка Симула–67, в программировании наметился новый подход, который получил название объектно–ориентированного программирования (ООП). Его руководящая идея заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое – объект. Характерной чертой объектов является инкапсуляция (объединение) данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение. Фактически объектно–ориентированное программирование можно рассматривать как модульное программирование нового уровня, когда вместо во многом случайного, механического объединения процедур и данных акцент делается на их смысловую связь.

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

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

1.2. Основные категории объектно–ориентированного подхода

Концептуальной основой объектно–ориентированного подхода является объектная модель. Основными ее элементами являются:

  • абстрагирование (abstraction);
  • инкапсуляция (encapsulation);
  • модульность (modularity);
  • иерархия (hierarchy).
  • Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:
  • типизация (typing),
  • параллелизм (concurrency),
  • устойчивость (persistence) [6].

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

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

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

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

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

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

Устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и (или) в пространстве (при перемещении объекта из адресного пространства, в котором он был создан) [9].

Основные понятия объектно–ориентированного подхода: объект и класс.

Объект определяется как осязаемая реальность (tangible entity) – предмет или явление, имеющие четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и, наоборот, относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями. Индивидуальность – это свойства объекта, отличающие его от всех других объектов.

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

Класс – это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов – одна из самых сложных задач объектно–ориентированного проектирования [9].

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

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

Важным качеством объектного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Требование согласованности моделей выполняется благодаря возможности применения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы [22].

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

2. Средства реализации объектно–ориентированного подхода к проектированию экономической информационной системы

2.1. C ++

Прежде чем рассматривать преимущества и недостатки C++, следует ознакомиться с правилами, которые использовал Бьёрн Страуструп при проектировании данного языка[4]:

Си++:

  1. Разработан как универсальный язык со статическими типами данных, эффективностью и переносимостью языка Си.
  2. Разработан так, чтобы непосредственно и всесторонне поддерживать множество стилей программирования (процедурное программирование, абстракцию данных, объектно–ориентированное программирование и обобщённое программирование).
  3. Разработан так, чтобы давать программисту свободу выбора, даже если это даёт ему возможность выбирать неправильно.
  4. Разработан так, чтобы максимально сохранить совместимость с Си, тем самым делая возможным лёгкий переход от программирования на Си.
  5. Избегает таких особенностей, которые зависят от платформы или не являются универсальными.
  6. Не накладывает никакой избыточной нагрузки на программу, не использующую какие–либо возможности.
  7. Разработан так, чтобы не требовать слишком усложнённой среды программирования.

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

Универсальность C++ – еще одно значительное преимущество данного языка программирования. Овладев основами, разработчик сможет писать на C++ простые десктопные приложения для Windows с помощью Windows Forms, более сложные программы для Windows и Linux, игры для разных платформ (включая Windows и Android), серверную часть сайтов (back–end) и так далее.

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

Так как автор данной статьи рассматривает преимущества и недостатки языка программирования С++ как первой платформы для начинающего разработчика, то четвертый пункт (совместимость с Си) не является существенным. Однако с приобретением опыта разработчик заметит, что некоторые функции, работающие на C, также поддерживаются и C++ (например, функции ввода/вывода на экран информации scanf() и printf(), библиотека stdio.h). Вследствие этого некоторые программисты называют С++ не иначе как «Ц с классами»[5].

Кроссплатформенность C++ является весомым преимуществом для начинающих программистов. Есть множество компиляторов и IDE, которые имеют версии для Windows, MacOS и Linux (Code::BlocksIDE предназначена для Windows и Linux, CLion – для Windows, Linux и MacOS). Разработчик может создавать приложения для разных платформ, используя «родную» для системы IDE и компилятор. QT–framework, разработанный в 1996 году, особенно упростил задачу кроссплатформенности.

Шестое правило Страуструпа говорит об эффективности программ, написанных на C++. Если функционал программы не задействуется, то она будет потреблять меньше системных ресурсов и выполняться быстрее. Для начинающих разработчиков этот пункт означает то, что приложение будет компилироваться быстрее. Это показывают независимые тесты: так, программа, высчитывающая числа Фибоначчи [6], написанная на C++ и скомпилированная через GCC, собралась за 0.014 секунд. В данном тесте C++ уступил только Си: программа на Си скомпилировалась за 0.013 секунд. C++ быстрее компилирует программы благодаря статической типизации: компилятор не тратит время на определения типа переменной, как это происходит со многими интерпретируемыми языками наподобие JavaScript, Python, PHP и так далее (к слову, алгоритм Фибоначчи выполнился за 0.689 сек, 1.109сек и 1.307 сек на JavaScript, Python 2 и PHP соответственно).

Преимущества седьмого правила выглядят весьма условными, так как сегодня множество производителей предлагают удобные IDE для разных языков программирования. Более того, тут C++ заметно уступает, например, JavaScript. Для разработки на JavaScript необходим минимальный инструментарий – блокнот и веб–обозреватель (эти приложения в большинстве операционных систем встроены изначально), в то время как для C++ необходим компилятор, который необходимо дополнительно скачивать и настраивать. В большинстве случаев начинающему разработчику придется устанавливать пакет «среда разработки + компилятор».

Несмотря на такие преимущества, как кроссплатформенность и эффективность, C++ обладает высоким порогом вхождения. Вот что говорит о данном языке программирования Бондарев В.М.: «Программы на С++ обгоняют программы на других языках, как гоночный автомобиль обгоняет обычные. Но учиться программировать на них – все равно, что учиться азам вождения, сев за руль гоночного автомобиля – дорого и долго»

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

2.2. Python

Согласно индексу TIOBE (ежемесячный индикатор популярности языков программирования на базе подсчетов результатов поисковых запросов) Python 3 раза определялся языком года: в 2007, 2010 и 2018. Награда присуждается языку программирования, который имеет самый высокий рост рейтинга за год.

Интересно, что в марте этого года Python занял свою самую высокую позицию в рейтинге с 2001 года. Согласно TIOBE Index сейчас он находится на 3 месте [24].

Как и любой другой язык программирования, Python имеет плюсы и минусы. Однако количество разработчиков, увлеченные данным языком программирования, растет, как и число проектов, взаимно требующие Python–специалистов. «Не нужно изобретать очередной велосипед» – так говорят многие разработчики о Python.

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

Плюсы:

  1. Низкий порог вхождения. Синтаксис Python более понятный для новичка.
  2. Логичный, лаконичный и понятный. В сравнении с многими другими языками Python имеет легкочитаемый синтаксис, разве что Visual Basic тоже легок. Например, существует шутка про Perl , что это «write only» язык, так как синтаксис сложно читать: https://en.wikipedia.org/wiki/Write–only_language.
  3. Кроссплатформенный: подходит для разных платформ: и Linux, и Windows.
  4. Есть реализация интерпретаторов для мобильных устройств и непопулярных систем.
  5. Широкое применение. Используется для разработки веб–приложений, игр, удобен для автоматизации, математических вычислений, машинного обучения, в области интернета вещей. Существует реализация под названием Micro Python, оптимизированная для запуска на микроконтроллерах (можно писать инструкции, логику взаимодействия устройств, организовывать связь, реализовывать умный дом).
  6. Сильное комьюнити и много конференций. К примеру, недавно в Одессе состоялся PyCon. На конференции в числе всех спикеров выступили 4 иностранных докладчика, которые затронули интересные темы. Лично мне было полезно услышать соавтора библиотек MindsDB, докладчика из Нью–Йорка (рассказывал про искусственный интеллект при разработке средств распознавания лиц на фото), спикера из британской компании Elastic (выступил с докладом на тему «инструменты мониторинга производительности вашего приложения»), спикера из Минска (девушка рассказывала про протокол MQTT для связи устройств интернета вещей).
  7. Мощная поддержка компаний–гигантов IT–индустрии. Такие компании, как Google, Facebook, Dropbox, Spotify, Quora, Netflix, на определенных этапах разработки использовали именно Python.
  8. Высокая востребованность на рынке труда [2].

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

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

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

Конечно, у стороны две медали, и если говорить о минусах, то Python – язык с динамической типизацией. С одной стороны код проще и быстрее писать, но производительность уступает таким компилируемым языкам, как C++ и Golang. Но для большинства задач: для веб–разработки, для скриптов, прототипирования, машинного обучения и работы с большими данными, – один из лучших языков.

2.3. Java

Java – это язык программирования общего назначения, который следует парадигме объектно–ориентированного программирования и подходу «Написать один раз и использовать везде». Java используется для настольных, сетевых, мобильных и корпоративных приложений.

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

Java Development Kit (JDK) – комплект разработчика Java. С помощью JDK и стандартного блокнота можно писать и запускать/ компилировать код на Java;

Java Runtime Environment (JRE) – исполняющая система Java. Механизм распространения программного обеспечения, состоит из автономной виртуальной машины Java, стандартной библиотеки Java и инструментов настройки.

Integrated Development Environment (IDE) – интегрированная среда разработки. Инструменты, которые помогают запускать, редактировать и компилировать код. Самые популярные из них – IntelliJ IDEA, Eclipse и NetBeans [24].

Java можно найти везде. Это основной язык разработки для Android. Он используется в веб–приложениях, правительственных веб–сайтах и ​​технологиях обработки больших данных, таких как Hadoop и Apache Storm. Java подходит и для научных проектов, особенно в области обработки естественного языка. Язык Java преобладал и в программировании для мобильных устройств, задолго до появления смартфонов – первые мобильные игры в начале 2000–х годов были написаны на Java. Java, благодаря своей долгой истории, заработал свое место в Зале славы программирования. Индекс TIOBE, один из самых авторитетных индексов популярности программ в мире, при составлении рейтинга использует результаты поисковой выдачи. Несмотря на растущую популярность Go и Python, Java остается на вершине списка уже более десятилетия.

Java внес в мир программирования новые принципы:

  1. Гибкость. Java доказала, что C – процедурный, управляемый вручную и зависящий от платформы код – это не предел совершенства . Благодаря Java, все больше людей начали применять объектно–ориентированное программирование, которое сейчас используется повсеместно.
  2. Апплеты. Еще до появления JavaScript, в Java добавили апплеты – небольшие веб–программы, которые предоставляют интерактивные элементы для визуализации и обучения. Они не используются ни для чего, кроме простой анимации, однако апплеты привлекли внимание многих программистов и подтолкнули их к разработке HTML5, Flash и JavaScript.
  3. Разработка через тестирование. Java TDD – уже давно не экспериментальная практика, а стандартный способ разработки программного обеспечения. Введение JUnit в 2000 году считается одним из самых больших достижений Java [7].

В Java есть 5 основных принципов объектно–ориентированного подхода, а именно:

1. Все является объектом

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

2. Программа есть группа объектов, общающихся друг с другом

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

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

Объект хранит некоторые данные. Эти данные – это другие объекты, входящие в состав данного объекта и/или данные элементарных типов, такие как целое, вещественное, символ, и т.п.

4. Каждый объект имеет свой тип (класс)

Т.е. в объектно–ориентированном подходе не рассматривается возможность создания произвольного объекта, состоящего из того, например, что мы укажем в момент его создания. Все объекты строго типизированы. Мы должны сначала описать (создать) тип (класс) объекта, указав в этом описании из каких элементов (полей) будут состоять объекты данного типа. После этого мы можем создавать объекты этого типа. Все они будут состоять из одних и тех же элементов (полей).

5. Все объекты одного и того же типа могут получать одни и те же сообщения [12]

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

1. Достоинства:

  • наибольшая среди всех языков программирования степень переносимости программ;
  • мощные стандартные библиотеки;
  • встроенная поддержка работы в сетях (как локальных, так и internet/intranet).

2. Недостатки:

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

Так же там перечислялись некоторые особенности языка:

  • Java является полностью объектно–ориентированным языком. Например, C++ тоже является объектно–ориентированным, но в нем есть возможность писать программы не в объектно–ориентированном стиле, а в Java так нельзя;
  • реализован с использованием интерпретации Р–кода (байт–кода). Т.е. программа сначала транслируется в машинонезависимый Р–код, а потом интерпретируется некоторой программой–интерпретатором (виртуальная Java–машина, JVM) [13].

Во второй главе исследования были рассмотрены наиболее распространенные языки объектно–ориентированного программирования, которые могут быть эффективно использованы для проектирования экономических информационных систем. В частности, это такие языки, как C++, Python и Java. Рассмотренные средства реализации объектно–ориентированного подхода обладают различными преимуществами и недостатками, при этом каждое из них может в той или иной степени подходить для реализации определенных целей и задач программирования. Выбор определенного языка программирования должен осуществляться индивидуально, исходя из целей, возможностей и ресурсов проекта.

Очевидно, что код на JavaScript проще для понимания начинающего разработчика с базовым знанием английского языка, чем код на C++. Это происходит из–за статической типизации C++: в отличие от того же JavaScript, мы не можем в пределах одной переменной перевести число в строку, к тому же метод String(), принимающий один параметр в JS выглядит логичнее, чем метод itoa() в C++, принимающий три параметра.

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

ЗАКЛЮЧЕНИЕ

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

  • рассмотрена суть объектно–ориентированного подхода;
  • охарактеризованы основные категории объектно–ориентированного подхода;
  • осуществлен анализ и оценка языков C ++, Python, Java.

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

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

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

  1. Биллиг, В. А. Основы объектного программирования на C# (C# 3.0, Visual Studio 2008) / В. А. Биллиг. – М.: Интернет–университет информационных технологий, Бином. Лаборатория знаний, 2016. – 584 c.
  2. Буховец, А. Г. Алгоритмы вычислительной статистики в системе R. Учебное пособие / А. Г. Буховец, П. В. Москалев. – М.: Лань, 2015. – 160 c.
  3. Васильев, П. П. Турбо Паскаль в примерах и задачах / П. П. Васильев. – М.: Финансы и статистика, 2016. – 496 c.
  4. Гавриков, М. М. Теоретические основы разработки и реализации языков программирования / М. М. Гавриков, А. Н. Иванченко, Д. В. Гринченков. – М.: КноРус, 2014. – 184 c.
  5. Гергель, В. П. Современные языки и технологии параллельного программирования / В. П. Гергель. – М.: Издательство МГУ, 2016. – 408 c.
  6. Герман, О. Программирование на Java и C# для студента / О. Герман, Ю. Герман. – М.: БХВ–Петербург, 2014. – 512 c.
  7. Истомин, Е. П. Информатика и программирование / Е. П. Истомин, A. M. Власовец. – М.: Андреевский Издательский дом, 2015. – 294 c.
  8. Зыков, С. В. Введение в теорию программирования. Курс лекций. Учебное пособие / С. В. Зыков. – М.: Интернет–университет информационных технологий, 2017. – 400 c.
  9. Ишкова, Э. А. C#. Начала программирования / Э. А. Ишкова. – М.: Бином–Пресс, 2016. – 334 c.
  10. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников (+ CD) / Ю.Л. Кетков, А.Ю. Кетков. – М.: БХВ–Петербург, 2017. – 376 c.
  11. Культин, Н. Visual Basic для студентов и школьников / Н. Культин. – М.: БХВ–Петербург, 2017. – 354 c.
  12. Медведик, В. И. Практика программирования на Паскаль. Задачи и решения. Учебное пособие / В. И. Медведик. – М.: ДМК Пресс, 2015. – 590 c.
  13. Опалева, Э. А. Языки программирования и методы трансляции / Э. А. Опалева, В. П. Самойленко. – М.: БХВ–Петербург, 2015. – 480 c.
  14. Павловская, Т. А. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. – М.: Питер, 2016. – 464 c.
  15. Павловская, Т. А. C/C++. Процедурное и объектно–ориентированное программирование. Учебник / Т. А. Павловская. – М.: Питер, 2015. – 496 c.
  16. Рапаков, Г. Г. Turbo Pascal для студентов и школьников / Г. Г. Рапаков, С. Ю. Ржеуцкая. – М.: БХВ–Петербург, 2017. – 352 c.
  17. Санников, Е. В. Курс практического программирования в Delphi. Объектно–ориентированное программирование / Е. В. Санников. – М.: Солон–Пресс, 2015. – 188 c.
  18. Семакин, И. Г. Основы программирования и баз данных. Учебник / И. Г. Семакин. – М.: Academia, 2016. – 224 c.
  19. Финогенов, К. Г. Использование языка Ассемблера. Учебное пособие / К. Г. Финогенов. – М.: Горячая линия – Телеком, 2017. – 440 c.
  20. Финогенов, К. Основы языка Ассемблера / К. Финогенов. – М.: Горячая Линия – Телеком, Радио и связь, 2017. – 963 c.
  21. Хабибуллин, И. Программирование на языке высокого уровня. C/C++ / И. Хабибуллин. – М.: БХВ–Петербург, 2016. – 512 c.
  22. Хорев, П. Б. Объектно–ориентированное программирование с примерами на С#. Учебное пособие / П. Б. Хорев. – М.: Форум, Инфра–М, 2016. – 200 c.
  23. Черпаков, И. В. Основы программирования. Учебник и практикум / И. В. Черпаков. – М.: Юрайт, 2016. – 220 c.
  24. https://www.java.com/ru/about/