
- •I. Специальная часть работы Введение
- •1. Исследование предметной области моделирования процессов.
- •2. Постановка задачи
- •3. Описание архитектуры системы StarUml
- •3.2 Архитектура платформы
- •4. Исследование технологий моделирования процессов и бизнес моделирования.
- •5. Обоснование выбора субд.
- •5.1 Современные субд.
- •5.2 Выбор субд.
- •6. Обоснование выбора языка программирования JavaScript.
- •6.1 Языки программирования.
- •6.2 Выбор языка программирования.
- •II. Конструкторско-технологическая часть работы. Обоснование выбора объектно-ориентированного подхода для реализации модуля.
- •III. Решение задач на эвм
- •1.Разработка алгоритма решения задачи в системе StarUml.
- •2.Кодирование с использованием среды разработки Net Beans и языка программирования JavaScript.
- •1.1 Общая структура аддина.
- •1.2 Структура файла описания модуля.
- •3.Отладка программы.
- •IV. Экономическая часть. Резюме.
- •1. Описание функций автоматизированной системы.
- •2. Возможный рынок сбыта автоматизированной системы.
- •3. Сведения о предприятии разработчике автоматизированной системы
- •Состав группы разработчиков
- •4. Календарный план-график работы над программой Календарный план работ
- •5. Жизненный цикл программы
- •6. Оценка конкурентоспособности продукта (сравнение разработанной системы с другими аналогичными продуктами).
- •7. Калькуляция
- •8. Оценка экономической эффективности применения программы
- •9. Расчет цены программы
- •Заключение
- •III. Охрана труда.
- •1. Охрана труда на рабочем месте программиста.
- •1.1 Описание рабочего места программиста
- •1.2 Освещенность рабочего места
- •1.3 Параметры микроклимата на рабочем месте.
- •1.4 Нормирование шума.
- •1.5 Вентиляция
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-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.