Архив статей журнала
В настоящее время ключевую роль в разработке программного обеспечения играет программная инженерия, одним из критерия развитости которой является изучение ее фактологии и различных научно-практических закономерностей. Важным аспектом данной области является логика выполнения программ, оперирующая внутренними данными, и, в частности – константными значениями, выявление закономерностей в которых и актуализирует данное исследование. В качестве основных применений данной закономерности можно отметить такие, как получение фундаментальных знаний об алгоритмах, создание новых и расширение существующих метрик оценки и сравнения программного кода, развитие методов его оптимизации, применение в генетическом программировании и др.
Целью настоящей статьи получение частотного распределения константных значений в исходном коде программ на языке программирования C. Сущность представленного подхода заключается в создании метода статистического анализа текста исходных кодов программ, содержащихся в датасете ExeBench (который состоит из огромного количества исходного кода функций на языке программирования C, их ассемблерного кода для различных процессорных архитектур, ошибок компиляции и другой информации). Предложенный метод базируется на применении алгоритмов лексического и синтаксического разбора функций исходного кода, семантического определения типов констант, преобразования записи символов языка программирования в соответствующие числовые или строковые значения.
Метод имеет реализацию в виде программного средства на языке программирования Python, приведенного в виде интуитивно понятного псевдокода. Эксперименты с применением данного прототипа позволили получить искомое распределение константных значений для исходного кода программ на языке программирования C. Анализ полученных результатов позволил сделать ряд важных теоретико-практических выводов касательно наиболее часто используемых констант, соответствия полученного распределения закону Ципфа и близость к показательной функции, аномального появления ряда констант в Топ-50 и др. Научная новизна предложенного подхода заключается в том, что распределение константных значений для исходного кода программ на языке программирования C получено впервые.
Теоретическая значимость состоит в получении новых фундаментальных знаний касательно особенностей и закономерностей конструкций исходного кода, которые могут быть расширены и на другие языки программирования.
Практическая значимость заключается в применении распределения для большого спектра задач, включая авторский генетический реверс-инжиниринг, который сам по себе является качественно новым направлением.
Актуальность. В настоящее время качество интерфейсов зачастую имеет решающую роль в решении задач человеком с применением информационных сервисов. Для оценки интерфейсов ранее было введено понятие эффективности, состоящей из следующих показателей: результативности – условной меры количества ошибок при работе с информационной системой; оперативности – скорости работы пользователя с информационной системой для получения требуемого результата; ресурсоэкономности – степени психоэмоционального напряжения пользователя при вводе и обработке данных. Тем не менее, полученная ранее модель требует не только применения математического аппарата для определения таких показателей, но и знаний об атомарных (т. е. частных или обособленных) эффективностях графических элементов, связанных с особенностями взаимодействия с ними пользователя.
Целью настоящей статьи является повышение эффективности интерфейсов информационных сервисов, для чего требуется вычисление атомарных эффективностей отдельных графических элементов.
Сущность предлагаемого решения заключается в визуальной системе статистического измерения атомарных эффективностей шести графических элементов (текстового поля, выпадающего списка, классической и флаговой кнопки, двунаправленного счетчика и «ползунка») по результатам выполнения с их помощью различных заданий пользователями. Так, например, оперативность текстового поля по сравнению с выпадающим списком будет выше для коротких слов – поскольку их ввод с клавиатуры быстрее выбора из списка, но ниже для длинных предложений – в этом случае человеку быстрее выбрать нужное, чем обеспечивать корректный ввод. Принцип измерения эффективностей предложенной системой основан на последовательном выводе графических форм с различным типом (в ряде случае ‒ и количеством) элементов, указании заданий пользователю и измерению корректности и времени ввода данных. Для снижения субъективности в действиях применяются различные приемы, такие, как таймеры различной длительности. Для оценки психоэмоционального напряжения используется специальный опрос в конце групп тестов элементов. Система имеет реализацию в виде Web-сайта на языке PHP, отдельные Web-страницы которого и их интерпретация приведены в статье. Эксперименты с применением данной системы для 50 пользователей позволили получить искомые атомарные эффективности всех элементов.
Научная новизна решения состоит в возможности получения оценок эффективности элементов интерфейса полностью формальным способом, учитывающим только особенности взаимодействия с ними пользователей, а также специфику данных (размер, тип).
Теоретическая значимость состоит в расширении класса способов оценки эффективности графических интерфейсов, полученной через измерение характеристик составляющих его элементов.
Практическая значимость заключается в возможности непосредственного применения полученных графиков атомарных эффективностей для сравнения интерфейсов и их оптимизации.