- •Вимірювачі програмного забезпечення.
- •Особливості використання вимірювачів пз
- •Використання iPlasma для вимірювань.
- •Використання Analist4j для вимірювань.
- •Використання cccc для вимірювань.
- •Використання Visual Studio для вимірювань.
- •Пояснення основних метрик iPlasma.
- •Пояснення основних метрик Visual Studio.
- •Пояснення основних метрик Analist4j.
- •Структура iPlasma.
- •Візуалізація в iPlasma.
- •Призначення та послідовність проведення первинного статистичного аналізу.
- •Призначення та послідовність проведення кореляційного аналізу.
- •Призначення та послідовність проведення регресійного аналізу.
- •Описати, пояснити використання Statistica для первинного статистичного аналізу (або іншого засобу).
- •Описати, пояснити використання Statistica для кореляційного аналізу (або іншого засобу).
- •Описати, пояснити використання Statistica для регресійного аналізу (або іншого засобу).
- •Описати та пояснити використання Visual Studio для проведення рефакторингу.
Описати та пояснити використання Visual Studio для проведення рефакторингу.
Рефакторинг - это такой процесс изменения кода программы, при котором улучшается ее внутренняя структура, а внешнее поведение не изменяется. Другими словами, это способ приведения кода в порядок, при котором шансы появления новых ошибок в коде минимальны.
Изменения при рефакторинге кода вносятся пошагово, мелкими операциями. Переименовать функцию, разбить ее на несколько подфункций, изменить сигнатуру метода - все эти операции легко выполнить так, чтобы не занести в код ошибок. Однако совокупный эффект ряда таких элементарных операций может быть весьма значительным - от упрощения структуры кода, до полного изменения архитектуры разрабатываемой программы.
Особую популярность рефакторинг приобрел в последние десять лет с развитием экстремального программирования и других agile-методик программирования, в которых рефакторинг является частью цикла разработки программного обеспечения. Между тем, проведение рефакторинга вручную - достаточно утомительное занятие. Например, чтобы изменить порядок следования параметров в методе класса, мало изменить сигнатуру метода - необходимо пройти по всему коду программы и модифицировать все вызовы данного метода. Изменение тривиальное, но требует активного "копипастинга".
Спрос рождает предложение, и в последние годы производители средств разработки стали внедрять в свои программные продукты средства, автоматизирующие и упрощающие проведение рефакторинга. Среда Visual Studio впервые обзавелась такими средствами в версии VS2005. Разработчики, использующие C# и J#, получили в свое распоряжение следующий набор инструментов:
Rename - переименование имени переменной, метода, класса и т.п. с автоматическим обновлением всех ссылок на это имя в коде;
Extract method - оформление выделенной части кода в новый, отдельный метод;
Encapsulate field - создание свойства, скрывающего выбранную переменную-член класса;
Extract interface - создание интерфейса на основе списка методов класса;
Promote local variable to parameter - вынесение локальной переменной в параметр метода;
Remove/Reorder parameters - удаление параметров метода и изменение порядка их следования с автоматическим обновлением всех ссылок в коде на данный метод.
Реализованный набор инструментов, конечно же, упростил жизнь разработчикам, однако он далеко не идеален. Из недостатков можно отметить:
отсутствие поддержки C++ и VB (в VS2008 ее все так же нет);
достаточно медленная работа - вызов любой операции рефакторинга приводит к появлению диалога обновления IntelliSense и разработчик вынужден ждать, причем порой довольно долго, пока этот диалог завершит работу;
набор средств рефакторинга минимален, ряд полезных инструментов в нем отсутствует;
интерфейс далеко не самый эргономичный и требует активного использования мышки.
К счастью, в Microsoft Visual Studio издавна реализована прекрасная поддержка плагинов, с помощью которых можно расширять ее возможности. В частности, существует множество плагинов, как платных, так и бесплатных, дополняющих и улучшающих стандартный набор инструментов рефакторинга в студии. Попробуем разобраться, кто из них что умеет.