
Болтушкин Л.С., 712-2, задание 3
.docxБолтушкин Леонид Станиславович, группа 712-2
Качество программы
а) Рабочая программа
Программа запрашивает у пользователя ввод имени и количество долгов, от разного ввода количества долгов будет различный исход и вывод сообщения. Так же проверяет правильность ввода данных путём обработки исключений. В случае неправильного ввода, программа выдаёт ошибку.
using System;
public class IntNameException : Exception
{
public IntNameException() : base("Имя не может содержать цифры!") { }
}
public class Program
{
public static void Main(string[] args)
{
string name = string.Empty;
while (string.IsNullOrEmpty(name))
{
Console.WriteLine("Введите ваше имя: ");
name = Console.ReadLine();
if (string.IsNullOrEmpty(name))
{
Console.WriteLine("Имя не может быть пустым, попробуй ещё раз!");
}
if (System.Text.RegularExpressions.Regex.IsMatch(name, @"\d"))
{
throw new IntNameException();
}
}
Console.WriteLine("Привет, " + name + ", теперь введи количество своих долгов!");
int debts = Convert.ToInt32(Console.ReadLine());
if (debts < 0)
{
throw new Exception("Количество долгов не может быть отрицательным!");
}
if (debts == 0)
{
Console.WriteLine("Молодец!");
}
else if (debts == 1)
{
Console.WriteLine("Осталось чуть-чуть и ты будешь без долгов!");
}
else if (debts >= 1 && debts <= 3)
{
Console.WriteLine("Нужно поднажать!");
}
else if (debts >= 4 && debts <= 7)
{
Console.WriteLine("Возьмись за учебу, отчисление не за горами!");
}
else if (debts >= 8 && debts <= 100)
{
Console.WriteLine("Дай Бог останешься живым!");
}
Console.WriteLine("Programm close");
}
}
б) Модель внешних и внутренних характеристик качества программы:
Функциональная пригодность:
Пригодность для применения: Программа позволяет пользователю вводить своё имя и количество долгов, предоставляя корректные ответы в зависимости от введённых данных.
Корректность: Программа точно проверяет ввод имени на наличие цифр, выбрасывая исключение, если имя содержит цифры.
Взаимодействие: Программа корректно взаимодействует с системной консолью для получения ввода от пользователя и вывода информации.
Защищенность: Программа не защищена от некорректных данных (например, при вводе нечислового значения для долгов).
Надежность:
Завершённость: Программа может завершиться с ошибкой при вводе неправильных данных (например, строка вместо числа).
Устойчивость к дефектам: Программа реагирует на ввод чисел в строку имени, но не предусматривает обработку всех потенциальных ошибок.
Восстанавливаемость: Не предусмотрены механизмы восстановления после ошибок ввода, программа завершает выполнение.
Эффективность:
Временная эффективность: Время обработки ввода минимально, поскольку программа проста и использует стандартные операции.
Используемость ресурсов: Программа использует минимальные системные ресурсы для выполнения.
Практичность:
Понятность: Программа понятна и проста для пользователей, так как дает ясные указания и выводы.
Изучаемость: Программа легко изучается (используется) за счет простоты интерфейса.
Программа не имеет графического интерфейса, но её консольный интерфейс действительно прост в использовании. Это подтверждается следующими фактами:
Минимальные требования к вводу: Пользователю предлагается всего два действия — ввести имя и количество долгов. Команды чётко описаны, и указания просты.
Понятные сообщения: Программа выводит информативные сообщения, которые помогают пользователю понять, что требуется. Например, при пустом имени программа сообщает: "Имя не может быть пустым, попробуй ещё раз!"
Таким образом, простота изучения обеспечивается отсутствием сложных форм взаимодействия и минимальным количеством шагов для пользователя.
Привлекательность: Программа не имеет пользовательского интерфейса с визуальными элементами, но функционально удобна.
Сопровождаемость:
Анализируемость: Код программы хорошо структурирован, что упрощает диагностику.
Изменяемость: Программу можно легко модифицировать, добавив, например, дополнительные проверки данных или улучшив обработку ошибок.
Стабильность: Программа устойчива к простым изменениям.
Тестируемость: Программу легко тестировать на ввод различных данных.
Переносимость:
Адаптируемость: Программа может быть запущена на любой платформе, поддерживающей .NET (например, Windows, Linux).
Простота установки: Программа не требует сложной установки.
Сосуществование: Программа может сосуществовать с другими системами, так как не использует системные ресурсы, кроме стандартных.
Замещаемость: Программа может быть заменена другой, при этом обеспечивая ту же функциональность.
Метрики качества:
Надежность: Среднее время работы до отказа можно оценить при тестировании на различных данных.
Эффективность: Среднее время выполнения задач составляет несколько секунд.
Практичность: Время ввода данных минимально, документирование программы повышает её понятность.
Перечень функций программы, видимых для пользователя:
Ввод имени:
Описание: Программа предлагает пользователю ввести своё имя с помощью сообщения "Введите ваше имя". Если имя не введено (пустая строка), программа просит ввести его снова. Если имя содержит цифры, выбрасывается исключение с сообщением "Имя не может содержать цифры!".
Пользовательский эффект: Пользователь видит запрос и вводит своё имя, после чего программа проверяет его корректность.
Вывод приветствия:
Описание: Программа выводит приветствие с именем пользователя после успешного ввода: "Привет, [имя], теперь введи количество своих долгов!".
Пользовательский эффект: Пользователь получает подтверждение успешного ввода имени.
Ввод количества долгов:
Описание: Программа запрашивает у пользователя ввод количества долгов с помощью сообщения: "Теперь введи количество своих долгов!". Если введено отрицательное число, программа выбрасывает исключение "Количество долгов не может быть отрицательным!".
Пользовательский эффект: Пользователь вводит число, программа проверяет его корректность.
Вывод сообщения в зависимости от количества долгов:
Описание: После ввода долгов программа выводит одно из сообщений в зависимости от введённого числа:
"Молодец!" — если долгов 0.
"Осталось чуть-чуть и ты будешь без долгов!" — если долг один.
"Нужно поднажать!" — если долгов от 1 до 3.
"Возьмись за учебу, отчисление не за горами!" — если долгов от 4 до 7.
"Дай Бог останешься живым!" — если долгов от 8 до 100.
Пользовательский эффект: Пользователь получает персонализированное сообщение в зависимости от введённого значения.
Завершение программы:
Описание: После выполнения всех операций программа выводит сообщение "Programm close", что сигнализирует об окончании работы.
Пользовательский эффект: Пользователь видит, что программа завершила работу.
Все эти функции формируют взаимодействие пользователя с программой и предоставляют понятный интерфейс для ввода и вывода данных.