Разработка приложения, реализующего метод принятия решений в условиях риска

Рассмотрение классификации программных средств, их жизненного цикла, методологии и технологии разработки. Изучение математического метода принятия решения в условиях риска. Создание и тестирование программы в системе Borland Developer Studio 2006.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.04.2014
Размер файла 602,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Общая часть

1.1 Классификация программных средств

1.2 Жизненный цикл прикладной программы

1.3 Методология и технология разработки ПП

1.4 Тестирование программных средств

1.5 Описание прикладной задачи

2. Специальная часть

2.1 Расчет математической модели

2.2 Описание программы

2.2.1 О программе

2.2.2 Входные и выходные данные

2.2.3 Алгоритм работы программы

2.3 Тестирование программы

2.4 Руководство пользователю

Заключение

Введение

Возможности современного ПК столь велики, что все большее число людей находят ему применение в своей работе, учебе, быту. Важнейшим качеством современного компьютера является его "дружественность" по отношению к пользователю. Общение человека с компьютером стало простым, наглядным, понятным. Компьютер сам подсказывает пользователю, что нужно делать в той или иной ситуации, помогает выходить из затруднительных положений. Это возможно благодаря программному обеспечению компьютера.

Снова воспользуемся аналогией между компьютером и человеком. Новорожденный человек ничего не знает и не умеет. Знания и умения он приобретает в процессе развития, обучения, накапливая информацию в своей памяти. Компьютер, который собрали на заводе из микросхем, проводов, плат и прочего, подобен новорожденному человеку. Можно сказать, что загрузка в память компьютера программного обеспечения аналогична процессу обучения ребенка. Создается программное обеспечение программистами.

Вся совокупность программ, хранящихся на всех устройствах долговременной памяти компьютера, составляет его программное обеспечение (ПО).

Программное обеспечение компьютера постоянно пополняется, развивается, совершенствуется. Стоимость установленных программ на современном ПК зачастую превышает стоимость его технических устройств. Разработка современного ПО требует очень высокой квалификации от программистов. Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время.

Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Delphi - чрезвычайно быстро развивающаяся система. Первая версия - Delphi 1. 0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно. Прикладным называется ПО, предназначенное для решения определенной целевой задачи из проблемной области. Такие программы еще называют приложениями. Различают два основных вида прикладного ПО:

- общего назначения;

- специальное.

Спектр проблемных областей в настоящее время весьма широк и включает в себя по крайней мере следующие: промышленное производство, инженерную практику, научные исследования, медицину, юриспруденцию, судопроизводство, управление, делопроизводство, издательскую деятельность, образование и прочее.

Из всего разнообразия прикладного ПО выделяют группу наиболее распространенных программ (типовые пакеты и программы), используемые во многих отраслях человеческой деятельности независимо от их специфики.

К ПО общего назначения или типовому прикладному ПО относят программы, предназначенные для любых пользователей ПК независимо от области их профессиональных интересов. Это следующие программы:

Текстовые процессоры;

- табличные процессоры;

- системы иллюстративной и деловой графики (графические процессоры);

- системы управления базами данных;

- экспертные системы;

- программы математических расчетов, моделирования и анализа экспериментальных данных.

1. Общая часть

1.1 Классификация программных средств

ЭВМ является исполнителем программ.

Программное обеспечение (ПО) - это совокупность всех программ и соответствующей документации, обеспечивающая использование ЭВМ в интересах каждого ее пользователя.

Различают системное и прикладное ПО. Схематически программное обеспечение можно представить так:

Размещено на http://www.allbest.ru/

Схема 1. Программное обеспечение

Системное ПО - это совокупность программ для обеспечения работы компьютера. Системное ПО подразделяется на базовое и сервисное. Системные программы предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции (копирования, выдачи справок, тестирования, форматирования и т. д).

Базовый уровень является низшим уровнем программного обеспечения. Отвечает за взаимодействие с базовыми аппаратными средствами. Базовое программное обеспечение содержится в составе базового аппаратного обеспечения и сохраняется в специальных микросхемах постоянного запоминающего устройства (ПЗУ), образуя базовую систему ввода-вывода BIOS. Программы и данные записываются в ПЗУ на этапе производства и не могут быть изменены во время эксплуатации.

Базовое ПО включает в себя:

- операционные системы;

- оболочки;

- сетевые операционные системы.

Сервисное ПО включает в себя программы (утилиты):

- диагностики;

- антивирусные;

- обслуживания носителей;

Прикладное ПО - это комплекс программ для решения задач определённого класса конкретной предметной области. Прикладное ПО работает только при наличии системного ПО.

Прикладные программы называют приложениями. Они включает в себя:

- текстовые процессоры;

- базы данных;

- интегрированные пакеты;

Особую группу составляют системы программирования (инструментальные системы), которые являются частью системного ПО, но носят прикладной характер. Системы программирования - это совокупность программ для разработки, отладки и внедрения новых программных продуктов. Системы программирования обычно содержат:

- трансляторы;

- среду разработки программ;

- библиотеки справочных программ (функций, процедур);

- отладчики;

- редакторы связей и др.

1.2 Жизненный цикл программы

Жизненным циклом программы (ЖЦП) на отрезок времени от принятия решения о необходимости разработки программы до снятия программы с эксплуатации. ЖЦП делится на фазы разработки и использования. Первой фазе соответствует разработка документации, а второй сопровождение. Под сопровождением понимают два вида работ:

1. Модификация программы за счет изменения модели предметной области.

2. Нахождение и исправление ошибок, которые есть в программе.

В свою очередь фаза разработки делится на 4 под фазы:

1. Анализ задачи.

2. Проектирование.

3. Кодирование.

4. Тестирование.

Каждый период заканчивается своей документацией.

1. Техническое задание.

2. Эскизный, технический проекты, пояснительная записка.

3. Распечатка программы и статическое тестирование.

4. Сборка программы, программа тестирования, результаты

тестирования.

Разработка ПО может вестись с использованием лавинообразной (Схема 2) или итеративной (Схема 3) моделей разработки. Лавинообразная модель (модель "водопада") может быть использована для разработки ПО небольшого размера с хорошо определенной алгоритмической базой.

Размещено на http://www.allbest.ru/

Схема 2. Лавинообразная

Итеративный подход в разработке программного обеспечения - это выполнение работ параллельно с непрерывным анализом полученных результатов и корректировкой предыдущих этапов работы. Проект при этом подходе в каждой фазе развития проходит повторяющийся цикл:

- планирование;

- реализация;

- проверка;

- оценка.

Размещено на http://www.allbest.ru/

Схема 3- Итеративная

Преимущества итеративного подхода:

- снижение воздействия серьёзных рисков на ранних стадиях проекта, что ведет к минимизации затрат на их устранение;

- организация эффективной обратной связи проектной команды с потребителем (а также заказчиками, стейкхолдерами) и создание продукта, реально отвечающего его потребностям;

- акцент усилий на наиболее важные и критичные направления проекта;

- непрерывное итеративное тестирование, позволяющее оценить успешность всего проекта в целом;

- раннее обнаружение конфликтов между требованиями, моделями и реализацией проекта;

- более равномерная загрузка участников проекта;

- эффективное использование накопленного опыта;

- реальная оценка текущего состояния проекта и, как следствие, большая уверенность заказчиков и непосредственных участников в его успешном завершении.

1.3 Методология и технология разработки ПО

Методология - это система принципов и способов организации и построения теоретической и практической деятельности, а также учение об этой системе. Самой важной целью методологии программирования является изучение и внедрение таких методов проектирования программ, которые облегчают задачу сопровождения программ. Легкость сопровождения - это такое качество программы, которое нельзя улучшить после ее разработки никакими другими способами, кроме перепрограммирования.

Методология реализуется в методах. Под методом понимают совокупность приемов и операций практического и теоретического освоения деятельности. В программировании широкую известность приобрели методы: структурного, функционального, модульного, объектно-ориентированного программирования.

Технология - это совокупность методов обработки, изготовления, изменения состояния, свойств, формы сырья, материала или полуфабриката в процессе производства, а также научное описание способов производства.

Применительно к программированию технологию можно определить, как совокупность процессов создания, сопровождения и применения программного продукта. Любая технология программирования базируется на некоторой методологии разработки программ.

Любая теоретическая или практическая сфера деятельности использует присущие только ей способы решения поставленных задач. Эти способы называются методами. Метод - это способ достижения какой-либо цели, решения конкретной задачи; совокупность приемов или операций практического или теоретического освоения действительности.

Методология - совокупность методов, применяемых в какой-либо области человеческой деятельности.

В дальнейшем будем понимать методологию как совокупность методов, применяемых в жизненном цикле и объединенных общим философским подходом.

Методология науки дает характеристику компонентов научного исследования - его объекта, предмета анализа, задачи исследования, совокупности исследовательских средств, необходимых для решения задачи данного типа, а также формирует представление о последовательности движения исследователя в процессе решения задачи.

Методология создания информационных систем заключается в организации процесса построения информационной системы и обеспечении управления этим процессом для того, чтобы гарантировать выполнение требований как к самой системе, так и к характеристикам процесса разработки.

