Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор В. О. Сафонов Санкт-Петербург, СПбГУ, 2010 Проблема модульности Малая модульность это Увеличение размера команды разработчиков Сложность тестирования Уменьшение возможностей повторного использования Модульность в Java Уровни модульности в Java класс пакет программа Постановка задачи Ввести новый уровень модульности, больший чем пакет Уменьшить связанность программного обеспечения Обращение контроля Принцип уменьшающий зависимости в коде, с помощью выделения зависимостей в конфигурации Используется повсеместно Популярные реализации: Google Guice SpringSource Spring Framework PicoСontainer tcontainer. Основные понятия Бин — наименьшая структурная единица Модуль — структура принимающая входные бины и отдающая выходные Это и есть новый уровень модульности Входные бины — зависимости нашего модуля Выходный бины — то что он предоставляет tcontainer. Типы конфигураций Два типа конфигураций Java XML tcontainer. Контексты Созданы два вида контекстов для конфигураций Тестирующий, для проверки корректности модулей, даже без поддержки со стороны IDE Выполняющий, для создания бинов tcontainer. Существующие решения Понятие родительского/дочернего контейнера в PicoContainer Импорт конфигураций в Spring Результаты Создан IoC фреймворк для языка Java со следующими возможностями два вида конфигураций возможность проверки конфигураций без поддержки со стороны IDE зависимости между модулями Получен опыт разработки с использованием Java Reflection http://github.com/ttim/tcontainer