Изучение метрик классов пакета core org.apache.jmeter.control.gui из проекта Apache JMeter 2.12
Изучение сущности метрики программного обеспечения — меры, позволяющей получить численное значение некоторого свойства программного обеспечения. Исследование различных графиков вызовов между классами внутри пакета. Анализ матрицы вызовов между классами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 17.06.2015 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Тверской государственный технический университет»
(ТвГТУ)
Кафедра «Информационные системы»
Контрольная работа
По дисциплине: «Метрология программного обеспечения»
Тема: «Изучение метрик классов пакета core org.apache.jmeter.control.gui из проекта Apache JMeter 2.12»
Выполнила студентка ИДПО ИСТ-337
Радостева Елена Владимировна
Проверил: Проскуряков Максим Александрович
Тверь 2015
Метрика программного обеспечения (англ. software metric) -- мера, позволяющая получить численное значение некоторого свойства программного обеспечения или его спецификаций. [1]
Метрики
Blank lines |
Пустые строки |
|
Classes |
Классы |
|
Code Lines |
Строки кода |
|
Comment Lines |
Строки с комментариями |
|
Comment to Code Ratio |
Соотношение комментариев к коду |
|
Declarative Statements |
Операторы объявления |
|
Executable Statements |
Операторы выполнения |
|
Files |
Файлы |
|
Functions |
Функции |
|
Lines |
Строки |
Количественные метрики
Прежде всего, следует рассмотреть количественные характеристики исходного кода программ (в виду их простоты). Самой элементарной метрикой является количество строк кода (SLOC). Данная метрика была изначально разработана для оценки трудозатрат по проекту. Однако из-за того, что одна и та же функциональность может быть разбита на несколько строк или записана в одну строку, метрика стала практически неприменимой с появлением языков, в которых в одну строку может быть записано больше одной команды. Поэтому различают логические и физические строки кода. Логические строки кода -- это количество команд программы. Данный вариант описания так же имеет свои недостатки, так как сильно зависит от используемого языка программирования и стиля программирования [2].
Кроме SLOC к количественным характеристикам относят также:
· количество пустых строк,
· количество комментариев,
· процент комментариев (отношение числа строк, содержащих комментарии к общему количеству строк, выраженное в процентах),
· среднее число строк для функций (классов, файлов),
· среднее число строк, содержащих исходный код для функций (классов, файлов),
· среднее число строк для модулей.
Основные метрики проекта в графическом виде
Метрики предоставляют статистическую информацию о вашем проекте, такие как количество строк кода и сложность различных сущностей[3]. Стандартные метрики, которые могут быть созданы, в зависимости от языка, анализируются включают в себя[4]:
Основные показатели
· Класс Count |
· Файлы Count |
|
· Функция Count |
· Соотношение комментарий к Коду |
|
· Комментарии линии Count |
· Исполняемого Оператора Count |
|
· Код Строк Count |
· Декларативное Заявление Count |
Настраиваемые показатели
· Цикломатическая Сложность |
· Соединение Классов |
|
· Путь Count |
· Процент Отсутствие Сплоченности |
|
· Базовый Класс Count |
· Количество Методов Экземпляра |
|
· Макс Наследования |
· Взвешенный Методы в Классе |
|
· Узлы |
· Унаследованный Класс Count |
Исследование различных графиков вызовов между классами внутри пакета (между классами). программный метрика матрица
Структура пакетов
Статические маршруты внутри отдельных классов
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.ClientMeterEngine (Класс 1)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.ClientMeterEngine
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.ClientMeterEngine и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.ClientMeterEngine
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.ConvertListeners (Класс 2)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.ConvertListeners
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.ConvertListeners и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.ConvertListeners
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.JMeterEngineException (Класс 3)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.JMeterEngineException
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.JMeterEngineException и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.JMeterEngineException
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.PreCompiler (Класс 4)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.PreCompiler
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.PreCompiler и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.PreCompiler
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.RemoteJMeterEngineImpl (Класс 5)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.RemoteJMeterEngineImpl
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.RemoteJMeterEngineImpl и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.RemoteJMeterEngineImpl
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.StandardJMeterEngine (Класс 6)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.StandardJMeterEngine
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.StandardJMeterEngine и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.StandardJMeterEngine
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.StandardJMeterEngine.StopTest (Подкласс 6)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.StandardJMeterEngine.StopTest
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.StandardJMeterEngine.StopTest и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.StandardJMeterEngine.StopTest
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.TreeCloner (Класс 7)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.TreeCloner
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.TreeCloner и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.TreeCloner
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.TreeClonerNoTimer (Класс 8)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.TreeClonerNoTimer
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.TreeClonerNoTimer и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.TreeClonerNoTimer
Разберемся, из каких классов вызывается класс org.apache.jmeter.engine.TurnElementsOn (Класс 9)
Узнаем, какие классы вызываются из класса org.apache.jmeter.engine.TurnElementsOn
Рассмотрим, из каких классов вызывается класс org.apache.jmeter.engine.TurnElementsOn и какие классы вызывает сам класс
Узнаем о зависимостях между методами внутри класса org.apache.jmeter.engine.TurnElementsOn
Построим матрицу вызовов между классами:
Класс 1 - org.apache.jmeter.engine.ClientMeterEngine
Класс 2 - org.apache.jmeter.engine.ConvertListeners
Класс 3 - org.apache.jmeter.engine.JMeterEngineException
Класс 4 - org.apache.jmeter.engine.PreCompiler
Класс 5 - org.apache.jmeter.engine.RemoteJMeterEngineImpl
Класс 6 - org.apache.jmeter.engine.StandardJMeterEngine
Класс 7 - org.apache.jmeter.engine.TreeCloner
Класс 8 - org.apache.jmeter.engine.TreeClonerNoTimer
Класс 9 - org.apache.jmeter.engine.TurnElementsOn
Вызывающие классы |
|||||||||||
Класс 1 |
Класс 2 |
Класс 3 |
Класс 4 |
Класс 5 |
Класс 6 |
Класс 7 |
Класс 8 |
Класс 9 |
|||
Вызываемые классы |
Класс 1 |
+ |
+ |
+ |
+ |
+ |
|||||
Класс 2 |
+ |
+ |
+ |
||||||||
Класс 3 |
+ |
+ |
|||||||||
Класс 4 |
+ |
+ |
+ |
||||||||
Класс 5 |
+ |
+ |
|||||||||
Класс 6 |
+ |
+ |
|||||||||
Класс 7 |
+ |
+ |
|||||||||
Класс 8 |
|||||||||||
Класс 9 |
Исходя из матрицы вызовов между классами, можно сделать вывод, что точками входа в проект будут классы 8 и 9.
От точек входа построим все возможные статические маршруты:
8->1->3
8->1->4->1
8->1->5->1
8->1->5->2->1
8->1->5->3
8->1->5->6->1
8->1->5->6->2->1
8->1->5->6->4->1
8->1->5->6->5
8->2->1->3
8->2->1->4->1
8->2->1->5->1
8->2->1->5->2
8->2->1->5->3
8->2->1->6->1
8->2->1->6->2
8->2->1->6->4->1
8->2->1->6->5->1
8->2->1->6->5->2
8->2->1->6->5->3
8->2->1->6->5->6
8->7->6->1->3
8->7->6->1->4->1
8->7->6->1->5->1
8->7->6->1->5->2->1
8->7->6->1->5->3
8->7->6->1->5->6
8->7->6->1->7
8->7->6->2->1->3
8->7->6->2->1->4->2
8->7->6->2->1->5->1
8->7->6->2->1->5->2
8->7->6->2->1->5->3
8->7->6->2->1->5->6
9->4->1->3
9->4->1->4
9->4->1->5->1
9->4->1->5->2->1
9->4->1->5->3
9->4->1->5->6->1
9->4->1->5->6->2->1
9->4->1->5->6->4
9->4->1->5->6->5
Вывод
Understand от Sci Tools - это инструмент статического анализа для поддержания, измерения и анализа критических или крупных баз кода.
Доступ через упрощенный информационный браузере обеспечивает всесторонний обзор программного обеспечения в быстрой и легкой форме. Быстрое проникновение в базы кода включено через широкий спектр показателей, настраиваемые отчеты, графики, набор функций анализа зависимости и точных средств поиска. В сочетании с настраиваемым, полнофункциональным программным интерфейсом, он является лучшим редактором программирования для поддержания и понимания кода[4].
Список используемых источников
1. https://ru.wikipedia.org/wiki/%CC%E5%F2%F0%E8%EA%E0_%EF%F0%EE%E3%F0%E0%EC%EC%ED%EE%E3%EE_%EE%E1%E5%F1%EF%E5%F7%E5%ED%E8%FF
2. http://dic.academic.ru/dic.nsf/ruwiki/176953
3. https://scitools.com/feature-category/metrics-reports/
4. http://www.emenda.eu/ru/products/understand
Размещено на Allbest.ru
Подобные документы
Описание отношений между частями сложного проекта с помощью Visual Studio. Создание графов зависимостей для управляемого и машинного кода. Их использование для визуализации взаимосвязей между классами. Выявление циркулярных ссылок для обнаружения классов.
контрольная работа [1,1 M], добавлен 20.02.2015Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.
курсовая работа [67,9 K], добавлен 29.05.2013Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.
презентация [114,7 K], добавлен 14.08.2013Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Принципы объектного подхода. UML как воплощение идеи визуального моделирования. Синтаксис и семантика основных объектов UML, различные отношения между классами. Диаграммы использования, их назначение. Разработка модели бизнес-прецедентов данных.
презентация [1,0 M], добавлен 19.09.2016Управление дистанционной настройкой и установкой ПО. История развития VMware ThinApp. Создание пакета автоматической установки Microsoft Office Visio Professional 2007. Анализ программного обеспечения для него. Тестирование полученного msi-пакета.
курсовая работа [1,5 M], добавлен 14.03.2013Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Тестирование и отладка программного обеспечения: понятие, принципы, этапы, цели и задачи. Тестирование методом сандвича как компромисс между восходящим и нисходящим подходами. Сущность метода "белого и черного ящика", отладки программного обеспечения.
курсовая работа [36,9 K], добавлен 21.07.2012Мониторинг системных вызовов. Системные вызовы shmget, shmat, shmctl, shmdt. Написание и внедрение модуля ядра. Выбор языка программирования. Структура программного обеспечения. Реализация мониторинга управления и удаления сегментов разделяемой памяти.
курсовая работа [91,4 K], добавлен 24.06.2009Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).
презентация [41,4 K], добавлен 13.10.2013