Главная » Просмотр файлов » Диссертация

Диссертация (1090660), страница 19

Файл №1090660 Диссертация (Методы и инструменты декларативного программирования динамических Web-узлов и приложений) 19 страницаДиссертация (1090660) страница 192018-01-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 19)

Для него был такжеподготовлен набор этих рецептов. Стоит особо отметить, что все рецепты отражаютнепосредственно серверную логику работы приложений и не содержат исходного кода, отвечающего за представление (а в BML это и вовсе не предусмотрено). Такимобразом, все рецепты следуют методологии MVC. Исходный код рецептов на языкеBML представлены в приложении B.Наименьший по количеству строк кода рецепт гостевой книги (53 строки на BML),следом за ним идёт система конференций (240 строк кода на BML) и самым громоздким получился форум (791 строка исходного кода на BML). Безусловно, на языке PHPколичество строк кода оказалось на порядок больше, но пропорционально каждомурецепту. Кратко поясним функционал каждого рецепта.Гостевая книга (приложение B.1) имеет систему авторизации для администраторов, разграничением прав доступа на управление записями для администраторов и114пользователей, ленту записей.

Любой пользователь может оставлять в гостевой книгесообщения.Система обработки заявок на конференции (приложение B.2) имеет разделениебольшого мероприятия на секции, каждая секция содержит некоторое количество заявок, а у каждой заявки есть определённое количество прикрепляемых файлов. Любаязаявка имеет свой статус (отклонена, одобрена, на доработку и т.п.), а также историюего изменений. Заявка может быть подана только авторизованным пользователем. Разграничены права доступа для администраторов, секретарей и участников. Есть страницы регистрации пользователя, подачи заявки, вывода программы конференции посекциям, различные служебные страницы редактирования информации.Форум (приложение B.3) имеет категории, каждая категория имеет темы, а в темахприсутствуют сообщения. Теме можеть быть присвоен статус «важная».

В сообщениях допустимо использовать «смайлы», коды которых автоматически преобразуются всоответствующие ссылки на графические изображения. Для любой темы может бытьсоздано голосование. Любому пользователю доступна система личных сообщений,реализованная нестандартными методами языка BML. Отличительная особенностьфорума заключается в его разветвлённой системе прав доступа. Реализованы следуюище разграничения: отдельные разрешения стоят на страницы администраторов,создание и редактирование сообщений, видимость категорий, административные категорий, отправку почты, изменение личных данных, полную блокировку доступа кресурсу.Проведение тестированияКак уже было сказано ранее, входными данными для метрик Холстеда являетсячисло операндов и операторов, причём отдельно считаются различные и отдельноповторяющиеся операторы и операнды. Значения для трёх рецептов представлены втаблице 3.5.Мы будем рассчитывать теоретическую длину программы по Холстеду, поскольку эта же характеристика по формуле Вайравана не предназначена для вычисленияпрограмм с большим объёмом.

На рисунке 3.2 показаны основные метрики, полученные в ходе подсчёта исходного кода каждого рецепта. Уже по ним можно понять,что рецепты на языке BML меньше, чем аналогичные рецепты на языке PHP. Стоитотметить, что на графике используется логарифмическая шкала и в проекте форумапоказана разница в 10 раз по объёму задействованных операторов и операндов. Этот115Таблица 3.5.

Вычисленные метрики ХолстедаПарам.1212′ОписаниеУникальные операторыУникальные операндыВсего операторовВсего операндовСловарь программыДлина программыТеоретическая длинаПравильностьОбъем программыУровень программыСложность программыИнформ. содержаниеУровень языкаГостевая книга КонференцииФорумPHPBMLPHP BMLPHPBML47201052916047493634093147025028187217731388481257207691783394878088196564451229008297488156396070717628213853627335647491663822531,101,750,901,060,941,05321390634839 4900 231579 175620,010 0,0520,004 0,016 0,0020,01299,28 19,17 275,32 61,43 477,82 82,8132,37 47,27 126,54 79,77 484,65 212,070,332,470,461,301,012,56показатель говорит о минимизации избыточности в исходном коде BML, что такжеувеличивает восприятие кода.100001000Гостевая книга (PHP)Конференции (PHP)Форум (PHP)Гостевая книга (BML)Конференции (BML)Форум (BML)100101Число уникальныхоператоровЧисло уникальныхоперандовОбщее числооператоровОбщее число операндовРисунок 3.2.

Начальные характеристики исходного кода рецептовНа рисунке 3.3 показаны сравнения фактических и расчётных длин программ. Данные характеристики идентичны между собой в пределах допустимой погрешности,что говорит о корректности написанных программ. Единственный случай, когда возникло расхождение – рецепт гостевой книги. Это объясняется тем, что язык BML116предназначен для бо́льших проектов и задействует избыточное количество сущностейс точки зрения небольшого рецепта.180001600014000Расчётные и фактическиедлины программ12000PHP (N)PHP (N’)10000BML (N)BML (N’)80006000400020000Гостевая книгаКонференцииФорумРисунок 3.3.

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

