Увеличение модульности программного обеспечения на языке Java

advertisement
Увеличение модульности
программного обеспечения на
языке 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
Download