Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Финальный дип..doc
Скачиваний:
10
Добавлен:
27.09.2019
Размер:
878.59 Кб
Скачать

5.2 Выбор субд.

Разработанный модуль базируется на стандарте ANSI/SQL 92, что способствует его применению практически на всех современных СУБД. Однако существуют ограничения. Данный модуль подходит только для реляционных баз данных, в то время как современные СУБД работают также с иерархическими, сетевыми базами данных. Выбор реляционной модели связан с тем, что большинство современных баз данных базируется именно на ней. Это расширяет возможности применения модуля в различных областях деятельности.

Сравнивая ранее описанные СУБД, можно заметить, что не все системы управления базами данных пригодны для работы с базами данных, созданных на основе разработанного модуля. Наиболее удовлетворяющие требованиям СУБД являются: Firebird, MySQL и Oracle.

6. Обоснование выбора языка программирования JavaScript.

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

Языки программирования отвечают разным требованиям и предназначены для разных задач, хотя по сути своей универсальны. Скриптовые языки программирования хорошо использовать для небольших программ, где не требуется высокая скорость выполнения и при создании веб – страниц для связи объектов самой страницы и их взаимодействия. Для разработки средних приложений лучше всего использовать Delphi, С и Visual Basiс, т.к. эти языки отличаются высокой надёжностью и гораздо лучшей скоростью выполнения приложений написанных на них из-за того, что они лучше работают с памятью компьютера и также благодаря визуальным средствам программирования, что позволяет наглядно и в краткие сроки реализовать проект. К “промышленным” языкам я отнёс C++,C#,VB.Net,Java. Эти языки лучше всего подходят для крупных проектов,как например СУБД, системы управления предприятиями, различных научных проектов. Эти языки характеризует высокая надёжность и скорость.

6.1.1 Visual Basic

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

Достоинства Visual Basic:

  • Высокая скорость создания приложений с графическим интерфейсом для MS Windows.

  • Простой синтаксис, позволяющий очень быстро освоить язык.

  • Защита от ошибок, связанных с применением указателей и доступом к памяти..

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

Недостатки:

  • Поддержка операционных систем только семейства Windows и Mac OS X.

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

  • Требует установленную msvbvmXX.dll для работы программы.

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

6.1.2 VB.NET

Visual Basic .NET (VB.NET) — это объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic (VB), реализованный на платформе Microsoft .NET. VB.NET не имеет обратной совместимости с более ранней версией (Visual Basic 6.0).

Отличия от Visual Basic:

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

  • Использование всего набора объектных библиотек, входящих в .NET Framework, включающих мощные средства по работе с Windows Forms, базами данных (ADO.NET), графикой GDI+, средствами обеспечения безопасности, веб-страницами ASP.NET.

  • Поддержка свободной многопоточности.

  • Поддержка структурной обработки исключений.

6.1.3 Ruby

Ruby — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности. В языке Ruby реализован простой механизм для расширения языка с помощью библиотек, написанных на Си, позволяющий легко разрабатывать дополнительные библиотеки. Для унифицированного доступа к базам данных разработана библиотека Ruby DBI (поддерживающая SQLite, Oracle, ODBC, MySQL, DB2, MS SQL, InterBase, ADO).

Достоинства Ruby:

  • Наличие встроенных средств доступа к API функциям (WinAPIUntils).

  • Система RDoc, предназначенная для автоматического извлечания документации из исходных кодов.

  • Библиотека Rmagiсk, для работы с изображениями более 90 форматов.

  • Наличие глобального репозитория программного обеспечения - RAA.

Недостатки:

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

  • Отсутствие поддержки потоков операционной системы (для Unix-подобных операционных систем есть поддержка процессов ОС).

  • Отсутствие встроенной поддержки Юникода.

  • Отсутствие компиляции в байт - код. При этом есть возможность компилировать Ruby в Java и .NET байт - код, используя компилятор JRuby и Ruby.NET.

6.1.4 Си

