Типичные черты исследовательского проекта




Скачать 381.19 Kb.
НазваниеТипичные черты исследовательского проекта
страница7/7
Дата публикации14.05.2014
Размер381.19 Kb.
ТипЛитература
literature-edu.ru > Лекции > Литература
1   2   3   4   5   6   7

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


Реализация поведения классов, описанных на этапе проектирования.

Исходные данные для программирования


  • Модель класса, содержащая спецификации его предков, атрибутов и сервисов.

  • Набор внешних тестов для класса.

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


Реализация класса на языке программирования, удовлетворяющая всем тестам.

ОО Тестирование


Тесты также рассматриваются с ОО точки зрения. Внутренние тесты являются сервисами тестируемого объекта. Внешние тесты являются объектами-контейнерами, агрегирующими тестируемый объект.

Феодальное правило радикально облегчает тестирование. Для полноценного тестирования объекта требуется поместить его в естественное окружение. При выполнении феодального правила окружение объекта состоит только из его владельца и агрегатов владельца.

Исходные данные для тестирования


  • Модель системы/ домена/ класса полученная на этапе анализа/ проектирования/ программирования.

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

  • Локализованные ошибки предыдущего этапа тестирования.

Результаты тестирования


  • Набор новых тестов, реализующих случаи использования.

  • Набор новых тестов, покрывающих ошибочные ситуации.

  • Диагностика вновь обнаруженных ошибок.

Жизненный цикл тестов


Тесты тесно связаны с текущей реализацией системы. Она может не только расширяться, но и активно изменяться. Это может быть вызвано изменением внешних требований к системе или переработкой кода. Часть тестов при этом становится неактуальной.

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

Тестирование пользовательского интерфейса


Пользовательский интерфейс – наиболее сложный для тестирования аспект системы. Его полностью автоматическое тестирование включает в себя создание виртуального пользователя, управляемого искусственным интеллектом. Это обычно намного перекрывает сложность самой системы. Поэтому для большинства систем автоматическое тестирование ПИ не проводится.

Стратегия тестирования:

  1. Для автоматического тестирования других аспектов системы пишутся тестовые объекты, подменяющие визуальные компоненты и эмулирующие взаимодействие пользователя с системой.

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

  3. Проводится общее ручное тестирование ПИ.

Тестирование производительности


Одним из важных требований к системе является ее эффективность.

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

Желательно определить формальные требования к эффективности на основе внешних тестов, моделирующих реальные случаи использования. Это является необходимым требованием для оптимизации.

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

Для облегчения исследования производительности кода используется инструментальное средство Профайлер (Profiler). Профайлер позволяет после выполнения кода, узнать какие методы наиболее часто вызывались, и какую часть общего времени система провела внутри каждого метода. Это позволяет использовать в качестве тестов производительности небольшой набор Простых тестов, содержащих характерные случаи использования системы.

ОО Переработка кода


Переработка кода – в основном процесс исправления ошибок допущенных на этапе анализа и проектирования. Главная сложность заключается в том, что такие ошибки обычно обнаруживаются, когда уже написана значительная часть реализации системы. Простой возврат на этап проектирования или анализа равноценен удалению этой части.

Переработка кода является эквивалентным преобразованием кода. Эквивалентность проверяется с помощью тестов.

Исходные данные для переработки кода


ОО Модель системы/ доменов/ классов.

Набор тестов системы/ доменов/ классов.

Результат переработки кода


ОО Модель системы/ доменов/ классов, эквивалентная исходной.

Набор тестов системы/ доменов/ классов исправленный в соответствии с новой моделью.

Признаки необходимости переработки кода


  1. Добавление новых сервисов нарушает инкапсуляцию объекта.

  2. Дублирование кода.

  3. Длинный метод. Тело метода не влезает на экран.

  4. Большой класс. Класс содержит очень много методов или атрибутов.

  5. Длинный список параметров. Список параметров метода занимает несколько строк.

  6. Ленивый класс. Класс содержит всего несколько методов и атрибутов.

  7. Посредник. Большинство методов класса является посредниками для вызова методов других объектов.

  8. Отказ от унаследованного поведения. Методы класса перекрыты таким образом, чтобы отменить результат вызова методов предка или не передают управление методам предка.

Другие признаки см. в Refactoring.

