Подсистема автоматизированной тарификации биллинговой системы "Отик-интернет"
Основные типы тарифных планов российских Internet-провайдеров. Концепция баз данных. Схема информационных потоков. Структуры данных модуля учета тарифов. Методика испытаний и результаты экспериментальной проверки. Выбор средства и языка программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.03.2012 |
Размер файла | 1017,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
- Плата за подключение с оборудованием, приобретенным у ОТИК (число до 999999,99);
- Плата за подключение с собственным оборудованием в офисах продаж ОТИК / у дилеров (число до 999999,99);
- Минимальный первоначальный авансовый платеж (число до 999999,99, означающее количество денег, которое необходимо заплатить один раз для подключения к желаемому тарифу);
Если введенные данные, по какой либо причине не устраивают администратора, то их можно удалить, нажав кнопку “Очистить
Стоит отметить, то изначально формы для вводе информации о повременной оплате неактивны. Доступ к ним возможно получить путем проставления галочки в поле «разовые платежи».
При нажатии на кнопку “Сохранить” будут проверенны все введенные данные и если они правильные, то появиться сообщении о том, что тариф записан.
Если данных будет не хватать, то появиться сообщение о том, что заполнены ни все значения.
Если введенные данные окажутся ошибочными, то система выдаст следующие сообщения об ошибках
После ввода всех данных и возвращении на форму ввода/редактирования тарифа (рис.1.15), при нажатии на кнопку “Сохранить”, программа осуществит проверку введенной информации и при правильности всех данных тариф будет записан в базу данных Tarif с уведомлением в виде сообщения (рис.1.16).
Для того чтобы изменить тарифный план необходимо на главной форме (рис.1.14) выбрать тариф, который надо изменить, и нажать на кнопку “Изменить”. После нажатия на кнопку появится форма ввода/редактирования тарифов, где в соответствии с тарифом будут заполнены все поля, данные в которых можно изменять. Также на форме будет указано, имеется ли повременная оплата или нет, а если имеется, есть ли различие в оплате будних и выходных дней. После всех изменений на форме повременной оплаты надо нажать кнопку “Возвратиться с сохранением” после чего на форме разового платежа нажать кнопку сохранить, что вызовет проверку всех данных, и появления сообщения о том, что тариф изменен. Если при проверке данных обнаружиться ошибка, то появиться сообщение, в котором будет указана ошибка. После устранения всех ошибок и нажатия на кнопку “Сохранить” появиться главная форма для работы с тарифами с измененным тарифным планом.
Для удаления тарифного плана необходимо на главной форме выделить (выбрать) тариф, который надо удалить и нажать на кнопку “Удалить”. После чего появиться сообщение, где надо подтвердить удаление тарифного плана (рис 1.21.). В случае отказа тариф не будет удален.
Для контроля целостности, анализа всей информации, которая хранится в базе данных Tarif, предусмотрена форма для просмотра таблиц, где показаны все таблицы, все записи и поля соответствующих таблиц (рис.1.22). Для вызова формы просмотра таблиц, необходимо на главной форме для работы с тарифами нажать на кнопку “Показать таблицы”. В данной форме есть возможность только просматривать информацию.
1.3.7 Методика испытаний и результаты экспериментальной проверки
Общие сведения.
Общая цель проведения испытаний - определение степени соответствия созданного программного продукта (ПП) техническому заданию.
В жизненном цикле ПП можно выделить следующие виды испытаний:
- испытания опытного образца ПП на полное соответствие требованиям технического задания;
- испытания рабочей версии ПП, адаптированной к условиям конкретного применения;
- испытания версии модернизированного ПП при сопровождении.
Наиболее полным и разносторонним испытаниям подвергается ПП при первичной проверке опытного образца.
Тестирование опытного образца при приемосдаточных испытаниях.
Для обеспечения полноты приемосдаточных испытаний опытного образца ПП целесообразно выделять следующие цели испытаний и соответствующие им категории тестирования:
- функциональное тестирование - для проверки полноты и корректности решения основных задач при типовых условиях;
- стрессовое тестирование - испытания программ при предельных и критических значениях параметров и условий эксплуатации;
- тестирование использования ресурсов ЭВМ - для проверки корректности распределения памяти и производительности;
- эргономическое тестирование - для проверки удобства и простоты интерфейса программы;
- тестирование документации - для проверки полноты и соответствия внутренним и внешним стандартам по структуре, оформлению.
Функциональное тестирование - наиболее обширное и труднее всего систематизируемое. Набор испытательных тестов полностью определяется функциональными задачами и сложностью ПП. Эти тесты должны обеспечивать проверку и демонстрацию заказчику-пользователю качества решения функциональных задач, сформулированных в техническом задании и конкретизированных в документации.
Поскольку исчерпывающее тестирование для сложных ПП невозможно, большое значение имеет уточнение областей варьирования тестовых данных. Кроме того, для испытаний устойчивости функционирования при аномалиях на входе программы тестируются при значениях переменных, которые невозможны при нормальном функционировании источников исходных данных.
Испытания программного продукта.
Функциональное тестирование заключается в проверке корректности выполнения соответствующих команд на соответствующих формах. Оценка правильности выполнения команд осуществляется визуально и по соответствующим сообщениям.
Рассмотрим процесс добавления нового тарифного плана с повременной оплатой.
На главной форме для работы с тарифами (рис.1.14) нажимаем на кнопку “Добавить”, при этом появляется форма добавления/редактирования тарифа.
В появившемся окне необходимо ввести: название тарифа, абонентскую плату, объем трафика, включенного в абонентскую плату, плату за подключение с оборудованием, приобретенным у ОАО «ОТИК», плату за подключение с собственным оборудованием в офисах продаж ОАО «ОТИК»/у дилеров, минимальный первоначальный авансовый платеж. При утвердительном ответе на вопрос “Есть повременная плата?”, ставим галочку в поле «Повременная оплата» и получаем доступ к соответствующей форме. Нажимаем на кнопку “Добавить”, после чего становится возможным разбивать день на периоды и указывать соответствующие цены. Вводим начальное время - “21:61”, конечное время - “22:30”, цену за входящий трафик -“10q ”, цену за исходящий трафик - “10” и нажимаем кнопку “Запомнить”. Появляется сообщение об ошибке, которое свидетельствует о корректной работе.
Исправляем начальное время - “21:61” на “ 21:50” и нажимаем кнопку “Запомнить”, что приводит к появлению сообщения об ошибке.
Изменяем цену за входящий трафик -“10q ” на “20” и нажимаем кнопку “Запомнить”, после чего запись благополучно добавляется, что свидетельствует о корректной работе программы.
На данный момент времени только 40 минут суток имеют определенную цену за трафик, что свидетельствует запить “Осталось 23:20:00”. Добавляем новую запись: начальное время уже заполнено - “22:30”, конечное время заполняем значением - “22:00”, цену за входящий трафик и цену за исходящий трафик заполняем значениями соответственно - “10” и “15”, нажимаем на кнопку “Запомнить”. Появляется сообщение об ошибке (рис 1.25), которое свидетельствует о корректной работе программы.
Исправляем конечное время - “22:00” на “ 21:50” и нажимаем кнопку “Запомнить”, после чего запись благополучно добавляется и становиться активной кнопка “Возвратиться”. Все эти проявления свидетельствует о корректной работе программы. Нажимаем кнопку “Возвратиться” и появляется форма ввода/редактирования тарифов.
Введем в поле “Название тарифа” значение, которое уже имеется в базе данных Tarif. Все остальные поля, кроме минимального первоначального авансового платежа, заполним значением равным 100, что является корректным значением для этих полей. Поле минимального первоначального авансового платежа заполняться не будет. Нажав на кнопку “Сохранить” появится сообщение (рис.1.26), которое свидетельствует о корректной работе программы.
После согласия на сообщение, введем минимальный первоначальный авансовый платеж, равный символу ”F” и нажмем на кнопку “Сохранить”, что приведет к появлению сообщения (рис. 1.27).
Изменяем, минимальный первоначальный авансовый платеж на корректное значение, например, на значение, равное 100, и нажимаем кнопку “Сохранить”. Появляется сообщение (рис.1.28.).
Изменяем минимальный первоначальный авансовый платеж, на значения равное 100 и нажимаем кнопку ”Сохранить”, что приводит к появлению сообщения о том, что тариф записан (рис.1.16) после чего появляется главная форма, где можно увидеть добавленный новый тарифный план.
Таким же методом были протестированы все возможности программного модуля.
В специальном разделе представлен литературный обзор по важнейшим понятиям, использованным при разработке и описании данного дипломного проекта:
1) Обзор существующих продуктов на рынке
2) Основные типы тарифных планов российских Internet-провайдеров
Затронуты вопросы проектирования баз данных, рассмотрены общие положения, применяемые разработчиками СУБД, даны основные подходы создания реляционных баз данных.
Представлена общая структура системы, где рассмотрены вопросы асимметричного доступа в интернет через спутник и работы биллинговой системы провайдера спутникого интернета.
Описана схема информационных потоков и рассмотрена структура данных.
Также представлен алгоритм работы программы, описана работа программного модуля, включая примеры диалогов с пользователем.
Рассмотрена методика испытаний и представлены результаты экспериментальной проверки.
В целом представлена полная и объективная картина, отражающая содержание выполненных работ по разработке программного модуля учета тарифов.
2. Технологическая часть
2.1 Введение
В последнее время в связи с созданием больших программных систем возрос интерес к методике разработки и, в частности, отладки программ.
Методика разработки и отладки программных систем должна дополняться и методикой изготовления и отладки отдельных программных блоков, подпрограмм, модулей, разрабатываемых одним программистом. Без применения эффективных способов создания таких программных единиц невозможно надеяться на успешное решение проблемы создания программных комплексов.
Проблема отладки существует также и для программ средней сложности. Хотя стоит отметить тот факт, что для таких программ эффективность и достоверность отладки не является настолько жизненно необходимой, а также то, что обнаружение серьезных ошибок в ходе эксплуатации программы не приводит к столь печальным последствиям, как для больших систем. Автор программы обычно бывает в состоянии исправить их в приемлемые сроки.
Таким образом, вопросы повышения надежности программы, ускорения процесса её отладки и разработки являются актуальными как для профессиональных программистов, работающих над отдельными блоками программных систем, так и для дипломников, самостоятельно разрабатывающих свои программы.
2.2 Выбор среды и языка программирования
Для реализации дипломной работы была выбрана система программирования Microsoft Visual Studio.NET 2003, располагающая широкими возможностями по созданию приложений баз данных.
Прежде всего, стоит разобраться, зачем, собственно говоря, нужна платформа .NET. Для этого очень кратко рассмотрим технологии, имеющиеся в распоряжении программистов в настоящий момент, а затем перейдём к преимуществам, которые предоставляет платформа .NET и язык программирования C#.
2.2.1 Обзор возможностей, предоставляемых программистам различными технологиями
Программирование с использованием Win32/C
Написание приложений с использованием только Windows API (Windows Application Programming Interface) - это очень трудоёмкая задача. Стоит отметить также что, что C- достаточно суровый по отношению к программисту язык. Тем, кто создает на нём свои приложения, приходится вручную заниматься управлением памятью, выполнять расчёты при использовании указателей и работать с совершенно неестественными с точки зрения человеческого языка синтаксическими конструкциями. Кроме того, в C, конечно, недостаточно возможностей для объектно-ориентированного программирования.
Программирование с использованием C++/MFC
C++ - это огромный шаг вперед в отношении новых возможностей по сравнению с исходным языком C. Во многих ситуациях C++ вполне допустимо представить как объектно-ориентированную надстройку над C. Такая надстройка позволяет использовать возможности инкапсуляции, полиморфизма и наследования. Однако программисты, использующие C++, остаются незащищенными от многих часто опасных особенностей C.
Существует множество библиотек для C++, основное назначение которых - облегчить написание приложений под Windows, предоставив для этой цели уже готовые классы. Одна из наиболее распространенных библиотек - это MFC (Microsoft Foundation Classes). Она значительно упрощает работу программиста за счет использования готовых классов , макросов и мастеров. Однако это лишь частичное решение проблемы. Даже при использовании MFC программисту нужно работать со сложным для чтения кодом, весьма опасным с точки зрения возможных ошибок.
Программирование с использованием Visual Basic.
Visual Basic позволяет работать с достаточно сложными элементами интерфейса пользователя, библиотеками кода и средствами доступа к данным при минимальных затратах времени и сил. Однако Visual Basic обладает рядом недостатков. Главный из них - гораздо меньшие возможности, которые предоставляет этот язык по сравнению с С++. Visual Basic - это язык «для работы с объектами», а не объектно-ориентированный язык в обычном понимании этого слова. В Visual Basic нет классического наследования, нет поддержки создания параметризованных классов, нет собственных средств создания многопоточных приложений - и этот список можно продолжать ещё долго.
Программирование и использованием Java.
Язык Java -это полностью объектно-ориентированный язык, который в отношении синтаксиса многое унаследовал от C++. Но язык Java в отношении синтаксиса намного проще и логичнее, чем C++. Java - это очень элегантный и красивый язык. Однако при его использовании проблем избежать не удастся. Одна из серьёзных проблем заключается в том, что при создании сложного приложения на Java вам придётся использовать только этот язык для создания частей этого приложения. В Java предусмотрено не так уж много средств межъязыкового взаимодействия. В реальном мире существуют миллионы строк готового кода, который хотелось бы интегрировать с новыми приложениями на Java. Однако это очень трудно сделать. Таким образом, можем заключить, что Java - это далеко неидеальный язык во многих ситуациях.
2.2.2 Преимущества .NET
Один из главных принципов .NET звучит так: «Изменяйте всё, что хотите, откуда Вам угодно». .NET - это совершенно новая модель создания приложений под Windows (а в будущем, видимо, и под другими операционными системами). Основные возможности . NET можно охарактеризовать так:
- Полные возможности взаимодействия с существующим кодом;
- Полное и абсолютное межъязыковое взаимодействие;
- Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они созданы. Один из важных моментов при этом - то, что для всех языков используется один и тот же набор встроенных типов данных;
- Библиотека базовых классов, которая обеспечивает сокрытие всех сложностей, связанных с непосредственным использованием вызовом API, и предлагает целостную объектную модель для всех языков программирования, поддерживающих .NET;
- Действительное упрощение процесса развертывания приложения. В .NET нет необходимости регистрировать двойные типы в системном реестре. Более того, .NET позволяет разным версиям одного и того же модуля dll мирно сосуществовать на одном компьютере.
2.2.3 Преимущества C#
Специально для платформы .NET Microsoft был разработан новый язык программирования C#. C# - это язык программирования, синтаксис которого очень похож на синтаксис Java (но не идентичен ему) Однако, назвать C# клоном Java было бы неверно. Как C#, так и Java основаны на синтаксических конструкциях C++. Если Lava во многих отношениях можно назвать очищенной версией C++, то C# можно охарактеризовать как очищенную версию Java.
Синтаксические конструкции C# унаследованы не только от C++, но и от Visual Basic. Например, в C#, как и в Visual Basic, используются свойства классов. Как C++, C# позволяет производить перегрузку операторов для созданных Вами типов. При этом C# синтаксически не менее (если не более) чист, чем Java, так же прост, как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++.
Выделим основные особенности C#:
- Указатели больше не нужны. В программах на C#, как правило, нет необходимости в работе с ними (однако если это потребуется, то, пожалуйста, возможности для работы с указателями в Вашем распоряжении);
- Управление памятью производится автоматически;
- В C# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов;
- В C# осталась возможность перегружать операторы, унаследованные от C++. При этом значительная часть возникавших при этом сложностей ликвидирована;
- Предусмотрена полная поддержка использования программных интерфейсов. Однако в отличие от классического COM применение интерфейсов - это не единственный способ работы с типами, используя различные двоичные модули. .NET позволяет передавать объекты (как ссылки или как значения) через границы программных модулей;
- Также предусмотрена полная поддержка аспектно-ориентированных программных технологий (таких как атрибуты).
Возможно, самое важное, что необходимо сказать о языке C#, - это то, что он генерирует код, предназначенный для выполнения только в среде выполнения .NET. Согласно терминологии Microsoft код, предназначенный для работы в среде выполнения .NET, - это управляемый код (managed code). Двоичный файл, который содержит управляемый файл, называется сборкой (assembly).
2.2.4 Создание приложений C# с использованием интегрированной среды разработки Microsoft Visual Studio.NET
Первое, что необходимо сказать об интегрированной среде разработки (integrated development environment, IDE) Visual Studio.NET, - то, то эта среда теперь едина для всех языков программирования .NET от Microsoft. Таким образом, какой бы тип проекта Вы ни создавали (ATL, MFC, C#, Visual Basic.NET, FoxPro, стандартный C++ и.т.п.), Вы всё равно будете работать в одной и той же среде.
В интегрированной среде разработки Visual Studio.NET проекты логически организуются в решения (solutions). Каждое решение состоит из одного или нескольких проектов. В свою очередь, каждый проект может состоять из любого количества исходных файлов, ссылок на внешние сборки и прочих ресурсов, которые и образуют приложение.
В Visual Studio.Net предусмотрены встроенные средства для работы с XML (как и HTML). Многие из этих средств были унаследованы от прежнего VisualInterDev. После подключения (или создания) файла XML к Вашему приложению Вы сможете производить редактирование его кода при помощи множества графических средств.
В Visual Studio.NET предусмотрены встроенные средства для организации соединения с базами данных.
Ещё один немаловажный аспект работы с Visual Studio.NET - это встроенная правка. Вместо того, чтобы постоянно переключаться между окнами среды разработки и MSDN, в Visual Studio.NET можно воспользоваться предусмотренным для этих целей окном Dynamic Help. Содержание этого окна изменяется динамически в зависимости от того, какой именно элемент выделен в настоящий момент.
2.2.5 MySQL-сервер и возможности MySQL
Для реализации дипломного проекта была выбрана СУБД MySQL.
MySQL - компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.
MySQL был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 базами данных, которые содержат 10000 таблиц, из которых более чем 500 имеют более 7 миллионов строк.
Исходные тексты сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности. В настоящий момент продолжается разработка MySQL, хотя стоит отметить, что версии 3.22 полностью работоспособны.
MySQL-сервер является бесплатным для некоммерческого использования. Иначе необходимо приобретение лицензии, стоимость которой составляет 190 евро.
Возможности MySQL
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.
Краткий перечень возможностей MySQL:
1) Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных;
2) Количество строк в таблицах может достигать 50 млн.;
3) Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих;
4) Простая и эффективная система безопасности.
MySQL - очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД.
В MySQL отсутствуют:
1) Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE;
2) Нет поддержки внешних (foreign) ключей;
3) Нет поддержки триггеров и хранимых процедур.
По словам создателей именно пункты 1) и 3) дали возможность достичь высокого быстродействия. Их реализация существенно снижает скорость сервера. Эти возможности не являются критичными при создании Web-приложений, что в сочетании с высоким быстродействием и малой ценой позволило серверу приобрести большую популярность.
2.3 Этапы решения задачи на ЭВМ
2.3.1 Постановка задачи
Задача, которую предстоит решить на ЭВМ, выдается в виде специального задания на разработку программы. Задание содержит формулировку задачи, необходимые характеристики разрабатываемой программы, требования к взаимодействию с ней. Выдаче такого задания для крупных задач может предшествовать большая работа научно-исследовательского характера.
Задание на разработку программы по форме и характеру должно быть аналогично техническому заданию (ТЗ) на разработку какого-либо технического продукта (см., например, ГОСТ 19.201-78 Единой системы программной документации).
Техническое задание полезно и в том случае, когда заказчик и исполнитель работают в одной и той же комнате или даже являются одним и тем же лицом. Наличие четкой письменной формулировки будет препятствовать подмене или отходу в процессе разработки программы от сформулированных в ТЗ требований в угоду каким-то другим побочным целям. Кроме того, письменно сформулированное задание делает возможным обсуждение, оценку или согласованную с заказчиками (пользователями) корректировку отдельных требований ТЗ в ходе разработки программы. ТЗ препятствует проникновению в программу таких ошибок и противоречий, которые могут быть обнаружены только после разработки большей части программы или уже на стадии анализа полученных результатов счета. Чем более формализованным по характеру будет техническое задание, тем больше шансов, что разрабатываемая программа будет решать именно ту задачу, которую имел в виду заказчик.
Техническое задание должно содержать также требования или указания, касающиеся принципов проверки и испытаний готовой программы.
2.3.2 Составление проекта
На основании анализа технического задания выбирается основной метод решения задачи, составляет общий проект программы. Выбранный подход к решению задачи должен обеспечивать правильные результаты для тех условий функционирования программы, которые определены ТЗ, гарантировать требуемую скорость работы, предусматривать удобство использования программы и т. п.
В проекте, помимо формулировки выбранного общего метода решения задачи, характеризуются основные части проектируемой программы, их функции, взаимосвязь и последовательность выполнения, а также точно определяются входные данные и выдаваемые результаты, как всей программы, так и основных ее частей. Поскольку каждая разрабатываемая программа, как правило, используется в дальнейшем не только ее автором, но и другими программистами, составляется и проект инструкции для пользователей, в которой фиксируется (и, таким образом, может быть заранее оценен и исправлен) предполагаемый режим общения пользователя (и оператора) с программой.
Для очень простых задач проектирование может производиться мысленно, без фиксации на бумаге. Наоборот, очень сложные задачи могут потребовать нескольких этапов проектирования: предэскизное, эскизное, техническое по аналогии с инженерным проектированием.
Замечание. Этапы 2.3.1. и 2.3.2. для несложных задач мало зависят от ЭВМ и операционной системы, с помощью которых предполагается решать задачу, а также от языка, на котором она будет программироваться; выбор ЭВМ и языка может быть произведен и на следующих этапах разработки.
2.3.3 Алгоритмизация
Этот этап иногда воспринимают, как вспомогательный. Он является подготовительный к выполнению следующего этапа, считающегося основным, на котором производится написание программы на выбранном языке программирования. Введение такого "промежуточного" этапа преследует цель облегчить выполнение следующего этапа и тем самым предотвратить возникновение многих ошибок при его осуществлении для сложных задач. Формулировка алгоритма закрепляет последовательность основных шагов выполнения программы, четко фиксирует функциональное содержание ее частей, позволяет уделить необходимое внимание простоте логической структуры разрабатываемой программы. Этап алгоритмизации является совершенно необходимым также, в случае, если язык, на котором предстоит программировать, не вполне освоен и предвидятся трудности при его использовании на следующем этапе.
При разработке алгоритма необходимо учитывать ресурсы используемой ЭВМ (ее скорость, память) и возможности применяемой для решения задачи операционной системы. Алгоритмы для несложных задач, требования которых к ресурсам невелики, являются обычно машинно-независимыми.
В ходе разработки общего алгоритма, используется некоторый специальный язык, который по своему характеру является промежуточным, переходным между неформальным, словесным способом изложения метода решения задачи на этапе 2.3.2. и формальным алгоритмическим языком для программирования. Промежуточный язык должен сочетать в себе с одной стороны, наглядность для отображения содержания и смысла, выполняемых в алгоритме действий (что делается) и, с другой стороны, формализм для указания конкретных операций и последовательности их выполнения (как делается).
В качестве такого промежуточного языка обычно используют блок-схемы, которые позволяют наиболее наглядно представить логическую структуру разрабатываемой программы, взаимосвязь отдельных частей программы, условия или кратность выполнения таких частей. Для отображения вычислительной (арифметической) стороны программы используются обычные математические средства или элементы алгоритмических языков, а в самых общих блок-схемах - просто словесная формулировка; иногда используются и все эти способы вместе.
Для достаточно сложных программ алгоритмизация проводится в несколько шагов с целью постепенной детализации алгоритма. Для простых задач обычно разрабатывают блок-схемы на двух уровнях: общая блок-схема программы и блок-схемы отдельных частей (блоков) программы.
В ходе разработки алгоритма, возможно, придется уточнять или изменять решения, принятые на этапе 2.3.2., и в этом случае такие изменения обязательно вносятся в проект, который всегда должен соответствовать разрабатываемому алгоритму.
2.3.4 Программирование
В случае, когда на предыдущем этапе был получен детально разработанный алгоритм, составление программы на выбранном для программирования языке (алгоритмическом языке высокого уровня, автокоде, языке ассемблера или машинном языке) сводится к переводу этого алгоритма на язык программирования. Основные трудности и, следовательно, причины ошибок на этом этапе заключаются, во-первых, в необходимости знания всех требований и ограничений выбранного языка программирования и, во-вторых, в необходимости постоянного внимания ко многим деталям языка, которые приходится учитывать в ходе написания программы. Если этап 2.3.3. был выполнен некачественно и алгоритм представлен недостаточно детально, то его доводку придется выполнять «на ходу», во время программирования. Это затруднит процесс программирования-перевода и поведет к возникновению дополнительных ошибок в программе. Чем более процесс программирования будет походить на перевод, тем более «механическим» будет такой перевод, тем более легким будет составление программы, и тем меньше возникнет ошибок на этом этапе, самом щедром на ошибки.
После составления программы проводится ее проверка для обнаружения и исправления ошибок, внесенных на этом этапе. Если при проверке обнаруживаются ошибки, допущенные на предыдущем этапе 2.3.3., то соответствующие исправления вносятся и в алгоритм, поскольку к нему еще придется обращаться на следующих этапах, и тексты алгоритма и программы должны соответствовать друг другу.
2.3.5 Препарация
После составления программы производится ее перенос на машинные носители, т. е. подготовка программы к выполнению ее на ЭВМ; будем называть этот этап препарацией. Для предупреждения и сокращения ошибок препарации текст программы должен быть написан ясно и четко: чем небрежнее будет написан текст программы, тем больше ошибок возникнет в препарированной программе. Проверка правильности препарации осуществляется распечаткой программы, введенной в ЭВМ с использованных носителей, и последующей сверкой с исходным текстом.
2.3.6 Трансляция
Транслятор в ходе осуществления трансляции, производит поиск синтаксических ошибок в программе и, в случае их обнаружения, печатает диагностику, помогающую последующей локализации ошибок. Трансляция, а вместе с ней, и поиск синтаксических ошибок, могут быть прекращены, если найдена очень грубая, с точки зрения транслятора, ошибка. Отсутствие синтаксических ошибок не говорит о том, что в программе нет ошибок препарации (например, вместо знака * был набран + или записана не та буква). Поэтому тщательная сверка напечатанной программы с исходным текстом всегда необходима на данном или предыдущем этапе.
2.3.7 Отладка
На этапе отладки производится обнаружение с помощью ЭВМ ошибок в программе и их исправление. Этап отладки можно разделить на три подэтапа:
1) Контроль правильности программы;
2) Локализация ошибок;
3) Исправление ошибок.
Сначала осуществляется контроль программы: путем пропуска на машине специальных контрольных примеров устанавливается факт отсутствия или, в противном случае, наличия ошибок в программе. Здесь речь идет о содержательных (семантических) ошибках, которые не проявляются при трансляции программы.
Затем происходит локализация ошибок - точно устанавливается место, где в программе допущена ошибка (ошибки), последствия которой проявились при выполнении первого подэтапа.
После выполнения двух подэтапов производится исправление ошибок, выявленных на втором подэтапе. Исправления вносятся как в программу, так и в алгоритм, если он затрагивается этими исправлениями.
Перечисленные подэтапы могут повторяться многократно (включая и этап трансляции, точнее перетрансляции), до тех пор, пока контроль покажет, что ошибок в программе, по-видимому, нет.
3 а м е ч а н и е. Поиск и исправление ошибок в программе происходит и на более ранних этапах ее разработки, но там он имеет подготовительный характер и отличается тем, что основным материалом при этом является текст программы, а не результаты ее работы.
2.3.8 Оформление программы
Для возможности эксплуатации программы она должна быть оформлена: составлено ее описание, изготовлены машинные носители для передачи программы пользователям. В описание включается инструкция по использованию программы, излагается примененный метод решения, приводятся алгоритмы (иногда и текст программы), а также контрольные примеры с эталонными результатами. Наличие описания программы позволяет не только успешно эксплуатировать ее длительное время, но и проводить модернизацию и использовать в дальнейших разработках. Основную часть описания составляют материалы, с которыми шла работа на предыдущих этапах разработки (проект разработки и описание метода решения, общая блок-схема, алгоритмы, проект инструкции для пользователя и т. п). Поэтому для ускорения этапа оформления все перечисленные материалы всегда должны быть в рабочем состоянии и по содержанию вполне соответствовать друг другу и отлаживаемой программе.
2.3.9 Эксплуатация
По окончании отладки и оформления программы начинается ее эксплуатация. Первые полученные результаты реальных расчетов подвергаются тщательному анализу, чтобы убедиться в пригодности использованного метода и установить согласованность полученных результатов с имеющимися данными и теорией. Если правильность получаемых результатов не вызывает сомнений и эффективность программы удовлетворительна, то ее эксплуатация продолжается по мере необходимости.
2.3.10 Отчет о работе
На основании результатов, полученных в ходе эксплуатации программы, составляется отчет о проделанной работе, оценивается выбранный метод решения задачи и эффективность программы; публикуются научные выводы.
2.3.11 Модернизация
При постоянной работе в некоторой области науки или техники, обычно рано или поздно наступает такой момент, когда возникает вопрос о модернизации старой программы или о составлении новой, развивающей идеи, реализованные в прежней программе. Модернизация программы проходит те же этапы, что и разработка, и начинается с составления технического задания на модернизацию. Успешное осуществление модернизации зависит от того, насколько легко можно будет при разработке новой программы использовать блоки старой программы и вносить в них изменения. Быстрое выполнение такого рода работ зависит, в свою очередь, как от структуры модернизируемой программы, так и от качества ее оформления (наличие описания программы, подробных алгоритмов, пояснений к программе и т. п.).
Схема решения задачи. На рис.2.1. графически представлен процесс решения задачи на ЭВМ.
Рис.2.1. Этапы решения задачи на ЭВМ.
2.4 Необходимость отладки программного продукта
Оказывается, практически невозможно составить реальную программу без ошибок, и почти невозможно для достаточно сложной программы быстро найти и устранить все имеющиеся в ней ошибки.
Таким образом, можно сказать, что наличие ошибок в только что разработанной программе - это вполне нормальное и закономерное явление. А совсем ненормальным, из ряда вон выходящим фактом, является отсутствие ошибок в программе, которая не была еще подвергнута тщательной отладке. Конечно, речь здесь идет о реальных, достаточно сложных программах. Учитывая этот печальный закон, разумно уже при разработке программы на этапах алгоритмизации и программирования готовиться к обнаружению ошибок на стадии отладки принимать профилактические меры по их предупреждению. Например, уже на этапе 2.3.2., когда выбирается общий, метод решения задачи, следует разработать и основную стратегию отладки, общий план ее проведения. Необходимо уже на этой стадии разработки программы решить, каким путем можно будет в дальнейшем убедиться, что выбранный метод решения задачи обеспечивает правильные результаты для указанных в ТЗ диапазонов изменения величин и условий функционирования программы.
Разрабатывая алгоритм, следует, таким образом, учитывать, можно ли будет достаточно просто проконтролировать программу, составленную по выбранному алгоритму, и в случае, когда предвидятся большие затруднения, нужно отдать предпочтение другому, более выгодному для этапа отладки, алгоритму.
Стремление к максимально быстрому составлению программы с целью скорейшего начала (и окончания) ее отладки, приводит к тому что: отладка затягивается надолго, получение достоверных результатов откладывается на длительный срок. Такая задержка вызывается тем, что уже на поздних этапах отладки (а иногда - и эксплуатации) вскрываются все новые и новые ошибки, допущенные на этапах алгоритмизации и программирования, и приходится тратить много времени на их обнаружение и исправление. Отсюда можно сделать вывод, что кратность внутреннего цикла (этапы 2.3.6. и 2.3.7.) становится слишком большой, и при этом захватываются и этапы 2.3.3. и 2.3.4., а иногда и кратность внешнего цикла (от этапа 2.3.2 до 2.3.9.), оказывается отличной от единицы.
Напрашивается вывод, что для ускорения отладки нужно сократить кратности указанных циклов, выходя на машину с программой уже тщательно проверенной и подготовленной заранее к отладке.
Приведем некоторое руководство к действию, имеющее целью облегчить предстоящую отладку и сократить время ее проведения.
1) Разработка общего плана проведения отладки, общей методики проверки правильности составленной программы, а также системы необходимых для отладки контрольных примеров.
2) Проверка разработанных алгоритмов, выбор отладочных средств и определение контролируемых ими мест, участков, величин.
3) Проверка составленной программы, реализация намеченного ранее плана использования отладочных средств для получения на ЭВМ необходимых при локализации ошибок тестовых результатов; изготовление эталонных результатов для тестов.
4) Ввод, печать и сверка текста программы, перенесенной на внешние носители.
5) Получение с помощью транслятора вспомогательных таблиц (например, таблица перекрестных ссылок) и проверка их.
6) Тщательный контроль первых результатов, получаемых по новой программе.
Примерное распределение между этапами общего времени, необходимого для разработки достаточно сложных программ, выглядит следующим образом:
- Получение задания, составление проекта программы и общего плана отладки 10%
- Разработка алгоритма (15%) и детального плана отладки 20%
- Программирование (5%) и изготовление тестов 15%
- Препарация и первая трансляция 5%
- Отладка 40%
- Оформление программы 10%
Приведенные цифры отражают тот факт, что в процессе разработки программы работы по доказательству (демонстрации) правильности разрабатываемой программы равнозначны работам по ее изготовлению (проектированию, алгоритмизации и написанию), что можно выразить следующей формулой:
Разработка программы =Изготовление + Доказательство.
Вопрос минимизации времени, необходимого на отладку, имеет особое значение. К его решению можно подойти с двух сторон:
1) путем ускорения поиска и исправления ошибок, имеющихся в программе;
2) путем уменьшения количества ошибок, допускаемых при разработке алгоритма и составлении программы.
Рис.2.2 Схема алгоритма отладки программы.
2.5 Тестирование
Под тестированием следует понимать процесс исполнения программы с целью обнаружения ошибок, в качестве которых принимается любое отклонение от эталонов. Хорошим считается тест, который имеет высокую вероятность обнаружения еще не выявленных ошибок.
Под отладкой понимается процесс, позволяющий получить программу, функционирующую с требуемыми характеристиками в заданной области входных данных. Таким образом, в результате отладки программа должна соответствовать некоторой фиксированной совокупности правил и показателей качества, принимаемой за эталонную для данной программы.
Существует три основных способа тестирования:
1) Алгоритмическое;
2) Аналитическое;
3) Содержательное.
Алгоритмическое тестирование
Алгоритмическое тестирование применяется для контроля этапов алгоритмизации и программирования. Проектируются тесты и начинаются готовиться эталонные результаты на этапе алгоритмизации, а используются они на этапе отладки.
Функциональное или аналитическое тестирование
Аналитическое тестирование служит для контроля выбранного метода решения задачи, правильности его работы в выбранных режимах и с установленными диапазонами данных. Тесты проектируют и начинают готовить сразу после выбора метода, а используют их на последнем этапе отладки, в ходе тестирования, наряду со сверкой на совпадение, применяются и качественные оценки результатов.
Содержательное тестирование
Содержательное тестирование служит для проверки правильности постановки задачи. Для контроля при этом используются, как правило, качественные оценки и статистические характеристики программы, физический смысл полученных результатов и т.п. в проведении содержательного тестирования, принципы которого формулируются в техническом задании, самое активное участие должны принимать заказчики или идущие пользователи программы.
Содержательные и аналитические тесты проверяют правильность работы программы в целом или крупных ее частей, в то время как алгоритмические тесты в первую очередь должны проверять работу отдельных блоков или операторов программы.
На рис.2.3. графически представлена схема алгоритма тестирования программы:
Рис.2.3 Схема алгоритма тестирования программы
2.5.1 Типы тестов
Тот вид контроля, который рассматривался выше, можно назвать тестированием основных функциональных возможностей программы - основной тест.
Вырожденный тест
Этот тест затрагивает работу программы в самой минимальной степени. Обычно тест служит для проверки правильности выполнения самых внешних функций программы, например, обращения к ней и выхода из нее.
Тест граничных значений
Тест проверяет работу программы для граничных значений параметров, определяющих вычислительный процесс. Часто для граничных значений параметра работа программы носит особый характер, который, тем самым, требует и особого контроля.
Аварийный тест
Тест проверяет реакцию программы на возникновение разного рода аварийных ситуаций в программе, в частности, вызванных неправильными исходными данными. Другими словами, проверяется диагностика, выдаваемая программой, а также окончание ее работы или, может быть, попытка исправления неверных исходных данных.
2.6 Локализация ошибок
Способы локализации
После того, как с помощью тестов (или каким либо другим путем) установлено, что в программе или в конкретном ее блоке имеется ошибка, возникает задача ее локализации, то есть установления точного места в программе, где находится ошибка.
Процесс локализации ошибок состоит из следующих трех компонент:
1) Получение на машине тестовых результатов.
2) Анализ тестовых результатов и сверка их с эталонными.
3) Выявление ошибки или формулировка предположения о характере и месте ошибки в программе.
2.7 Технология отладки программного модуля учета тарифов
При отладке программы использовались следующие методы контроля и локализации ошибок:
1) Просмотр текста программы с целью обнаружения явных синтаксических и логических ошибок.
2) Трансляция программы (транслятор выдает сообщения об обнаруженных им ошибках в тексте программы).
3) Тестирование. Тестирование проводилось посредством ввода исходных данных, с дальнейшей их обработкой, выводом результатов на экран. Результаты работы программы сравнивались с требованиями в техническом задании.
4) Локализации ошибок.
Отладка программы производилась следующим образом:
1) Запуск программы с набором тестовых входных данных и выявление наличия ошибок.
2) Выделение области программы, в которой может находиться ошибка. Просмотр листинга программы с целью возможного визуального обнаружения ошибок. В противном случае - установка контрольной точки примерно в середине выделенной области.
3) Новая прогонка программы. Если работа программы прервалась до обработки контрольной точки, значит, ошибка произошла раньше. Контрольная точка переносится, и процесс отладки возвращается к шагу 2.
4) Если контрольная точка программы была обработана, то далее следует изучение значений регистров, переменных и параметров программы с тем, чтобы убедиться в их правильности. При появлении ошибки - новый перенос контрольной точки и возврат к шагу 2.
5) В случае, если ошибка не была обнаружена, далее выполнение программы производится покомандно, с контролем правильности выполнения переходов и содержимого регистров и памяти в контрольных точках. При локализации ошибки она исправляется, и процесс возвращается к шагу 1).
В данном разделе были рассмотрены вопросы разработки, отладки и тестирования программных продуктов. Было приведено обоснование необходимости и важности этапа отладки в процессе разработки программного обеспечения, даны краткие описания основных способов отладки и тестирования.
В отношении разработанной в специальной части программы было дано описание алгоритма, использовавшегося при ее отладки и тестировании. Представлено обоснование выбора языка программирования и СУБД.
3. Сегментация рынка
Главной целью предприятия является, как известно, получение прибыли. Успех маркетинга в современных условиях невозможен без постоянного и всестороннего исследования рынка. Сбор подобной информации требует значительных затрат времени и средств. Данное обстоятельство вынуждает предприятия концентрировать внимание на отдельных частях рынка, которые представляют собой однородные группы потребителей, обладающих общими характеристиками. Поиск таких однородных групп потребителей среди различных вариаций спроса называется сегментацией рынка, а данный участок рынка - сегментом рынка.
Рыночная сегментация описывает разделение рынка на однородные группы, к которым будет применены различные виды обращений, промоушена, рекламы и других переменных маркетингового микса. На каждую группу или сегмент может быть применено разное соотношение маркетинговых мероприятий, потому что сегменты выделяются таким образом, чтобы между членами сегмента различия были минимальны, а между сегментами - максимальны.
3.1 Схема сегментации рынка
Общая схема сегментации рынка представлена на рис.3.1.
Подобная схема сегментации рынка носит общий характер и может быть применена при планировании различных направлений маркетинговой деятельности.
Принципы сегментации.
Для проведения успешной сегментации рынка целесообразно применять апробированные практической деятельностью пять принципов:
1) различия между сегментами,
2) сходства потребителей,
3) большой величины сегмента,
4) измеримости характеристик потребителей,
5) достижимости потребителей.
Принцип различия между сегментами означает, что в результате проведения сегментации должны быть получены различающиеся друг от друга группы потребителей.
Принцип сходства потребителей в сегменте предусматривает однородность потенциальных покупателей с точки зрения покупательского отношения к конкретному товару.
Требование большой величины сегмента означает, что целевые сегменты должны быть достаточно большими для обеспечения продаж и покрытия издержек предприятия.
Измеримость характеристик потребителей необходима для целенаправленных полевых маркетинговых исследований, в результате которых можно выявлять потребности потенциальных покупателей, а также изучать реакцию целевого рынка на маркетинговые действия предприятия.
Принцип достижимости потребителей означает требование наличия каналов коммуникации фирмы-продавца с потенциальными потребителями.
Методы сегментации
Наиболее распространенными методами сегментирования рынка являются метод группировок по одному или нескольким признакам и методы многомерного статистического анализа. Отметим особенности этих методов:
Метод группировок состоит в последовательной разбивке совокупности объектов на группы по наиболее значимым признакам. Какой-либо признак выделяется в качестве системообразующего критерия (владелец товара, потребитель, намеревающийся приобрести товар), затем формируются подгруппы, в которых значимость этого критерия значительно выше, чем по всей совокупности потенциальных потребителей данного товара. Путем последовательных разбивок на две части выборка делится на ряд подгрупп.
Для целей сегментации также используются методы многомерной классификации, когда разделение происходит по комплексу анализируемых признаков одновременно. Наиболее эффективными из них являются методы автоматической классификации, или иначе кластерного анализа.
Виды и критерии сегментации.
Сегментация рынка требует детального знания требований потребителей к товару и характеристик самих потребителей. Сегментация бывает нескольких видов:
- макросегментация - деление рынков по регионам, странам, их степени индустриализации и т.д.;
- микросегментация - выделение группы потребителей по более детальным критериям;
- сегментация вглубь - маркетолог начинает сегментацию с широкой группы потребителей, а затем ее углубляет, сужает;
- предварительная сегментация - охват большого числа возможных рыночных сегментов, предназначенных для изучения в начале маркетинговых исследований;
- окончательная сегментация - определение наиболее оптимальных, насчитывающих ограниченное число сегментов рынка, по которым будет разрабатываться рыночная стратегия и программа. Завершающая стадия рыночных исследований.
Сегментация рынка может производиться с использованием различных критериев и признаков.
Критерий - это способ оценки обоснованности выбора того или иного сегмента рынка для фирмы, признак-способ выделения данного сегмента на рынке. Выделяют следующие критерии сегментации:
- региональные;
- демографические;
- критерии жизненного стиля потребителей.
Подробнее о каждой группе критериев.
Региональные критерии представляют собой основные отличительные характеристики городов, областей, регионов. Основные региональные критерии следующие: расположение региона, численность и плотность населения, транспортная сеть региона, климат, структура коммерческой деятельности в регионе, доступность средств массовой информации и т.д.
Демографические критерии представляют собой основные особенности отдельных людей или их групп. Персональные демографические характеристики могут быть следующими: возрастные категории, пол, уровень образования, мобильность, дифференциация доходов, профессии потребителей, семейное положение и размер семьи и др.
Жизненный стиль потребителей определяет, как люди живут и расходуют время и деньги. Критерии жизненного стиля потребителей, важные при сегментации рынка, могут быть следующим: социальные группы, степень использования товара, опыт использования товара, приверженность торговой марке, типы личности, отношение к фирме, мотивы совершения покупок, важность покупок и т.д.
Подобные документы
Анализ информационных потоков. Разработка структуры таблиц базы данных. Выбор CASE-средства для проектирования информационной системы и среды программирования. Разработка программных модулей (программного обеспечения). Подготовка справочных баз данных.
дипломная работа [6,8 M], добавлен 19.11.2013Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.
презентация [46,1 K], добавлен 25.04.2014Теоретические и практические основы Web-программирования. Проблемы и перспективы Интернет-магазинов. Типы данных, используемые в PHP. Работа с базой данных. Особенности встраивания РНР кода. Схема работы Интернет-магазина. Язык Web-программирования РНР.
курсовая работа [3,8 M], добавлен 27.12.2012Факторы, влияющие на пропускную способность в беспроводных сетях. Использование скриптового языка программирования PHP для разработки базы данных интернет-магазина, его основные преимущества. Современные методы и средства тестирования web-приложений.
дипломная работа [3,5 M], добавлен 10.07.2015Изучение и разработка алгоритмов сверления. Выбор языка и среды программирования. Исследование структуры системы компьютерного моделирования. Ввод данных о материале инструмента и детали, методе обработки. Визуальная проверка и корректировка данных.
отчет по практике [295,9 K], добавлен 22.05.2013Создание автоматизированной системы по сбору и анализу статистических данных сайта. Принципы сбора статистических данных. Исследование информационных потоков. Обзор современных СУБД и языков программирования. Логическая и физическая модель базы данных.
дипломная работа [3,0 M], добавлен 08.07.2012Анализ работы программы "Traffic Inspector", предназначенной для автоматизации учета интернет-трафика. Рассмотрение задач биллинговой системы: тарификации предоставляемых услуг; управления балансом пользователя; детализации личного счёта абонента.
курсовая работа [4,0 M], добавлен 03.07.2012Проектирование информационной системы. Анализ языков программирования и существующих решений для администрирования системы управления базами данных. Разработка модуля взаимодействия и структуры программы. Модули авторизации и соединения с базой данных.
дипломная работа [4,1 M], добавлен 19.07.2014Цель информационного программирования; алгоритмический язык как система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. Языки программирования низкого и высокого уровня; классификация и использование структуры данных.
реферат [383,1 K], добавлен 07.01.2012Этапы проектирования информационных систем. Корпоративные информационные системы, тенденции их развития. Требования к организации базы данных. Основные концепции реляционных баз данных. Выбор системы проектирования. Логическая структура приложения.
дипломная работа [2,2 M], добавлен 20.12.2012