Главная страница
Навигация по странице:

  • 1.4. Анализ программного обеспечения, используемого для управления спортивными организациями

  • Диплом. Диплом1. Теоретические основы разработки программного обеспечения


    Скачать 125.49 Kb.
    НазваниеТеоретические основы разработки программного обеспечения
    АнкорДиплом
    Дата03.03.2020
    Размер125.49 Kb.
    Формат файлаdocx
    Имя файлаДиплом1.docx
    ТипГлава
    #110671
    страница2 из 2
    1   2
    Часть отсутствующих возможностей может имитироваться встроенными средствами (например, сопрограммы можно имитировать с помощью функций setjmp и longjmp), часть добавляется с помощью сторонних библиотек (например, для поддержки многозадачности и для сетевых функций можно использовать библиотеки pthreads, sockets и тому подобными; существуют библиотеки для поддержки автоматической сборки мусора), часть реализуется в некоторых компиляторах в виде расширений языка (например, вложенные функции в GCC).

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

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

    Одним из последствий высокой эффективности и переносимости языка стало то, что многие компиляторы, интерпретаторы и библиотеки других языков высокого уровня часто написаны на языке Си.

    C#

    C# – объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота как язык разработки приложений для платформы Microsoft .NET Framework. Впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

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

    Переняв многое от своих предшественников – языков C++, Pascal, Модула, Smalltalk и, в особенности, Java – С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ и некоторых других языков, не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

    C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET). CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

    Существует несколько реализаций C#:

    • Реализация C# в виде компилятора csc.exe включена в состав .NET Framework (включая .NET Micro Framework, .NET Compact Framework и его реализации под Silverlight и Windows Phone 7).

    • В составе проекта Rotor (Shared Source Common Language Infrastructure) компании Microsoft.

    • Проект Mono включает в себя реализацию C# с открытым исходным кодом.

    • Проект DotGNU также включает компилятор C# с открытым кодом.

    • DotNetAnywhere  – ориентированная на встраиваемые системы реализация CLR, поддерживает практически всю спецификацию C# 2.0.

    C++

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

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

    C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

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

    Стандарт C++ состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки.

    Первое время язык развивался вне формальных рамок, спонтанно, по мере встававших перед ним задач. Развитию языка сопутствовало развитие кросс-компилятора cfront. Новшества в языке отражались в изменении номера версии кросс-компилятора. Эти номера версий кросс-компилятора распространялись и на сам язык, но применительно к настоящему времени речь о версиях языка C++ не ведут. Лишь в 1998 году язык стал стандартизированным.

    C++ добавляет к C объектно-ориентированные возможности. Он вводит классы, которые обеспечивают три самых важных свойства ООП: инкапсуляцию, наследование и полиморфизм.

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

    Доступ к возможностям стандартной библиотеки C++ обеспечивается с помощью включения в программу (посредством директивы #include) соответствующих стандартных заголовочных файлов. Всего в стандарте C++11 определено 79 таких файлов. Средства стандартной библиотеки объявляются как входящие в пространство имён std. Заголовочные файлы, имена которых соответствуют шаблону «cX», где X — имя заголовочного файла стандартной библиотеки C без расширения (cstdlib, cstring, cstdio и пр.), содержат объявления, соответствующие данной части стандартной библиотеки C. Стандартные функции библиотеки C также находятся в пространстве имён std.

    Java

    Java  – сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска – 23 мая 1995 года. Java является один из самых популярных языков программирования.

    Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) – программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

    Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:

    • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,

    • широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,

    • аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами архитектуры ARM).

    По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

    Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.

    Основные возможности Java:

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

    • Расширенные возможности обработки исключительных ситуаций.

    • Богатый набор средств фильтрации ввода-вывода.

    • Набор стандартных коллекций: массив, список, стек и т. п.

    • Наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI).

    • Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы.

    • Встроенные в язык средства создания многопоточных приложений, которые потом были портированы на многие языки (например, Python).

    • Унифицированный доступ к базам данных:

    • на уровне отдельных SQL-запросов – на основе JDBC, SQLJ;

    • на уровне концепции объектов, обладающих способностью к хранению в базе данных – на основе Java Data Objects и Java Persistence API.

    • Поддержка обобщений (начиная с версии 1.5).

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

    Delphi

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

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

    В Delphi формальное начало любой программы чётко отличается от других участков кода и должно располагаться в определенном, единственном в рамках проекта, исходном файле с расширением dpr (тогда как другие файлы исходных текстов программы имеют расширение pas). В С-подобных языках программирования в качестве входа обычно используется глобальная функция или статический метод с именем main и определённым списком параметров, причём такая функция может быть расположена в любом из файлов исходного текста проекта.

    В Delphi идентификаторы типов, переменных, а равно и ключевые слова читаются независимо от регистра: например идентификатор SomeVar полностью эквивалентен somevar.

    В исходных файлах pas (которые, как правило, и содержат основное тело программы) на уровне языковых средств введено строгое разделение на интерфейсный раздел и раздел реализации. В интерфейсной части содержатся лишь объявления типов и методов, тогда как код реализации в интерфейсной части не допускается на уровне компиляции. Подобное разделение свойственно также языкам C/C++, где вводится разделение на заголовочные и собственно файлы реализации, но подобное разделение не обеспечивается на уровне языка или компилятора.

    В Delphi метод или функция четко определяются зарезервированными для этого ключевыми словами procedure или function, тогда как в C-подобных языках различие обуславливается ключевым словом, определяющим тип возвращаемого значения.

    Начало и конец программного блока выделяются ключевыми словами begin и end, тогда как в C-подобных языках программирования для этих целей используются фигурные скобки: {}. Таким образом, в Delphi достигается лучшая читаемость кода.

    1.4. Анализ программного обеспечения, используемого для управления спортивными организациями

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

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

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

    CRM-система способна полностью структурировать данные по клиентам, срокам и типам абонементов, по расписанию и т.д. Благодаря внедрению такой системы в спортивном зале можно:

    • создать единую информационную клиентскую базу,

    • вести календарь с записями занятий всех посетителей,

    • располагать в одном месте договора,

    • сводить в единую систему клубных карт и абонементов,

    • вести учет оплаты, баланс счетов, кассовых операций и посещений всех кто записан в клуб,

    • распределять и подсчитывать скидки, подарки, бонусы и т.п.,

    • отслеживать товарный ассортимент, статистику и бухгалтерский учёт.

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

    Внедрение CRM-системы поможет фиксировать важную информацию о клиентах – медицинские противопоказания, дату рождения, более предпочтительные процедуры. Эти данные позволят наладить с клиентом персонифицированное общение. Вы получите возможности для осуществления аналитики. На основании этих данных, можно находить и избавляться от «узких мест» в области продаж.

    Не стоит забывать и об оптимизации работы персонала. Эта система облегчит рутинную ручную работу администратора и сотрудников отдела продаж.

    На сайте https://crmindex.ru/for/fitnes_club представлены некоторые CRM-системы, используемые в спортивных организациях. Рассмотрим некоторые из них и сравним их.

    Малахит – удобная и гибкая система для взаимодействия с клиентами и ведения бизнеса красоты и здоровья. В функционал включены клиентская база и складской учёт, расчёт зарплаты и SMS рассылка, сервис online записи и многое другое.

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

    Fitness365 – платформа для организации работы спортивной организации с облачным размещением, в которой доступен весь необходимый функционал: помимо CRM, есть интеграция с телефонией, запись, система напоминаний, продажа и т.д. Доступна online версия и настольное ПО, приложения для клиентов и тренеров клуба.

    В таблице 1 приведено сравнение данных CRM-систем по платформам, а в таблице 2 – сравнение по ценам.

    Таблица 1 – Сравнение по платформам




    Малахит

    NanoGym

    Fitness365

    Веб-приложение







    Windows







    Mac







    Linux







    Android







    iOS







    Windows Phone







    Таблица 2 – Сравнение по ценам




    Малахит

    NanoGym

    Fitness365

    По подписке







    Покупка лицензии







    Тарифы

    - от 900 руб/ месяц Lite

    - от 1200 руб/ месяц Standart

    - от 1500 руб/ месяц Mac

    - от 18000 руб Покупка лицензии

    - 1500 руб/мес до 50 клиентов

    - 2500 руб/мес от 51 до 150 клиентов

    - 3500 руб/мес от 151 клиента

    - 1000 руб/мес персональный тренер

    - 2000 руб/мес онлайн

    - 7500 руб/мес онлайн - все включено

    - 15000 руб настольная версия / разовый платеж



    1   2


    написать администратору сайта