Сделай Сам Свою Работу на 5

Исследование технологий моделирования процессов и бизнес моделирования.

Описание архитектуры системы StarUML

 

3.1 StarUML

 

StarUML - программная платформа моделирования, которая поддерживает UML. Она основана на версии UML 1.4 и поддерживает нотацию UML версии 2.0 и одиннадцать различных типов диаграмм. Она активно поддерживает подход MDA (Архитектура Управляемая Моделью) и концепцию профилей UML. StarUML превосходен в отношении настройки окружения пользователя и имеет высокую степень расширяемости в том, что касается его функциональных возможностей.

 

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

 

3.2 Архитектура платформы

 

StarUML - расширяемая платформа моделирования программного обеспечения; она не только предоставляет готовые функции, но позволяет добавлять новые. Диаграмма, представленная ниже, иллюстрирует архитектуру StarUML. Светлым фоном показана собственно платформа, а тёмным - элементы расширения. Элементы расширения могут быть разработаны пользователем или третьими лицами, а затем интегрированы в платформу. (Рис. 4)

 

 

 

Рис.4 Архитектура платформы.

 

· Подход: Подход определяет структуру проекта и основные параметры организации диаграмм.

 

· Профиль UML и Расширение нотации: Профиль UML обеспечивает расширение набора спецификаций модели программного обеспечения через механизм расширения UML.

 

· Модельный фреймворк: Фреймворк делает часть модели программного обеспечения многократно используемой и позволяет применять её при разработке других моделей программного обеспечения.

 

· COM-объект расширения: COM-аддин позволяет добавлять новые функциональные возможности к StarUML.

 

· Расширение меню: Меню приложения StarUML (главное меню и всплывающие меню) можно расширять.

 

· Расширение опций: опции настройки StarUML могут добавляться пользователем.

 

· Обработка событий: Различные события, возникающие в StarUML, могут быть перехвачены и обработаны.

 

· Внешнее API: внешнее API StarUML позволяет получать извне доступ к различным функциональным возможностям и информации программы.

 

Исследование технологий моделирования процессов и бизнес моделирования.

 

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

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

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


Рис.2Модель бизнес-процесса как расширение организационно-функциональной модели.

 

На Рис.3 изображен пример модели бизнес-процесса верхнего уровня, выполненной в стандарте SADT/IDEF0.


Рис.3 Пример модели бизнес-процесса.

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

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

· Модели стратегического анализа

· Модели стратегии

· Модели финансовой структуры

· Бюджетные модели

· Информационные модели

Понимается, что модели являются взаимосвязанными, и изменения производимые в одной из них порождают соответствующие изменения в остальных. В принципе моделирование бизнеса можно начинать с разработки любой из перечисленных бизнес-моделей, однако их анализ и проектирование производится в определенной последовательности (Рис.4).


Рис4. Порядок анализа и проектирования моделей

Всё это делается для того, чтобы избежать дублирования, которое приводит к тому, что некоторые виды работ приходится фактически выполнять по 2 раза. Например одно из назначений разработанной системы – устранение дублирования трудовой деятельности при создании базы данных описанной на языке моделирования UML по данным ER – диаграмм. В большинстве предприятий малого бизнеса существует проблема нехватки квалифицированных кадров, т.к. бюджет таких компаний резко ограничен из-за небольшого спроса на их продукцию и необходимостью возвращать кредиты. В следствие этого довольно часто возникают ситуации, когда один и тот же сотрудник обязан выполнять не только свои прямые обязанности, но и дополнительную работу. Возьмём опять же пример созданной мной системы: допустим существует компания, которая занимается разработкой базы данных для мелких предприятий. У этой компании есть менеджер, бухгалтер, директор, и несколько рядовых сотрудников. Обычно труд разделяется между ними схожим образом: бухгалтер выполняет свои прямые обязанности, менеджер занимается поиском и общением с клиентами, плюс обязанности секретаря. Один из рядовых сотрудников выполняет заказ некой фирмы и моделирует на UML будущую базу данных, разработкой которой должен заниматься второй сотрудник. В результате получается, что одна и та же работа выполняется два раза: первый раз при моделировании базы данных, второй раз при её создании, т.к. создание БД – реализация описанной ранее модели. Используя же StarUML с разработанным мной модулем генерации SQL кода на основе ER – диаграмм, первый сотрудник мог бы нажатием на один пункт меню сгенерировать готовую базу данных, тем самым экономя время и некоторое количество человеко – часов, которые бы затратил второй сотрудник на создание базы данных.

