Анализ программного средства по метрике Мак-Кейба

Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 13:26, лабораторная работа

Краткое описание

Для корректной работы программного средства необходимо выполнить ряд требований:
а) исходный код программы должен соответствовать правилам написания программ на языке программирования PHP 5.
б) исходный код программы должен содержаться в одном файле.
в) на компьютере должно быть установлено приложение GraphViz, оно необходимо для отображения граф-схемы алгоритма. Приложение устанавливается автоматически.

Содержание работы

Цели и задачи
3
Руководство пользователя. Главное меню программы
4
Вкладка “Файл”
4
Вкладка “Обработка”
5
Вкладка “Справка”
5
Панель быстрого доступа
6
Краткие сведения о метрике Мак-Кейба
7
Результаты выполнения программы
8
Список литературы

Содержимое работы - 1 файл

Report1.docx

— 259.08 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ  ОБРАЗОВАНИЯ

«БЕЛОРУССКИЙ  ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ  И РАДИОЭЛЕКТРОНИКИ» 

Факультет компьютерных систем и сетей

КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ 

Отчёт по лабораторной работе по дисциплине МССвИР: 

«Анализ программного средства по метрике 

Мак-Кейба» 
 
 
 
 

Выполнил:  
студент группы 951002                                                                           Проведенцев Е.С.
Руководитель: Данилова Г.В.
 
 
 
 
 

МИНСК 2011 

Содержание:

  1. Цели и  задачи
3
  1. Руководство пользователя. Главное меню программы
4
    1. Вкладка “Файл”
4
    1. Вкладка “Обработка”
5
    1. Вкладка “Справка”
5
    1. Панель быстрого доступа
6
  1. Краткие сведения о метрике Мак-Кейба
    7
  1. Результаты выполнения программы
8
  1. Список литературы
10
  1. Приложение
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  1. Цели  и задачи

    Представленное  программное средство предназначено  для анализа программ написанных на языке программирования PHP 5. Программа разработана для использования на платформе .NET.

    Исходными данными для программы является текстовый файл, содержащий исходный код, тестируемого ПО.

    Для корректной работы программного средства необходимо выполнить ряд требований:

    а) исходный код программы должен соответствовать  правилам написания программ на языке  программирования PHP 5.

    б) исходный код программы должен содержаться  в одном файле.

    в)  на компьютере должно быть установлено  приложение GraphViz, оно необходимо для отображения граф-схемы алгоритма. Приложение устанавливается автоматически.

    Результатом выполнения программы являются граф-схемы исследуемого алгоритма ПО (граф-схемы всех функций и основного кода main), а также значения цикломатического числа Мак-Кейба. 
 
 
 
 
 
 
 
 

  1. Руководство пользователя. Главное  меню программы
 
    1. Вкладка «Файл»

Рисунок 1 - Вкладка Файл

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

Рисунок 2 - Диалоговое окно выбора исходного файла 

    1. Вкладка «Обработка»

Рисунок 3 - Вкладка «Обработка»

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

    1. Вкладка «Справка»

                                

Рисунок 4 - Вкладка «Справка» 

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

    Рисунок 5 - Окно «О метрике» 

    1. Панель  быстрого доступа

                                  

    Рисунок 6 - Панель быстрого доступа 

    Для быстрого доступа к функциям программы  существует панель, расположенная в  левом верхнем левом углу программы. 
 
 
 
 

  1. Краткие сведения о метрике  Мак-Кейба

    Цикломатическая сложность программы (англ. Cyclomatic complexity of   a program) — структурная (или топологическая) мера сложности программ, используемая для измерения качества программного обеспечения, основанная на методах статического анализа кода. ЦСП равна увеличенному на единицу цикломатическому числу графа программы.

    Она была разработана Томасом Дж. Мак-Кейбом в 1976 году; он использовал эти показатели сложности для программ. Он производил непосредственные численные измерения  для линейно независимых путей  в исходных кодах программ.

    При вычислении цикломатической сложности  используется граф потока управления программы: узлы графа соответствуют  неделимым группам команд программы  и ориентированным рёбрам, каждый из которых соединяет два узла и соответствует двум командам, вторая из которых может быть выполнена  сразу после первой. Цикломатическая  сложность может также быть применена  для отдельных функций, модулей, методов или классов в пределах программы. Эта стратегия тестирования называется основным маршрутом тестирования Мак-Кейба. Это тестирование каждого линейного независимого маршрута через программу; в этом случае, число тестов должно быть равно цикломатической сложности программы. 
 
 
 
 
 
 
 
 

  1. Результаты  выполнения программы

    

    Рисунок 8 - Главное окно программы

    Рисунок 9 - Результат выполнения программы

     На  рис. 9 изображена программа после загрузки исходных данных. На правой панели отображаются графы исходных кода и процедур. В левой верхней панели отображается анализируемый код. В левой нижней панели представлены результаты анализа данных, в частности количество ребер и вершин в построенном графе программы, а также цикломатическое число Мак-Кейба для главной программы и всех  подпрограмм. Под ними отображается суммарное цикломатическое число Мак-Кейба.

    Рисунок 10 - Изображение графа подпрограммы

  1. Список Литературы
 

[1] Глухова Л.А,  Метрология, Стандартизация и Сертификация  в Информатике и Радиоэлектронике: Учебное пособие/ Глухова Л.А.  – БГУИР, 2009 г.

[2] Википедия [Электронный ресурс]. – Электронные данные. – Режим доступа: http://ru.wikipedia.org/ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. Приложение

Листинг файла Parser.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text; 

namespace MSSVIR

{

    class Parser

    {

        public string Code { get; private set; }

        public int curPos { get; private set; }

        char[] IgnorableSymbols = {' ','\n','\t','\r'};

        string VariableSymbols = "abcdefghijklmnopqrstuvwxyzABSDEFGHILKLMNOPQRSTUVWXYZ_1234567890";

        public Graph Graph_ = new Graph("main");

        public List<Graph> Functions = new List<Graph>();

       

        public Parser(string PHPCode_, int pos, List<Graph> Functions_)

        {

            Code = PHPCode_;

            curPos = pos;

            if (Functions_ != null)

            Functions = Functions_;

            //Functions.Add(Graph);

        } 

        private string GetToken()

        {

            string res = "";

            bool tokenBegin = false;

            bool CodeFinish = false;

            while (!tokenBegin && !CodeFinish)

            {

                if (curPos == Code.Length - 1)

                    CodeFinish = true;

                else

                {

                    if (IgnorableSymbols.Contains(Code[curPos]))

                        curPos++;

                    else

                        tokenBegin = true;

                }

Информация о работе Анализ программного средства по метрике Мак-Кейба