
- •Архитектуры и модели программ и знаний
- •Перспективы языков и платформ для разработки программ
- •Перспективы развития архитектур и моделей программ
- •Перспективы развития методов представления знаний
- •безопасных вычислений (trustworthy computing)
- •Перспективы развития пользовательских интерфейсов
- •языков и платформ разработки программ
- •Вопросы и домашнее задание к лекции 32

Архитектуры и модели программ и знаний
Лекция 32
Проблемы и перспективы архитектур и моделей программ и знаний
Сафонов Владимир Олегович
Профессор кафедры информатики Заведующий лабораторией Java-технологии
(http://polyhimnie.math.spbu.ru/jtl)
Санкт-Петербургский государственный университет
Email: vosafonov@gmail.com
WWW: http://www.vladimirsafonov.org

Перспективы языков и платформ для разработки программ
Более широкое использование шаблонов кода (patterns) для решения типовых задачРазработка инструментов статического
анализа кода на надежность и безопасность, подсказывающих разработчику способы правильной разработки кодаБолее широкое промышленное
применение аспектно-ориентированного программирования и других сходных технологий для(C) СафоновразработкиВ.О. 2012 и

Перспективы развития архитектур и моделей программ
Облачные вычисления – стандартизация, повышение надежности и безопасности, упрощение пользовательского интерфейса, снижение ресурсоемкости и энергоемкости центров обработки данных
Сервисно-ориентированная архитектура – дальнейшее развитие, стандартизация, упрощение модели и интерфейса
Web-программирование:
Web 3.0 = Web 2.0 + Semantic Web + ?Интеллектуализация Web и поиска в Web; применение для этой цели методов представления знанийДальнейшая интеграция методов инженерии программ и инженерии знаний
(C) Сафонов В.О. 2012

Перспективы развития методов представления знаний
Формализация и реализация ассоциативных знаний, пока используемых лишь интуитивноИнтеграция АОП и инженерии знаний; аспектно- ориентированная инженерия знаний (добавление сквозной функциональности, использующей знания)
Дальнейшее развитие методов представления нечетких (возможностных, вероятностных) знаний; существующие методы далеко не идеальныСтандартизация представления знаний в более удобных для программистов форматах, чем XML (приближенных к языкам программирования)
(C) Сафонов В.О. 2012

безопасных вычислений (trustworthy computing)
Инструменты поддержки разработки “правильного” (надежного и безопасного кода), без необходимости улучшать его качество после разработки, как делается в настоящее времяРазработка практически применимых инструментов количественной оценки
надежности, безопасности программных продуктов, рисков, связанных с разработкой и т.д.Дальнейшее развитие и широкое применение методов формальной верификации программ, в сочетании с методами их систематического тестирования
(C) Сафонов В.О. 2012

Перспективы развития пользовательских интерфейсов
Существующие GUI не выдерживают критики: громоздки, неудобны, не интуитивны, изобилуют не очевидными сочетаниями “горячих” клавиш и т.д.
Даже опытный разработчик подчас затрудняется, как найти в многоуровневом меню и применить ту или иную функциональность; требуется помощь “гуру”С подобной ситуацией (через 60 лет после возникновения области software engineering) мириться нельзя
Необходимо упрощение пользовательских интерфейсов. Они должны быть более интуитивными, ассоциативными, настраиваемыми на пользователя (для разработчиков, для школьников, для домохозяек и т.д.)
Разумеется, требуется также совершенствование и упрощение аппаратных средств поддержки пользовательских интерфейсов (стандартное сочетание клавиатуры и мыши давно изжило себя)Необходимо улучшить интерфейс мобильных устройств
(C) Сафонов В.О. 2012

языков и платформ разработки программ
Verifying compilers (C.A.R. Hoare): Компиляторы и системы
программирования должны быть верифицирующими и “не
пропускать через себя” неправильные программы (в том числе – семантически некорректные), предлагая
разработчику методы их исправления
Дальнейшее развитие и повышение эффективности just- in-time – компиляторов и виртуальных машин в целом. Производительность исполнения байт-кода (CIL) в
виртуальных машинах до сих пор существенно уступает
производительности “вручную” написанной аналогичной программы на C / C++
Улучшение поддержки для использования аппаратных
возможностей параллельного программирования
(manycore / multicore)
(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 32
На основе вашего собственного опыта разработчика предложите пути совершенствования используемых Вами языка программирования и платформы для разработки программДайте прогноз на ближайшие 5 лет относительно степени распространенности и использования
технологии .NET и Java-технологии для различных классов задач (мобильных устройств, корпоративных решений, настольных приложений и др.)
(C) Сафонов В.О. 2012