5. Обоснование выбора СУБД.

 

5.1 Современные СУБД.

 

Сегодня существует большое количество СУБД, которые используются практически везде. Такой выбор объясняется тем, что разные системы управления базами данных применяются в различных областях человеческой деятельности и предназначены для разных задач. Существуют как крупные СУБД, которые предназначены для промышленного использования, так и мелкие, для небольших компаний, которым нет необходимости покупать дорогостоящие СУБД для использования в мелких коммерческих проектах.

5.1.1 DB2

 

DB2 – реляционная СУБД, разрабатываемую и выпускаемую компанией IBM.

В настоящее время СУБД DB2 представлена версиями на следующих платформах:

· Linux

· Unix

· Windows

· Solaris

· Mac OS X

· IBM i (встроена в систему на аппаратно-программном уровне)

· Palm OS

· Symbian

· Neutrino

В настоящее время, помимо коммерческих продуктов семейства, IBM распространяет также бесплатный дистрибутив DB2 Express-C для платформ Linux (x86-64), Windows (x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). Бесплатная версия имеет ограничения на использование для работы СУБД не более одного двухъядерного процессора и 2 Гбайт оперативной памяти.

К отличительным особенностям DB2 относится эффективный план выполнения запросов. В SQL DB2 практически отсутствуют подсказки оптимизатору, мало развит язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Благодаря приоритету IBM в развитии реляционной теории и позициям фирмы в компьютерной отрасли, диалект DB2 SQL оказывает значительное влияние на стандарты SQL ANSI/ISO. Поскольку исторически DB2 развивалась с многопользовательских систем на мейнфреймах, то большое внимание в архитектуре DB2 уделяется вопросам безопасности и распределения ролей обслуживающих DB2 специалистов. В частности, в отличие от многих других СУБД, в DB2 имеются отдельные роли для администратора СУБД и администратора базы данных. DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2). Современные версии DB2 обеспечивают расширенную поддержку использования данных в формате XML, в том числе операции с отдельными элементами документов XML.

 

5.1.2 Firebird

 

Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных. В качестве преимуществ Firebird можно отметить: многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов, компактность, высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров. Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора). Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland в виде свободной версии Interbase 6.0. Среди недостатков: отсутствие кеша результатов запросов. Firebird полностью поддерживает SQL 92 и реализует большую часть стандарта SQL-99 c некоторыми дополнениями.

Firebird работаент на следующих операционных системах:

· Windows (x86 - 64)

· Linux (x86 - 64)

· Mac OS X

· FreeBSD

· PowerPC

Переход от одной ОС к другой весьма прост — достаточно сделать резервную копию базы в переносимом формате в одной системе и восстановить на другой. Firebird поддерживает множество способов доступа, включая: собственные наборы компонент для C/C++, Delphi, классы для Ada, ODBC, JDBC, драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll).

 

5.1.3 PostgreSQL

 

PostgreSQL — свободная объектно-реляционная система управления базами данных. Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird).

Реализована для операционных систем:

· Windows (x86 - 64)

· Solaris

· Open Solaris

· Mac OS X

· FreeBSD

PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL 2003 (ISO/IEC 9075). Соответствует стандартам ANSI SQL-92 и SQL-99. Сильными сторонами PostgreSQL считаются: поддержка БД практически неограниченного размера; надёжные механизмы транзакций и репликации; наследование; легкая расширяемость. Реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:

  • Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;
  • Скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl и PL/Scheme;
  • Классические языки — C, C++, Java (через модуль PL/Java);
  • Статистический язык R (через модуль PL/R).

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

 

5.1.4 Microsoft SQL Server

 

