Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Safonov / README_Safonov_AMPN_Course_2009

.docx
Скачиваний:
99
Добавлен:
16.04.2015
Размер:
29.21 Кб
Скачать

Архитектуры и модели программ и знаний

Проф. Сафонов Владимир Олегович

Санкт-Петербургский государственный университет

Математико-механический факультет

vosafonov@gmail.com

Учебный курс для студентов 4 курса специальности

Математическое обеспечение и администрирование информационных систем”

Объем курса: 64 часа

Описание курса

Данный курс (в английском варианте AMPN – Architectures and Models of Programs and Knowledge) является учебным материалом, объединяющим, излагающим и анализирующим с позиций автора современные тенденции, технологии, архитектуры и модели, используемые при разработке программного обеспечения.

Курс разработан с использованием материалов предыдущих курсов автора [3, 4] (ссылки даются по спискам разработанных книг и учебных курсов), книг [1, 4] и курса автора “Экспертные системы и управление знаниями”. Все указанные курсы читаются или читались автором в течение ряда лет на математико-механическом факультете СПбГУ.

Данный курс является новым по своему подходу к анализу и изложению материала, а также благодаря современности и актуальности своего содержания.

Его преподавание автором на мат.-мех. факультете СПбГУ запланировано, начиная с 2009/2010 учебного года для студентов 4 курса.

