«AutoRefactoring»

«AutoRefactoring»



РЕФЕРАТ

С. 81 Рис. 28 Табл. 2

РЕФАКТОРИНГ, СРЕДА РАЗРАБОТКИ, МОДУЛЬ РАСШИРЕНИЯ, МЕТРИКА, Автоматический РЕФАКТОРИНГ, ПРОГРАММНЫЙ КОД, УЛУЧШЕНИЕ ПРОГРАММНОГО КОДА, АУДИТ ПРОГРАММНОГО КОДА.


Разработан модуль расширения «AutoRefactoring» для среды разработки NetBeans 6.5. «AutoRefactoring» производит автоматический рефакторинг на базе метрик программного «AutoRefactoring» кода. Интегрируясь в среду NetBeans, ведет взаимодействие с модулем подсчета метрик и модулем рефакторинга. Модуль автоматического рефакторинга на базе анализа инфы, приобретенной от модуля подсчета метрик, определяет наличие заморочек в начальном коде «AutoRefactoring» программки. Если задачи обнаружены, происходит формирование перечня вероятных решений препядствия в виде последовательности тех либо других способов рефакторинга. Не считая вероятных вариантов рефакторинга, перечень содержит в себе информацию об «AutoRefactoring» аудите программного кода.

CОДЕРЖАНИЕ

Перечень сокращений 3

^ 1.ОБЗОР СОВРЕМЕННЫХ ПРОГРАММНЫХ СРЕДСТВ РЕФАКТОРИНГА 6

2.ПОСТАНОВКА Задачки 24

3.РАЗРАБОТКА И ОТЛАДКА ПРОГРАММНОЙ СИСТЕМЫ Автоматического РЕФАКТОРИНГА 27

3.1.Выбор метода решения намеченной цели. 27

Введение 29

Предназначение разработки 29

Требования к программному изделию 29

Требования к программной «AutoRefactoring» документации 30

Порядок контроля и приемки 30

Класс «refactoring» 43

Класс «refactoring plugin» 44

3.8. Панель опций автоматического рефакторинга. 50

3.9. Проведение тесты программной системы расчета метрик 52

3.10. Соответствие программной системы расчета метрик многофункциональным требованиям 53

4.1. Обзор способностей разработанной «AutoRefactoring» системы 54

4.2. Недочеты и ограничения разработанной программной системы 56

4.3. Предстоящее развитие 57

ЗАКЛЮЧЕНИЕ 58

^ Перечень ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 59

ПРИЛОЖЕНИЕ 1 60

Предназначение разработки 61

Требования к программному изделию 61

Требования к программной документации 62

Порядок контроля и приемки 62

Требования к программке 66

ПРИЛОЖЕНИЕ «AutoRefactoring» 5 70

ПРИЛОЖЕНИЕ 6 72

ПРИЛОЖЕНИЕ 7 74
^

Перечень сокращений
API – Application Program Interface

LOC – Length Of Class

NPA – number public attributes

IDE - Integrated Development Environment

ВВЕДЕНИЕ


В текущее время, в критериях повсевременно возрастающего объема программных систем, на которых возлагается решение все большего «AutoRefactoring» количества критически принципиальных задач, улучшение свойства внутренней структуры программного кода стало неотъемлемой частью процесса разработки программных систем. На рынке сред разработки уже не мыслимы продукты без инструментов улучшения свойства внутренней «AutoRefactoring» структуры программного кода. Каждый производитель сред разработки вводит в собственный продукт различные средства аудита программного кода, средства рефакторинга программного кода, инструменты численных черт кода. Создание устройств автоматического улучшения свойства внутренней структуры программного кода сейчас «AutoRefactoring» очень животрепещуща. Главным средством улучшения свойства внутренней структуры программного кода является рефакторинг. Рефакторинг - процесс полного либо частичного преобразования внутренней структуры программки при сохранении её наружного поведения []. В программировании под термином рефакторинг начального «AutoRefactoring» кода понимается улучшение программки без конфигурации её поведения. В текущее время понятно более 100 преобразований начального кода, написанного с применением объектно-ориентированной технологии, не приводящей к изменению поведения программки. Рефакторинг не исправляет «AutoRefactoring» ошибки программки, не добавляет новейшей функциональности. Рефакторинг меняет внутреннюю структуру начального кода программки, улучшая этим читаемость и осознание. А именно, с имеющейся структурой, добавление в программку новейшей функциональности возможно окажется сложным «AutoRefactoring» процессом — в данном случае разработчик может выполнить нужный рефакторинг, а уже потом добавить новейшую функциональность. Рефакторинг может заключаться в перемещении поля из 1-го класса в другой, вынесение куска кода из способа и перевоплощение его в «AutoRefactoring» самостоятельный способ либо даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться простым, но совокупный эффект таких малых конфигураций в состоянии конструктивно сделать лучше проект либо даже «AutoRefactoring» предупредить распад плохо спроектированной программки. На нынешний момент технологи программирования шагнули далековато вперед. Разработками программных товаров занимаются большие организации, проекты стали массивными и тяжело воспринимаемыми. По этому требования к современным средам разработки «AutoRefactoring», с каждым деньком становятся все серьезней. На рынке современных сред разработки уже не осталось товаров без инструментов выполнения рефакторинга. Прогресс в области рефакторинга не стоит на месте, придумываются новые способы преобразования кода, разрабатываются методы проведения «AutoRefactoring» рефакторинга. Новым шагом развития процесса рефакторинга программного кода является создание системы автоматического рефакторинга. Данная система очень упростила бы процесс рефакторинга и улучшила бы качество написания программных товаров. Создание автоматического рефакторинга нереально без «AutoRefactoring» механизма высококачественной оценки программного кода. Таким механизмом может быть метрический аппарат. Таким макаром, оценить необходимость проведения рефакторинга можно с помощью набора программных метрик. Рефакторинг, основанный на метрическом аппарате, получил заглавие метрико-ориентированный «AutoRefactoring» рефакторинг[]. Метрика программного обеспечения — это мера, позволяющая получить численное значение некого характеристики программного обеспечения либо его спецификаций[].Таким макаром, соединив доброкачественную оценку программного обеспечения и инструменты рефакторинга, можно сделать систему автоматического «AutoRefactoring» рефакторинга на базе метрик программного кода.
  1. ^ ОБЗОР СОВРЕМЕННЫХ ПРОГРАММНЫХ СРЕДСТВ РЕФАКТОРИНГА

    1. Введение

На этот момент среды разработки фактически всех больших производителей имеют базисный набор способов рефакторинга, способы подсчета метрик программного кода «AutoRefactoring», также способы контроля над проводимыми переменами, такие как «Предварительный просмотр» и «Атомарная отмена операции». Из имеющихся на рынке современных сред разработки, в каких имеются средства рефакторинга, можно выделить последующие продукты:

Чтоб разобраться какими особенностями обладает любая среда, нужно провести сравнительный анализ имеющихся средств рефакторинга. Т.к. целью диплома является написание автоматического модуля рефакторинга, основное внимание будет уделено наличию средств автоматического «AutoRefactoring» рефакторинга.



    1. NetBeans

Netbeans IDE - свободно распространяемая встроенная среда разработки с открытыми начальными кодами. Проект NetBeans поддерживается и спонсируется компанией Sun Microsystems. Среда IDE NetBeans соединяет воединыжды целое общество разработчиков-энтузиастов, которые повсевременно «AutoRefactoring» обновляют и развивают ее. IDE Netbeans, начиная с версии 4.2 содержит внутри себя интегрированные средства преобразования кода, дозволяющие создавать главные способы рефакторинга. Данные способы перечислены в приложении 6 [3].

В среде Netbeans средства рефакторинга реализуются 2-мя «AutoRefactoring» классами ^ Refactoring API и Refactoring UI. Refactoring API представляет собой набор способов рефакторинга. Refactoring UI служит графическим интерфейсом для юзера, в каком происходит настройка характеристик определенного рефакторинга и вызов способов Refactoring API «AutoRefactoring». На рисунке 1.3 представлен вид графического интерфейса рефакторинга инкапсулирования поля[4].



Рис. 1.1 Вид меню вызова рефакторинга в среде NetBeans.



Рис.1.2 Меню вызова рефакторинга в среде NetBeans.



Рис.1.3 Графический интерфейс рефакторинга Encapsulate Fields.


Класс ^ Refactoring «AutoRefactoring» API открыт для доступа разработчиков из хоть какого постороннего модуля, таким макаром, можно использовать способы рефакторинга в собственных проектах. В среде разработки NetBeans реализован класс подсчета метрик программного кода. Этот класс предоставляет «AutoRefactoring» интерфейс доступа к метрикам для хоть какого модуля, интегрированного в платформу NetBeans [].

В среде NetBeans есть средства рефакторинга и средства подсчета численных черт программного кода, но средства автоматического рефакторинга в «AutoRefactoring» данной среде отсутствуют.


    1. ^ Visual Studio

Visual Studio – встроенная среда разработки сделанная компанией Microsoft. Данная среда является массивным инвентарем для разработки программных товаров для операционной системы Windows, также для платформы .Net. Visual Studio поддерживает возможность использования «AutoRefactoring» дополнений — модулей от посторониих разработчиков, что позволяет расширять способности среды разработки. Начиная с версии 2005, в среде находятся средства рефакторинга программного кода. Перечень этих способов представлен в приложении 6. В собственном продукте «AutoRefactoring», компания Microsoft, воплотила главные способы рефакторинга, оставив возможность посторонним производителям расширить функциональность средств рефакторинга среды при помощи модулей []. Способы рефакторинга данной среды представлены в приложении 6.

На рынке инструментов рефакторинга для среды «AutoRefactoring» разработки Visual Studio находятся две организации:

1) Jet Brains с модулем ReSharper 4.1.

ReSharper 4.1 имеет последующие главные особенности:

Производитель не ограничился одними инструментами рефакторинга и разработал комплекс средств, содействующих упрощению написания программного кода в целом. Модуль производит аудит программного кода, подчеркивает в редакторе кода «AutoRefactoring» проблемные участки и предлагает пути их решения, но эту особенность нельзя отнести к средствам автоматического рефакторинга, т.к. данные задачи относятся к ошибкам написания самого текста программки, а не к архитектуре. На рисунке «AutoRefactoring» 1.4 представлена панель вызова способов рефакторинга в модуле ReSharper [].



Рис. 1.4 Вызов способов рефакторинга в модуле ReSharper.

2)DevExpress с модулем Refactor!™ Pro.

Refactor !™ Pro имеет последующие главные особенности:

Модуль имеет самое огромное количество способов рефакторинга для среды Visual Studio, также в нем находятся средства подсчета «AutoRefactoring» метрик.

^ Refactor !™ Pro не производит автоматический рефакторинг, а только предоставляет юзеру инструменты модификации и подсчета численных черт начального кода. На рисунке 1.5 представлена панель вызова способов рефакторинга в модуле Refactor «AutoRefactoring»!™ Pro [].



Рис 1.5 Вызов способов рефакторинга в модуле ^ Refactor!™ Pro.


Visual Studio является массивным средством для разработки программных товаров для платформы Windows и .Net, но в данной среде не реализованы средства автоматического рефакторинга начального кода.

    1. ^ Borland «AutoRefactoring» Together

Borland Together – средство для зрительного проектирования информационных систем. Together позволяет моделировать бизнес-процессы, составляющие программного обеспечения, базы данных, деятельность и структуру организаций. Он помогает улучшить цикл жизни приложения, предоставляет «AutoRefactoring» все нужные инструменты для дизайна и анализа в течение всего процесса сотворения приложения. Технологии Borland Together позволяют: ускорить разработку при помощи резвого моделирования; создавать контроль свойства в течение всего процесса разработки «AutoRefactoring», пользоваться автоматизацией для увеличения производительности разработки; повысить скорость разработки.

В Borland Together реализована высококачественная оценка разработки программного обеспечения при помощи метрик. Метрики программного кода подсчитываются и показываются юзеру в комфортном для него виде «AutoRefactoring». Юзер может избрать представление в виде диаграммы Кивиата, в виде таблицы, гистограммы либо графика рассредотачиваний. На рисунке 1.6 представлена диаграмма Кивиата, в какой показываются метрические свойства анализируемого кода []. Перечень способов рефакторинга представлен в приложении 6.



Рис «AutoRefactoring». 1.6 диаграмма Кивиата.


Платформа обладает развитыми средствами аудита начального кода на базе синтаксических шаблонов и метрик начального кода. Аудит и метрики являются основой для проверки свойства программного продукта. Для использования аудита программного кода «AutoRefactoring» нужно избрать способ аудита. Каждый способ аудита делает определенный осмотр кода, таковой как размещение неиспользованного начального кода, структурных недочетов программки и соответствия эталонов программирования. При обнаружении недочетов кода, средства аудита акцентируют «AutoRefactoring» внимания юзера на отысканной дилемме.

Together предоставляет исчерпающий перечень способов рефакторинга программного кода для языков Java и С++. Способы рефакторинга данной среды представлены в сравнительной таблице 1. На рисунке 1.7 изображен графический интерфейс рефакторинга «AutoRefactoring» переименования.




Рис. 1.7 Графический интерфейс рефакторинга переименования.


Среда Together содержит в себе аудит кода на базе шаблонов, позволяющий выслеживать отличия от данных эталонов. В среде реализован подсчет метрик начального кода и средства рефакторинга программного «AutoRefactoring» кода. В среде не реализована возможность автоматического рефакторинга, способы рефакторинга вызываются юзером по мере надобности. Данная среда не имеет способности внедрения модулей посторониих разработчиков.

    1. ^ Eclipse

Eclipse IDE – встроенная свободно распространяемая среда разработки с «AutoRefactoring» открытыми начальными кодами. Архитектура среды позволяет подключать дополнительные модули. Развитие проекта Eclipse IDE происходит под патронажем компании IBM и при активном участии общества разработчиков-энтузиастов. В версии 3.0 было положено «AutoRefactoring» начало отделению средств обработки начального кода, в который входили средства поддержки рефакторинга. Для программного доступа к способам рефакторинга был сотворен класс, предоставляющий базисный набор способов рефакторинга программного кода. Также для среды Eclipse разработан модуль подсчета «AutoRefactoring» метрик программного кода. Инструменты рефакторинга в Eclipse можно сгруппировать по трем главным категориям:

Полный перечень всех способов рефакторинга представлен в приложении 6 . Во «AutoRefactoring» время проведения рефакторинга юзеру предоставляется возможность сопоставления кода до рефакторинга и после. Интерфейс рефакторинга представлен на рисунке 1.8





Рис. 1.8 Графический интерфейс рефакторинга.

Разработчики среды Eclipse ограничились базисными средствами рефакторинга, средства автоматического рефакторинга в данной среде не «AutoRefactoring» разработаны.


    1. ^ IDEA

Среда разработки IDEA является платной средой направленной на язык программирования Java. Эта среда еще в 2001 году ввела широкий набор встроенных инструментов для рефакторинга, став первой на рынке «AutoRefactoring» средой разработки с возможностью рефакторинга программного кода. На уровне среды реализовано большая часть общих способов рефакторинга для Java кода. Перечень способов рефакторинга данной среды представлен в сравнительной таблице 1.

В IntelliJ IDEA существует функция «AutoRefactoring» автоматического аудита программного кода – ^ Code Inspection. Основное предназначение ее – автоматический анализ программки на предмет обычных либо неприемлемых по различным причинам неверных приемов программирования. После анализа программного кода юзер может выполнить предопределенные деяния, к примеру «AutoRefactoring», использовать новый, облегченный формат цикла в Java SE 5. При этом, преобразования среда выполнит сама – удалит переменную итератора, создаст переменную экземпляра коллекции и конвертирует формат цикла []. На рисунке 1.9 изображен пример работы «AutoRefactoring» Code Inspection.



Рис. 1.9 Пример работы Code Inspection.


Среда IDEA имеет модульную структуру и позволяет внедрять в себя модули посторониих производителей. В ближайшее время существенно возросло количество модулей посторониих производителей – как бесплатных, так и «AutoRefactoring» платных. На рынке средств рефакторинга и аудита начального кода для платформы IDEA является компания Sixth & Red River Software, которая предлагает целую линейку модулей:



На рисунке 1.10 изображен пример «AutoRefactoring» работы модуля Refactor-J.



Рис.1.10 Пример работы модуля Refactor-J.


На рисунке 1.11 изображен пример работы модуля Inspection-JS.



Рис 1.11 Пример работы модуля Inspection-JS.


Комбинирование аудита программного кода с элементами рефакторинга дает возможность автоматизировано отыскивать объекты кода «AutoRefactoring», к которым можно применить некие способы рефакторинга, не прибегая к просматриванию кода. Данная особенность позволяет сконцентрировать внимание на написании кода, предоставив системе рутинную работу по проверке корректности кода.


Среда разработки «AutoRefactoring» IDEa употребляет в собственной работе способы автоматического рефакторинга на базе шаблонов, это делает её более конкурентно способной на рынке средств разработки. Но данная реализация автоматического рефакторинга базирована не на свойствах программного кода, а на шаблонах «AutoRefactoring» неверного кода. Автоматический рефакторинг на базе шаблонов ограничивается общими представлениями о корректности написания программного кода, а не на свойствах кода. Такая реализация впрямую находится в зависимости от опыта и личного «AutoRefactoring» подхода программера, составляющего шаблоны.


      ^ Сравнительная черта сред разработки имеющих средства рефакторинга.

Таблица 1.

Сравнительная черта сред разработки.




IDEA

Eclipse

NetBeans

Together

Visual Studio

Открытость начальных кодов

-

+

+

-

-

Бесплатность

-

+

+

-

-

Возможность прибавления модулей посторониих разработчиков



+



+



+


-


+

Поддержка обществом программистов

-

+

+

-

-

Наличие средств автоматического рефакторинга

+

-

-

-

-

Возможность доработки

+

+

+

-

+

Подсчет метрик

+

+

+

+

+




    1. Выводы

Проведенный сравнительный «AutoRefactoring» анализ современных сред разработки с целью обнаружения реализаций автоматического рефакторинга выявил последующее:


Из обзора видно, что средствами автоматического рефакторинга обладает только ^ IDEA и Together «AutoRefactoring», но они основаны не на свойствах программного кода, а на шаблонах неверного кода. Данная реализация автоматического рефакторинга не стопроцентно удовлетворяет потребности разработчиков. Основными недочетами таковой реализации являются:


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


  1. ^ ПОСТАНОВКА Задачки


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


Для пояснения понятия метрико-ориентированного рефакторинга разглядим автоматический рефакторинг задачи «чужой метод». Если в классе C имеется способ, в каком нет использования полей этого класса, и этот способ вызывается «AutoRefactoring» повсевременно в способах класса А, то имеет смысл сделать "Перемещение способа" из класса C в класс А. Разглядим проблемный код:

class A

{

void B (C c_obj)

{



c_obj.D();



}

}

class C

{




public void D ()

{

jOptionPane «AutoRefactoring».showMessageDialog(null,"Test");

}




}

Из приведенного листинга видно, что способ D принадлежит классу С, но не употребляет его полей. Также способ D вызывается классом А и не вызывается родительским классом С «AutoRefactoring». Тоже самое можно обрисовать метриками:

Если условие – (ЧИПК(С,D) = 0 & ЧИМК(D,C) = 0& ЧВМК(D,А) !=0) производится, то можно прийти к выводу, что способ D является «чужим методом «AutoRefactoring»» для класса С и его нужно перенести в класс А.

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


class A

{

public void D ()

{

jOptionPane.showMessageDialog(null,"Test");

}


void «AutoRefactoring» B ()

{



D();



}

}


class C

{



}

  1. ^ РАЗРАБОТКА И ОТЛАДКА ПРОГРАММНОЙ СИСТЕМЫ Автоматического РЕФАКТОРИНГА



    1. Выбор метода решения намеченной цели.



Для начала написания модуля автоматического рефакторинга нужно найти среду, для которой будет сотворен данный модуль «AutoRefactoring». Из имеющихся сред можно исключить Together т.к. он не поддерживает модульную архитектуру. Платные среды не подходят для разработки из-за отсутствия способности их приобретения. Из оставшихся сред – NetBeans и Eclipse самой животрепещущей остается среда «AutoRefactoring» NetBeans, т.к. на нынешний момент она развивается стремительней, чем Eclipse. Также существует целое общество программистов – энтузиастов повсевременно усовершенствующих данную платформу. Основной язык этой платформы – Java, в ближайшее время он стал «AutoRefactoring» главным языком для написания корпоративных приложений.

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

NetBeans предоставляет API для рефакторинга средствами самой системы и в среде есть модуль «AutoRefactoring» подсчета метрик программного кода. Потому задачка модуля автоматического рефакторинга сводится к обработке значений метрик и принятию решения об использования API рефакторинга, для разрешения появившейся трудности. Также в среде реализована возможность сотворения «AutoRefactoring» подсказок и частей контекстного меню посторонними модулями. Благодаря этой способности модуль автоматического рефакторинга сумеет ненавязчиво преподнести юзеру информацию об обнаруженной дилемме и варианты ее решения.

Оценивая вышеупомянутое и принимая во внимание выявленные недочеты «AutoRefactoring» у имеющихся средств увеличения свойства кода, намеченную цель можно сконструировать так – нужно спроектировать и создать встраиваемый модуль автоматического рефакторинга, который должен владеть последующими чертами:





    1. Техническое задание на разработку модуля автоматического рефакторинга (Р.П.60816-01)


Введение
Разработке подлежит программная система, представляющая «AutoRefactoring» собой модуль для платформы NETBEANS версии 6.5 для автоматического рефакторинга программного кода. Модуль внедряется в платформу и работает с кодом, который на этот момент активен в редакторе кода. Модуль воспринимает на вход набор метрик, описывающих «AutoRefactoring» данный код, анализирует его и воспринимает решение о необходимости рефакторинга данного кода.


      ^ Основания для разработки

Основанием для разработки программной системы автоматического рефакторинга стало написание дипломного проекта в Санкт-Петербургском муниципальном политехническом институте «AutoRefactoring».

^ Предназначение разработки
Система создана для автоматического рефакторинга на базе численных черт программного кода в среде NETBEANS 6.5

^ Требования к программному изделию
Требования к многофункциональным чертам.

Разрабатываемый модуль - AutoRefactoring должен обеспечивать выполнение перечисленных ниже функций «AutoRefactoring»:

Требования к среде разработки и оборудованию:



^ Требования к программной документации
В состав программной документации заходит:



^ Порядок контроля и приемки
Контроль и приемка разработки осуществляются методом автоматического рефакторинга заблаговременно приготовленного кода «AutoRefactoring», в каком искусственно сделаны проблемные участки. Модуль рефакторинга должен безошибочно выявить проблемные участки кода, найти сущность препядствия и предложить варианты ее исправления. После выбора метода решения выявленной задачи, модуль должен безошибочно «AutoRefactoring» произвести рефакторинг. Анализируемая программка подлежит компиляции, и ее функциональность сравнивается с функциональностью той же программки, но до рефакторинга. Если функциональность обеих программ схожа, то можно прийти к выводу о правильной работе модуля автоматического рефакторинга «AutoRefactoring».

    1. ^ Взаимодействие модулей в среде NetBeans



Среда разработки IDE Netbeans базируется на платформе NetBeans. Платформа содержит в себе набор способов, упрощающих внедрение окон, действий, файлов и других частей, специфичных для приложения. Неважно какая отдельная «AutoRefactoring» особенность платформы NetBeans может быть представлена в отдельном модуле среды NetBeans. Модулем Netbeans является группа классов языка Java, метаданные и конфигурационные файлы модуля. Классы модуля предоставляют среде NetBeans особые способности. Благодаря таковой «AutoRefactoring» архитектуре, каждый разработчик может написать модуль, реализовывающий нужные ему возможности. На рисунке 3.1 изображена схема взаимодействия модуля со средой NetBeans.



Рис. 3.1 Взаимодействие модуля со средой NetBeans

Во время работы модулей появляется необходимость хранения опций, данных «AutoRefactoring» и хоть какой другой инфы. Для централизованного хранения данных модулей, в среде NetBeans сотворен глобальный реестр. Для использования реестра, модулю нужно зарегистрировать, под определенным именованием и записать, нужный набор данных. Чтение данных «AutoRefactoring» происходит по зарегистрированному имени данных.

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



Рис. 3.2 Взаимодействие модулей в среде NetBeans

    1. Разработка архитектуры среды



Задачка автоматического рефакторинга начального кода разбивается на «AutoRefactoring» несколько поочередных шагов обработки, приведенных в техническом задании.

Разрабатываемый модуль - AutoRefactoring, будет работать в паре с уже разработанным модулем подсчета метрик – MetricExplorer. MetricExplorer инициализируется действиями юзера. Если текст начального кода поменялся, сохранился «AutoRefactoring» либо фокус перебежал на другой проект – происходит подсчет и сохранение метрик, активного проекта в глобальном реестре. Модуль автоматического рефакторинга, во время анализа начального кода, обращается к глобальному реестру и получает данные с метриками «AutoRefactoring». Данные метрик анализируются, и принимается решение о необходимости рефакторинга, определяется объект и способ рефакторинга. Формируется и отображается юзеру контекстное меню с вероятными вариациями исправления обнаруженной задачи. На рисунке 3.3 изображена общая схема функционирования системы «AutoRefactoring» автоматического рефакторинга.

Внутреннее устройство модуля рефакторинга состоит из 3-х блоков:


На рисунке 3.4 приведена общая схема взаимодействия блоков модуля автоматического рефакторинга.





Набросок 3.3. Схема работы системы автоматического «AutoRefactoring» рефакторинга.



Рис. 3.4 Схема взаимодействия блоков модуля автоматического рефакторинга.

    1. Блок разметки


Зачинателем работы модуля автоматического рефакторинга является блок разметки. Механизм подчеркивания начального кода и механизм сотворения контекстного меню, предоставляемый средой, реализованы последующим образом: парсер «AutoRefactoring» редактора кода проходит по дереву начального кода и анализирует каждый элемент; при обнаружении синтаксической ошибки происходит подчеркивание, анализируемого на этот момент участка кода; дальше парсер делает контекстное меню содержащее перечень вероятных решений «AutoRefactoring» появившейся задачи; происходит анализ последующего элемента и так до конца дерева; если юзер произведет изменение начального кода, парсер начинает анализ с самого начала. Пример работы парсера представлен на рисунке 3.5.




Рис. 3.5 Пример «AutoRefactoring» работы парсера начального кода в среде NetBeans.


Среда NetBeans предоставляет возможность подчеркивания нужного участка кода и сотворения собственного контекстного меню посторонними модулями. Для этого нужно сделать модуль, содержащий класс, наследующий класс «AutoRefactoring» AbstractHints, и переопределяющий его способы. Основным способом, отвечающим за подчеркивание и создание контекстного меню, является способ Run. Данный способ вызывается автоматом парсером начального кода. Конструктор способа Run, получает от парсера объект анализируемого «AutoRefactoring» элемента кода. Дальше объект отчаливает на вход блока принятия. Блок принятия решения анализирует приобретенный элемент и возвращает описание имеющейся препядствия и перечень способов рефакторинга решающих найденную делему. По получено инфы от блоков принятия решения «AutoRefactoring» происходит формирование класса

org.​netbeans.​spi.​ditor.hints.ErrorDescription, описывающего метод подчеркивания, информацию о дилемме и перечень способов вероятных решений препядствия.



Рис. 3.6 Схема работы блока разметки.


    1. Блок принятия решения



Блок принятия решения «AutoRefactoring» опрашивает глобальный реестр на наличие данных метрик, если данные находятся либо с момента последнего опроса они поменялись, происходит запрос массива метрик. После получения перечня метрик происходит их анализ. По имени метрики и «AutoRefactoring» её значению модуль определяет наличие либо отсутствие задачи. Если неувязка существует, AutoRefactoring определяет методы решения данной препядствия. Метод решения трудности определяется на базе инфы о метрике. Каждой метрике соответствует собственный способ решения трудности. Если «AutoRefactoring» это метрика NPA и её значение больше мало допустимого, т.е. в коде есть открытые поля, то блок принятия сформирует информацию о дилемме «открытое поле» и будет советовать юзеру использовать рефакторинг «AutoRefactoring» Encapsulate Field Refactoring. Если метрика LOC и длина класса превысило допустимое значение, то блок принятия решения сформирует информацию о дилемме «большой метод» и будет советовать использовать рефакторинг Introduce Method и Move Method «AutoRefactoring», чтоб уменьшить размер класса.

Блок разметки посылает на вход блока принятия решения объект кода, который подлежит анализу. Данный объект ищется в перечне проблемных частей. При обнаружении соответствия, блок принятия решения возвращает блоку «AutoRefactoring» разметки информацию о отысканной дилемме и ссылки на способы рефакторинга из блока проведения рефакторинга. Схема работы блока принятия решения описана в рисунке 3.7



Рис 3.7 Схема работы блока принятия решения.


    1. Блок рефакторинга



Платформа «AutoRefactoring» NETBEANS предоставляет API для использования способов рефакторинга поставляемых совместно со средой. Данное API содержит в себе 2 класса: «refactoring» и «refactoring plugin». Эти модули делают всю работу рефакторинга. Есть еще класс, реализующий интерфейс для юзера «AutoRefactoring», но в модуле AutoRefactoring он не употребляется, т.к. обмен данными с модулем рефакторинга осуществляется программно.

Абстрактная (non-visual) часть реализации логики рефакторинга находится в 2-ух классах: «refactoring» и «refactoring plugin»

^ Класс «AutoRefactoring» «refactoring»
Класс refactoring служит в качестве API для введения в рефакторинг. Также он употребляется классом refactoring plugin для определения характеристик рефакторинга. Сам класс не делает, практически, ни какой работы – всё делается классом «AutoRefactoring» refactoring plugin. Класс refactoring обычно содержит только принятие и отправку характеристик рефакторинга.

Класс refactoring должен быть помещен в org.netbeans.modules.refactoring. experimental и должен называться RefactNameRefactoring – для примера Pull Up рефакторинг «AutoRefactoring» должен называться PullUpRefactoring. Классы должны наследоваться от AbstractRefactoring (из Refactoring API) и должны быть определенны как final. Конструктор класса обычно воспринимает элементы, которые будут подлежать рефакторингу. Потом они могут быть применены модулями «AutoRefactoring» рефакторинга для проверки критерий способности выполнения рефакторинга.

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

^ Класс «refactoring plugin»
Каждый рефакторинг имеет модуль, он и делает всю работу рефакторинга. Модуль рефакторинга должен предоставить основной модуль, который делает рефакторинг в J «AutoRefactoring»2SE. Другие модули могут добавлять их собственные модули, которые могут позволить им участвовать в рефакторинге.

Класс рефакторинг должен находиться в org.netbeans.modules.refactoring.experimental.plugin

и называться RefactNameRefactoringPlugin

4 способа, которые «AutoRefactoring» должен реализовывать модуль рефакторинга:

Реализация этих способов требуется внедрением нового API языка Java.


Разглядим работу модуля на примере выполнения рефакторинга «Переименование» (Rename).

C «AutoRefactoring» точки зрения юзера:

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


Исходя из убеждений программера:

Когда юзер вызывает данный тип рефакторинга происходит последующее:

После вызова способа рефакторинга и указания нового имени объекта вызывается класс RenameRefactoringPlugin, в каком реализован данный рефакторинг «AutoRefactoring». Разглядим его более тщательно:

Конструктор:

В конструкторе единственный входной параметр - объект класса RenameRefactoring, который употребляется для рефакторинга Rename. Дальше конструктор строит дерево из всех файлов начальных кодов, пробегая по нему «AutoRefactoring», добавляет в коллекцию элементы, которые подлежат рефакторингу. На этом работа конструктора завершается.


Дальше вызываются способы проверки способности рефакторинга

В способе preCheck реализована препроверка критерий рефакторинга таких как:

Здесь же определяется принадлежность цели к определенному типу – способ, переменная, функция, класс и др.


Дальше идет способ fastCheckParameters реализующий резвую проверку характеристик.

Проверяются последующие характеристики:


Последнее действие, которое применяется – это выполнение способа prepare, который реализует подготовку к «AutoRefactoring» применению рефакторинга. Если для рефакторинга нет ни 1-го элемента, то функция заканчивается. В этой функции происходит оповещение всех зарегистрированных «слушателей» о начале рефакторинга и создание задания для рефакторинга. Если все изготовления прошли «AutoRefactoring» без ошибок происходит само изменение избранной цели.




Рис. 3.8 Пример препядствия – «Открытое поле»




Рис. 3.9 Перечень вероятных решений задачи «Открытое поле».



Рис.3.10 Код после внедрения рефакторинга «EncapsulateFieldRefactoring».




Рис.3.11 Пример препядствия «Чужой метод «AutoRefactoring»».

Рис.3.12 Перечень вероятных решений трудности «Чужой метод».



Рис.3.13 Код после внедрения рефакторинга «MoveMethod».
    1. ^ Панель опций автоматического рефакторинга.


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

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

Даная панель содержит несколько вкладок, отвечающих за различные характеристики системы. К примеру, вкладка «Editor» отвечает за опции редактора кода среды, вкладка «Fonts & Colors» отвечает за зрительное «AutoRefactoring» оформление. В среде разработки NetBeans реализован механизм сотворения панелей параметров для посторониих модулей. Панель опций представляет обыденную java панель, которая встраивается в всякую вкладку меню опций IDE NetBeans. На панели можно расположить любые элементы «AutoRefactoring» графического интерфейса, отражающие нужные функции.

Встраиваемая java панель наследуется от класса OptionsPanelController и должна реализовывать два способа: store() и load(). Среда NetBeans, для хранения параметров посторониих модулей, предоставляет глобальный реестр «AutoRefactoring» NetBeans, в который можно записать все нужные характеристики. В способе store() нужно воплотить воззвание к глобальному реестру NetBeans и записать в него характеристики модуля. Способ store() вызывается автоматом, когда происходит закрытие панели «AutoRefactoring» параметров. Способ load() вызывается, когда юзер открывает панель опций. В нем нужно воплотить воззвание к глобальному реестру, получение от него данных и отображение их на панели параметров.

Модуль автоматического рефакторинга получает данные «AutoRefactoring» только о метриках программного кода. Принимать решение о наличии препядствия, модулю приходится без помощи других. Т.к. для 1-го программера 30 строк в способе является наибольшим допустимым числом, для другого 50 – еще обычный показатель. Появившаяся неувязка «AutoRefactoring» была решена, т.к. функции модуля автоматического рефакторинга содержат в себе настройку каждого «запаха» начального кода раздельно. Также на панели опций автоматического рефакторинга реализована возможность отключения как самого модуля, так и «AutoRefactoring» каждого «запаха» раздельно. На панели отображается перечень игнорируемых частей, которые не анализируются блоком принятия решения. Хоть какой элемент данного перечня можно удалить. На рисунке 3.14 изображена сделанная панель модуля автоматического рефакторинга.



Рис «AutoRefactoring» 3.14 Панель опций модуля автоматического рефакторинга
    1. ^ Проведение тесты программной системы расчета метрик


Приобретенный модуль был удачно внедрен в платформу NETBEANS 6.5. Также на данную платформу удачно был установлен модуль MetricExplorer.

В рамках описанной программки испытаний был проанализирован программный «AutoRefactoring» код, содержащий заблаговременно приготовленные проблемные зоны.

Все проблемные зоны были обнаружены и предложены варианты исправления этих недочетов. После исправления недочетов, программка, содержащая исправленный начальный код, была откомпилирована. Сопоставление функциональности 2-ух версий программки «AutoRefactoring», до рефакторинга и после, показало, что обе программки не отличаются друг от друга. Это свидетельствует о правильной работе модуля.

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

    1. Соответствие программной системы расчета метрик многофункциональным требованиям


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

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

  1. АНАЛИЗ РАБОТЫ ПРОГРАММНОЙ СИСТЕМЫ



    1. ^ Обзор способностей разработанной системы «AutoRefactoring»


Разработанный модуль реализует последующие способности:





Модуль подчеркивает отысканный проблемный участок желтоватой волнистой линией. С левой стороны редактора, напротив подчеркнутого участка, отображается раскрывающийся перечень, который содержит вероятные виды «AutoRefactoring» рефакторинга данного кода и информацию об обнаруженной дилемме. Также можно добавить обнаруженный участок кода в перечень игнорируемых частей и в предстоящем он не будет выделяться. На рисунке 4.1 изображен пример раскрывающегося перечня «AutoRefactoring», содержащего вероятные виды рефакторинга.



Рис.4.1 Перечень вероятных решений задачи «Чужой метод».


В функциях среды разработки добавлена панель опции модуля. В панели опции модуля можно указать перечень анализируемых заморочек, настроить функции каждого «AutoRefactoring» рефакторинга раздельно. К примеру, указать наибольший размер класса, превысив который, класс будет считаться огромным. Также панель опций содержит перечень игнорируемых частей. Каждый элемент перечня можно удалить из него. На рисунке 4.2 изображена панель опций «AutoRefactoring» модуля.

    1. ^ Недочеты и ограничения разработанной программной системы


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

Нужно создать «AutoRefactoring» метод подчеркивания определенного участка, без разбора всего анализируемого программного кода. На нынешний момент блок подчеркивания модуля автоматического рефакторинга анализирует весь программный код для определения элемента подчеркивания, это вызвано особенностями архитектуры среды разработки и «AutoRefactoring» предоставляющимися ею способностями подчеркивания.

    1. ^ Предстоящее развитие

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

Для увеличения быстродействия нужно в предстоящем усилить интеграцию модуля «AutoRefactoring» в среду разработки.

Для доведения разработанного модуля до уровня законченного продукта нужно добавить в него возможность проведения основного набора способов рефакторинга и расширить набор решений заморочек программного кода. Также нужно расширить способности аудита начального «AutoRefactoring» кода. Перечень основного набора способов рефакторинга находится в приложении 7.


ЗАКЛЮЧЕНИЕ
В итоге выполнения дипломного проекта в согласовании с техническим заданием разработан модуль автоматического рефакторинга на базе численных черт программного кода.

Для выполнения данной «AutoRefactoring» задачки нужно было ознакомиться с существующими средствами рефакторинга, применяемыми в современных средах разработки и численными чертами программного кода. На основании этих данных выделен набор метрик начального кода, который можно использовать для «AutoRefactoring» оснований внедрения способов рефакторинга.

В проектной части дипломной работы была разработана архитектура программной системы, методы ее функционирования, были выбраны средства для разработки модуля, исследованы правила работы с данными средствами, был разработан программный модуль «AutoRefactoring» системы. В качестве инструментальных средств для программной реализации использовалась система разработки Netbeans 6.5 и язык программирования Java.

Было выполнено тестирование разработанной системы, выявленные ошибки были исправлены. Было проанализировано соответствие разработанной программной системы требованиям «AutoRefactoring» технического задания, и общим поставленным задачкам, были проанализированы недочеты системы и обозначены пути устранения выявленных недочетов, были описаны пути доработки функционала системы.

На момент сотворения модуля схожая реализация автоматического «AutoRefactoring» рефакторинга не встречается ни в какой среде разработки. Внедрение модуля автоматического рефакторинга упрощает процесс и улучшает качество написания программки, т.к. позволяет программеру сконцентрировать внимание на написании программки, предоставив рутину проверки корректности написания кода модулю «AutoRefactoring» автоматического рефакторинга.
^ Перечень ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. А.Зозуля, В.Ицыксон, Метрический подход к обоснованию способов рефакторинга, АИВТ, 2003г.

  2. Д. Галлардо, Рефакторинг для всех (http://www.ibm.com/developerworks/ru/library/os-ecref «AutoRefactoring»/index.html)

  3. Словари и энциклопедии на Академике (http://dic.academic.ru/dic.nsf/ruwiki/176953)

  4. М. Фаулер, Рефакторинг: Улучшение имеющегося кода, Символ-Плюс, 2004г.

  5. М. Мантила «Описание заморочек кода.» http://www.soberit.hut.fi «AutoRefactoring»/mmantyla/BadCodeSmellsTaxonomy.htm

  6. М.Фловер, Рефакторинг: Улучшение архитектуры начального кода, Канада: Эдисон-Вестли, 2000.

  7. Ф.Симон, Ф.Стеинбрюкнер, К.Леверенз: «Рефакторинг базирующийся на метриках» – Технический институт Коттбас, Германия.

  8. Introduction to Refactoring (http://www.jetbrains «AutoRefactoring».com/idea/training/demos.html#Refactoring)

  9. Refactoring Module Home (http://refactoring.netbeans.org/)

  10. Refactoring Developer Guide (http://refactoring.netbeans.org/refactorings/devguide.html)

  11. Refactor!™ Pro for Visual Studio® (http://www «AutoRefactoring».devexpress.com/Products/Visual_Studio_Add-in/Refactoring/)

  12. Refactoring (http://msdn.microsoft.com/en-us/library/719exd8s.aspx)

  13. The Most Intelligent Add-In To Visual Studio (http://www.jetbrains.com «AutoRefactoring»/resharper/)

  14. User Guide for Borland® Together® Architect 1.1
ПРИЛОЖЕНИЕ 1


Разработка программного модуля автоматического рефакторинга.


Техническое задание

(Р.П.60816-01)

2 листа


2009 г.

Введение

Разработке подлежит программная система, представляющая собой модуль для платформы NETBEANS версии 6.5 для автоматического рефакторинга программного «AutoRefactoring» кода. Модуль внедряется в платформу и работает с кодом, который на этот момент активен в редакторе кода. Модуль воспринимает на вход набор метрик, описывающих данный код, анализирует его и воспринимает решение о необходимости «AutoRefactoring» рефакторинга данного кода.


      ^ Основания для разработки

Основанием для разработки программной системы автоматического рефакторинга стало написание дипломного проекта в Санкт-Петербургском муниципальном политехническом институте.

^ Предназначение разработки
Система создана для автоматического рефакторинга на базе численных черт программного «AutoRefactoring» кода в среде NETBEANS 6.5

^ Требования к программному изделию
Требования к многофункциональным чертам.

Разрабатываемый модуль - AutoRefactoring должен обеспечивать выполнение перечисленных ниже функций:

Требования к среде разработки и оборудованию:



^ Требования к программной документации
В состав «AutoRefactoring» программной документации заходит:



^ Порядок контроля и приемки
Контроль и приемка разработки осуществляются методом автоматического рефакторинга заблаговременно приготовленного кода, в каком искусственно сделаны проблемные участки. Модуль рефакторинга должен безошибочно выявить «AutoRefactoring» проблемные участки кода, найти сущность трудности и предложить варианты ее исправления. После выбора метода решения выявленной трудности, модуль должен безошибочно произвести рефакторинг. Анализируемая программка подлежит компиляции, и ее функциональность сравнивается с «AutoRefactoring» функциональностью той же программки, но до рефакторинга. Если функциональность обеих программ схожа, то можно прийти к выводу о правильной работе модуля автоматического рефакторинга.

ПРИЛОЖЕНИЕ 2


Разработка программного модуля автоматического рефакторинга.


Описание программки

(Р «AutoRefactoring».П.68167-09.13.01)

2 листа


2009 г.

^ Общие сведения

Модуль подчеркивает отысканный проблемный участок желтоватой волнистой линией. С левой стороны редактора, напротив подчеркнутого участка, отображается раскрывающийся перечень, который содержит вероятные виды рефакторинга данного кода и информацию об обнаруженной «AutoRefactoring» дилемме. В функциях среды разработки добавлена панель опции модуля. В панели опции модуля можно указать перечень анализируемых заморочек, настроить функции каждого рефакторинга раздельно. К примеру, указать наибольший размер класса, превысив который, класс будет считаться «AutoRefactoring» огромным. Также панель опций содержит перечень игнорируемых частей. Каждый элемент перечня можно удалить из него. На рисунке 4.2 изображена панель опций модуля.

^ Функциональное предназначение

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

^ Описание логической структуры

Разработанное средство автоматического рефакторинга состоит из 3-х блоков: разметки, принятия решения и рефакторинга. Блок разметки отвечает за подчеркивание найденного проблемного участка и отображение перечня вероятных путей решения «AutoRefactoring» задачи. Блок принятия решения занимается анализом значений метрик, поиском проблемных участков кода и составлением перечня вероятных решений отысканной препядствия. Блок рефакторинга реализует исправление отысканной задачи.

^ Применяемые технические средства

Программка может работать на хоть «AutoRefactoring» какой операционной системе с поддержкой графического интерфейса юзера и установленной средой разработки Netbeans версии не ниже 6.0.

^ Вызов и загрузка приложения

Нужно установить модули автоматического рефакторинга «AutoRefactoring» и подсчета метрик «MetricExplorer» в среду Netbeans «AutoRefactoring».

ПРИЛОЖЕНИЕ 3


Разработка программного модуля автоматического рефакторинга.


Программка и методика испытаний программки

(Р.П.68167-09.51.01)

2 листа


2009 г.


^ Объект испытаний

Наименование программки: «Модуль автоматического рефакторинга». Данный модуль употребляется для автоматического рефакторинга начального кода программного обеспечения в «AutoRefactoring» среде NetBeans

^ Цель испытаний

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

^ Требования к программке

Требования к многофункциональным чертам.

Разрабатываемый модуль - AutoRefactoring должен обеспечивать выполнение перечисленных ниже функций:

Требования к среде разработки и оборудованию:
^ Требования к программке
Функционирование программной системы не должно приводить к сбою (фатальному нарушению работы системы). Требования к многофункциональным чертам приложения указаны в ТЗ.


Состав и порядок испытаний

Программными средствами отладки «AutoRefactoring» являются:

Техническим средством отладки может являться компьютер со последующей малой конфигурацией:


Программка «AutoRefactoring» испытаний включает проверку последующих многофункциональных способностей среды:


Способы испытаний

В качестве способа испытаний был избран стандартный способ, при котором происходит проигрывание главных ситуаций «AutoRefactoring», возникающих при работе юзера с программкой.

ПРИЛОЖЕНИЕ 4


Разработка программного модуля автоматического рефакторинга начального кода программного обеспечения.


Текст программки

(Р.П.68167-09.12.01)

1 лист


2009 г.


Все начальные коды приведены на CD-R диске, прилагаемом к объяснительной «AutoRefactoring» записке. Для их просмотра нужен компьютер с CD-приводом, также хоть какой текстовый редактор.

ПРИЛОЖЕНИЕ 5


Разработка программного модуля автоматического рефакторинга начального кода программ.


Сравнительная черта средств рефакторинга

(Р.П.68167-01)

1 лист


2009 г.




IDEA

Eclipse

NetBeans

Together

Visual Studio

Извлечь способ

+

+

+




+

Поменять характеристики «AutoRefactoring» способа

+

+

+







Инкапсулировать поле

+

+

+

+

+

Поднять на уровень выше

+

+

+

+




Опустить на уровень ниже

+

+

+

+




Перемещение

+

+

+

+

+

Переименование

+

+

+

+

+

Переместить с нижнего уровня на верхний

+

+

+







Извлечь интерфейс

+

+

+

+

+

Извлечь суперкласс

+

+

+

+




Неопасное удаление

+

+

+







Сделать статичным

+

+

+







Копировать

+

 










Переместить дубликаты кода

+

 










Ввести переменную

+

 










Ввести поле

+

+










Ввести константу

+

 










Ввести параметр

+

+







+

Перемещение конструктора с конфигурацией способа

+

 










Сгенерировать шаблонный класс

+

+










Перенести пакет

+

+












ПРИЛОЖЕНИЕ 6


Разработка программного «AutoRefactoring» модуля автоматического рефакторинга начального кода программ.


Список базисных средств рефакторинга

(Р.П.68167-01)

1 лист


2009 г.



ПРИЛОЖЕНИЕ 7


Разработка программного модуля автоматического рефакторинга начального кода программ.


Управление юзера модуля AutoRefactoring

(Р.П.68167-01)

1 лист


2009 г.


Данная аннотация создана для программера, который будет использовать «AutoRefactoring» модуль автоматического рефакторинга – AutoRefactoring в собственный работе.

Для того чтоб начать работу модуля, нужно зайти в функции среды разработки NetBeans 6.5. В пт Miscellaneous нужно избрать вкладку AutoRefactoring Options. В данной вкладке «AutoRefactoring» имеется перечень всех заморочек, анализируемых модулем. Нужно поставить галочку напротив наименования подходящей препядствия, тогда данная неувязка будет анализироваться модулем. Также в этой вкладке можно настроить характеристики каждой препядствия. К примеру, указать «AutoRefactoring» наибольший размер класса, превысив который, класс будет считаться огромным. После опции модуля избранные задачи будут анализироваться модулем. При обнаружении задачи, в редакторе начального кода будут отображаться отысканные проблемные участки кода со перечнем «AutoRefactoring» советов к решению данной препядствия.

Если юзер не желает, чтоб отысканная неувязка подчеркивалась, он может добавить этот участок кода в перечень игнорируемых частей. Для этого из перечня предложенных методов устранения препядствия можно «AutoRefactoring» избрать «Не рассматривать в дальнейшем». После выбора этого пт, данный участок будет добавлен в перечень игнорируемых частей, который отображается в функциях рефакторинга. Также в функциях рефакторинга можно редактировать перечень игнорирования.

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


ПРИЛОЖЕНИЕ 8


Разработка программного модуля автоматического рефакторинга начального кода программ.


Спецификация комплекта программного обеспечения

(Р.П.68167-01)

1 лист


2009 г.


Обозначение

Наименование

Примечания




Документация




Р «AutoRefactoring».П.68167-01

Техническое задание на разработку модуля автоматического рефакторинга




Р.П.68167-09.12.01

Текст программки




Р.П.68167-09.13.01

Описание программки




Р.П.68167-09.51.01

Программка и методика испытаний











aukcion-sostoitsya-25-iyulya-2013-g-v-11-00-chasov-po-adresu-g-ejsk-ul-sverdlova-106-kab-18-malij-zal.html
aukcion-v-pomosh-detyam-sobral-bolee-1-mln-rublej-mozhno-li-nazvat-chudom-vizdorovlenie-ot-tyazheloj-bolezni-dumayu.html
aukcionnaya-dokumentaciya-dlya-provedeniya-otkritogo-aukciona-po-priobreteniyu-prava-na-zaklyuchenie-dogovora-vodopolzovaniya-v-chasti-ispolzovaniya-uchastka-akvatorii-reki-volga-ploshadyu-0012-km.html