Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Болтушкин Л.С., 712-2, задание 3

.docx
Скачиваний:
0
Добавлен:
23.11.2024
Размер:
29.07 Кб
Скачать

Болтушкин Леонид Станиславович, группа 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");

}

}

б) Модель внешних и внутренних характеристик качества программы:

Функциональная пригодность:

  • Пригодность для применения: Программа позволяет пользователю вводить своё имя и количество долгов, предоставляя корректные ответы в зависимости от введённых данных.

  • Корректность: Программа точно проверяет ввод имени на наличие цифр, выбрасывая исключение, если имя содержит цифры.

  • Взаимодействие: Программа корректно взаимодействует с системной консолью для получения ввода от пользователя и вывода информации.

  • Защищенность: Программа не защищена от некорректных данных (например, при вводе нечислового значения для долгов).

Надежность:

  • Завершённость: Программа может завершиться с ошибкой при вводе неправильных данных (например, строка вместо числа).

  • Устойчивость к дефектам: Программа реагирует на ввод чисел в строку имени, но не предусматривает обработку всех потенциальных ошибок.

  • Восстанавливаемость: Не предусмотрены механизмы восстановления после ошибок ввода, программа завершает выполнение.

Эффективность:

  • Временная эффективность: Время обработки ввода минимально, поскольку программа проста и использует стандартные операции.

  • Используемость ресурсов: Программа использует минимальные системные ресурсы для выполнения.

Практичность:

  • Понятность: Программа понятна и проста для пользователей, так как дает ясные указания и выводы.

  • Изучаемость: Программа легко изучается (используется) за счет простоты интерфейса.

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

  1. Минимальные требования к вводу: Пользователю предлагается всего два действия — ввести имя и количество долгов. Команды чётко описаны, и указания просты.

  2. Понятные сообщения: Программа выводит информативные сообщения, которые помогают пользователю понять, что требуется. Например, при пустом имени программа сообщает: "Имя не может быть пустым, попробуй ещё раз!"

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

  • Привлекательность: Программа не имеет пользовательского интерфейса с визуальными элементами, но функционально удобна.

Сопровождаемость:

  • Анализируемость: Код программы хорошо структурирован, что упрощает диагностику.

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

  • Стабильность: Программа устойчива к простым изменениям.

  • Тестируемость: Программу легко тестировать на ввод различных данных.

Переносимость:

  • Адаптируемость: Программа может быть запущена на любой платформе, поддерживающей .NET (например, Windows, Linux).

  • Простота установки: Программа не требует сложной установки.

  • Сосуществование: Программа может сосуществовать с другими системами, так как не использует системные ресурсы, кроме стандартных.

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

Метрики качества:

  • Надежность: Среднее время работы до отказа можно оценить при тестировании на различных данных.

  • Эффективность: Среднее время выполнения задач составляет несколько секунд.

  • Практичность: Время ввода данных минимально, документирование программы повышает её понятность.

Перечень функций программы, видимых для пользователя:

  1. Ввод имени:

    • Описание: Программа предлагает пользователю ввести своё имя с помощью сообщения "Введите ваше имя". Если имя не введено (пустая строка), программа просит ввести его снова. Если имя содержит цифры, выбрасывается исключение с сообщением "Имя не может содержать цифры!".

    • Пользовательский эффект: Пользователь видит запрос и вводит своё имя, после чего программа проверяет его корректность.

  2. Вывод приветствия:

    • Описание: Программа выводит приветствие с именем пользователя после успешного ввода: "Привет, [имя], теперь введи количество своих долгов!".

    • Пользовательский эффект: Пользователь получает подтверждение успешного ввода имени.

  3. Ввод количества долгов:

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

    • Пользовательский эффект: Пользователь вводит число, программа проверяет его корректность.

  4. Вывод сообщения в зависимости от количества долгов:

    • Описание: После ввода долгов программа выводит одно из сообщений в зависимости от введённого числа:

      • "Молодец!" — если долгов 0.

      • "Осталось чуть-чуть и ты будешь без долгов!" — если долг один.

      • "Нужно поднажать!" — если долгов от 1 до 3.

      • "Возьмись за учебу, отчисление не за горами!" — если долгов от 4 до 7.

      • "Дай Бог останешься живым!" — если долгов от 8 до 100.

    • Пользовательский эффект: Пользователь получает персонализированное сообщение в зависимости от введённого значения.

  5. Завершение программы:

    • Описание: После выполнения всех операций программа выводит сообщение "Programm close", что сигнализирует об окончании работы.

    • Пользовательский эффект: Пользователь видит, что программа завершила работу.

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