1.4 Тестирование программных средств

Тестирование программного обеспечения -- процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта

Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:

- по объекту тестирования;

- по знанию системы;

- по знанию системы;

- по степени автоматизированности;

- по степени изолированности компонентов;

- по времени проведения тестирования;

- по признаку позитивности сценариев;

- по степени подготовленности к тестированию.

Уровни тестирования

Модульное тестирование (юнит-тестирование) -- тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.

Интеграционное тестирование -- тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.

Системное тестирование -- тестируется интегрированная система на её соответствие требованиям.

Бета-тестирование -- интенсивное использование почти готовой версии продукта (как правило, программного или аппаратного обеспечения) с целью выявления максимального числа ошибок в его работе для их последующего устранения перед окончательным выходом (Релизом) продукта на рынок, к массовому потребителю.

В отличие от альфа-тестирования, проводимого силами штатных разработчиков или тестировщиков, бета-тестирование предполагает привлечение добровольцев из числа обычных будущих пользователей продукта, которым доступна упомянутая предварительная версия продукта (так называемая бета-версия).

Альфа-тестирование -- имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки.

Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

Тестирование «белого ящика» и «чёрного ящика»

В терминологии профессионалов тестирования (программного и некоторого аппаратного обеспечения), фразы «тестирование белого ящика» и «тестирование чёрного ящика» относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.

При тестировании белого ящика (англ. white-box testing, также говорят -- прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции -- работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.

При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).

1.5 Описание прикладной программы

Опишем процудуру выполнения алгоритма минимального остовного дерева. Обозначим через M={1,2...n} множество узлов сети и введем новые обозначения:

C0- Множество узлов сети, соединенных алгоритмом после выполенения k-й итерации этого алгоритма,

С1-множество узлов сети, не соединенных с узлами множества С0 после выполнения k-й итерации этого алгоритма

Этап 0. Пусть С0= Ш и С1=M.

Этап 1. Выбираем любой узел i из множества С1 и определяем С1={i}, тогда С1=M-{i}. Пологаем k=2.

Основной этап k. Во множестве С1k-1 выбираем узел j, который соединен самой короткой дугой с каким либо узлом из множества Сk-1.Узел j присоединяется к множеству Ck-1 и удаляется из множества С1k-1. Таким образом, С0k=Ck-1+{j},C1k-1-{j}.

Если множество C1k пусто, то выполнение алгоритма заканчивается.

В противном случае полагаем k=k+1 и повторяем последний этап.

2. Специальная часть

2.1 Расчет математической модели

Вариант 1

Фермер Мак-кой может выращивать либо кукурузу, либо соевые бобы. Вероятность того, что цены на будущий урожай этих культур повысятся, останутся на том же уровне или понизятся, равна соответственно 0.25, 0.30 и 0.45. Если цены возрастут, урожай кукурузы даст 30 000 долларов чистого дохода, а урожай соевых бобов - 10 000 долларов. Если цены останутся неизменными, Мак-кой лишь покроет расходы. Но если цены станут ниже, урожай кукурузы и соевых бобов приведет к потерям в 35 000 и 5 000 долларов соответственно.

а) Представьте данную задачу в виде дерева решений.

b) Какую культуру следует выращивать Мак-кою?

a) Размещено на http://www.allbest.ru/

Рис. Дерево решений

b) MV(Кукуруза)=0,25*30000+0,30*0+0,45*(-35000)=8250 долл.

MV(Бобы)=0,25*10000+0,30*0+0,45*(-5000)=250 долл.

Следует выбрать Соевые бобы.

Вариант 2

a) Размещено на http://www.allbest.ru/

Рис. Дерево решений

b) MV(Кукуруза)=0,30*30000+0,20*0+0,50*(-30000)=1500 долл.

MV(Бобы)=0,25*10000+0,20*0+0,50*(-15000)=-1500 долл.

След выбрать Кукурузу.

Вариант 3

a) Размещено на http://www.allbest.ru/

Рис. Дерево решений

b) MV(Кукуруза)=0,35*60000+0,15*0+0,50*(-30000)=1500 долл.

MV(Бобы)=0,35*20000+0,15*0+0,50*(-20000)=9000 долл.

Следует выбрать Соевые бобы.

2.2 Описание программы

2.2.1 О программе

Данная программа написана в системе Borland Developer Studio 2006.

Borland Developer Studio включает Delphi 2006, C++Builder 2006 и C#Builder2006. Delphi 2006 - десятая версия Delphi, флагманской RAD-среды фирмы Borland.

Поддерживаемые языки и платформы.

Поскольку организации уже используют ряд программных приложений и служб, скорее всего они выберут использование существующих, проверенных и хорошо отлаженных приложений вместо немедленной их замены просто ради перехода на новейшую технологию. Это роскошь, которую организации редко могут себе позволить. Здесь преимущества Delphi 2006 очевидны, так как смесь типов проектов, не так уж редко встречается в бизнес-системах.

Win32 C++ DLL, предоставляющий интерфейс для какого-то устройства (производственного или банковского оборудования, а возможно, источника данных), Win32-приложение Delphi - в данном случае многоуровневое приложение DataSnap - которое может взаимодействовать с C++ DLL и сохранять информацию в БД, и, наконец, ASP.NET-проект на C#. Все эти проекты можно рассматривать как единый набор и работать над ними в рамках одной группы проектов (Project Group) Delphi 2006.

Это значительно увеличивает мощь и гибкость, доступные программисту, Delphi 2006 позволяет выполнять разработку практически любого рода.

Требования к системе:

· процессор Intel Pentium III/M 1,4 ГГц или Pentium IV 1,4 ГГц (минимум) (рекомендуется процессор Intel Pentium III/M с частотой выше 1,4 ГГц или Pentium IV с частотой выше 2 ГГц);

· Microsoft Windows Server 2003 (SP1), Microsoft Windows‚ XPProfessional (SP2), Windows 2000 Professional (SP4), Windows 2000 Server (SP4);

· 512 МБ ОЗУ (рекомендуется 1 ГБ или больше);

· 1 ГБ свободного дискового пространства для Delphi for Win32 и Delphi for NET (Без учета пространства, необходимого для дополнительных продуктов сторонних поставщиков;

· 750 МБ свободного дискового пространства для необходимых программ (включая Microsoft .NET Framework и SDK);

· привод CD-ROM или DVD-ROM;

· монитор SVGA или монитор с более высоким разрешением (рекомендуется XGA);

· Мышь или другое указательное устройство.

2.2.2 Входные данные

Обозначение

Тип данных

Комментарий

А

Real

Вероятность повышение цены.

В

Real

Вероятность того что цены останутся прежней.

С

Real

Вероятность понижение цены.

x

integer

Вероятность дохода от возростание цены.

y

integer

Цены останутся неизменными.

z

integer

Вероятность потери прибыля от понижение цены.

А1

real

Вероятность повышение цены.

В1

real

Вероятность того что цены останутся прежней.

С1

real

Вероятность понижение цены.

x1

integer

Вероятность дохода от возростание цены.

y1

integer

Вероятность того что цены останутся неизменными.

z1

integer

Вероятность потери прибыля от понижение цены.

Выходные данные

Обозначение

Тип данных

Комментарий

-

-

Выдается сообщение о выборе выращивание “Кукурузу” или “Соевые бобы”.

2.2.3 Алгоритм работы программы

Размещено на http://www.allbest.ru/

2.3 Тестирование программы

приложение метод принятие решение

Тестирование - процесс выполнения программы с целью обнаружения ошибок.

Таблица тестирование

Тестовый набор

Ожидаемый результат

Полученный результат

Вариант 1

Следует выбрать Кукурузу

Следует выбрать Кукурузу

Вариант 2

Следует выбрать Бобы

Следует выбрать Бобы

Вариант 3

Следует выбрать Кукурузу

Следует выбрать Кукурузу

Вывод: проведенное тестирование показало, что программа работает корректно.

2.4 Руководство пользователя

Запуск программы осуществляется с помощью файла *.exe. после чего появляется стартовая форма проекта.

Рис. Форма программы

Ход работы:

1) Прочитать условию задачи.

2) Заполнить все пустые поля числами.

3) Заполнить поля можно с помощью выбора вариантов.

4) Нажать кнопку “Рассчитать”

5) Программа выводить результат о принятие решения в условиях риска.

6) Выход.

Возможности программы

Меню:

Варианты - можно выбрать один из трех вариантов.

Условие - тут описано условие задачи.

Справка - выводит сообщение о том, как заполнять поля.

О программе - выводит данные о разработчике.

Выход - закрывает программу.

Заключение

В ходе разработки курсового проекта были достигнуты следующие задачи:

1. Изучен математический метод принятия решения в условиях риска.

2. Составлен алгоритм компьютерной модели решения.

3. Создана программа которая:

3.1 Реализует данный математический метод оптимальным образом.

3.2 Быстро и корректно выполняет расчеты.

3.3 Имеет понятный пользователю интерфейс.

4 Для проверки корректности работы программы были составлены текстовые наборы. Тестирование прошло успешно, что свидетельствует о корректности работы программы. Все расчеты были проведены вручную.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.