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