Си  — стандартизированный процедурный язык программирования. Язык программирования Си отличается минимализмом. После компиляции каждой элементарной составляющей программы соответствовало небольшое число машинных команд, а использование базовых элементов языка не задействовало Runtime Library. Однопроходный компилятор компилирует программу, не возвращаясь назад, к уже откомпилированному тексту. Поэтому использованию функции должно предшествовать её объявление. Компиляторы Си разрабатываются сравнительно легко благодаря относительно низкому уровню языка и скромному набору элементов. Поэтому данный язык доступен на самых различных платформах. Программы, соответствующие стандарту языка, могут компилироваться на самых различных компьютерах. Си создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного программирования, не добавляя лишних накладных расходов на итоговый код программы компилятором, как это всегда делают языки очень высокого уровня, такие как Бейсик. С этой стороны Си имеет следующие важные особенности:

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

  • ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;

  • систему типов, предохраняющую от бессмысленных операций;

  • использование препроцессора;

  • непосредственный доступ к памяти компьютера через использование указателей;

  • минимальное число ключевых слов;

  • передачу параметров в функцию по значению, а не по ссылке;

  • указатели на функции и статические переменные.

  • области действия имён;

  • записи — определяемые пользователем собирательные типы данных (структуры), которыми можно манипулировать как одним целым.

Функции, которые отсутсвуют в Си (но имеются в других языках программирования):

  • автоматическое управление памятью;

  • поддержка объектно-ориентированного программирования;

  • вложенные функции;

  • полиморфизм функций и операторов;

  • встроенная поддержка многозадачности и сети.

6.1.5 С++

C++ — компилируемый статически типизированный язык программирования общего назначения.

Новые возможности по сравнению с Си:

  • поддержка объектно-ориентированного программирования;

  • поддержка обобщённого программирования через шаблоны;

  • дополнительные типы данных;

  • исключения;

  • пространства имён;

  • встраиваемые функции;

  • перегрузка операторов;

  • перегрузка имён функций;

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

Достоинствами языка являются:

  • Поддерживаются различные стили и технологии программирования,включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование.

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

  • Автоматический вызов деструкторов объектов при их уничтожении, причём в порядке, обратном вызову конструкторов. Это упрощает и делает более надёжным освобождение ресурсов, а также позволяет гарантированно выполнять переходы состояний программы, не обязательно связанные с освобождением ресурсов.

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

  • Язык поддерживает понятия физической и логической константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова.

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

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

  • Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

  • Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности. Доступны компиляторы для большого количества платформ.

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

  • Имеется возможность работы на низком уровне с памятью и адресами.

  • Высокая совместимость с языком Си, позволяющая использовать весь существующий код на Си.

Недостатки:

  • Плохая поддержка модульности (по сути, в классическом Си модульность на уровне языка отсутствует, её обеспечение переложено на компоновщик). Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьёзно замедляет компиляцию при подключении большого количества модулей (потому что результирующий файл, который обрабатывается компилятором, оказывается очень велик). Эта схема без изменений скопирована в C++. Для устранения этого недостатка, многие компиляторы реализуют механизм прекомпиляции заголовочных файлов.

К собственным недостаткам C++ можно отнести:

  • Иногда шаблоны приводят к порождению кода очень большого объёма. Для снижения размера машинного кода можно специальным образом подготавливать исходный код. Другим решением является возможность экспорта шаблонов.

  • Метапрограммирование на основе шаблонов C++ сложно и при этом ограничено в возможностях

  • Некоторые считают недостатком языка C++ отсутствие встроенной системы сборки мусора.

6.1.6 C#

C#  — объектно-ориентированный язык программирования. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов, делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Включённые изменения:

Возможность использования позднего связывания, для использования:

  • с языками с динамической типизацией (Python, Ruby).

  • с COM-объектами.

  • объектов с изменяемой структурой - DOM. Появляется ключевое слово dynamic.

  • Именованные и опциональные параметры.

  • Новые возможности COM interop.

  • Ковариантность и контрвариантность.

6.1.7 JavaScript

JavaScript — объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование. JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет отличия:

  • объекты, с возможностью интроспекции;

  • функции как объекты первого класса;

  • автоматическое приведение типов;

  • автоматическая сборка мусора;

  • анонимные функции.

В языке отсутствуют такие полезные вещи, как:

  • модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;

  • стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных;

  • стандартные интерфейсы к веб-серверам и базам данных;

  • система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.

6.1.8 Delphi.

Delphi — язык программирования, который используется в одноимённой среде разработки. динамическую идентификацию типа данных с возможностью доступа к метаданным классов в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему.

Отличия от Pascal:

  • Новые расширения языка. В Delphi включены динамические массивы, методы обработки переполнения, установка значения параметров по умолчанию, и многое другое;

  • Менеджер Проекта. Новый менеджер проекта позволяет Вам объединять проекты, которые работают вместе в одну проектную группу. Это позволяет организовать как работу взаимозависимых проектов, таких как однозадачные и многозадачные приложения или 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 (как в dbase или clipper) или .db (paradox). Если же он будет использовать локальный interbase for windows (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.