Файл: Анализ и оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы (Сущность объектно–ориентированного подхода).pdf
Добавлен: 28.04.2023
Просмотров: 315
Скачиваний: 1
2. Средства реализации объектно–ориентированного подхода к проектированию экономической информационной системы
2.1. C ++
Прежде чем рассматривать преимущества и недостатки C++, следует ознакомиться с правилами, которые использовал Бьёрн Страуструп при проектировании данного языка[4]:
Си++:
- Разработан как универсальный язык со статическими типами данных, эффективностью и переносимостью языка Си.
- Разработан так, чтобы непосредственно и всесторонне поддерживать множество стилей программирования (процедурное программирование, абстракцию данных, объектно–ориентированное программирование и обобщённое программирование).
- Разработан так, чтобы давать программисту свободу выбора, даже если это даёт ему возможность выбирать неправильно.
- Разработан так, чтобы максимально сохранить совместимость с Си, тем самым делая возможным лёгкий переход от программирования на Си.
- Избегает таких особенностей, которые зависят от платформы или не являются универсальными.
- Не накладывает никакой избыточной нагрузки на программу, не использующую какие–либо возможности.
- Разработан так, чтобы не требовать слишком усложнённой среды программирования.
Первое правило явно показывает на одно из ключевых преимуществ 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. Java
История создания языка Java начинается в июне 1991 года, когда Джеймс Гослинг создал проект для использования в одном из своих многочисленных сет-топ проектов. Язык, который рос вне офиса Гослинга, как дуб, Oak - первоначальное название Java до 1995 года, после в дальнейшем история Java продолжалась под именем Green, а позже был переименован как Java.
Но официальной датой создания языка Java считается 23 мая 1995 года, после выпуска компанией Sun первой реализации Java 1.0. Она гарантировала «Напиши один раз, запускай везде», обеспечивая недорогой стоимостью на популярных платформах.
13 ноября 2006 года, Sun выпустила большую часть как свободное и открытое программное обеспечение в соответствии с условиями GNU General Public License (GPL).
После 8 мая 2007 года судьба Java сложилась иначе. Компания завершила процесс, делая все чтобы исходный код был бесплатным и открытым, кроме небольшой части кода, на который компания не имела авторских прав.
Преимущества Java как языка программирования
- Объектно-ориентированный: в Java все является объектом. Дополнение может быть легко расширено, так как он основан на объектной модели.
- Платформонезависимый: в отличие от многих других языков, включая C и C++, Java, когда был создан, он не компилировался в платформе конкретной машины, а в независимом от платформы байт-коде. Этот байт код распространяется через интернет и интерпретируется в Java Virtual Machine (JVM), на которой он в настоящее время работает.
- Простой: процессы изучения и введение в язык программирования Java остаются простыми. Если Вы понимаете основные концепции объектно-ориентированного программирования, то он будет прост для Вас в освоении.
- Безопасным: методы проверки подлинности основаны на шифровании с открытым ключом.
- Архитектурно-нейтральным: компилятор генерирует архитектурно-нейтральные объекты формата файла, что делает скомпилированный код исполняемым на многих процессорах, с наличием системе Java Runtime.
- Портативный: архитектурно-нейтральный и не имеющий зависимости от реализации аспектов спецификаций — все это делает Java портативным. Компилятор в Java написан на ANSI C с чистой переносимостью, который является подмножеством POSIX.
- Прочный: прилагает усилия, чтобы устранить ошибки в различных ситуациях, делая упор в основном на время компиляции, проверку ошибок и проверку во время выполнения.
- Многопоточный: функции многопоточности, можно писать программы, которые могут выполнять множество задач одновременно. Введение в язык Java этой конструктивной особенности позволяет разработчикам создавать отлаженные интерактивные приложения.
- Интерпретированный: Java байт-код переводится на лету в машинные инструкции и нигде не сохраняется. Делая процесс более быстрым и аналитическим, поскольку связывание происходит как дополнительное с небольшим весом процесса.
- Высокопроизводительный: введение Just-In-Time компилятора, позволило получить высокую производительность.
- Распространенный: предназначен для распределенной среды интернета.
- Динамический: программирование на Java считается более динамичным, чем на C или C++, так как он предназначен для адаптации к меняющимся условиям. Программы могут выполнять обширное количество во время обработки информации, которая может быть использована для проверки и разрешения доступа к объектам на время выполнения.
2.3. Delphi
Концепция Delphi 1 была реализована в конце 1994 года, когда вышла первая версия среды разработки. В основу этого программного продукта легли концепции объектно-ориентированного программирования на базе языка Object Pascal и визуального подхода к построению приложений.
После выхода Delphi 1 все компьютерные издания писали об этой среде, как об «убийце Visual Basic». Появление Delphi 2 (32-разрядной) ознаменовало новую эпоху, – появился доступ к возможностям программных интерфейсов Windows NT и Windows 95. Delphi 2 стала средством разработки полноценных приложений клиент/сервер. Вскоре Delphi 3 предоставила разработчикам средства создания распределенных многоуровневых приложений и полноценный инструментарий проектирования приложений для Internet и Intranet. Появилась полноценная поддержка com – модели объектов, ставшей краеугольным камнем современного программирования. Четвертая версия Delphi позволяет полностью интегрировать ваши разработки с объектами com. Поддержка архитектуры corba (common object request broker architecture) открывает перед приложениями, созданными в delphi для платформы wintel (windows + intel), мир других операционных систем (unix, os/2, wms).
Delphi представляет следующие новые свойства и усовершенствования:
- Новые расширения языка. В Delphi в язык Object Pascal включены динамические массивы, методы обработки переполнения, установка значения параметров по умолчанию, и многое другое;
- Менеджер Проекта. Новый менеджер проекта позволяет Вам объединять проекты, которые работают вместе в одну проектную группу. Это позволяет организовать как работу взаимозависимых проектов, таких как однозадачные и многозадачные приложения или dll, так и совместную работу исполняемых программ;
- Новый проводник. Новый проводник содержит выполняемые классы, навигацию по модулям, и браузер кода. Проводник кода делает создание классов проще. Также проводник позволяет быстро перемещаться через файлы модуля, а так же между интерфейсом и реализацией;
- Закрепляемые окна инструментов. IDE (Интегрированная Среда разработки) содержит более перенастраиваемую конфигурацию окон инструментов, которые можно закреплять с редактором кода;
-
-
- Улучшенная отладка. Интегрированный отладчик имеет много новых свойств, включая удаленную и многопроцессорную отладку, просмотр кода центрального процессора, инспекторов, усовершенствованные точки прерывания, отладчик специфических подменю и закрепленных окон;
-
-
- Усовершенствования Activex;
- Усовершенствования VCL. Иерархия объектов Delphi была расширена, чтобы включить новый компонент для Nt Service приложений. Кроме того, новый компонент выполняемого списка (на Стандартной странице палитры), позволяет централизовать управление меню и команд от кнопок. Управление VCL расширено, чтобы поддерживать drag-and-drop перетаскивания, обеспечивать дополнительный контроль над размещением окна, и многое другое.
Delphi – это комбинация нескольких важнейших технологий:
- высокопроизводительный компилятор в машинный код;
- объектно-ориентированная модель компонент;
- визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;
- масштабируемые средства для построения баз данных.
Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре «клиент-сервер». Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).
В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы – после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.
В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию базовых классов. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, то лучше просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих компонент в настоящее время составляет несколько тысяч. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.
Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL LINK, поэтому доступ к СУБД Oracle, Sybase, Informix и Interbase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние sql-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf или .db (paradox). Если же он будет использовать локальный interbase for windows (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.