Разработка web-приложения
Оглавление
Введение
. Анализ существующих технических решений объекта
разработки
. Обоснование предложенных структурных решений
.1 Обоснование выбора формы представления разработки
.2 Обоснование выбора агрегатора партнерских программ
.3 Обоснование выбора шаблона проектирования
.4 Обоснование выбора языка программирования
.5 Обоснование выбора метода реализации функции выбора
наиболее выгодного потребительского кредита
Выводы по главе 2
. Реализация разрабатываемого web-приложения
.1 Варианты использования системы
.2 Структура web-приложения
.3 Внешняя спецификация web-приложения
.4 Тестирование функции рекомендации наиболее
выгодного потребительского кредита на основе предпочтений пользователя
Выводы по главе 3
Заключение
Используемая литература
Приложение 1. Класс "Кредиты" на языке С#
Приложение 2. Функции, реализующие сортировку
банковских кредитов с помощью метода анализа иерархий
Введение
В настоящее время наблюдается нестабильная, напряженная экономическая
ситуация в России: сокращается количество рабочих мест, падает уровень
инвестиций в производство со стороны западных государства, нестабилен курс
рубля. Подтверждением этому можно считать результаты опроса исследовательского
холдинга "Ромир": список из проблем общества, которые беспокоят наших
граждан, возглавила проблема роста цен и инфляции. Её озвучили 76%
респондентов. Среди экономических "болевых точек" россияне назвали
бедность и низкие зарплаты (56%), безработицу (31%), задержки выплаты зарплат и
пенсий (11%) [1].
Кроме того, согласно опросу ФОМ [1], за скачками курсов валют следят 45%
россиян. Почти 50% опрошенных россиян отметили, что за последний год ощутили
влияние на свою жизнь от падения курса рубля. Респонденты отмечают рост цен
(42%), нехватку денег и нищету (7%), инфляцию (3%), ухудшение экономической
ситуации в стране, кризис (1%), рост безработицы, моральную подавленность (1%).
Очевидно, что рост цен влияет на потребительскую активность россиян, их
финансовые возможности при покупке тех или иных товаров и планирование бюджета.
Однако, на данный момент россияне настроены на то, чтобы тратить заработанные
средства. По результатам опроса ФОМ, 41% респондентов признался, что все свои
доходы они тратят на текущие нужды и отложить им ничего не удаётся. 33%
сообщают, что сначала они совершают траты на текущие нужды, а остатки средств
откладывает. И только 20% первоначально что-то откладывают, а затем производят
траты на текущие нужды. 43% считают, что сейчас самое время для приобретения
крупных дорогостоящих товаров, так как боятся роста цен на товары [1].
Интересно, что за последний месяц число тех, кому что-то удалось отложить
"про запас" заметно сократилось: 62% россиян отмечают, что за
последний месяц им ничего не удалось отложить. 21% опрошенных отложили
привычную сумму средств. 8% заметили, что накопительный запас у них в последний
месяц заметно сократился. А 4%, напротив, говорят об увеличении своих
накопительных возможностей [1].
Несмотря на экономическую ситуацию в стране, потребительская активность
россиян не ослабевает. Отмечен рост продаж товаров длительного пользования, в
связи с желанием успеть сделать покупки до существенного повышения цен,
связанного с изменением курсов иностранных валют и разгоном инфляции. Однако,
по мнению экспертов, следует ожидать снижение этой активности в ближайшее время
- усилится потребность оптимизации расходов, ожидается усиление потребности
населения в потребительских кредитах. В настоящее время около 26% уже имеют
непогашенный кредит [2].
Согласно информации, предоставленной Национальным Агентством Финансовых
Исследований, выделяются следующие причины, по которым люди решаются взять
кредит:
- Кредит на неотложные нужды. К такому виду кредита вынуждены прибегать
люди, внезапно оказавшиеся в трудной ситуации. Оказавшись в такой ситуации,
люди редко имеют достаточно времени, чтобы выбрать наиболее выгодный кредит.
Согласно исследованиям, кредит на неотложные нужды в одинаковой степени
планируют брать как мужчины, так и женщины, чаще всего это люди в возрасте от
25 до 44 лет. По итогам всероссийского опроса, наибольшее количество
респондентов, планирующих брать кредиты на неотложные нужды, сконцентрировано в
мелких населенных пунктах и городах.
- Кредит на недвижимость или автотранспорт. В настоящее время
созданы целые кредитные программы, позволяющие приобрести квартиру или машину в
кредит. В возрастной структуре потенциальных заемщиков доминируют возрастные
группы 25-34 года (30%) и 35-44 года (24%). Также значительна доля
потенциальных заемщиков и в группе 45-59 лет (22%). Активнее всех данные кредиты
намерены брать жители городов с населением от 100 до 500 тыс. чел. Среди
респондентов, намеренных воспользоваться автокредитом, значительно больше
мужчин. А взять кредиты на ремонт квартиры или дома в большинстве намерены
женщины.
- Кредит на покупку товаров. Некоторые современные магазины,
позволяют оформить беспроцентный кредит прямо в торговом зале. Продавец берет
на себя все расходы по уплате процентов с целью скорейшего сбыта товаров.
Пользуются кредитом на покупку аудио-видео бытовой техники, мобильных телефонов
Кроме того, чаще всего такой вид кредита используют респонденты в возрасте от
18 до 44 лет. Люди старшего возраста готовы воспользоваться этим кредитом в
меньшей степени, так как в старших возрастных группах (60 лет и старше)
наблюдается самый высокий показатель людей, не намеренных брать какие-либо
кредиты.
- Кредиты на путешествия и отдых. Некоторые банки сотрудничают с
туристическими компаниями и предоставляют льготные займы на оплату счетов
туристических поездок. С их помощью, даже работники бюджетной сферы с низкими
зарплатами могут позволить себе поездку за границу раз в пару лет.
- Кредиты на значимые события (свадьбы, дни рождения, прочие
праздники) [3].
Помимо этого, кредиты можно разделить в зависимости от их заёмщика.
Например, существуют пенсионные, молодежные, кредиты для работников
определенных сфер и другие.
Таким образом, проанализировав экономическую ситуацию в стране, мнение
аналитиков по поводу возможного изменения ситуации в будущем и причины, по
которым люди вынуждены брать потребительские кредиты, можно прийти к выводу,
что в настоящее время разработка веб-приложения, предоставляющего актуальную
информацию о различных банковских кредитах будет как никогда актуальна. Кроме
того, приложение будет представлять собой систему поддержки принятия решений,
что особенно полезно для пользователей, вынужденных взять кредит на неотложные
нужды, так как благодаря функции подбора наиболее оптимального кредита для
конкретного пользователя, заемщик сможет в краткие сроки сделать правильный выбор.
Также эта функция будет полезна всем пользователям, которым трудно сделать
выбор оптимального банковского займа. Учитывая то, что система будет получать
данные о доступных кредитах с помощью агрегатора партнерских программ, она
также будет приносить прибыль с заявок, отправленных пользователями на
получение выбранного кредита, администратору.
1. Анализ
существующих технических решений объекта разработки
Перед тем как разрабатывать собственный продукт необходимо изучить уже
существующие аналоги. В сети Интернет в настоящее время имеется много
предложений онлайн кредитов. Практически каждый банк предлагает оформить онлайн
заявку на кредит на своих официальных сайтах.
Большинство банков предлагает потенциальным заёмщикам так называемый
калькулятор кредитов. Пользователь вводит контактную информацию о себе,
информацию по своей кредитной истории и задает желаемые параметры кредита.
Далее ему либо выводится результат - возможные для этого заёмщика кредиты, либо
с заёмщиком связывается оператор call-центра
и предоставляет информацию по наиболее подходящим кредитам. Несмотря на то, что
при таком подходе отсекаются не подходящие по введенной информации
пользователем альтернативы, всё равно остается более одного доступного варианта
для заёмщика. Заёмщик вынужден самостоятельно рассмотреть полученные
предложения и выбрать наиболее оптимальный по своим требованиям вариант. Стоит
отметить, что при этом не исключается возможность существования более выгодного
предложения, представленного на другом электронном ресурсе. Также возможна
такая ситуация, что после того, как потенциальный заёмщик потратил много
времени на изучение разнообразных предложений от банков, наконец нашел наиболее
выгодный для себя вариант, отправил заявку, но банк отказал.
Частично эту проблему решает сервис "100 credits" [19]. На главной странице сказано, что сервис
сотрудничает более чем с 150 финансовыми организациями. В начале пользователь
также заполняет контактные данные, информацию о своей кредитной истории и
указывает параметры желаемого кредита. Далее сервис производит обработку
введенных данных и в качестве результата выводит только доступные для
пользователя предложения потребительских кредитов, гарантируя, что время,
затраченное на непосредственное принятие решения, не было потрачено впустую.
Однако то, что предложенные сервисом альтернативы удовлетворяют параметрам,
введенными потенциальным заёмщиком, не означает, что все варианты одинаково
выгодны. Пользователь всё равно вынужден изучить все варианты и принять
решение.
Другой онлайн сервис, о котором уже говорилось ранее, banki.ru [18]. Данный сервис осуществляет поиск по фильтрам, которые
задает пользователь, и выводит результат в виде сравнительной таблицы. Помимо
общих данных пользователь может задать более конкретные требования, такие как:
цель кредита, форма выдачи и т.д. Полученные результаты можно сортировать по
процентной ставке, популярности, сроку рассмотрения заявки, сроку погашения
кредита, максимальной сумме и т.д. Несмотря на удобный для сравнения
альтернатив вывод результата, получается, что наилучшая альтернатива выбирается
на основании только одного критерия.
Таки образом, можно прийти к выводу, что на сегодняшний день для того,
чтобы потенциальному заёмщику выбрать наиболее подходящий кредит, необходимо
либо самостоятельно изучить многочисленные предложения различных банков и
принять решение, либо воспользоваться сервисами, которые осуществляют поиск
подходящих потребительских кредитов по фильтрам, отсортировать по наиболее
важному для себя критерию и принять решение. Во втором случае осуществить выбор
проще, однако выбор по одному из критериев не гарантирует наибольшую выгоду для
пользователя. Именно поэтому разработка автоматизированной системы поддержки
принятия решений, доступная любому пользователю, имеющему подключение к сети
Интернет, и учитывающая все критерии и степень их важности для конкретного
пользователя, необходима.
2.
Обоснование предложенных структурных решений
2.1
Обоснование выбора формы представления разработки
Так как для взаимодействия пользователя и данного программного продукта
необходимо Интернет-соединение, то требуется выбрать: будет ли программный
продукт представлен в виде web-сайта,
либо это будет web или мобильное
приложение. Для осуществления выбора формы представления следует рассмотреть преимущества
и недостатки каждого варианта, учитывая то, что для того, чтобы программный
продукт приносил в дальнейшем прибыль, одним из наиважнейших критериев является
наибольший охват аудитории пользователей.
Web-сайт
представляет собой совокупность логически связанных между собой web-страниц. Обычно сайт в Интернете
представляет собой массив связанных данных, имеющий уникальный адрес и
воспринимаемый пользователем как единое целое [11]. Web-приложение отличается от web-сайта тем, что может включать в себя различные
интерактивные компоненты. Учитывая то, что для принятия решения о наиболее
выгодном потребительском кредите необходимо выяснить, насколько важен каждый из
критериев для конкретного пользователя, что невозможно без взаимодействия с
ним, то можно прийти к выводу, что web-сайт как форма реализации данного программного продукта не подходит.
Под мобильным приложением понимают программное обеспечение,
предназначенное для работы на смартфонах, планшетах и других мобильных
устройствах [11]. В настоящее время, число людей предпочитающих мобильные
устройства для выхода в Интернет стремительно растет. Доля мобильных
пользователей за год выросла на 90%. Тогда как доля пользователей, заходящих в
сеть с десктопных ПК, упала на 19% и составила 31% аудитории [20].
Исходя из последних тенденций можно заключить, что наиболее актуальными
формами реализации продукта, которые смогут охватить большую аудиторию,
являются: адаптивный web-сайт (сайт, информация которого автоматически
подстраивается под размер экрана, для удобного просмотра с любого устройства,
независимо от размера экрана) и мобильное приложение.
Если говорить о совместимости, то web-приложение будет одинаково удобно применимо в
различных браузерах мобильных и стационарных устройствах не зависимо от их модели.
В отличие от web-приложения, мобильное приложение
потребует разработки нескольких версий для разных платформ. Отсюда можно
сделать вывод и об охвате аудитории: web-приложение будет охватывать все стационарные и мобильные устройства,
имеющие выход в Интернет, а вот мобильное приложение будет доступно только для
пользователей смартфонов и планшетных компьютеров, которые согласятся с
условиями пользования [22].
Немаловажный фактор - стоимость выхода на рынок. В отличие от web-приложения, мобильному приложению
потребуются лицензии на размещение в AppStore, Android
market и др. [22].
После того, как приложение выходит на рынок, оно вынуждено столкнуться с
конкуренцией. Тогда для продвижения web-приложения необходимо будет использовать SEO (комплекс мер по внутренней и внешней оптимизации,
для поднятия позиций сайта в результатах выдачи поисковых систем по
определенным запросам пользователей, с целью увеличения трафика и потенциальных
клиентов [11]). Для продвижения же мобильного приложения потребуются ресурсы.
Стоит отметить, что разрабатываемый продукт должен будет содержать
информацию только об актуальных банковских займах, поэтому потребуется его
периодическое обновление. Мобильные приложения легко обновлять и
контролировать, только пока они не скачаны пользователем. С точки зрения этого
аспекта, web-приложение значительно выигрывает
[22].
Еще один важный фактор - так называемый срок жизни программного продукта.
В то время как срок web-приложения не
ограничен, в среднем большинство бесплатных мобильных приложений живут до 30
дней, после чего интерес к ним угасает [22].
Для работы функции принятия решения о наиболее выгодном кредите для
конкретного пользователя необходимо взаимодействовать с этим самым
пользователем, поэтому следует учесть такой фактор как интерактивность. С этой
точки зрения, наивысшую интерактивность обеспечивают мобильные приложения [22].
Еще один фактор, в котором выигрывают мобильные приложения это удобство
регулярного пользования. Однако, следует заметить, что люди обычно не прибегают
часто к взятию нового банковского займа, поэтому этот аспект не имеет большого
влияния на выбор формы представления данного программного продукта [22].
Таким образом, изучив доступные формы представления программного продукта
и проанализировав их преимущества и недостатки можно заметить, что в данном
случае будет оптимально реализовать разработку в виде web-приложения.
2.2
Обоснование выбора агрегатора партнерских программ
В сети Интернет существует огромное число разнообразных партнерских
программ. Партнерская программа представляет собой особый формат рекламной
активности интернет-магазина или сервиса, представленный в форме делового
сотрудничества между продавцом и партнёрами, направленный на увеличение продаж.
В настоящее время это самый популярный и масштабный способ заработка в
Интернете и применяется в тех сферах, где предоставляются какие либо платные
услуги. Это могут быть интернет-магазины, различные банковские услуги, сайты
знакомств и так далее.
Благодаря активному росту числа разнообразных партнерских программ стали
появляться агрегаторы партнерских программ, объединяющие партнерские программы
разных продавцов и компаний. Их также называют сетями CPA, а каждую отдельную партнерскую программу - оферром.
Все офферы разделены по соответствующим категориям, и у каждого из них свои
условия оплаты и свои материалы для пиара - ссылки и баннеры [11].
Агрегаторы представляют собой посреднический сервис, созданный для
взаимодействия рекламодателей и веб-разработчиков, объединяющий сотни
партнерских программ в одном интерфейсе. Для рекламодателей это возможность
дополнительного привлечения новых клиентов. Кроме того, агрегаторы партнерских
программ предоставляют подробную статистику по работе как для рекламодателей,
так и для веб-разработчиков. Веб-разработчики, размещая баннеры либо другую
рекламную информацию на своих сайтах, получают процент с привлеченных продаж. В
добавок к этому, на большинстве сайтов агрегаторов работает реферальная
система. В этой системе веб-разработчик получает:
- 10% от заработка реферала 1-го уровня, то есть пользователя,
зарегистрировавшегося не посредственно по реф-ссылке разработчика;
- 5% от заработка реферала 2-го уровня, то есть пользователя,
зарегистрировавшегося по реф-ссылке вашего реферала 1-го уровня;
- 3% от заработка реферала 3-го уровня;
- 2% от заработка реферала 4-го уровня;
- 1% от заработка реферала 5-го уровня [11].
Рефералом принято называть участника партнерской программы, который
зарегистрировался по рекомендации другого участника [11].
Различают несколько видов партнёрских программ в зависимости от того, за
что рекламодатели платят веб-разработчикам деньги. Существует несколько схем,
по которым могут производиться выплаты участникам:
- плата за продажу - СPS (cost-per-sale). Человек, пришедший по ссылке,
оплачивает товар, при этом веб-разработчик, привлекший его, получает
вознаграждение в процентах от стоимости товара;
- плата за действие - CPA (cost-per-action). Разработчик
получает деньги за совершение определенного действия. Например, за заполнение
привлеченным человеком регистрационных форм, подписку на рассылку и др.;
- плата за клик по рекламной ссылке или баннеру - CPC
(cost-per-click);
- плата за показ - CPV (cost-per-view);
- плата за загрузку - CPI (cost-per-install);
- многоуровневый маркетинг - выплаты распределяются по
иерархической сети рефералов и подписчиков [11];
Для получения наибольшей выгоды от разрабатываемого веб-приложения очень
важно выбрать наиболее подходящий агрегатор партнерских программ. Такой
агрегатор должен в первую очередь иметь банковские партнерские программы. Кроме
того, для извлечение наибольшей прибыли можно размещать также, например,
баннеры партнерских программ, предлагающих товары, которые планируют купить
пользователи, планирующие взять кредит. Существуют несколько сервисов, позволяющих
узнать, что это за товары, с помощью наиболее частых поисковых запросов
пользователей. В таком случае, следует выбрать агрегатор, имеющий наибольшее
число офферов. Также при выборе наилучшего агрегатора партнерских программ
следует учитывать минимальный размер выплат и процент комиссии с выплат,
который забирает себе агрегатор.
На данный момент представлен огромный выбор агрегаторов партнерских
программ. Наиболее популярные из них: "ActionPay", "7 offers", "Admitad", "CityAds", "Где Слон?".
"ActionPay" - популярная партнерская сеть,
стартовавшая в 2010 году. На данный момент число офферов составляет 789. Сфера
услуг охватывает: онлайн-игры, автомобили, банки и финансы, мобильные
приложения, недвижимость, интернет-магазины, образование, путешествия.
Минимальная выплата за действие, совершенное пользователем составляет 15
рублей. Выплаты производятся один раз в неделю, при этом комиссия составляет 5%
[12].
"7 offers" - другая сеть CPA. Основным преимуществом данного
агрегатора является частота выплат - выплаты совершаются ежедневно. Сфера услуг
в разы меньше, чем у значительного числа других агрегаторов. Она охватывает:
интернет-магазины, банки и финансы, игровые офферы, образование. Общее число
офферов 223. Минимальная выплата составляет всего лишь 1 рубль, а комиссия
может достигать до 15% [13].
"CityAds" - является международной CPA сетью, зародившейся в 2011 году.
Число офферов примерно равно числу агрегатора "Admitad". Также охватывает практически все сферы услуг.
Процент комиссии тоже равен 5%. Отличием же является частота выплат - 2 раза в
месяц, из-за этого и минимальная выплата составляет большую сумму - 1000
рублей. Однако, на многих форумах можно найти жалобы веб-разработчиков о том,
что выплаты часто задерживаются [15].
Еще один популярный агрегатор партнерских программ называется "Где
Слон?". Его основное отличие заключается в том, что нет необходимости
регистрировать источники трафика и получать подтверждение от рекламодателей.
Сфера услуг сконцентрирована на крупнейших интерент-магазинах: продажа одежда,
обувь, электроника, товары для дома, авто-товары и т.д. Выплаты производятся
каждую неделю с комиссией 5% [16].
Таким образом, можно прийти к выводу, что наиболее подходящими являются
агрегаторы "Admitad" и
"CityAds". Большинство их показателей
имеют примерно одинаковые показатели. Ключевым отличием является частота
выплат, агрегатор "Admitad"
производит выплаты примерно в 3-4 раза чаще. К тому же, имеет более надежную
репутацию. Следовательно, целесообразно выбрать данный агрегатор партнерских
программ для применения в поставленной задаче.
2.3
Обоснование выбора шаблона проектирования
Шаблон проектирования или паттерн в разработке программного обеспечения -
повторяемая архитектурная конструкция, представляющая собой решение проблемы
проектирования в рамках некоторого часто возникающего контекста [11]. Паттерны
представляют собой не готовое решение, а общее описание решения проблемы,
применимое в различных ситуациях.
Существует три основных вида паттернов. Каждый вид предназначен для
решения определенного круга задач. Выделяют следующие виды шаблонов
проектирования:
- Порождающие паттерны. Такие паттерны используют, когда возникает
необходимость в создании новых объектов в разрабатываемой системе;
- Структурные паттерны. Основной задачей этого вида шаблонов
проектирования является компоновка системы на основе классов и объектов;
- Поведенческие паттерны. Этот вид паттернов предназначен для
распределения обязанностей между объектами в системе.
Основным преимуществом применения того или иного паттерна является то, что
с помощью готовых абстракций значительно снижается сложность разработки. Кроме
того, применение известных шаблонов в проектировании значительно упрощает
коммуникацию между разработчиками, работающими над общим проектом. Также стоит
отметить, что за счёт паттернов производится унификация деталей решений,
снижается количество ошибок. Использование в разработке шаблонов проектирования
можно сравнить с использованием готовых библиотек кода. К тому же, шаблон
проектирования позволяет, отыскав удачное решение, пользоваться им снова и
снова [11].
Однако, существуют и недостатки в применении шаблонов проектирования.
Например, в ситуации, когда разработчик слепо следует какому-либо шаблону,
может возникнуть излишнее усложнение структуры программы. К тому же, у разработчика
может появиться желание использовать шаблоны проектирования в тех местах, в
которых они не нужны [11].
В настоящее время уже существует огромное многообразие шаблонов
проектирования. Помимо этого, в сети постоянно появляется информация о новых, ранее
не известных паттернах, улучшаются уже существующие шаблоны.
Учитывая то, что выбор формы реализации уже был сделан, следует
отталкиваться в выборе паттерна от этого. Будущая разработка будет реализована
в формате web-приложения, поэтому можно ограничиться
в выборе шаблона проектирования, рассмотрев наиболее популярные шаблоны,
использующиеся для создания web-приложений.
Один из самых популярных шаблонов - Фабричный метод. Данный шаблон
определяет интерфейс для создания объекта, но оставляет подклассам решение о
том, какой класс инстанцировать. Целесообразно применять данный шаблон когда:
- классу заранее неизвестно, объекты каких подклассов ему нужно
создавать;
- класс спроектирован так, чтобы объекты, которые он создаёт,
специфицировались подклассами;
- класс делегирует свои обязанности одному из нескольких
вспомогательных подклассов, и планируется локализовать знание о том, какой
класс принимает эти обязанности на себя [11].
В качестве достоинств данного паттерна можно выделить то, что можно
создавать универсальный код создания объектов и устанавливать связь между
параллельными иерархиями классов. Следовательно, метод применим для больших
проектов. В других ситуациях создает излишнюю перегруженность. Также
недостатком метода является необходимость создавать наследника для каждого
нового типа продукта [11].
Другой шаблон, часто использующийся для создания web-приложений - паттерн
Одиночка. При создании web-приложения, часто требуется концептуально и
архитектурно предоставить доступ только к одному экземпляру определённого
класса. Шаблон Одиночка легко применим для этой задачи. Данный шаблон
применяют, когда необходимо иметь гарантию, что экземпляр класса только один в
жизненном цикле запроса для web-приложения. Обычно это происходит, когда
имеется глобальный объект или общий ресурс.
В качестве недостатка можно выделить то, что при использовании паттерна
Одиночка понижается тестируемость web-приложения. В большинстве случаев внедрение зависимостей применяется
вместо паттерна Одиночка. Используя внедрение зависимости избавляет от ненужных
соединений в дизайн приложения, а объект, используя общий или глобальный
ресурс, не требует знания конкретного класса [23].
Фронт контроллер - еще один шаблон проектирования, который очень часто
применяют для разработки web-приложений. Основная идея его заключается в том,
что Один контроллер обрабатывает все запросы к web-сайту. Фронт контроллер
объединяет всю обработку запросов, пропуская запросы через единственный
объект-обработчик. После обработки запроса контроллер обращается к конкретному
объекту для отработки конкретного поведения [11].
Модель-представление-контроллер (далее MVC) это самый распространенный
паттерн, принадлежащий семейству шаблонов проектирования, целью которых
является отделение бизнес-логики (модели) приложения от пользовательского
интерфейса (представления). Отделение происходит так, чтобы модификация одного
из компонентов оказывала минимальное воздействие на остальные. Наиболее полезно
применение данной концепции в тех случаях, когда пользователь должен видеть те
же самые данные одновременно в различных контекстах и/или с различных точек
зрения. В частности, выполняются следующие задачи:
- К одной модели можно присоединить несколько видов, при этом не затрагивая
реализацию модели;
- Не затрагивая реализацию видов, можно изменить реакции на
действия пользователя (нажатие мышью на кнопке, ввод данных);
- Ряд разработчиков специализируется только в одной из
областей: либо разрабатывают графический интерфейс, либо разрабатывают
бизнес-логику.
Концепция MVC разделяет структуру программы на:
- Модель. Модель предоставляет знания: данные и методы работы с этими
данными, реагирует на запросы, изменяя своё состояние. Не содержит информации,
как эти знания можно визуализировать.
- Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
(окно) с графическими элементами.
- Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и использует
модель и представление для реализации необходимой реакции [11].
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько различных
представлений для одной модели [11].
Таким образом, можно прийти к выводу, что паттерн MCV делает структуру программы гибкой и
делает её более удобной для изменений, что очень важно для развивающихся
проектов. Помимо данных преимуществ, MVC имеет интеграцию в ASP.NET (технология создания web-приложений и web-сервисов), что значительно упрощает
разработку web-приложения.
Проанализировав наиболее часто применяемые паттерны проектирования, их
достоинства и недостатки, случаи применения можно прийти к выводу, что шаблон MVC является наиболее подходящим для
разработки требуемого web-приложения.
2.4
Обоснование выбора языка программирования
Как уже говорилось ранее, требуемое web-приложение будет реализовано с помощью ASP.NET (Active Server Pages для.NET) . ASP.NET является
технологией создания web-приложений
и web-сервисов. В настоящее время ASP.NET пользуется небывалой популярностью, но уже давно не
является революционной технологией [24].
Множество языков поддерживаются в данной технологии. Однако, выбор
конкретного языка для разработки собственного web-приложения не имеет большого
значения, так как выбор языка никак не влияет на то, какие задачи с помощью
приложения можно будет решать потому, что какой бы язык не использовался, код
всегда будет компилироваться в IL [24].
Язык IL является своего рода "трамплином" для любого
управляемого приложения. Под управляемым, приложением понимается любое приложение,
которое пишется для.NET и выполняется внутри управляемой среды CLR [24].
Следовательно, для разработки требуемого приложения можно выбрать любой
из языков программирования, поддерживаемый в ASP.NET.
Этим языком будет C#.
2.5
Обоснование выбора метода реализации функции выбора наиболее выгодного
потребительского кредита
Одной из функций разрабатываемого web-приложения является функция, рекомендующая
пользователю наиболее выгодный банковский заём, отталкиваясь от того, на
сколько важен для него каждый из критериев.
Выбор наиболее выгодного кредита далеко не так прост, как может
показаться на первый взгляд. На данный момент существует достаточно много видов
банковских кредитов, а также огромное число банков, предоставляющих кредиты.
Ошибка выбора вида кредита может привести в итоге к огромной переплате. Однако,
после того, как выбран вид кредита, необходимо выбрать уже сам кредит из
десятков альтернатив различных банков.
Под принятием решения обычно понимают процесс человеческой деятельности,
направленный на выбор наилучшей альтернативы, а человека, осуществляющего
выбор, принято называть лицом, принимающим решения (далее ЛПР).
Формально задача принятия решения D записывается как:
D = {F, A, X, G, P}.
Здесь F - формулировка задачи принятия решения; А - набор возможных
альтернатив (необходимо две альтернативы минимум для решения задачи принятия
решения); X - совокупность критериев, описывающих варианты и их отличительные
особенности; G - совокупность условий, ограничивающих область допустимых вариантов
решения задачи; P - предпочтения одного или нескольких ЛПР, которые служат
основой для оценки и сравнения возможных вариантов решения проблемы, отбора
допустимых вариантов и поиска наилучшего или приемлемого варианта [5].
Человек вынужден принимать решения на протяжении всей своей жизни. Такие
решения как кредит, откладывают отпечаток на продолжительный период времени,
именно поэтому их следует принимать особенно тщательно. Прежде всего стоит
отметить, что человек обладает ограниченным объемом кратковременной памяти и не
может уделить внимание большому количеству альтернатив. Именно поэтому в самом
начале поиска наилучшей альтернативы ЛПР отсекает наименее подходящие варианты
путем простых стратегий для того, чтобы уменьшить число альтернатив до обозримого
множества. Кроме того, человек подсознательно минимизирует свои усилия при
выборе оптимального варианта. Человек выбирает такие стратегии, которые требуют
меньше умственных усилий. В добавок к этому, ЛПР является прежде всего
человеком, а потому не застрахован от ошибок в своих суждениях и выводах, может
вести себя непоследовательно и противоречить самому себе [5].
Если ЛПР является эксперт в области банковских займов, то выбрать
наиболее выгодный кредит не составит труда. Однако, в ситуации, когда ЛПР является
человек, не разбирающийся в экономике и не имеющий возможности обратиться за
помощью к эксперту, во избежание ошибки, необходима автоматизированная система
принятия решений.
При выборе кредита автоматизированной системе принятия решений необходимо
учитывать значения следующих критериев:
Процентная ставка. Под процентной ставкой обычно понимают отношение суммы
платежей по кредиту к его величине, которую нужно заплатить в банк за
использование денег. Чем выше получившееся значение, тем больше переплата.
Сумма кредита. Как правило, финансовые учреждения способны предоставить
сумму в размере от нескольких тысяч до нескольких миллионов рублей.
Максимальный размер банковского кредита зависит от платежеспособности клиента.
Валюта кредита. Стоит отметить, что выгоднее брать кредит в валюте
постоянного дохода клиента. Кроме того, займы в иностранной валюте обычно
дешевле, но имеют повышенные риски колебания стоимости.
Срок кредитования. Наиболее выгодным является кредит с краткосрочным
займом. Несмотря на то, что чем выше срок, на который берется кредит, тем
меньше придется выплачивать денег ежемесячно, в такой ситуации итоговая
переплата будет гораздо больше, чем в случае с краткосрочным займом.
Вид погашения кредита. Выделяют два вида выплат: аннуитетные (выплаты
равными суммами) и дифференцированные (в начале выплат платежи имеют наибольшее
значение, но постепенно сокращаются к концу срока выплат). Дифференцированная
схема наиболее выгодна в плане экономии, так как общая сумма выплат значительно
меньше, чем при аннуитете [5].
Исходя из вышесказанного, можно заключить, что задаче выбора оптимального
банковского займа характерна многокритериальность, что и делает принятие
решения непростым, так как при анализе необходимо сопоставлять оценки по
разнородным показателям, улучшать оценки по одним критериям за счет ухудшения
оценок по другим. При решении данной задачи потребуется корректно обрабатывать
предпочтения пользователя и введенную им информацию.
Также данной задаче характерна слабоструктурированность. Она обуславливается
наличием неопределенности и неполноты информации из-за наличия факторов, не
поддающихся строгой количественной оценке. Например, валюта и вид погашения
кредита не являются лингвистическими характеристиками, поэтому их сложно
оценить количественно, что и делает данную задачу слабоструктурированной.
Кроме того, следует отметить, что также задаче выбора наиболее выгодного
кредита свойственна неоднозначность. Возможен расклад, при котором проблема
будет иметь несколько вариантов равнозначных решений. В такой ситуации
окончательное решение будет вынужден принять пользователь.
Таким образом, можно заметить, что выбор кредита является нелегкой
задачей. Кроме того, неправильно выбранный кредит способен нанести непоправимый
ущерб, изменить жизнь клиента не в лучшую сторону. К тому же, существует ряд
особенностей, диктующих требования, которым должны отвечать методы принятия
решений, с помощью которых должна решаться проблема выбора. Для нахождения
наиболее выгодного банковского займа должен использоваться метод, позволяющий
эффективно проводить анализ слабоструктурированных проблем в условиях многих
критериев.
Для выбора наиболее подходящего метода принятия решений необходимо
произвести критический обзор различных методов. Выделяют 3 основных вида
методов принятия решения:
Интуиция. Такой метод подразумевает принятие решения на основе ощущений,
эмоциональном и бессистемном размышлении ЛПР. Такой метод отличается легкостью
принятия решения, но ему также присущи низкая эффективность и существенная
вероятность ошибки.
Здравый смысл. Подобный метод основан на принятии решения на основании
личного опыта и накопленных знаний ЛПР.
Рациональное решение. Такой тип решений основывается на базе
аналитического процесса и не учитывает опыт ЛПР. В результате будет выбрана альтернатива,
которая обеспечивает максимальную выгоду.
В процессе принятия рационального решения выделяют основные этапы:
- осознание проблемы, требующей решения;
- идентификация проблемы;
- разработка альтернатив решения;
- разработка критериев оценки альтернатив;
- оценка альтернатив;
- выбор альтернатив;
- выполнение решения и его проверка.
Также эти виды деятельности могут быть далее конкретизированы и разбиты
на подпункты.
Таким образом, можно сделать вывод, что наиболее эффективный результат в
выборе банковского кредита можно получить, используя рациональный метод
принятия решения, поэтому рассмотрим рациональные методы принятия решения.
Рациональные методы принятия решений можно разделить на 4 группы в
зависимости от типа данных, способов агрегирования и преобразования данных.
К первой такой группе относятся методы, основанные на измерении
количественных показателей и сравнении вариантов по числовому значению ценности
вариантов. Прежде всего, к этой группе относятся эвристические (не имеющие
строгого обоснования) методы. К эвристическим методам можно отнести построение
функций ценности, при помощи которых ЛПР упорядочивает все варианты по
предпочтительности, способ Франклина, методы SMART и SMARTER.
Метод SMART является одним из наиболее известных
методов данного типа. Этот метод был предложен В. Эдвардсом. Прежде всего, требуется упорядочить данные критерии по
важности, а затем присвоить оценку 100 баллов наиболее важному критерию. Далее
даются оценки остальным критериям, исходя из результатов попарного сравнения.
Затем результаты складываются и делятся на сумму весов. Измеряются значения для
каждой альтернативы по всем критериям по шкале от 0 до 100 баллов. Потом
необходимо высчитать общую оценку каждой альтернативы с помощью формулы
взвешенной суммы баллов. В результате выбор отдается альтернативе, набравшей
наибольшую оценку. Кроме того, необходимо провести оценку чувствительности
результата к изменениям весов [5]. Автор данного метода признал, что при этом
не учитывается возможная зависимость измерений и неаддитивность при определении
общей ценности альтернативы. С другой стороны, метод надежен и прост при
практическом применении.
Следует отметить, что эвристическим методам свойственны простота,
наглядность и очевидность. Они также отличаются небольшим количеством времени,
необходимого на принятие решения [5]. С другой стороны, они не имеют
какого-либо строгого теоретического обоснования. Применение таких методов
требует достаточно высоких усилий ЛПР при оценке веса и важности критериев.
Кроме того, данные методы способны приводить к устойчивым предубеждениям,
которые могут негативно отразиться на результатах анализа [5, 6].
Также к первой группе относятся аксиоматические методы: методы теории
полезности, метод аддитивной разности оценок, метод теории проспектов. Данные
методы возникли из потребности дать теоретическое обоснование понятию
рационального выбора. В отличие от эвристического, предполагается наличие
заданных оценок вариантов и известных вероятностей осуществления вариантов [5].
Метод MAUT (Multi-Attribute Utility Theory - многокритериальная теория
полезности) является наиболее известным методом этого вида. Для принятия
решения этим методом сначала необходимо разработать перечень критериев. Далее
строятся функции полезности по каждому из критериев. При этом необходимо
проверить условия, определяющие вид общей функции полезности. Затем строится
многокритериальная функция полезности. В результате производится оценка
альтернатив и выбирается оптимальная.
Метод MAUT отличается трудоемкостью, однако,
при решении некоторых важных задач, влекущих экономические, экологические,
социальные последствия многочисленные запросы к ЛПР могут быть оправданы
математическим обоснованием получаемых решений. Кроме того, существуют
многочисленные теоремы, позволяющие снизить число запросов к ЛПР при проверке
условий независимости. Преимуществом метода является возможность упорядочения с
количественной оценкой любого количества альтернатив.
К первой группе также относятся человеко-машинные методы
многокритериальной оптимизации. Понятие многокритериальной оптимизации связано
с построением множества Парето. Вариант Ap называют
парето-оптимальным, если не существует других вариантов Ai, чьи
векторы показателей эффективности 48
yi = f(xi) = (f1(xi),
…, fh(xi))
доминируют вектор
yp = f(xp) = (f1(xp), …, fh(xp)),
где f1(x), …, fh(x) - целевые функции,
характеризующие качество решения. Множество парето-оптимальных вариантов Ap
принято обозначать через X*Xa, а множество векторов их показателей
эффективности - через Y* = f(X*) [7]. После того, как парето-оптимальные
варианты определены, на основании дополнительной информации, полученной от ЛПР,
требуется сократить это множество. Для этого применяются методы
последовательного нахождения недоминируемых векторов целей; метод замещения
критериев по важности; методы, основанные на последовательном изменении
допустимых пороговых уровней локальных целевых функций, метод STEM, методы,
основанные на последовательном приближении к опорной точке.
Основным недостатком этого метода является то, что нельзя сказать точно,
сколько запросов к ЛПР необходимо совершить для достаточного сужения множества
альтернатив. К недостаткам метода следует отнести неопределенность в количестве
запросов к ЛПР, которые потребуются для достаточного сужения исходного
множества альтернатив [8]. Также следует отметить, что человеко-машинные методы
многокритериальной оптимизации затруднительны в применении к слабо
структурируемым задачам, поэтому эти методы не подходят для решения
поставленной задачи.
Ко второй группе относятся методы, основанные на измерении качественных
показателей, которые переводятся в числовые оценки вариантов и числовые
ценности вариантов. Таким методом является метод анализа иерархий. Применяется
для упорядочения реально имеющихся вариантов, оцененных по многим количественным
и качественным критериям, исходя из значений общей ценности этих вариантов,
которые представляют собой численно выраженные предпочтения ЛПР [5,7].
Алгоритм принятия решения с помощью данного метода следующий. Каждому
элементу (критерию, альтернативе) задается сравнительная оценка важности. Для
этого используется порядковая балльная шкала (табл. 1).
Таблица 1. Относительная шкала сравнения
Уровень важности
|
Количественное значение
|
Равная важность
|
1
|
Умеренное превосходство
|
3
|
Значительное превосходство
|
5
|
Явное превосходство
|
7
|
Абсолютное превосходство
|
9
|
ЛПР проводит попарные сравнения всех критериев, используя шкалу
сравнения, формирует матрицы парных сравнений. Для этого попарно сравнивается
каждый критерий из строки с каждым критерием из столбца матрицы. Значения
относительной шкалы сравнения сij вписываются в соответствующие
ячейки. Затем аналогично проводятся парные сравнения альтернатив отдельно по
каждому критерию. Построив собственные вектора матриц парных сравнений и
проведя нормирование элементов собственных векторов, можно получить веса
критериев и альтернатив. Определение собственного вектора матрицы λ
= (λ1,
λ2,
..., λn) может быть проведено по известному
выражению:
li=, (1)
где λi,
- элемент собственного вектора матрицы, соответствующий альтернативе или
критерию i; сij - оценка шкалы парных сравнений альтернатив или
критериев i и j; n - количество альтернатив или критериев.
Вес критерия wi или альтернативы vij определяется
путем нормирования элементов собственного вектора. Например, вес критерия
определяется:
wi = (2)
Оценки альтернатив с учетом всех критериев получают по выражению:
Vj = , (3)
где Vj - показатель качества j-й альтернативы; wi -
вес i-го критерия; vij - вес j-й альтернативы по i-му критерию.
В виду того что ЛПР может совершать ошибки и вести себя непоследовательно
и противоречиво, в МАИ введена специальная процедура - проверка согласованности
суждений. Для этого в матрице парных сравнений суммируются элементы каждого
столбца. Сумма элементов каждого столбца умножается на соответствующие
нормализованные компоненты вектора весов, определенного из этой же матрицы.
Полученные числа суммируются, формируя . Определяется индекс
согласованности:
, (4)
где h - размерность матрицы парных сравнений.
Полученное значение делится на среднее значение индекса согласованности
для кососимметричных матриц, заполненных случайным образом (табл. 2).
Таблица 2. Эмпирические индексы средней
согласованности
H
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
Ih
|
0,00
|
0,58
|
0,90
|
1,12
|
1,24
|
1,32
|
1,41
|
1,45
|
1,49
|
1,51
|
Так вычисляется отношение согласованности:
R = Ih / (5)
Желательным можно считать уровень R≤0,1. Если значение превышает
указанный уровень, рекомендуется провести сравнения заново [5].
Существует также мультипликативный. Существенное отличие заключается в
способе определения сравнительной предпочтительности для ЛПР элементов
иерархической структуры. Элементы иерархии предлагалось оценивать при помощи
показательной шкалы вместо шкалы отношений с оценками от -8 до 8 [7]. Вторым
отличием являлось использование мультипликативной свертки частных ценностей.
При использовании мультипликативного МАИ не требуется специальных
проверок согласованности сравнительных оценок предпочтительности элементов. К
недостаткам МАИ следует отнести ограничение по количеству альтернатив и
критериев: заполнение матриц 10х 10 уже представляет для ЛПР трудную задачу.
Отмечается и принципиальная методологическая ограниченность МАИ [7],
заключающаяся в замене сравнительных вербальных оценок разнохарактерных элементов
иерархии - целей, критериев, вариантов - на однотипные числа. Это, во-первых,
навязывает несвойственный человеку единообразный язык для выражения
предпочтений [7]. Во-вторых, может сильно исказить предпочтения ЛПР [7]. Также
отсутствуют убедительные аргументы в пользу выбора аддитивной или
мультипликативной свертки частных ценностей [7].
К преимуществам МАИ относятся: легкость и привычность парных сравнений
для ЛПР; парные сравнения позволяют избежать непосредственной оценки
альтернатив; возможность работы с критериями, измеряемыми количественными и
качественными оценками; возможность проверки согласованности ответов ЛПР;
широкая апробация на практических задачах [7].
К следующей группе методов принятия решений относятся методы, основанные
на измерении количественных показателей и сравнении вариантов без вычисления их
числовой ценности. Сюда принадлежат методы семейства ELECTRE. Имя этого
семейства буквально означает - исключение и выбор, отражающие реальность.
Методологическое отличие этих методов от методов MAUT и АНР состоит в том, что методы MAUT и АНР подразумевают, что
предпочтения ЛПР уже сформированы до применения метода принятия решений. В
данных же подходах предпочтения ЛПР формируются при анализе проблемы с помощью
метода принятия решений. В добавок к этому, эти методы не гарантируют
выполнения полноты сравнений и транзитивности.
В ELECTRE I варианты ранжируются по принципу либо сильного превосходства
одного из вариантов, либо безразличия. Сначала из рассмотрения удаляются все
доминируемые варианты, а для оставшихся проверяется справедливость утверждения
по ограниченной предпочтительности одного из вариантов. Процесс отбора лучших
вариантов связан с появлением индексов согласия и несогласия. Индекс согласия
(конкорданса) с гипотезой о превосходстве варианта Ai над Aj определяется
отношением сумм показателей важности критериев [7]. Индекс согласия cij
характеризует соотношение критериев, по которым первый вариант настолько же
хорош, как и второй, или не хуже второго и второй вариант лучше первого [7].
Индекс несогласия (дискорданса) dij с гипотезой о превосходстве
варианта Ai над Aj определяется как относительная
разность оценок по самому неблагоприятному критерию [7]. Для ранжирования
вариантов ЛПР задает два пороговых значения c1 > 0 и d1
> 0 для индексов согласия и несогласия. Если cij ≥ c1
и dij ≤ d1, то вариант Ai превосходит
вариант Aj. Заданные пороговые уровни c1и d1выделяют
в первое ядро X1 предпочтительных вариантов, содержащее
недоминируемые варианты [7]. После этого вводятся новые пороговые уровни,
которые уменьшают порог согласия c2 < c1 и увеличивают
порог разногласия d2 < d1, в результате чего
происходит сужение множества недоминируемых вариантов и выделяется новое ядро X2.
И далее процедура сужения продолжается, пока в самое последнее ядро не войдут
"непредпочтительные" и совершенно непохожие варианты [7].
Существует несколько различных методов семейства ELECTRE. Однако, данные методы не являются наилучшими для
решения задачи выбора оптимального банковского кредита из-за типов данных, присущих
критериям.
К последней группе относятся методы, основанные на измерении качественных
показателей и сравнении вариантов без вычисления их числовой ценности. Этой
группе принадлежат, например, вербальные методы: семейство методов ЗАПРОС,
метод ПАРК, метод ШНУР; метод Подиновского.
Вербальный подход эффективен, когда информация по проблеме имеет
качественное, а не количественное выражение.
Общие единые порядковые шкалы, построенные в методе ЗАПРОС I у лучшей и
худшей опорных ситуаций, задают линейный порядок на множестве оценок,
основываясь на котором можно получить нестрогие ранжировки имеющихся вариантов
[7]. В методе ЗАПРОС II модификацией является процедура, позволяющая работать с
зависимыми критериями. Кроме того, введены различные способы построения
итоговой ранжировки вариантов. В методах ЗАПРОС I и II заметная часть вариантов
со "средними" оценками по критериям остается несравнимой [7].
В методе ЗАПРОС III реализована иная процедура выявления предпочтений -
ЛПР сравнивает изменения качества вариантов при переходе от одной оценке к
другой по шкале каждого критерия. Результатом этих действий является построение
единственной единой шкалы изменений качества, которая задает линейный порядок
на множестве оценок. В ходе построения этой шкалы происходит многократная
проверка условий независимости критериев по предпочтению и изменению качества,
а также нетранзитивности суждений ЛПР [7]. Среди всех трех версий этого метода
ЗАПРОС III имеет наибольшую разрешающую силу [7].
Метод ПАРК (ПАРная Компенсация) по идее схож со способом Франклина, в
котором у сравниваемых вариантов взаимно исключаются компенсирующие друг друга
достоинства и недостатки [7]. Сначала формируется набор гипотетических
вариантов, незначительно отличающихся от реально существующих, которые затем
попарно сравниваются ЛПР. Определяются недостатки этих вариантов и ищутся
условия взаимной компенсации недостатков по группам признаков и выделяется
наилучший вариант [7]. Предпочтения ЛПР проверяются на непротиворечивость,
проверяется независимость пар критериев от изменения качества [7]. Метод ПАРК
предназначен для выделения лучшего варианта решения проблемы из сравнительно
небольшого (3-10) числа имеющихся. Метод позволяет ЛПР проводить детальный
анализ и уточнять свои предпочтения в процессе.
Метод ШНУР предполагает активное использование возможностей компьютера,
что реализуется в попарном сравнении всех альтернатив по определенным правилам,
анализируются их сходства и различия без участия ЛПР [4]. Так компьютер подготавливает
наиболее эффективный процесс опроса ЛПР, что создает возможности для анализа
большой группы альтернатив [4]. Метод позволяет проводить анализ как с
качественными, так и с количественными критериями, и этим самым расширяет
возможности других методов вербального анализа решений [4].
В целом вербальные методы более "прозрачны", менее
чувствительны к ошибкам измерения и менее трудоемки для человека [7]. Однако по
сравнению с методами теории полезности, аналитической иерархии, методы
вербального анализа решений имеют меньшую "разрешающую способность",
так как относительно большая часть вариантов остается несравнимой [7].
Успешность применения методов вербального анализа во многом зависит от опыта
исследователя[153].
Метод Подиновского предназначен для усечения множества Парето [7].
Особенностью метода является отсутствие необходимости перевода качественной
информации в количественную. Однако у метода имеется два недостатка. Первый из
них связан с требованием однородности (в единой метрике) оценки важности,
поскольку только в этом случае возможна перестановка координатных осей для
симметрирования отношения Парето. Второй недостаток связан с использованием
операции транзитивного замыкания [7].
Методы, использующие функции выбора, основаны на теории, разработанной
такими учеными, как К. Эрроу, П. Фишберн, А. Сен, М.А. Айзер-ман, Ф.Т.
Алескеров, А.В. Малишевский, Б.Г. Миркин и другими.
Во многом функции выбора остаются лишь теоретической конструкцией, не
получившей пока широкого применения. Для них характерна заформализованность
языка, усложняющая в ряде случаев содержательную интерпретацию результатов [7].
Кроме того, бывают ситуации, когда понятие предпочтений ЛПР лишается смысла, а
сам выбор становится невозможен [7].
Проанализировав достоинства и недостатки различных методов теории
принятия решения, можно сделать следующие выводы.
Для задачи выбора наиболее подходящего банковского займа перспективным
является МАИ. Этот метод обладает следующими преимуществами:
- эффективность для анализа альтернатив, характеризуемых критериями как с
качественными, так и с количественными оценками. Оценки сравнительной важности
избавляют от необходимости перевода качественных оценок в количественные или
наоборот;
- парные сравнения не вызывают затруднений ЛПР;
- вербальная шкала сравнений является понятным инструментом
анализа
- для ЛПР;
- метод широко применялся на практике, имеет хорошую апробацию
[4,7].
Следует отметить, что МАИ, несмотря на широчайшую апробацию, уже многие
десятилетия подвергается критике в научных кругах [5]. Первый недостаток связан
с проблемой Rank reversal [5], которая заключается в том, что введение новой
альтернативы может привести в общем случае к изменению предпочтений между двумя
ранее заданными альтернативами. Вторая проблема связана "с некорректностью
допущения МАИ о том, что шкалы, в которых осуществляется оценивание степеней
предпочтений вариантов по каждому из критериев, полагаются шкалами отношений, и
притом не связанными друг с другом и с приоритетами критериев" [9]. В
работах [8, 9, 10] приводятся примеры, когда техника МАИ может дать ошибочные
результаты.
Резюмируя недостатки метода, можно остановиться на классической форме
МАИ, так как она показала эффективность в применении на ряде задач.
Выводы по главе 2
В данном разделе был произведен обзор и анализ методов выполнения
поставленной задачи. Были проанализированы возможные формы реализации
разработки: выявлены преимущества и недостатки каждой формы. На основании этого
было принято решение о том, что наиболее рационально будет реализовать задачу в
формате web-приложения. Также были рассмотрены
сильные и слабые стороны наиболее популярных агрегаторов партнерских программ.
Был выбран агрегатор Admitad,
как агрегатор, способный обеспечить приложение самой актуальной и обширной
информацией по банковским займам. Помимо этого, были рассмотрены самые
популярные шаблоны проектирования и технологии для web-приложений. В зависимости от проведенного анализа
было принято решение использовать технологию ASP.NET и
паттерн MVC. Для реализации функции умной
сортировки доступных кредитов и функции по подбору наиболее выгодного кредита
для конкретного пользователя были рассмотрены различные методы теории принятия
решения. Отталкиваясь от количества критериев, структуры задачи, типов данных
критериев выбора оптимального потребительского кредита и т.д. был выбран метод
аналитических иерархий как наиболее подходящий для решения данной задачи.
3.
Реализация разрабатываемого web-приложения
3.1
Варианты использования системы
приложение потребительский кредит пользователь
Разрабатываемое web-приложение
ориентировано на работу с потенциальными заемщиками и другими людьми, зашедшими
на страницу приложения. Варианты использования для пользователя представлены на
Рисунке 1.
Рис. 1 Диаграмма вариантов использования для пользователя системы
При помощи web-приложения
пользователь может просматривать информацию о банках, сотрудничающих с данным
приложением посредством агрегатора партнерских программ Admitad, и кредитах, которые они
предоставляют. Помимо этого, приложение выводит актуальные купоны и специальные
предложения от банков. Основной же функцией web-приложения является выбор кредита. Приложение
предоставляет пользователю альтернативы кредитов, предоставляемых разными
банками, сортируя их с помощью алгоритма, о котором будет сказано далее. Для
получения рекомендации по выбору наиболее выгодного кредита исходя из интересов
пользователя, пользователь может самостоятельно задать матрицу важности
критериев. Наиболее выгодный кредит будет выбран на основании метода анализа
иерархий. Также в web-приложении
предусмотрена связь с администратором для ответов на вопросы по работе с
приложением.
Для корректной работы web-приложения
необходима поддержка системы администратором. Диаграмма вариантов использования
системы администратором изображена на Рисунке 2.
Рис. 2. Диаграмма вариантов использования системы администратором
Стоит отметить, что web-приложение
способно автоматически (без помощи администратора) загружать новые предложения
от банков, с которыми подтверждено сотрудничество с помощью агрегатора
партнерских программ. Оно также способно самостоятельно удалять информацию о
кредитах, которые уже не актуальны. Однако, предусмотрено добавление и удаление
данных для администратора web-приложения
вручную. Также для того, чтобы web-приложение
могло автоматически добавлять информацию о кредитах того или иного банка,
необходимо вначале вручную заключить партнерство хотя бы с одним банком с
помощью агрегатора партнерских программ.
Помимо этого, в функции администратора может входить взаимодействие с
пользователями по средством e-mail переписки. Под взаимодействием будет
пониматься ответы на вопросы по работе с приложением, но не по вопросам,
связанным с потребительскими кредитами, предлагаемыми банками партнерами.
В зависимости от условий партнерских программ, администратор будет
получать заданную в условиях денежную сумму либо процент от суммы кредита,
оформленного пользователем с помощью web-приложения.
Таким образом, диаграммы вариантов использования показывают небольшие
преимущества данного приложения относительно аналогов для пользователей и
удобство работы для администратора.
3.2
Структура web-приложения
На Рисунке 3 изображена диаграмма основных классов разработанного web-приложения.
Рис. 3 Диаграмма основных классов
Класс CampaignCategory предназначен для хранения информации
о возможных категориях банков, сервисов или компаний, предоставляющих
потребительские кредиты. Этот класс имеет поля: CampaignCategoryId, являющийся первичным ключом, и поле
Name, хранящее название категории.
Класс Campaign необходим для хранения данных о
банках. Первичным ключом является поле CampaignId. Также класс имеет поле для хранения
названия организации (Name),
поля необходимые для хранения информации о логотипе банка (ImageData, ImageMimeType, ImageWidth, ImageHeight), поле Status для определения статуса, поле Rating, отражающее насколько часто пользователи
предпочитают данный банк остальным, поле Description для хранения информации о каждом
банке, поле SiteUrl для перехода на официальный сайт
банка, поле GotoLink для перехода на страницу
потребительских кредитов конкретного банка и внешний ключ на список категорий.
Класс CouponCategory также предназначен для хранения
информации о категориях купонов (специальных предложений и акций) на
потребительские кредиты. Он содержит поля, аналогичные полям класса CampaignCategory. В то же время, класс CouponType предназначен для хранения типов
купонов.
Класс Coupon необходим для хранения информации о
специальных предложениях и акциях от банков. CouponId является первичным ключом этого
класса. Coupon также имеет поле Name для хранения полного названия и поле
ShortName для краткого. Также имеются поля ImageData и ImageMimeType для хранения информации о картинке
купона, если она имеется. Также имеется поле Description для хранения описания купона, поля StartDate и EndDate для указания сроков и поля внешние ключи (Campaign, Category, Type).
Практически все партнерские программы предоставляют разработчикам,
заключающим с ними партнерство, банеры своих компаний. Для их хранения и
размещения в качестве рекламы необходим класс Banner. Он имеет поля, аналогичные полям класса Campaign.
Класс Credit одним из главных классов приложения,
так как основной его задачей является предоставление кредита и выбор наиболее
выгодного для конкретного пользователя. В отличие от других классов, которые
имеют только методы Create, Edit и Delete для того, чтобы администратор мог вручную добавлять,
изменять и удалять данные, класс также имеет функции - MatrixPredpoch (для обработки результатов матрицы
предпочтений пользователя), getPolMatrix (для расчета матрицы полезности), getW (для расчета весов). Поле CreditId является первичным ключом класса.
Поле Name хранит информацию о названии
кредита, поле MinStavka хранит информацию о минимальной
ставке займа, поле Sum хранит
максимальную сумму кредита, Srok
содержит информацию о сроке кредита, Srokrassmotr определяет длительность рассмотрения заявки на кредит, Campaign является внешним ключом на банк,
предоставляющий этот кредит, поле Url хранит ссылку на официальный сайт банковского займа.
3.3
Внешняя спецификация web-приложения
Главная страница web-приложения
изображена на Рисунке 4. В приложении имеется 3 основных раздела: оформить
кредит online, банки и web-сервисы, контакты. Приложение также удобно
использовать на мобильных телефонах и планшетах, благодаря адаптивному дизайну.
Пример того, как главная страница web-приложения отображается на мобильном телефоне приведен на Рисунке 5.
Рис. 4 Главная страница web-приложения
Рис. 5 Отображение главной страницы на мобильном телефоне.
При выборе пункты меню "Оформить кредит online" открывается сравнительная таблица доступных в
данный момент времени потребительских кредитов, показанная на Рисунке 6.
Кредиты сортируются по специальному алгоритму, приведенному в приложении. Однако,
пользователь может самостоятельно задать матрицу предпочтений, нажав кнопку
"Ваши предпочтения", и тогда на первом месте окажется наиболее
выгодный для него кредит. Пример матрицы предпочтений приведен на Рисунке 7.
Рис.6 Страница "Оформить кредит online"
Рис. 7 Пример заполнения матрицы предпочтений пользователя
При выборе пункта меню "Банки и web-сервисы" пользователь попадает на страницу с компаниями,
с которыми администратор сайта заключил партнерство с помощью агрегатора
партнерских программ Admitad.
Пример этой страницы приведен на Рисунке 8.
Также пользователь может связаться с администратором сайта через страницу
"Контакты". Пример этой страницы можно увидеть на Рисунке 9.
Рис. 9 Страница "Контакты"
3.4
Тестирование функции рекомендации наиболее выгодного потребительского кредита
на основе предпочтений пользователя
Предположим, что ЛПР необходимо быстро получить кредит на сумму более чем
400000. ЛПР должен выбрать наиболее выгодный потребительский кредит из
альтернатив, представленных на рис. 6. Тогда иерархическая структура
поставленной задачи может быть представлена в виде, представленном на Рисунке 10.
Рис. 10 Иерархическая структура задачи
Прежде всего метод анализа иерархий требует произвести попарное сравнение
критериев и составление матрицы сравнения, используя характеристики,
приведенные в таблице 1.1. Полученная в результате попарного сравнения важности
критериев ЛПР матрица сравнения приведена в таблице 3.
Таблица 3.
Попарное сравнение
важности критериев
Критерии
|
Минимальная процентная ставка
|
Сумма кредита
|
Срок
|
Срок рассмотрения заявки
|
Популярность
|
Минимальная процентная ставка
|
1
|
|
1
|
|
5
|
3
|
1
|
5
|
3
|
7
|
Срок
|
1
|
|
1
|
|
2
|
Срок рассмотрения заявки
|
5
|
|
5
|
1
|
5
|
Популярность
|
|
|
|
|
1
|
После того, как матрица критериев составлена, необходимо посчитать
собственные вектора критериев и их веса, используя соответственно формулы (1) и
(2). Получаем:
l1 = = 0.8;
l2 = = 3.2;
l3 = = 0.6;
l4 = = 2.1;
l5 = = 0.3;
W1
= W2 = W3 = W4 = W5 = Следующий этап решения поставленной
задачи подразумевает получение оценки каждой альтернативы по каждому из
критериев. Возможны две ситуации: когда альтернативы имеют объективные и
необъективные оценки. Ситуация с объективными оценками наиболее проста в
реализации - оценки выписываются и нормируются таким образом, чтобы сумма их
значений была равна единице. В противоположной ситуации необходимо использовать
метод парных сравнений, о котором говорилось ранее, с помощью характеристик,
приведенных в табл. 10. Результаты выполнения данного шага представлены в
таблицах 11-16.
Таблица 11.Оценка альтернатив по критерию
"Минимальная процентная ставка"
Альтернативы
|
Минимальная процентная ставка, %
|
Нормированное значение
|
"За хорошую кредитную историю"
|
15.9
|
0.33
|
"Наличными"
|
16.9
|
0.35
|
"Потребительский"
|
16
|
0.32
|
Сумма:
|
1.00
|
Таблица 12.
Оценка альтернатив по
критерию "Сумма кредита"
Альтернативы
|
Сумма кредита, руб
|
Нормированное значение
|
"За хорошую кредитную историю"
|
500,000
|
0.09
|
"Наличными"
|
3,000,000
|
0.55
|
"Потребительский"
|
2,000,000
|
0.36
|
Сумма:
|
1.00
|
Таблица 13.
Оценка альтернатив по
критерию "Срок кредита"
Альтернативы
|
Срок, месяцы
|
Нормированное значение
|
"За хорошую кредитную историю"
|
60
|
0.29
|
"Наличными"
|
84
|
0.42
|
60
|
0.29
|
Сумма:
|
1.00
|
Таблица 14.
Оценка альтернатив по
критерию "Срок рассмотрения заявки"
Альтернативы
|
Срок рассмотрения заявки, дни
|
Нормированное значение
|
"За хорошую кредитную историю"
|
1
|
- 0.1
|
"Наличными"
|
3
|
- 0.33
|
"Потребительский"
|
5
|
- 0.6
|
Сумма:
|
- 1.00
|
В табл. 14 нормированное значение берется со знаком "-", так
как чем меньше дней уходит на рассмотрение заявки на кредит, тем лучше для ЛПР.
Таблица 15.
Оценка альтернатив по
критерию "Популярность"
Альтернативы
|
Популярность, заявки
|
Нормированное значение
|
"За хорошую кредитную историю"
|
5182
|
0.7
|
"Наличными"
|
1370
|
0.2
|
"Потребительский"
|
752
|
0.1
|
Завершающим этапом является расчет оценки альтернатив с учетом всех
критериев. Расчет производится по формуле 3. Результаты вычислений:
V1 = 0.14 * 0.33 + 0.5 * 0.09 + 0.09 *
0.29 + 0.3 *(- 0.1) + 0.04 * 0.7 = 0.12
V2 = 0.14 * 0.35 + 0.5*0.55 + 0.09 *
0.42 + 0.3 *(- 0.33) + 0.04 * 0.2 = 0.27
V3 = 0.14 * 0.32 + 0.5 * 0.36 + 0.09 *
0.29 + 0.3 *(- 0.6) + 0.04 * 0.1 = 0.07
Наилучшей считается альтернатива, получившая наибольшее значение Vi. Следовательно, потребительский
кредит "Наличными" наиболее полно удовлетворяет предпочтениям данного
ЛПР. Результат расчетов совпадает с результатом работы программы, приведенном
на рис. 6.
Выводы по главе 3
Таким образом, в этой главе была представлена структура разработанного web-приложения и его внешняя спецификация.
Также были отмечены основные функции приложения с помощью диаграмм вариантов
использования для пользователя и администратора приложения. Кроме того, была
проверена корректность работы функции выбора наиболее выгодного кредита по
заданным критериям на основе метода анализа иерархий.
Заключение
В данной выпускной квалификационной работе было произведено исследование
предметной области, рассмотрены существующие аналоги, проанализированы
актуальность и новизна разрабатываемого web-приложения. Также были выбраны методы реализации web-приложения, необходимого для
предоставления актуальной информации по потребительским кредитам различных
банков. Разработанное приложение способно автоматически обновлять информацию по
доступным кредитам и специальным предложениям, сортировать кредиты, выдавать
рекомендацию пользователю в зависимости от его предпочтений на основе метода
анализа иерархий, приносить разработчику прибыль в виде процентов от
оформленного пользователем кредита через приложение.
Используемая
литература
. Деньги и карьера: экономическая в стране [Электронный
ресурс]. - Режим доступа: #"896917.files/image031.gif">
Приложение
2. Функции, реализующие сортировку
банковских кредитов с помощью метода анализа иерархий