3.5).600500Сложность кодированияпрограммы400PHP (D)BML (D)3002001000Гостевая книгаКонференцииФорумРисунок 3.4. Вычисленная сложность кодирования программыБольшой интерес в рамках представленной работы вызывает характеристика уровня языка ( ). Высокий уровень языка говорит о его выразительности (рис. 3.6).117250000Объём программы200000PHP (V)BML (V)150000100000500000Гостевая книгаКонференцииФорумРисунок 3.5. Вычисленные объёмы рецептов3,00Уровень языка2,50PHP (Lяз.)BML (Lяз.)2,001,501,000,500,00Гостевая книгаКонференцииФорумРисунок 3.6.

Вычисленный уровень языка в зависимости от рецептаС другой стороны, высокая выразительность обеспечивается за счёт узкой специализированности, что характерно для DSL [33]. При этом излишне специфичныезадачи язык может не решить, хотя сам язык BML протестирован именно на тех рецептах, части которых могут использоваться в большинстве других, в меру типовыхпроектах.1183.4Выводы по главе 3В рамках исследования разработан комплексный метод оценки качества программного кода, применимый как для декларативного, так и для императивного программирования. Предлагается задействовать множество методик: с применением классических метрик, с проведением экспертной оценки, а также с измерением затрачиваемыхсистемных ресурсов.Для выявления важнейших критериев оценки предлагается использование метода анализа иерархий.

По результатам составленной модели и проведенному анализустановится ясно, что, хотя «набор рецептов» и не является наиболее важным критерием критерием, он служит основой для дальнейших экспериментов, включающихколичественную и качественную оценки.Таким образом, принято решение разработать три типовых рецепта и применитьк ним метрику Холстеда. Рецепты составлены на основе многолетнего опыта Webразработки и представления о востребованности подобных проектов в реальной жизни.

К таким рецептам были отнесены: гостевая книга, форум, научная конференция.В ходе разработки была продемонстрирована эффективность и выразительностьязыка BML по отношению к языку PHP. И несмотря на то, что выразительностьбыла показана на типовых рецептах, отдельные их части могут быть использованыдля реализации проектов другой конфигурации, что делает язык достаточно гибким,чтобы реализовать приемлемое количество разноплановых случаев в отрасли Webразработки.Разработан визуальный редактор, представляющий собой надстройку над языкомBML и предоставляющий следующий функционал: мастер создания проекта, редактор локаций и модели, редактор наборов, редактор блоков, конструктор прав доступа.119Глава 4Разработка программногокомплекса интерпретатораязыка BML и визуальногоредактора BlockSet4.0.1Требования к языку программирования и динамическойплатформеПри выборе языка программирования, мы руководствовались следующими основными критериями: быстродействие, минимальный расход памяти и эффективностьразработки.

Поскольку речь идет о разработке интерпретатора – программы, обрабатывающей большие объемы однотипных данных, решено было использовать компилируемый язык программирования как наиболее производительный. Следовательно,интерпретируемые языки вроде Perl, PHP, Python или Ruby для решения поставленной задачи не подходят, так как эффективность исполнения кода у них на несколькопорядков ниже.

Помимо этого, важным аспектом является гибкость в использовании протокола HTTP, прямая работа с системными вызовами, потоками и другиминизкоуровневыми сущностями. Выбор сократился до двух претендентов: C++ и Java.Последний имеет относительно низкий порог вхождения и высокую эффективностьразработки. Если говорить о скорости выполнения программ, то большая часть алгоритмов на C++ выполняется так или иначе быстрее, а в некоторых случаях сопоставимо по затрачиваемому времени. Однако Java значительно проигрывает C++120по критерию потребляемой памяти [29] за счет вовлечения дополнительного звена –Java-машины. В итоге программный модуль интерпретатора решено было исполнитьна языке C++.На этапе проектирования модуля возник ряд вопросов касаемо его места в архитектуре Web-сервера.

Перечень возможных вариантов невелик и ограничиваетсявыбором динамической Web-платформы [23]: CGI или FastCGI. Также существуеттехнология создания собственного модуля для Web-сервера, однако мы ее оставимза рамками данного исследования по причине отсутствия универсальности решения.Это означает, что при смене Web-сервера придется перестраивать архитектуру проекта заново, а учитывая тот факт, что каждый Web-сервер имеет свой собственный специфичный программный интерфейс (API), порог вхождения в технологию снижаетсядо минимума. Следовательно, могут возникнуть трудности при поиске специалистовсоответствующего профиля, способных поддержать программный код.4.0.2Анализ динамической платформы CGIИнтерфейс CGI (англ.

Common Gateway Interface) [70] является одним из первыхрешений, позволивших сделать Web-сервер динамическим. Он обеспечивает связьмежду внешней программой операционной системы и Web-сервером. Интерфейс исейчас является одним из самых распространенных для взаимодействия с внешнимиприложениями сервера. В числе его достоинств — относительная простота разработки. Входные данные подаются через стандартный поток ввода, а выходные возвращаются через стандартный поток вывода. Потоки данных и переменные окруженияможет обрабатывать любой распространенный язык программирования.

Запуск CGIпрограмм полностью поддерживается большинством серверов.Основной недостаток CGI обнаруживается на этапе исполнения: для обслуживания каждого пользователя создается отдельный экземпляр процесса, завершающийсяпо окончании работы приложения. Порождение нового экземпляра приложения сопровождается клонированием процесса Web-сервера (большой процесс), затем запускается внешняя программа в адресном пространстве клона.

Характеристики

Список файлов диссертации

Методы и инструменты декларативного программирования динамических Web-узлов и приложений
Документы
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее