- •Темы курсовых и дипломных работ и кандидатских диссертаций проф. В.О. Сафонов, весна 2012 г.
- •1. Аспектно-ориентированное программирование (аоп) и Aspect.Net
- •5.2. (Тема предложена Oracle в 2010 г.) Анализ и улучшение покрытия графических тестовых сюит.
- •5.3. (Тема предложена Oracle в 2010 г.) Улучшение системы автоматического запуска виртуального тестового окружения.
Темы курсовых и дипломных работ и кандидатских диссертаций проф. В.О. Сафонов, весна 2012 г.
1. Аспектно-ориентированное программирование (аоп) и Aspect.Net
Полезные сайты:
http://aosd.net – общий сайт АОП
- https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8658 –дистрибутив Aspect.NET 2.2 (с поддержкой языков C# и VB.NET)
http://www.aspectdotnet.org – сайт проекта Aspect.NET (на английском языке)
http://polyhimnie.math.spbu.ru/jtl, раздел ASPECT.NET – материалы по Aspect.NET на русском языке
Направления:
- Развитие системы Aspect.NET – инструмента аспектно-ориентированного программирования для платформы Microsoft.NET (работа в составе проектной группы);
- разработка библиотек аспектов и их применение в различных решениях и проблемных областях;
- формализация и моделирование АОП
- создание инструментов АОП для платформы Java
Темы:
1.1. Разработка конверторов для системы Aspect.NET с метаязыка АОП (Aspect.NET.ML) в определения пользовательских атрибутов (custom attributes) для языков: J#.NET, F#.NET, Python, Ruby
1.2. Участие в развитии подсистемы внедрения аспектов (aspect weaver) – реализация новых видов точек присоединения (join points)
1.3. Участие в развитии Aspect.NET Framework (GUI для управления аспектами)
1.4. Разработка аспектизатора (aspectizer) – инструмента для выделения аспектов из не аспектно-ориентированных программ
1.5. Разработка отладчика (debugger) в терминах аспектов для системы Aspect.NET
1.6. Разработка библиотек аспектов для различных проблемных областей (Web-программирование, бизнес, экономика, инженерия знаний и др.)
1.7. Разработка инструментов тестирования системы Aspect.NET
1.8. Разработка для системы Aspect.NET формальных спецификаций аспектов и верификатора аспектов и результатов их внедрения с использованием верификатора Z3
1.9. Разработка библиотеки аспектов для trustworthy software development (синхронизация процессов, security, design-by-contract и др.) – тема выполняется аспирантом Денисом Фроловым, 2011-2012 гг.; возможно участие в проекте
1.10. Участие в переносе Aspect.NET на новые платформы - Visual Studio.NET 2010, Phoenix SDK, CCI
1.11. Разработка системы Aspect.Java – аналога Aspect.NET для Java-технологии с тем же метаязыком АОП, на основе аннотаций
1.12. Real.Aspect: Разработка инстумента АОП с архитектурой, аналогичной Aspect.NET, для исследовательской платформы IBM Java Real-Time
1.13. Моделирование аспектов: Разработка и реализация расширения UML для моделирования и проектирования аспектов в системе Aspect.NET
1.14. Разработка аналога Aspect.NET для преобразований unmanaged-кода в среде Windows с использованием Microsoft Phoenix
1.15. Разработка системы для aspect-oriented knowledge management – аспектно-ориентированного управления знаниями
1.16. Использование АОП и Aspect.NET для облачных вычислений на платформе Windows Azure
1.17. Использование АОП и Aspect.NET для 3D Web и Virtual Worlds
1.18. Сопровождение системы Aspect.NET: ведение базы данных ошибок (bug tracking database), исправление ошибок, поддержка текущей версии исходных кодов Aspect.NET, автоматическая рассслка уведомлений об изменениях и др.
1.19. Разработка формальной модели АОП
2. Инженерия знаний и Knowledge.NET
http://www.knowledge-net.ru
- Участие в проекте Knowledge.NET – инструмента представления и обработки знаний для платформы Microsoft.NET.
- Разработка систем управления знаниями и интеллектуальных решений на базе Knowledge.NET
2.1. Участие в разработке и реализации языка Knowledge.NET - расширения языка C# для представления знаний (фреймов, продукций, семантических сетей, нечетких знаний, ассоциативных знаний, онтологий);
2.2. Участие в разработке редактора и визуализатора знаний в формате Knowledge.NET
2.3. Разработка подсистемы извлечения знаний (knowledge discovery) из Интернета в формате Knowledge.NET
2.4. Разработка библиотек примеров представления и использования знаний в системе Knowledge.NET для различных предметных областей (разработка ПО, бизнес, экономика, медицина и др.)
2.5. Разработка подсистемы извлечения знаний (knowledge discovery) из данных научных экспериментов в системе Knowledge.NET.
2.6. Разработка экспертной системы Everyday Intelligent Advisor (советчик в повседневной деятельности) на базе системы Knowledge.NET
2.7. Разработка инструментов тестирования Knowledge.NET
2.8. Разработка системы поиска в локальных сетях на базе Knowledge.NET
2.9. Разработка интеллектуальной информационной системы для поддержки жизненного цикла разработки программ
2.10. Разработка конвертора знаний из языка Knowledge.NET в язык OWL
3. Компиляторы, Microsoft Phoenix, CCI (Common Compiler Infrastructure)
http://connect.microsoft.com/phoenix - инструментарий Microsoft Phoenix для разработки языковых процессоров, оптимизации, анализа и преобразований программ
http://www.msdnaa.net/curriculum/?id=7698 - курс проф. В.О. Сафонова по компиляторам
http://www.vladimirsafonov.org/trustworthycompilers - информация о книге проф. В.О. Сафонова по компиляторам
Темы:
3.1. Участие в реализации front-end компилятора C# на базе Phoenix
3.2. Реализация Visual Prolog для платформы Microsoft.NET
3.3. Реализация функционального языка Objective Caml (O’Caml) для платформы Microsoft.NET.
3.4. Разработка и реализация высокоуровневых языково-независимых абстрактных синтаксических деревьев (HL-AST) для Microsoft Phoenix
3.5. Разработка системы построения front-end’ов компиляторов Phoenix-FETE для Microsoft Phoenix (продолжение и завершение проекта) – тема начата аспирантом И. Соболевским, осень 2011 г.
3.6. Разработка и реализация интерактивного окружения для визуализации, создания и редактирования файлов исполняемого промежуточного кода (PE files) Microsoft.NET на базе технологии Microsoft Phoenix.
3.7. Разработка инструмента визуализации процесса работы компилятора – лексического анализа, синтаксического анализа, семантического анализа, организации таблиц, оптимизации и генерации кода.
4. Операционные системы Microsoft
4.1. Исследование и развитие операционной системы Windows на основе ее исходных кодов и инструментария, предоставляемых корпорацией Microsoft (Windows Academic Program): изучение и развитие Windows CRK, Windows WRK, участие в проекте ProjectOZ.
Примеры конкретных тем: реализация новых стратегий планирования и диспетчеризации процессов, управления памятью и сборки мусора.
5. Java-технология, операционные системы, технологии и аппаратные платформы фирмы Oracle
5.1. (тема предложена Oracle в 2010 г.) Автоматизация настройки и поддержки тестового окружения
3+ системы виртуализации (VMWARE, Oracle VM, VirtualBox), 40+
операционных систем - Linux/Solaris/Windows, 4+ десктопа, 2+ look&feel'а, Sun Grid Engine.
Автоматизация настройки и проверки настройки тестового окружения после установки или перезагрузки операционной системы. Автоматизация определения характеристик тестовой машины: desktop, look&feel, printer и т.д.
Автоматизация очистки тестового окружения после тестового цикла.