Тип работы:
Предмет:
Язык работы:


Разработка автоматизированной системы проверки качества JavaScript-кода

Работа №131401

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы24
Год сдачи2018
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
20
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 7
2. Требования к системе 8
2.1. Функциональные требования 8
2.2. Нефункциональные требования 10
3. Обзор предметной области 11
3.1. Обзор существующих подходов и решений 11
3.2. Обзор инструментов 11
3.3. Выводы 13
4. Архитектура системы и особенности реализации 15
5. Апробация прототипа 20
Заключение 22
Список литературы 23

«Хороший код», «качество кода» - это понятия, которые имеют как довольно общее определение, так и определенную специфику в рам­ках компании или даже конкретного проекта. Некачественный код ха­рактеризуется смешением стилей программирования, это приводит к усложнению разработки. Для того, чтобы избежать смешения разных стилей написания кода в одном проекте, существуют руководства, опи­сывающие общие принципы работы с кодом. Такие документы могут быть разработаны в масштабе компании, рабочей группы или проекта. Обычно в них описываются общеизвестные аспекты, например:
• рекомендации по использованию регистров в названиях перемен­ных, методов или классов, такие как CamelCase, snake_case, kebab­case [4];
• запрет на использование функции вывода в консоль для прило­жений, исполняемых в браузере;
• рекомендации по расстановке скобок, ограничивающих логиче­ские блоки.
В частных случаях, в рамках конкретных проектов, руководства могут содержать и другие рекомендации:
• запрет на использование ’’магических” констант: цветов ”#42f4d9” или чисел ”54362”;
• запрет на использование url-ссылок на ресурсы, не входящие в список разрешенных;
• ограничение на длину и количество строк в файле с исходным кодом.
Если программисты не следуют стандартам, читаемость кода ухуд­шается, появляются проблемы с безопасностью, а время, затрачивае­мое на разработку, увеличивается. Например, использование печати в консоль в веб-приложении может привести к тому, что пользователь увидит информацию, которая ему не предназначена. Неиспользование точки с запятой в конце строк JavaScript-кода может привести к неопре­деленному поведению программы.
В каждой языковой среде существуют свои правила и практики разработки. В рамках проекта рассматривается написание приложе­ний на языке JavaScript с использованием закрытого фреймворка SAP UI5 [9] - это набор инструментов, основанный на технологиях HTML5, CSS3, OData, поддерживающий разработку как мобильных, так и веб-приложений. SAP UI5 используется для создания сложных бизнес ре­шений с множеством данных и сервисов, вследствие этого были разра­ботаны наборы правил для стандартизации клиентского кода. Но при разработке некоторые правила нарушаются и игнорируются, таким об­разом возникла задача проверки качества клиентского кода в проектах.
Проверку кода можно производить с помощью статического [11] и динамического анализа [2]. Для статического анализа не требует­ся запуск программы, с помощью него можно обнаружить неопреде­ленное поведение или ошибки в повторяющемся коде. Динамический анализ требует запуск программы, но дополнительно помогает найти программные ошибки, определить используемые ресурсы. Статический анализ кода встроен в продукт компании SAP Web IDE [8], однако зача­стую клиенты могут игнорировать замечания, пользоваться устаревшей версией Web IDE, где не была встроена проверка или использовать дру­гую среду разработки. Впоследствии необходимо вручную проводить проверки, чтобы обнаружить блоки кода, несоответствующие описан­ным стандартам.
Существует множество программных решений для выполнения ав­томатической проверки JavaScript-кода, например, ESLint [17], JsInspect [12]. Однако в ситуации, когда клиент компании просит сделать оценку качества кода, необходимо произвести многочисленные действия, на­пример:
• применить набор инструментов;
• свести результаты в один отчет и выдать его клиенту;
• учесть особенности продукта клиента (к примеру, использование SAP UI5).
Поэтому возникает необходимость в разработке системы, которая позволила бы оптимизировать и ускорить процесс оценки качества ко­да, выделить основные проблемы, наметить пути решения и облада­ла расширяемостью, необходимой для увеличения функциональности проверок. Таким образом моей задачей стала автоматизация процесса, который ранее выполнялся вручную не оптимально по затрачиваемым ресурсам.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе выполнения выпускной квалификационной работы были до­стигнуты следующие результаты.
• Разработаны требования к системе.
• Сделан обзор существующих решений для анализа качества кода.
• Разработана архитектура системы, основанная на принципе про­стоты расширяемости.
• Реализован прототип системы, включающий следующие компо­ненты:
• набор уникальных правил для оценки клиентского кода;
• набор скриптов для анализа качества кода;
• графический веб-интерфейс, выполненный с использованием инструмента SAP UI5.
• Апробация продукта проведена на 35 проектах, разработанных с использованием SAP UI5.


[1] Abstract syntax tree.— URL: https://goo.gl/NaLywu (online; accessed: 13.04.2018).
[2] Dynamic program analysis. — URL: https://goo.gl/RenpKs (online; accessed: 26.04.2018).
[3] JetBrains. WebStorm IDE.— URL: https://www.jetbrains.com/ webstorm/ (online; accessed: 13.04.2018).
[4] Letter case.— URL: https://goo.gl/1AEW8n (online; accessed: 7.05.2018).
[5] Ltd Sublime HQ Pty. Sublime.— URL: https://www.sublimetext. com/ (online; accessed: 13.04.2018).
[6] Morelli Brandon. Different between ES6, ES8, ES 2017, ECMAScript.— URL: https://goo.gl/hNwTZt (online; accessed: 24.04.2018).
[7] Reid. JSLint.— URL: https://github.com/reid/node-jslint (online; accessed: 13.04.2018).
[8] SAP. Web IDE.— URL: https://www.sap.com/developer/topics/ sap-webide.html (online; accessed: 10.04.2018).
[9] SAP. Фреймворк SAPUI5.— URL: https://sapui5.hana. ondemand.com/ (online; accessed: 10.04.2018).
[10] SAP Fiori apps.— URL: https://www.sap.com/products/fiori. htmls (online; accessed: 26.04.2018).
[11] Static program analysis.— URL: https://goo.gl/vSo9JG (online; accessed: 26.04.2018).
[12] danielstjules. Jsinspect.— URL: github.com/danielstjules/ jsinspect (online; accessed: 10.04.2018).
[13] jonlabelle. JsPrettier.— URL: github.com/jonlabelle/ SublimeJsPrettier (online; accessed: 10.04.2018).
[14] Алгоритм обхода в глубину.— URL: http://e-maxx.ru/algo/dfs (online; accessed: 8.05.2018).
[15] Алгоритм обхода в ширину.— URL: http://e-maxx.ru/algo/bfs (online; accessed: 8.05.2018).
...


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