Модели надежности программного обеспечения
Проектирование и разработка программы для определения надежности тестируемого программного обеспечения различными моделями с использование языка C# и Visual Studio 2013. Описание технологии и методов разработки приложения, характеристика его макета.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.09.2017 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФГБОУ
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ПРИКЛАДНОЙ ИНФОРМАТИКИ
КАФЕДРА СИСТЕМНОГО АНАЛИЗА И ОБРАБОТКИ ИНФОРМАЦИИ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине: Языки программирования
на тему: Модели надежности программного обеспечения
выполнил студент группы ИТ1301
Елисеенко Дмитрий Игоревич
Краснодар-2014
РЕФЕРАТ
Программа для расчета надежности программного обеспечения
Ключевые слова: НАДЕЖНОСТЬ, МОДЕЛИ, ЭФФЕКТИВНОСТЬ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ШУМАН, МИЛЛС, МОРАНДА, ЛИПОВ.
Цель работы: Проектирование и разработка программы для определения надежности тестируемого ПО различными моделями с использование языка C# и VisualStudio2013.
Объект исследования: модели надежности программного обеспечения
Предмет исследования: Программа на языке C#
ВВЕДЕНИЕ
Такой фактор как «надежность программного обеспечения» всегда играл, играет и будет играть ключевую роль в разработке любого программного продукта.
Что же такое «надежность ПО?» Ответ очень прост - это свойство системы выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующих заданным режимам и условиям исполнения.
Каждый разработчик стремится сделать свою программу максимально надежной, эффективной и безотказной. К сожалению, полностью исключить факт сбоя или ошибки в настоящий момент не представляется возможным, хотя каждый день в этом направлении ведется работа.
Но, представляется возможным рассчитать вероятность возникновения ошибок в программе вследствие тестирования ее на различных математических моделях надежности. Для того чтобы знать, на сколько надежна программа, ее необходимо протестировать и не раз.
В соответствии с поставленной целью были сформулированы следующие задачи:
1) Провести предметный анализ в области
2) Разработать необходимую программу
3) Выполнить программную реализацию
4) Провести тестирование приложения
5) Определить эффективность разработанной программы
6) Записать и проанализировать результаты
Объектом исследования является метод расчета стоимости разработки ПО.
Предметом исследования является программа на платформе VisualStudio на языке C#.
В международном стандарте ISO 9126:1991 [1] надежность выделена как одна из основных характеристик качества программного обеспечения ПО. Стандартный словарь терминов программного обеспечения как способность системы или компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени.
Сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература посвящена первому аспекту, а вопрос оценки надежности компьютерных программ недостаточно проработан. Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.
Модели надежности программных средств подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.
Аналитические модели представлены двумя группами: динамические и статические. В динамических моделях поведение ПО (появление отказов) рассматривается во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени. Может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПО может быть представлено только в дискретных точках.
ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Модель Шумана
Модель Шумана строится на основе нескольких критериев:
ѕ общее число команд в программе на машинном языке постоянно;
ѕ в начале компоновочных испытаний число ошибок равно некоторой постоянной величине, и по мере исправления ошибок их становится меньше. В ходе испытаний программы новые ошибки не вносятся;
ѕ ошибки изначально различимы, по суммарному числу исправленных ошибок можно судить об оставшихся;
ѕ интенсивность отказов программы пропорциональна числу остаточных ошибок.
Предполагается, что до начала тестирования (т.е. в момент =0) имеется M ошибок. В течение времени тестирования ф обнаруживается е1() ошибок в расчете на одну команду в машинном языке.
Тогда удельное число ошибок на одну машинную команду, оставшихся в системе после времени тестирования ф, равно:
(1)
где I -- общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.
Предполагается, что значение функции количества ошибок Z(t) пропорционально числу ошибок, оставшихся в программе после израсходованного на тестирование времени ф.
Z (t) = C * е2 (ф),
где С -- некоторая постоянная, t - время работы программы без отказов.
Тогда, если время работы программы без отказа t отсчитывается от точки t = 0, а ф остается фиксированным, функция надежности, или вероятность безотказной работы на интервале от 0 до t, равна
(2)
(3)
Нам необходимо найти начальное значение ошибок M и коэффициент пропорциональности С. Эти неизвестные оцениваются путем пропуска функционального теста в двух точках переменной оси отладки a и в, выбранных так, что е1(a)<е1(d).
В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования ф складывается из времени каждого прогона:
ф = ф1 + ф2 + ф3 + … + фn.
Предполагая, что интенсивность появления ошибок постоянна и равна л, можно вычислить ее как число ошибок в единицу времени,
(4)
где Ai - количество ошибок на i - ом прогоне
Тогда.(5)
Имея данные для двух различных моментов тестирования a и в, можно сопоставить уравнения (3) при фa и фb:
(6)
(7)
Из соотношений (6) и (7) найдем неизвестный параметр С и М:
(8)
(9)
Получив неизвестные M* и C*, можно рассчитать надежность программы по формуле (2).
Пример 1.
Программа содержит 2 000 командных строк, из них, до начала эксплуатации (после периода отладки), 15 командных строк содержат ошибки. После 20 дней работы обнаружена 1 ошибка. Найти среднее время безошибочной работы программы и интенсивность отказов программы при коэффициенте пропорциональности, равном 0,7.
I= |
2000 |
|
M= |
15 |
|
t= |
20 |
|
x= |
1 |
|
C= |
0,7 |
|
E1(t)= |
0,0005 |
|||
E2(t)= |
0,007 |
|||
P(t)= |
0,906649 |
|||
tср= |
204,0816 |
|||
л= |
0,0049 |
-- интенсивность отказов |
Пример 2.
На условиях примера 1 определить вероятность безошибочной работы программы в течение 90 суток.
I= |
2000 |
|
M= |
15 |
|
t= |
90 |
|
x= |
1 |
|
C= |
0,7 |
|
P(t)= 0,643393 |
Пример 3.
Определить первоначальное количество возможных ошибок в программе, содержащей 2 000 командных строк, если в течение первых 60 суток эксплуатации было обнаружено 2 ошибки, а за последующие 40 суток была обнаружена одна ошибка. Определить T0 - среднее время безошибочной работы, соответствующее первому и второму периоду эксплуатации программы и коэффициент пропорциональности.
I= |
2000 |
||||
t1= |
60 суток |
||||
t2= |
100 суток |
||||
x1= |
2 ошибок |
||||
x2= |
3 ошибок |
||||
T0= |
30,333333 |
||||
л1= 0,033333 |
|||||
л2= |
0,03 |
||||
C= |
6,666667 |
||||
E1(t1)= |
0,001 |
||||
E2(t2)= |
0,0015 |
||||
M= |
12 |
||||
Л2/Л1= |
0,9 |
||||
1.2 Модель Миллса
Использование этой модели предполагает необходимость перед началом тестирования искусственно «засорять» программу, т.е вносить в нее некоторое количество известных ошибок. Ошибки вносятся случайным образом и фиксируются в протоколе искусственных ошибок. Специалист, проводящий тестирование, не знает ни количества, ни характера внесенных ошибок до момента оценки показателей надежности по модели Миллса. Предполагается, что все ошибки (как естественные, так и искусственно внесенные) имеют равную вероятность быть найденными в процессе тестирования.
Тестируя программу в течение некоторого времени, собирают статистику об ошибках. В момент оценки надежности по протоколу искусственных ошибок все ошибки делятся на собственные и искусственные. Соотношение, называемое формулой Миллса,
N =
Дает возможность оценить первоначальное число ошибок в программе N. Здесь S - количество искусственно внесенных ошибок; n - число найденных собственных ошибок; V - число обнаруженных к моменту оценки искусственных ошибок.
1.3 Модель Джелинского-Моранды
Основное положение, на котором базируется модель, заключается в том, что в процессе тестирования ПО значение интервалов времени тестирования между обнаружением двух ошибок имеет экспоненциальное распределение с интенсивностью отказов, пропорциональной числу еще не выявленных ошибок. Каждая обнаруженная ошибка устраняется, число оставшихся ошибок уменьшается на единицу.
Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления (i - 1)-й ошибки, имеет вид
)
Где - интенсивность отказов, которая пропорциональна числу еще не выявленных ошибок в программе:
Где N - число ошибок, первоначально присутствующих в программе; С - коэффициент пропорциональности.
Наиболее вероятные значения величин N и С определяются на основе данных, полученных при тестировании. Для этого фиксируют время выполнения программы до очередного отказа t1,t2,t3,…,tk. Значения N и С можно получить, решив систему уравнений
Где Q = ; A = ; B = .
Чтобы получить числовые значения л, нужно подставить вместо N и С их возможные значения N и C . Рассчитав К значений по формуле (5) и подставив их в выражение (4), можно определить вероятность безотказной работы на различных временных интервалах.
1.4 Модель Липова
Липов модифицировал модель Миллса, рассмотрев вероятность обнаружения ошибки при использовании различного числа тестов. Если сделать то же предположение, что и в модели Миллса, т.е что собственные и искусственные ошибки имеют равную вероятность быть найденными, то вероятность обнаружения n собственных и V внесенных ошибок
Где m - количество используемых тестов, q - вероятность обнаружения ошибки в каждом из m тестов, рассчитанная по формуле ; S - общее количество искусственно внесенных ошибок; N - количество собственных ошибок, имеющихся в ПО до начала тестирования.
1.3 Постановка задачи
Название приложение: Программа расчета надежности программного обеспечения
Назначение разработки: Исходя из введенных пользователем данных рассчитать основные показатели надежности программного продукта.
Входные данные вводятся в специальные поля. После обработки данных, программа выводить результаты в соответствующих полях вывода.
Для корректной работы программы все поля должны быть заполнены. По умолчанию в некоторых моделях установлены постоянные значения коэффициентов пропорциональности.
Для реализации данной программы мы используем язык программирования C#, на платформе Visual Studio.
Системные требования к ПК:
1) Операционная система Windows 7 или выше.
2) Свободное место на жестком диске: 5МБ и более.
3) Наличие Net Framework 4.0 или выше.
4) Оперативная память: 128МБ и выше.
5) Клавиатура и мышь.
2.ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
2.1 Алгоритм решения
В самом начале выполнения программы появляется форма, где пользователю предлагается заполнить соответствующие поля необходимыми для расчета данными.
В начале выполнения программы производится проверка полноты и корректности введенных данных. Если пользовательские данные не прошли проверку - выводится соответствующее уведомление.
После успешно пройденной проверки на корректность и полноту, программа начинает производить вычисления. Программа считывает данные, заполненные в специальных полях и производит расчет по формулам.
После этого результаты выводятся в специально отведенные окна, а выполнение программы прекращается.
2.2 Макет приложения
2.2.1 Form
Макет приложения. Модель Шумана (tabPage1)
menuStrip1 - выводит список меню содержащий пункты «Сохранить результаты» и «Выход»
tabPage1 - вкладка элемента tabControl1, содержащая в себе элементы: label49-54, label63-67, label 61, label59, label48, label62, label58, textBox14-19, groupBox4
label52-принимает текстовое значение «Командных строк в программе»
label51-принимает текстовое значение «Строк содержащих ошибку»
label50-принимает текстовое значение «Дней работы»
label49-принимает текстовое значение «Ошибок за время работы»
label58-принимает текстовое значение «Исходные данные»
label54-принимает текстовое значение «Конечный результат»
label61-принимает сокращенное значение «КСП»
label60-принимает сокращенное значение «ССО»
label59-принимает сокращенное значение «ДР»
label48-принимает сокращенное значение «ОВР»
label62-принимает сокращенное значение «КП»
textBox17-получает значение введенных пользовательских данных в графу «Командных строк в программе»
textBox15- получает значение введенных пользовательских данных в графу «Строк содержащих ошибок»
textBox16- получает значение введенных пользовательских данных в графу «Дней работы»
textBox14- получает значение введенных пользовательских данных в графу «Ошибок за время работы»
textBox18- получает значение введенных пользовательских данных в графу «Коэффициент пропорциональности», по умолчанию установлено значение «1».
textBox19-служит для вывода результатов вычислений, произведенных по формуле Шумана.
button5 - принимает текстовое значение «Очистить», а также отчищает все поля в данном блоке
обеспечение программный visual studio
2.2.2 Form
Макет приложения. Модель Джелинского-Моранды(tabPage3)
tabPage3-содержит все группы объектов, таких как label41-42, label45-46, label73-69, label19-14, textBox4, button3, textBox13-10, groupBox3.
label41- принимает текстовое значение «Число ошибок, первоначально находящихся в программе.
label42- принимает текстовое значение «Коэффициент пропорциональности»
label45- принимает текстовое значение «Количество ошибок спустя время»
label46- принимает текстовое значение «время обнаружения i ошибки»
label73- принимает текстовое значение «Результат»
label69- принимает текстовое значение «Исходные данные»
label72- принимает сокращенное значение «ЧОПНВП»
label71- принимает сокращенное значение «КП»
label70- принимает сокращенное значение «КОСВ»
label15- принимает сокращенное значение «ВОО»
label14-принимает текстовое значение «Конечный результат»
Элементы label19-label16 принимают одинаковые начальные текстовые значения «null»
textBox10- получает значение введенных пользовательских данных в графу «Число ошибок, первоначально находящихся в программе»
textBox12- получает значение введенных пользовательских данных в графу «Коэффициент пропорциональности»
textBox11- получает значение введенных пользовательских данных в графу «Количество ошибок спустя время»
textBox13- получает значение введенных пользовательских данных в графу «Время обнаружения ошибки»
textBox4- служит для вывода результатов вычислений, произведенных по формуле Джелинского-Моранды.
button3-- принимает текстовое значение «Очистить», а также отчищает все поля в данном блоке
2.2.3
Макет приложения. Модель Миллса(tabPage5)
tabPage5-содержит группы объектов, label9-1, textBox3-1, groupBox1, button1, label13, label44.
label2-принимает текстовое значение «Количество искусственно внесенных ошибок»
label3- принимает текстовое значение «Число собственных найденных ошибок»
label4- принимает текстовое значение «Число обнаруженных к моменту оценки искусственных ошибок»
label5- принимает текстовое значение «Результат»
label9- принимает текстовое значение «Исходные данные»
label13- принимает текстовое значение «Конечный результат»
label6- принимает сокращенное значение «КИВО»
label7- принимает сокращенное значение «ЧОНО»
label8- принимает сокращенное значение «ЧОКМОИО»
label10-первоначально получает пустое значение, а после получает значения графы «Количество искусственно внесенных ошибок»
label11-первоначально получает пустое значение, а после получает значения графы «Число собственных найденных ошибок»
label12- первоначально получает пустое значение, а после получает значения графы «Число обнаруженных к моменту оценки искусственных ошибок»
label44-получает и выводит результат вычислений по формуле Миллса
button1- принимает текстовое значение «Очистить», а также отчищает все поля в данном блоке.
textBox1--получает значение введенных пользовательских данных в графу «Количество искусственно внесенных ошибок»
textBox2--получает значение введенных пользовательских данных в графу «Число собственных найденных ошибок»
textBox3--получает значение введенных пользовательских данных в графу «Число обнаруженных к моменту оценки искусственных ошибок»
2.2.4 Form
Макет приложения. Модель Липова(tabPage4)
2.2.4 Form
tabPage4-содержит группы объектов, label78-74, label84-97, label82, groupBox5, button4.
label74-принимает текстовое значение «Количество используемых тестов»
label76-принимает текстовое значение «Общее количество искусственно внесенных ошибок
label77-принимает текстовое значение «Количество собственных ошибок, до начала тестирования
label78- принимает текстовое значение «Количество внесенных ошибок к концу тестирования
label75-принимает текстовое значение «Количество собственных ошибок к концу тестирования»
label86-принимает текстовое значение «Результат»
label82- принимает текстовое значение «Исходные данные»
label90- принимает текстовое значение «Конечный результат»
label91-принимает текстовое значение «Вероятность обнаружения ошибки при использовании различного числа m тестов»
label92-получает и выводит результат вычислений по формуле Липова, начальное значение «null»
label85- принимает сокращенное значение «КИТ»
label84- принимает сокращенное значение «ОКИВО»
label87- принимает сокращенное значение «КСОДНТ»
label88- принимает сокращенное значение «КВОКТ»
label89- принимает сокращенное значение «КСОКТ»
textBox20--получает значение введенных пользовательских данных в графу «Количество используемых тестов»
textBox22--получает значение введенных пользовательских данных в графу «Общее количество искусственных внесенных ошибок»
textBox23--получает значение введенных пользовательских данных в графу «Количество собственных ошибок до начала тестирования»
textBox24--получает значение введенных пользовательских данных в графу «Количество внесенных ошибок к концу тестирования»
textBox21--получает значение введенных пользовательских данных в графу «Количество собственных ошибок к концу тестирования»
button4-принимает текстовое значение «Очистить», а также отчищает все поля в данном блоке.
2.3 Описание программы
2.3.1 tabPage1
Иерархия классов
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
Используемые элементы:
Button;
textBox;
label;
statusStrip;
menuStrip;
groupBox;
Обработчики событий
private void button5_Click(object sender, EventArgs e)
Функции
В данной вкладке одна функция
Функция Suman производит расчет по формуле Шумана и передает результат в соответствующий объект вывода, как изображено на рисунке 1.1
public void Lipov(EventArgs e_Lipov)
{
try
{
if (textBox20.Text == "")
{
MessageBox.Show("Введите количество используемых тестов!", "Модель Липова");
}
if (textBox22.Text == "")
{
MessageBox.Show("Введите общее количество искусственно внесенных ошибок!", "Модель Липова");
}
if (textBox23.Text == "")
{
MessageBox.Show("Введите количество собственных ошибок до начала тестирования!", "Модель Липова");
}
if (textBox21.Text == "")
{
MessageBox.Show("Введите количество собственных ошибок к концу тестирования!", "Модель Липова");
}
if (textBox24.Text == "")
{
MessageBox.Show("Введите количество внесенных ошибок к концу тестирования!", "Модель Липова");
}
// Проверка на введенные значения
int t20;
if (!int.TryParse(textBox20.Text, out t20))
MessageBox.Show("Введите числовое значение!");
int t21;
if (!int.TryParse(textBox21.Text, out t21))
MessageBox.Show("Введите числовое значение!");
int t22;
if (!int.TryParse(textBox22.Text, out t22))
MessageBox.Show("Введите числовое значение!");
int t24;
if (!int.TryParse(textBox24.Text, out t24))
MessageBox.Show("Введите числовое значение!");
int t23;
if (!int.TryParse(textBox23.Text, out t23))
MessageBox.Show("Введите числовое значение!");
}
catch (Exception ex)
{
MessageBox.Show("Ошибка:" + ex.Message);
}
double m, q, S, N, n, V;
m = Double.Parse(textBox20.Text);
S = Double.Parse(textBox22.Text);
N = Double.Parse(textBox23.Text);
n = Double.Parse(textBox21.Text);
V = Double.Parse(textBox24.Text);
q = (n + V) / n;
double Q = (m / (n + V)) * Math.Pow(n + V, q) * Math.Pow(m - n - V, 1 - q) * ((N / n) * (S / V) / ((N + S) / (n + V)));
label92.Text = Q.ToString();
label93.Text = m.ToString();
label94.Text = S.ToString();
label95.Text = N.ToString();
label96.Text = V.ToString();
label97.Text = n.ToString();
if (Q < 0)
{
MessageBox.Show("Введены значения, при которых результат отрицателен!", "Модель Липова");
}
}
Результат работы вы можете видеть на рисунке 1.2
Рисунок 1.2 Расчет по модели Шумана
2.3.2 tabPage3
Иерархия классов
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
Используемые элементы:
Button;
textBox;
label;
statusStrip;
menuStrip;
groupBox;
Обработчики событий
private void button3_Click(object sender, EventArgs e)
Функции
В данной вкладке тоже одна функция
Функция Moranda производит расчет по формуле Джелинского-Моранды и выводит результат
public void Moranda(EventArgs e_Moranda)
{
try // Проверка вводимых значений на число и пустоту
{
if (textBox11.Text == "")
{
MessageBox.Show("Введите количество ошибок спустя время!", "Модель Джелинского-Моранды");
}
if (textBox13.Text == "")
{
MessageBox.Show("Введите время обнаружения i-ошибки!", "Модель Джелинского-Моранды");
}
if (textBox12.Text == "")
{
MessageBox.Show("Введите коэффициент пропорциональности!", "Модель Джелинского-Моранды");
}
if (textBox10.Text == "")
{
MessageBox.Show("Введите число ошибок первоначально находящихся в программе!", "Модель Джелинского-Моранды");
}
int t10;
if (!int.TryParse(textBox10.Text, out t10))
MessageBox.Show("Введите числовое значение!");
int t12;
if (!int.TryParse(textBox12.Text, out t12))
MessageBox.Show("Введите числовое значение!");
int t13;
if (!int.TryParse(textBox13.Text, out t13))
MessageBox.Show("Введите числовое значение!");
int t11;
if (!int.TryParse(textBox11.Text, out t11))
MessageBox.Show("Введите числовое значение!");
}
catch (Exception ex)
{
MessageBox.Show("Ошибка:" + ex.Message);
}
double lambda, C, N, i, P,t;
N = Double.Parse(textBox10.Text);
C = Double.Parse(textBox12.Text);
i = Double.Parse(textBox11.Text);
t = Double.Parse(textBox13.Text);
lambda = C * (N - i + 1);
P = lambda * Math.Exp(lambda * (-1) * t);
textBox4.Text = " Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления:" + P.ToString();
label16.Text = N.ToString();
label19.Text = C.ToString();
label18.Text = i.ToString();
label17.Text = t.ToString();
}
Результат работы виден на рисунке 1.3
Рисунок 1.3 Результат выполнения расчетов по модели Джелинского-Моранды
2.3.3 tabPage5
Иерархия классов
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
Используемые элементы:
Button;
textBox;
label;
statusStrip;
menuStrip;
groupBox;
Обработчики событий
private void button1_Click(object sender, EventArgs e)
Функции
В данной вкладке одна функция
Функция Mills производит расчет по формуле Миллса и выводит результат
public void Mills(EventArgs e_Mills)
{
try
{
if (textBox1.Text == "")
{
MessageBox.Show("Введите количество искусственно внесенных ошибок!", "Модель Миллса");
}
if (textBox2.Text == "")
{
MessageBox.Show("Введите число собственных найденных ошибок!", "Модель Миллса");
}
if (textBox13.Text == "")
{
MessageBox.Show("Введите число обнаруженных к моменту оценки искусственных ошибок!", "Модель Миллса");
}
int t1;
if (!int.TryParse(textBox1.Text, out t1))
MessageBox.Show("Введите числовое значение!");
int t2;
if (!int.TryParse(textBox2.Text, out t2))
MessageBox.Show("Введите числовое значение!");
int t3;
if (!int.TryParse(textBox3.Text, out t3))
MessageBox.Show("Введите числовое значение!");
}
catch (Exception ex)
{
MessageBox.Show("Ошибка:" + ex.Message);
}
double S, n, V, N;
S = Double.Parse(textBox1.Text);
n = Double.Parse(textBox2.Text);
V = Double.Parse(textBox3.Text);
N = (S * n) / V;
label44.Text = "Первоначальное число ошибок в программе равно:" + N.ToString();
label10.Text = S.ToString();
label11.Text = n.ToString();
label12.Text = V.ToString();
}
Результат выполнения вычислений по формуле Миллса хорошо видны на рисунке 1.4
2.3.4 tabPage4
Иерархия классов
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
Используемые элементы:
Button;
textBox;
label;
statusStrip;
menuStrip;
groupBox;
Обработчики событий
private void button4_Click(object sender, EventArgs e)
Функции
В данной вкладке одна функция
Функция Lipov производит вычисления по формуле Липова и выводит результат
public void Lipov(EventArgs e_Lipov)
{
try
{
if (textBox20.Text == "")
{
MessageBox.Show("Введите количество используемых тестов!", "Модель Липова");
}
if (textBox22.Text == "")
{
MessageBox.Show("Введите общее количество искусственно внесенных ошибок!", "Модель Липова");
}
if (textBox23.Text == "")
{
MessageBox.Show("Введите количество собственных ошибок до начала тестирования!", "Модель Липова");
}
if (textBox21.Text == "")
{
MessageBox.Show("Введите количество собственных ошибок к концу тестирования!", "Модель Липова");
}
if (textBox24.Text == "")
{
MessageBox.Show("Введите количество внесенных ошибок к концу тестирования!", "Модель Липова");
}
// Проверка на введенные значения
int t20;
if (!int.TryParse(textBox20.Text, out t20))
MessageBox.Show("Введите числовое значение!");
int t21;
if (!int.TryParse(textBox21.Text, out t21))
MessageBox.Show("Введите числовое значение!");
int t22;
if (!int.TryParse(textBox22.Text, out t22))
MessageBox.Show("Введите числовое значение!");
int t24;
if (!int.TryParse(textBox24.Text, out t24))
MessageBox.Show("Введите числовое значение!");
int t23;
if (!int.TryParse(textBox23.Text, out t23))
MessageBox.Show("Введите числовое значение!");
}
catch (Exception ex)
{
MessageBox.Show("Ошибка:" + ex.Message);
}
double m, q, S, N, n, V;
m = Double.Parse(textBox20.Text);
S = Double.Parse(textBox22.Text);
N = Double.Parse(textBox23.Text);
n = Double.Parse(textBox21.Text);
V = Double.Parse(textBox24.Text);
q = (n + V) / n;
double Q = (m / (n + V)) * Math.Pow(n + V, q) * Math.Pow(m - n - V, 1 - q) * ((N / n) * (S / V) / ((N + S) / (n + V)));
label92.Text = Q.ToString();
label93.Text = m.ToString();
label94.Text = S.ToString();
label95.Text = N.ToString();
label96.Text = V.ToString();
label97.Text = n.ToString();
if (Q < 0)
{
MessageBox.Show("Введены значения, при которых результат отрицателен!", "Модель Липова");
}
}
2.3.5 Сохранение результатов
Для сохранения результатов изпользуется обработчик событий ToolStripMenu.
После произведения вычислений по предложенным выше моделям, пользователь может сохранить свои результаты.
На рисунке 1.5 показано как сохранить результаты вычислений.
Далее нам нужно выбрать куда сохранить результаты:
Рисунок 1.6 Выбор пути для сохранения
А после подтверждения сохранения, уведомление об успешной операции:
Рисунок 1.7 Уведомление об успешном сохранении
3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
1. Для корректной работы программы необходимо заполнить все предложенные в программе модели.
2. Некоторые из параметров статичны и их изменение может привести к некорректной работе программы.
3. Для того чтобы сохранить полученные вами результаты, нажмите на меню «Работа», а затем «Сохранить результаты». В открывшемся окне укажите путь для сохранения и имя файла.
4. При сохранении программа автоматически присваивает имя файлу в формате «Результаты №» + рандомное число от 0 до 9999. Вы также можете задать свое имя сохранения.
5. При вводе некорректных параметров для расчета вы можете получить отрицательные результаты.
6. Для расчета и получения результатов нажмите кнопку «Рассчитать».
ЗАКЛЮЧЕНИЕ
Язык программирования C# на основе Visual Studio способен реализовать все необходимые средства для расчета надежности программ.
Во время выполнения поставленной задачи были улучшены навыки программирования, работы с математическими формулами. Разработанная программа наглядно демонстрирует реализацию 4 моделей для определения надежности программного обеспечения. Основное преимущество программа - производство вычислений по 4 моделям одновременно.
Был проведен анализ предметной области, выявлены требования к разрабатываемой программе, было спроектировано и реализовано приложение, определена эффективность разработки.
Программа корректна и многозадачна.
Размещено на Allbest.ru
...Подобные документы
Особенности аналитической и эмпирической моделей надежности программных средств. Проектирование алгоритма тестирования и разработка программы для определения надежности ПО моделями Шумана, Миллса, Липова, с использованием языка C# и VisualStudio 2013.
курсовая работа [811,5 K], добавлен 29.06.2014Описание среды разработки Microsoft Visual Studio. Поддерживаемые технологии и языки программирования. Возможности и особенности компьютеризированного тестирования человека. Проектирование программного обеспечения с использованием объектного подхода.
курсовая работа [3,0 M], добавлен 09.02.2013Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Действия, которые выполняются при проектировании АИС. Кластерные технологии, их виды. Методы расчета надежности на разных этапах проектирования информационных систем. Расчет надежности с резервированием. Испытания программного обеспечения на надежность.
курсовая работа [913,7 K], добавлен 02.07.2013Постановка проблемы надежности программного обеспечения и причины ее возникновения. Характеристики надежности аппаратуры. Компьютерная программа как объект исследования, ее надежность и правильность. Модель последовательности испытаний Бернулли.
реферат [24,8 K], добавлен 21.12.2010Обзор существующего программного обеспечения. Структура и отличительные особенности формата MP3. Сокеты TCP/IP, клиент-сервер. Язык программирования Visual Basic.net в среде разработки Visual Studio 2008. Разработка приложения "MP3_Catalogizator".
дипломная работа [2,1 M], добавлен 09.02.2015Запросы клиента по области возможных запросов к серверу. Программа для прогнозирования поведения надежности программного обеспечения на основе метода Монте-Карло. Влияние количества программ-клиентов на поведение программной системы клиент-сервера.
контрольная работа [705,3 K], добавлен 03.12.2010Разработка программы создания заметок в любом месте компьютера. Выбор технологии, языка и среды разработки приложения. Описание основных алгоритмов работы программного обеспечения. Проектирование пользовательского интерфейса. Выбор стратегии тестирования.
отчет по практике [700,5 K], добавлен 24.11.2014Проектирование программного обеспечения Web-приложений информационных систем сайта, которое будет обеспечивать продажу декоративных постеров, а также обеспечивать распространение рекламы и информации о деятельности компании TOO "ILLUSTRATE studio".
дипломная работа [1,6 M], добавлен 14.07.2014Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.
презентация [379,5 K], добавлен 30.04.2014Модель надежности программного средства как математическая модель для оценки зависимости надежности программного обеспечения от некоторых определенных параметров, анализ видов. Общая характеристика простой интуитивной модели, анализ сфер использования.
презентация [151,1 K], добавлен 22.03.2014Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Понятие технологии разработки программного обеспечения и модели жизненного цикла. Сущность объектно-ориентированного подхода. Строительные блоки, общие механизмы языка моделирования UML, диаграммы классов, состояний, взаимодействий и компонентов.
курсовая работа [262,5 K], добавлен 10.07.2014Понятие технологии разработки программы. Основа проектирования программного обеспечения. Модели жизненного цикла, возникшие исторически в ходе развития теории проектирования программного обеспечения. Спиральная (spiral), каскадная и итерационная модели.
презентация [1,0 M], добавлен 11.05.2015Надежность как характеристика качества программного обеспечения (ПО). Методика расчета характеристик надежности ПО (таких как, время наработки до отказа, коэффициент готовности, вероятность отказа), особенности прогнозирования их изменений во времени.
дипломная работа [1,2 M], добавлен 01.06.2010Разработка программного обеспечения, предназначенного для предоставления трех способов прохождения тестов для студентов. Построение модели потоков данных, физической базы данных. Выбор языка программирования. Условия эксплуатации, требования к надежности.
дипломная работа [2,7 M], добавлен 18.04.2014Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.
дипломная работа [5,6 M], добавлен 29.06.2011Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016