Главная страница
Навигация по странице:

  • Задания: Задание № 1.

  • Задание №2.

  • Метрика Чепина 2.1. Теоретическое введение

  • 2.2. Пример: «Простые числа в матрице»

  • 2.2.1 Реализация программы

  • 2.2.2 Оценка характеристик программы

  • Первичный анализ рисков качества. Первичный анализ рисков качества


    Скачать 29.4 Kb.
    НазваниеПервичный анализ рисков качества
    Дата23.03.2023
    Размер29.4 Kb.
    Формат файлаdocx
    Имя файлаПервичный анализ рисков качества.docx
    ТипЛабораторная работа
    #1010659

    Лабораторная работа «Первичный анализ рисков качества»

    Цель: получить навыки использования инструментария анализа качества.

    Теоретические сведения:

    Изучите материал «Метрика Чепина», прикрепленный вместе с лабораторной.

    Задания:

    Задание № 1. Напишите программу согласно вашему варианту.

    Варианты:

    1. Даны две точки А(х1,у1) и В(х2,у2). Составить программу, определяющую, которая из точек находится ближе к началу координат.

    2. Даны действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее - их удвоенным произведением.

    3. Даны целые числа in, n. Если числа не равны, то заменить каждое из них тем же числом, равным большему из исходных, а если равны, го заменить числа нулями.

    4. Определить, делителем каких чисел а, b. с является число k.

    5. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц - В рублей, а разговоры сверх установленной нормы оплачиваются из расчета С рублей за минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.

    6. Грузовой автомобиль выехал из одного города в другой со скоростью V1 км/ч. Через t ч в этом же направлении выехал легковой автомобиль со скоростью V2 км/ч. Составить программу, определяющую догонит ли легковой автомобиль грузовой через t, ч после своего выезда.

    7. Определить правильность даты, введенной с клавиатуры (.число - от 1 до 31, месяц - от 1 до 12). Если введены некорректные данные, то сообщить об этом.

    8. Составить программу, определяющую результат гадания на ромашке - «любит - не любит», взяв за исходное данное количество лепестков n.

    9. Рис расфасован в два пакета. Масса первого - m кг. второго - n кг. Составить программу. определяющую:

    a. какой пакет тяжелее - первый или второй;

    b. массу более тяжелого пакета.

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

    11. Написать программу нахождения суммы большего и меньшего из трех чисел.

    12. На оси ОХ расположены три точки а, b, с. Определить, какая из точек b или с расположена ближе к точке а.

    13. Написать программу решения уравнения ах3 + b х = 0 для произвольных а, b.

    14. Заданы размеры А, В прямоугольного отверстия и размеры х, y,z кирпича. Определить, пройдет ли кирпич через отверстие.

    15. Подсчитать количество отрицательных и положительных чисел среди чисел a, b, с.

    Задание №2. Оцените качество разработанной программы по методике Чепина.

    Задание № 3. Оптимизируйте программу.

    Задание № 4. Оцените качество оптимизированной программы программы по методике Чепина.

    Метрика Чепина

    2.1. Теоретическое введение

    Мерой сложности понимания программ на основе входных и вы­ходных данных является метрика Н. Чепина (Ned Chapin). Смысл метода, который предложил Чепин, состоит в оценке информацион­ной прочности отдельно взятого программного модуля на основе ре­зультатов анализа характера использования переменных, входящих в состав списка ввода и вывода.

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

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

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

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

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

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

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

    Исходное выражение для определения метрики Чепина записыва­ется в следующем виде:

                     Q =a1*P+a2*M + a3*C + a4*T                   (3)

    где a1, a2, a3 и a4, - весовые коэффициенты.

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

    •  a1= 1;

    •  a2= 2;

    •  a4= 0,5;

    Примечательно, что весовой коэффициент группы Т не равен 0, несмотря на то, что часть используемых переменных может не при­меняться в программе. Это объясняется тем, что «паразитные» пере­менные сами по себе не увеличивают сложность потока данных про­граммы, но очень часто затрудняют ее понимание.

    С учетом весовых коэффициентов расчетное выражение метрики Чепина приобретает следующий вид:

    Q = P+2*M + 3*C + 0,5*T.

    Следует отметить, что метрика сложности программы Чепина также основана на анализе исходных текстов программ, что обеспе­чивает единый подход к автоматизации их расчета и может быть рас­считана с использованием специально разработанного программного анализатора.

    2.2. Пример: «Простые числа в матрице»

    Дана целочисленная матрица размером N*M. Вычислить и записать в одномерный массив количество простых чисел в каждом столбце матрицы. Размерность матрицы задается с клавиатуры, заполнение матрицы осуществляется посредством датчика случайных чисел. Разработать программу для решения задачи. На основе лексического анализа исходного текста программы определить значение метрики Чепина.

    2.2.1 Реализация программы

    Текст программы для реализации возможного алгоритма решения поставленной задачи представлен в таблице 3.

    Таблица 3- Текст программы

    Номера строк

    Строки программы

    1

    using System;

    2

    namespace chapin

    3

    {

    4

    class Program

    5

    {

    6

    static void Main(string[] args)

    7

    {

    8

       int n, m;

    9




    10

      int[,] a;

    11

      int[] b;

    12

      ConsoleKeyInfo клавиша;

    13

       int i, j, k, d;

    14

      bool p = false;

    15

      Random g;

    16

      do

    17

      {

    18

        Console.Clear();

    19

        Console.Write("Введите количество строк");

    20

        n = int.Parse(Console.ReadLine());

    21

        Console.Write("Введите количество столбцов");

    22

     m = int.Parse(Console.ReadLine());

    23

         g = new Random();

    24

         a = new int[n, m];

    25

         for (i = 0; i < n; i++)

    26

            for (j = 0; j < m; j++)

    27

            {

    28

              a[i,j] = g.Next(0,101);

    29

            }

    30




    31

         Console.WriteLine("\nИсходная матрица");

    32

        for (i = 0; i < n; i++, Console.WriteLine())

    33

          for (j = 0; j < m; j++)

    34

            Console.Write("{0,8:d}", a[i, j]);

    35

        b = new int[m];

    36




    37

        for (j = 0; j < m; j++)

    38

        {

    39

          for (i = k = 0; i < n; i++)

    40

          {

    41

            p = true;

    42

               for (d = 2; d < a[i, j]; d++)

    42

                if (a[i, j] % d == 0) p = false;

    44




    45




    46

               if (p) k++;

    47

                   b[j] = k;

    48

           }

    49

                }

    50




    51




    52

        Console.WriteLine("\nКоличество простых чисел");

    53

       for (i = 0; i < b.Length; i++)

    54

          Console.Write("{0,8:d}", b[i]);

    55




    56

        Console.WriteLine("\nДля выхода нажмите клавишу ESC");

    57

       клавиша = Console.ReadKey(true);

    58

    } while (клавиша.Key != ConsoleKey.Escape);

    59

    }

    60

    }

    61

    }

    2.2.2 Оценка характеристик программы

    Выполним оценку качества программы с помощью метрики Чепина, которая позволяет оценить меру трудности понима­ния программы на основе входных и выходных данных. Все множе­ство переменных, составляющих список ввода-вывода, разбивается на четыре функциональные группы:

    •  Р - вводимые переменные для расчетов и для обеспечения вывода;

    •  М - модифицируемые, создаваемые внутри программы переменные;

    •  С - переменные, участвующие в управлении работой программного модуля (управляющие переменные);

    •  T- не используемые в программе переменные.

    В таблице 4 приведен анализ исходного текста программы

    Таблица 4 – Анализ исходного кода программы

    № п/п

    Наименование переменных

    Номера строк

    Р ( для расчетов и для обеспечения вы­вода)

    1

    m

    8

    2

    n

    8

    3

    a

    10

    М ( модифицируемые или создаваемые внутри программы пере­менные)

    1

    i

    13

    2

    j

    13

    3

    k

    13

    4

    d

    13

    5

    b

    11

    C (управляющие переменные)

    1

    g

    15

    2

    p

    14

    3

    клавиша

    12

    T (не используемые в программе переменные)




    Отсутствуют




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

    Переменные i, j, k, dи bв процессе выполнения программы создаются и модифицируются.

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

    Таким образом, исходя из результатов анализа исходного текста программы, получаем следующие значения характеристик:

    Р = 3 - количество переменных для расчетов;

    М = 5 - количество модифицируемых переменных;

    С = 3 - количество переменных, используемых в управлении программой;

    Т = 0 - количество неиспользуемых переменных (такие пере­менные в программе отсутствуют).

    Расчет метрики Чепина:

    Q = P + 2M + 3-C + 0,ST= 3 + 2-5 + 3-3 + 0,5-0 = 22.

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


    написать администратору сайта