Microsoft SQL Server — система управления реляционными базами данных, разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией SQL-92 с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций. Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения - Tabular Data Stream. Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase. В SQL Server встроена поддержка .NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System. Выпускается только для операционных систем семейства Windows.

 

5.1.5 MySQL

 

MySQL — свободная система управления базами данных. Распространяется под GNU General Public License и под собственной коммерческой лицензией. MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Платформы поддерживающие MySQL:

· Windows

· Linux

· Unix

· BSDi

· FreeBSD

· NetBSD

· OpenBSD

· Mac OS X

· OS/2

· Solaris

· SunOS

· AIX

· OpenVMS

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC. Реализует стандарт SQL 92, почти полностью SQL 99 и частично SQL 2003.

 

5.1.6 Oracle

 

Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных. С технической точки зрения важно то, что Oracle функционирует практически на всех существующих компьютерных платформах, в том числе и на больших ЭВМ (OS/390) и на охраняющих популярность системах Vax VMS, разновидностях Unix, в точ числе Solaris, HP-UX, AIX, Linux, SCO Unix и т.д.

Другой важной характеристикой является поддержка Oracle всех возможных вариантов архитектур, в том числе симметричных многопроцессорных систем, кластеров, систем с массовым параллелизмом и т.д. Очевидна значимость этих характеристик для систем масштаба корпорации, где эксплуатируется множество компьютеров различных моделей и производителей. В таких условиях фактором успеха является максимально возможная типизация предлагаемых решений, ставящая своей целью существенное снижение стоимости владения программным обеспечением. Унификация систем управления базами данных – один из наиболее значимых шагов на пути достижения этой цели. Ядром СУБД Oracle является сервер базы данных, который поставляется в одном из четырех вариантов в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. Приблизительно 80% программного кода Oracle – это программы на языке программирования C, который является платформо-независимым. Примерно 20% кода, представляющее собой ядро сервера реализовано на машинно-зависимых языках и эта часть кода, разумеется, переписывается для различных платформ. Жесткая технологическая схема разработки Oracle, опирающаяся на принципы идентичности исходного программного кода для различных версий и платформ, контрастирует со схемами других компаний. Итак, СУБД Oracle скрывает детали реализации механизмов управления данным на каждой из платформ, что дает основание говорить о практически полной унификации базового программного обеспечения. Дополнительно к этому, архитектура Oracle позволяет переносить прикладные системы, реализованные на одной платформе, на другие платформы без изменений как в структурах баз данных, так и кодов приложений. При этом основным критерием, определяющим возможность переноса тех или иных программных компонентов между платформами является полное исключение их них машинно-зависимого кода.

 

5.1.7 SQLite

 

SQLite — лёгкая встраиваемая реляционная база данных. SQLite не использует парадигму клиент-сервер, т.е. движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала. Сама библиотека SQLite написана на C; существует большое количество привязок к другим языкам программирования, в том числе C++, Java, C#, Python, Perl, PHP, Tcl (средства для работы с Tcl включены в комплект поставки SQLite), Ruby, Haskell, Scheme, Smalltalk, Lua и Parser, а также ко многим другим. Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.

Также SQLite поддерживают:

  • Среда для запуска приложений Adobe Integrated Runtime;
  • Gears;
  • Фреймворк Qt;
  • Платформа XUL на движке Gecko 1.9, XULRunner 1.9 и, потенциально, все приложения, основанные на этой платформе, в том числе Mozilla Firefox (начиная с версии 3.0) и Mozilla Thunderbird (начиная с версии 3.0). В качестве примеров XUL-приложений можно привести Songbird и SQLite Manager.
  • Skype

Многие программы поддерживают SQLite в качестве формата хранения данных (особенно в Mac OS и iPhone OS), в том числе:

  • 1С:Предприятие;
  • Banshee;
  • F-Spot;
  • Gajim;
  • Miranda IM;
  • Safari;
  • Opera.

SQLite соответсвует стандарту SQL 92 и частично SQL 99. Поддерживается самыми распространёнными операционными системами, такими как: Windows, Linux, FreeBSD, MacOS X.

 

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 содержит более перенастраиваемую конфигурацию окон инструментов, которы



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.