Основные способы переработки кода


  • Перераспределение методов и атрибутов между существующими классами.

  • Замена «наследование/агрегация»

  • Выделение/удаление классов и наследования

  • Выделение/удаление методов

  • Выделение/удаление атрибутов

Другие способы см. в Refactoring.

Оптимизация


Оптимизация также является видом переработки кода. Цель оптимизации – повышение эффективности системы. Оптимизация – сложный, трудоемкий процесс, отнимающий много времени разработчика. В соответствии с правилом 20/80, 20% кода выполняются 80% времени. Таким образом, только оптимизация этих 20% кода может существенно повлиять на эффективность. Для определения этой области кода, требуются тесты эффективности.

Две основные причины неэффективности ОО кода:

1. Применение неэффективных структур данных и алгоритмов.

2. Инкапсуляция. Сокрытие реализации во многих случаях приводит к длинным цепочкам вызовов и передачи параметров, а также не позволяет организовать объекты на разных уровнях иерархии в эффективную структуру данных.

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

Использование тестов эффективности позволяет локализовать оптимизацию в небольшой области кода и уменьшить ее отрицательное влияние на структуру ОО модели системы.

Приложения

Базовые элементы ООП в Java


См. JLS.

Виртуальные методы: все, кроме объявленных с модификаторами private, static, final.

Нити и Синхронизация в Java

Реализация Read/Write Lock на Java


См. JCP

Литература


[OOA] Coad P., Yourdon E., Object-Oriented Analysis, Second Edition. Yourdon Press, 1991

[OOD] Coad P., Yourdon E., Object-Oriented Design, Second Edition. Yourdon Press, 1991

[Refactoring] Фаулер М. Рефакторинг, улучшение существующего кода. – Пер. с англ. –СПб: Символ-Плюс, 2003. – 423 с.

[JLS] James Gosling, Bill Joy, and Guy Steele. Java Language specification, Second Edition. Addison-Wesley, 2000

[Patterns] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

[JCP] Doug Lea, Concurrent Programming in Java, Design and Principles. Addison-Wesley, 1996

[Bouch] Буч Г., Объектно-ориентированный анализ и проектирование, с примерами на С++, 2-е изд. – Пер. с англ. – М.: Издательство Бином, СПб: Невский диалект, 1999 – 500 с.

[States] Шлеер С., Меллор С., Объектно-ориентированный анализ: моделирование мира в состояниях. – Пер. с англ. – Киев: Диалектика, 1993. – 240 с.

[Month] Брукс Ф., Мифический человеко-месяц или как создаются программные системы. – Пер. с англ. – СПб: Символ-Плюс, 1999. – 304 с.

[XP] Бек К., Экстремальное программирование. – СПб: Питер, 2002 – 224 с.


1   2   3   4   5   6   7

Похожие:

Типичные черты исследовательского проекта iconКонспект внеклассного мероприятия «Подготовка к созданию учебного...
Конспект внеклассного мероприятия Подготовка к созданию учебного исследовательского проекта

Типичные черты исследовательского проекта iconСценарий проекта Полное название проекта «Солнце Русской поэзии»
Участники проекта – воспитанники, воспитатель, музыкальный родители

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconВладимир Исаевич Круковер 300 практических советов владельцам собак. Типичные ошибки

Типичные черты исследовательского проекта iconТемы вашего учебного проекта
Краткий обзор вашего учебного проекта включает тему проекта в рамках вашего предмета, описание основных учебных практик и краткое...

Типичные черты исследовательского проекта iconЧерты развития русской литературы XVIII века. Классицизм в русском и мировом искусстве
Цель – общий обзор «Черты развития русской литературы XVIII века», введение понятия «классицизм»

Типичные черты исследовательского проекта iconПроекта
Название проекта должно отражать суть нир, которую заявители считают необходимым выполнить и обозначать действие (разработка, исследование,...

Типичные черты исследовательского проекта iconПлан мероприятий в рамках проекта «Этот загадочный Шерлок Холмс»
Составление учителями визитки проекта, методических и дидактических материалов к проекту и размещение их на школьном сайте

Типичные черты исследовательского проекта iconОтдела образования Администрации Макушинского района о реализации...
Од, о реализации проекта «Интеллектуал Зауралья» в образовательных учреждениях района. Был заслушан отчёт директора Макушинской сош...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции