Разработка web-приложения
Обоснование выбора метода реализации функции выбора наиболее выгодного потребительского кредита. Реализация разрабатываемого web-приложения, тестирование функции рекомендации наиболее выгодного потребительского кредита на основе предпочтений пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 22.10.2016 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Оглавление
- Введение
- 1. Анализ существующих технических решений объекта разработки
- 2. Обоснование предложенных структурных решений
- 2.1 Обоснование выбора формы представления разработки
- 2.2 Обоснование выбора агрегатора партнерских программ
- 2.3 Обоснование выбора шаблона проектирования
- 2.4 Обоснование выбора языка программирования
- 2.5 Обоснование выбора метода реализации функции выбора наиболее выгодного потребительского кредита
- Выводы по главе 2
- 3. Реализация разрабатываемого web-приложения
- 3.1 Варианты использования системы
- 3.2 Структура web-приложения
- 3.3 Внешняя спецификация web-приложения
- 3.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].
"Admitad" - один из самых популярных на сегодняшний день агрегатор партнерских программ, появившийся в 2010 году. На момент написания работы число офферов данной сети составляет 805. При этом, ресурс обладает наибольшим числом эксклюзивных офферов по сравнению с аналогами и охватывает практически все сферы услуг. Кроме того, агрегатор также имеет относительно высокую минимальную сумму выплат, которая составляет 300 рублей. Выплаты осуществляются еженедельно. Комиссия составляет 5% [14].
"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]. Автор данного метода признал, что при этом не учитывается возможная зависимость измерений и неаддитивность при определении общей ценности альтернативы. С другой стороны, метод надежен и прост при практическом применении.
Метод SMARTER, разработанный В. Эдвардсом и Ф. Барроном, является модифицированным вариантом метода SMART. В нем применяется нелинейная функция общей ценности варианта вместо линейной.
Следует отметить, что эвристическим методам свойственны простота, наглядность и очевидность. Они также отличаются небольшим количеством времени, необходимого на принятие решения [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) может быть проведено по известному выражению:
i, (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. Однако, данные методы не являются наилучшими для решения задачи выбора оптимального банковского кредита из-за типов данных, присущих критериям.
К последней группе относятся методы, основанные на измерении качественных показателей и сравнении вариантов без вычисления их числовой ценности. Этой группе принадлежат, например, вербальные методы: семейство методов ЗАПРОС, метод ПАРК, метод ШНУР; метод Подиновского.
Подобные документы
Проектирование вариантов использования приложения. Анализ существующей версии приложения. Обоснование выбора инструментальных программных средств. Проектирование интерфейса пользователя. Адаптация под мобильные устройства. Описание программного продукта.
курсовая работа [2,8 M], добавлен 25.06.2017Понятия оптимизации проектных решений. Нахождение максимума (минимума) линейной целевой функции. Схема алгоритма метода Саати для вычисления весов критериев. Создание приложения, позволяющего производить однокритериальную и многокритериальную оптимизацию.
курсовая работа [781,9 K], добавлен 23.02.2016Общая характеристика и структурная схема приложения, требования к нему и функциональные особенности, сферы практического применения. Обоснование выбора языка программирования. Описание интерфейса и инструкция пользователя. Проведение листинга программы.
дипломная работа [1,0 M], добавлен 10.07.2017Описание математической модели, таблицы истинности. Разработка программы, реализация защитного программирования. Отладка и тестирование программы, инструкция пользователя. Расчет затрат на разработку и коммерческой эффективности проекта от реализации.
дипломная работа [3,2 M], добавлен 18.06.2012Реализация выбора в языках высокого уровня, использование сложных типов. Формат оператора выбора в языке Pascal. Изображение оператора варианта на блок-схеме. Понятие массива и способы их вводов. Описание компонентов приложения и программного кода.
курсовая работа [585,6 K], добавлен 17.08.2013Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.
дипломная работа [2,9 M], добавлен 17.10.2014Методика разработки модели процесса функционирования студенческого вычислительного центра на языке имитационного моделирования GPSS/PC. Исследование различных вариантов по оптимизации модели и критерии выбора наиболее экономически выгодного из них.
курсовая работа [58,9 K], добавлен 21.06.2011Описание технологии asp.net. Страницы веб-приложения, тестирование системы. Описание функциональной, динамической модели системы. Диаграммы вариантов использования, последовательности, база данных приложения. Реализация программы, интерфейс, тестирование.
курсовая работа [3,2 M], добавлен 30.01.2013Общая характеристика киноиндустрии как предметной области работы. Разработка базы данных и дерева вопросов для получения информации для выбора фильма. Программная реализация экспертной системы. Тестирование системы и создание руководства пользователя.
курсовая работа [1,9 M], добавлен 19.05.2014Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.
курсовая работа [2,2 M], добавлен 14.04.2019