Диссертация (1090660), страница 17
Текст из файла (страница 17)
В данном случае – это анализ и сравнение по критериям конкретных блоков(рис. 3.1) [103].В качестве критериев выделим следующие:1. восприятие – определение, насколько понятен код обычному человеку, которыйне обучался этому ранее;2. скорость обучения – определение зависимости результата обучения от времени;102ВероятностьошибкиСкорость обработкиНабор функционалаЗатраченные ресурсыСкорость обученияКритерии конкретных блоковОбщее время обучения+ Восприятие+ Гибкость+ Трудоемкость+ Набор рецептовВлияние на обучаемость+ ИнструкцииРисунок 3.1. Схема оценочной модели3. гибкость – определение, как много различного функционала можно реализоватьс помощью простых конструкций, не прибегая к необоснованным усложнениям;4.
трудоемкость – определение, какое количество действий необходимо для реализации той или иной задачи, а также, сколько нужно потратить на это времени;5. набор рецептов – сравнение по данному критерию поможет определить, насколько просто и быстро можно реализовать поставленную задачу с помощью готовыхрецептов;6. скорость обработки;7. затраченные системные ресурсы – технические критерии, выражающие эффективность обработки исходного кода интерпретатором или компилятором.Стоит обратить внимание, что такие пункты, как «восприятие» и «скорость обучения», объединяются в общее понятие «порог вхождения» и напрямую зависят отколичества времени, затраченного на изучение технологии (в данном случае языка103BML и методики BlockSet в целом), что внесет свои изменения в создание методаподсчета коэффициента.Для примера можно рассмотреть два языка программирования общего назначения:PHP и Python.
У обоих низкий порог вхождения [112], а следовательно, они простыв изучении, что сильно привлекает начинающих программистов. Тем не менее языкPython не предназначен изначально для использования в отрасли Web-разработки.Как правило, для обеспечения необходимого инструментария для данного языка используется множество дополнительных библиотек с более высоким порогом вхождения. Вследствие этого уменьшается количество специалистов по Web-разработке,программирующих на том или ином языке, в результате замедляется развитие языкав конкретной отрасли.Таким образом, высокий «порог вхождения» может привести к значительномууменьшению объема кода, написанного за единицу времени, причем весьма значительному (примерно квадратичному), потому что уменьшится как число участников,пишущих код, так и количество кода, написанного одним человеком.
Качество жекода, скорее всего, улучшится в линейной зависимости или вообще не будет коррелировать. Значит, чем ниже «порог вхождения» в тот или иной язык, тем больше и прогрессивнее разрастается аудитория, которая будет им пользоваться и взаимодействовать с ним. Следовательно, создатель языка будет быстрее узнавать о недоработкахи возможных проблемах, тем самым увеличится скорость эволюции языка в целом.Данное обстоятельство будет напрямую влиять на рост сообщества разработчиков.Кроме того, стоит учесть, что набор функционала напрямую связан с таким понятием, как «вероятность ошибки» [37]. Для того чтобы избежать такой зависимости, втечение всего времени разработки оцениваемого проекта необходимо уделять этомудолжное внимание.Ошибки могут возникать абсолютно разные и в любой части проекта, но самыекритичные из них – это те, что возникли уже на этапе развития проекта, например:– неправильно оцененный проект;– неверное планирование;– неэффективное использование ресурсов;– чрезмерное вмешательство заказчика.104Каждый из этих пунктов важен для закладывания фундамента проекта.
Ошибки влюбом из них могут привести к провалу еще до выхода на рынок, что чревато потерейзатраченных как материальных, так и временных ресурсов.Любые нарушения в технологическом процессе его создания могут привести кнеудобствам для пользователей и выбору ими более качественного продукта конкурента. К таким нарушениям можно отнести следующие:– алгоритмические ошибки, не выявленные при тестировании;– ошибки при взаимодействии пользователя с программой;– сообщения, вводящие в заблуждение пользователя;– недружественный интерфейс;– небрежное документирование.Итак, задача создания оценочной модели и выражения численных характеристиккоэффициентов эффективности позволит максимально объективно определить как достоинства, так и недостатки разрабатываемого проекта в сравнении с проектом конкурентов.
Для определения численных коэффициентов целесообразно использоватьметрики.Метрика программного обеспечения (англ. software metrics) – мера, позволяющаяполучить численное значение некоторого свойства программного обеспечения или егоспецифики [106]. В общем случае применение метрик позволяет руководителям проектов и предприятий изучить сложность разработанного или еще разрабатываемогопроекта и оценить следующее:– объем работ;– стилистику разрабатываемой программы;– усилия, потраченные каждым разработчиком для реализации того или иного решения.В дополнение к остальным критериям оценочной модели метрики способны максимально точно и объективнее других методов описать любую стадию развития проекта. Однако они могут служить лишь рекомендательными характеристиками, так каксодержат ряд недостатков.1051.
Субъективность [110]. Считается, что количественные метрики часто дают поверхностное, а иногда и ложное представление об оптимальности выбора тогоили иного подхода при решении поставленных задач. Например, в случае, когдаколичество строк является преимущественной метрикой в исследовании, разработчики, зная это, прибегают к появлению в коде более длинных конструкций иизбыточных необязательных методов.2. Переоценка приоритетов.
В ходе разработки проекта может возникнуть ситуация, когда разработчик ставит на «первое место» достижение тех же коэффициентов, что и полученных ранее в ходе использования различных метрик, неучитывая таких факторов, как логика, опыт сотрудников, их предложения, мнение и др. Нельзя полностью полагаться только на метрики (см. п. 4). И этаособенность, в зависимости от того, на каком этапе развития находится проект,в лучшем случае значительно увеличит время разработки, в худшем — проектпровалится при попытке выхода на рынок.3. Искажение. Процесс измерения может быть искажен за счет того, что сотрудники знают об измеряемых показателях и стремятся оптимизировать эти показатели, а не свою работу.
Для предотвращения подобных случаев необходимочетко сформулировать правила отбора для тестирующей фокус-группы. Желательно, чтобы фокус-группы не знали, какой элемент является для разработчикаприоритетным, для того чтобы результаты можно было считать максимальнонейтральными.4. Неточность. Нет метрик, максимально охватывающих исследуемую предметную область и при этом достаточно точных. Количество строк кода – показатель,который не дает представления о сложности решаемой проблемы. Анализ функциональных точек был разработан для лучшего измерения сложности кода испецификации, но он использует личные оценки измеряющего, поэтому разныелюди получат разные результаты.
Для того чтобы избежать искажений в ходеанализа или тестирования, необходимо использовать n-е количество специалистов, входящих в состав фокус-группы, так как объективность результатов будетпрямо пропорциональна их количеству.1063.2Определение итоговой величины стоимости критерия оценкиПосле определения четких критериев мы сталкиваемся с проблемой расстановкиприоритетов данных критериев в отдельно взятом проекте. Например, имеется двакритерия: «восприятие» и «набор функционала». Допустим, разработчик указываетпри расчетах, что его работа направлена на выработку объема функционала, а следовательно, и значение, полученное при тестировании самого функционала, будетгораздо ценней или, иными словами, будет иметь больший вес.
Для того чтобы определить, насколько именно тот или иной критерий будет важнее другого в численномэквиваленте, предлагается провести анализ иерархий [115].3.2.1Применение метода анализа иерархийДля решения проблемы выявления удельных весов используемых оценочных подходов при согласовании результатов оценки, полученных несколькими подходами,можно применять структурированный подход в виде иерархии или сети [53]. Методоснован на декомпозиции проблемы и последовательной обработке суждений эксперта с использованием парного сравнения.