Курс содержит изложение новейших технологий Microsoft для надежного и безопасного программирования, облачных вычислений, Web-программирования, виртуализации (в частности, .NET, ASP.NET, Silverlight, Microsoft Virtual PC, Spec#).

Курс знакомит молодых программистов с современными методами и инструментами представления и использования знаний, которыми, как показывает опыт преподавания и общения со студентами, они, как правило, недостаточно владеют, в то время как овладение методами инженерии знаний чрезвычайно важно, ввиду интеллектуализации Web и необходимости решения широкого класса задач, не поддающихся чисто алгоритмическому решению и требующих анализа методами представления знаний.

В курсе изучаются предложенные автором и реализованные его коллективом принципы и системы для интеграции методов инженерии знаний и инженерии программ, в том числе система Knowledge.NET.

В курсе применены принципы преподавания, предложенные автором, - ERATO (Experience, Retrospective, Analysis, Theory, Oncoming Perspectives) [1]. Русский вариант термина – ТРОПА (Теория, Ретроспектива, Опыт, Перспектива, Анализ).

Автор выражает надежду, что курс представит интерес для студентов и преподавателей вузов России.

Материалы курса подготовлены в виде презентаций PowerPoint 2007 на русском языке.

Каждая презентация посвящена одной теме. Фактическое разбиение материала на академические часы и “пары” – на усмотрение преподавателей, которые будут использовать данный курс. На практике, подобное разбиение весьма существенно зависит от уровня студентов.

Кроме общего списка литературы, в презентациях приведена дополнительная литература к каждой теме (лекции).

К каждому слайду каждой презентации даны подробные комментарии, что значительно облегчает использование курса другими преподавателями, а также студентами для самостоятельного изучения.

В конце каждой лекции предложены контрольные вопросы и практические задания. Сложность предлагаемых заданий различна, что отражает различие в сложности реальных задач, решаемых программистами, - от изучения и пробного использования каких-либо технологий до сложных проблем, стоящих перед специалистами по разработке программ.

К курсу прилагаются четыре лабораторные работы, целью которых является практическое ознакомление студентов с современными технологиями и инструментами:

- аспектно-ориентированным программированием и системой Aspect.NET (разработанной в СПбГУ под руководством автора курса) – лабораторная работа № 1;

- современными методами управления знаниями и системой Knowledge.NET (разработанной в СПбГУ под руководством автора курса) – лабораторная работа № 2;

- интегрированной средой Microsoft Visual Studio 2008 и ее возможностями обработки ошибок – лабораторная работа № 3;

- системой Spec# - разработанном фирмой Microsoft Research расширении языка C# средствами формальной спецификации и верификации – лабораторная работа № 4.

Автор будет благодарен уважаемым коллегам за отклики, предложения, замечания по данному курсу.

Программа курса

  1. Эволюция программного обеспечения и инициатива TWC корпорации Microsoft

  1. Современные виды программ и платформы разработки ПО

  1. Классический жизненный цикл разработки программ и жизненный цикл в трактовке Trustworthy Computing (SDL)

  1. Структурное и модульное программирование

  1. Абстрактные типы данных и их роль в современном программировании

  1. Объектно-ориентированное программирование, его модели, достоинства и недостатки

  1. Аспектно-ориентированное программирование

  1. Выработка требований и целей разработки программ. Спецификация программ

  1. Проектирование и реализация программ

  1. Тестирование и верификация программ

  1. Сопровождение программ и выпуск программного продукта

  1. Организация процесса разработки программ

  1. Web-программирование и Web-технологии

  1. Сервисно-ориентированные архитектуры (SOA)

  1. Облачные вычисления – Cloud Computing

  1. Виртуализация – Virtualization

  1. Базовые концепции и архитектура .NET

  1. Обзор возможностей, типы данных, сборки, атрибуты, метаданные, рефлексия, версии, инструменты .NET

  1. Язык C# и LINQ

  1. Web-программирование в .NET. Silverlight

  1. Распределенное и параллельное программирование в .NET

  1. Модели безопасности программ и данных. Безопасность в .NET

  1. Представление знаний. Интеграция методов инженерии знаний и инженерии программ. Semantic Web, Web 2.0

  1. Модели и классификация знаний. Способы представления знаний. Понятие об экспертной системе

  1. Продукции и продукционные знания, продукционные системы

  1. Фреймы и фреймовые системы

  1. Семантические сети. Байесовские сети

  1. Нечеткие множества и нечеткая логика (Fuzzy Sets and Fuzzy Logic)

  1. Онтологии (ontologies)

  1. Классические ЭС, методы и проблемы их разработки. Извлечение знаний. Концептуализация. Формализация

  1. Интеграция инженерии знаний и инженерии программ. Система Knowledge.NET

  1. Проблемы и перспективы архитектур и моделей программ и знаний

Литература к курсу

  1. Safonov V.O. Using aspect-oriented programming for trustworthy software development. – Wiley Interscience. John Wiley & Sons, 2008, 352 pp.

  1. Сафонов В.О. Инженерия надежных и безопасных программ. Слайды к курсу (версия: сентябрь 2007 г.).

Русский академический сайт Microsoft:

http://www.microsoft.com/rus/msdnaa/curricula,

раздел: “Технология разработки программного обеспечения”

  1. Safonov V.O. Secure Software Engineering. University Course. February 2007

(слайды на английском языке).

http://www.msdnaa.net/curriculum/?id=6753

  1. Safonov V.O. Software Engineering. University Course. December 2004 (слайды и lecture notes на английском языке).

http://www.msdnaa.net/curriculum/?id=5983

  1. Соммервилл И. Инженерия программного обеспечения. 6-е изд., “Вильямс”, 2002

  1. Материалы Microsoft по Trustworthy Computing Initiative: www.microsoft.com

  1. Брукс Ф.П. , мл. Мифический человеко-месяц. – Юбилейное издание (в честь 25-летия выхода первого издания), СПб: Символ, 2000

  1. Майерс Г. Надежность программного обеспечения.- М.: Мир, 1980

  1. Майерс Г. Искусство тестирования программ. – М.: Мир, 1979

  1. Зиглер К. Методы проектирования программных систем. – М.: Мир, 1985

  1. The Capability Maturity Model. – CMU SEI, Addison-Wesley, 1994

  1. Требования и спецификации в разработке программ. – М.: Мир, 1984

  1. Агафонов В.Н. Спецификация программ: понятийные средства и их организация.- Новосибирск: Наука, 1988.

  1. Данные в языках программирования. – М.: Мир, 1982

  1. Математическая логика в программировании. – М.: Мир, 1990

  1. Платт Д. Знакомство с Microsoft.NET.- M.: Microsoft Press, 2001.

  1. Майо Дж. C#. Искусство программирования. Энциклопедия программиста.- M.: DiaSoft, 2002

  1. Рихтер Дж. Программирование для Microsoft.NET Framework. – MS Press, 2002

  1. Уоткинз Д., Хаммонд М., Эйбрамз Б. Программирование на платформе .NET. – Вильямс, 2003

  1. Howard, Michael, and David C. LeBlanc. Writing Secure Code, 2nd ed., Microsoft Press, 2002

  1. Уотермен Д. Руководство по экспертным системам. – М.: Мир, 1989

  1. Построение экспертных систем. Сб. статей. – М.: Мир, 1989

  1. Сафонов В.О. Экспертные системы – интеллектуальные помощники специалистов. – СПб.: Знание, 1992

  1. Представление и использование знаний. Сб. статей. – М.: Мир, 1989

Соседние файлы в папке Safonov