Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_1.pptx
Скачиваний:
100
Добавлен:
16.04.2015
Размер:
233.35 Кб
Скачать

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

Лекция 1

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

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

Профессор кафедры информатики Заведующий лабораторией Java-технологии

(http://polyhimnie.math.spbu.ru/jtl)

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

Email: vosafonov@gmail.com

WWW: http://www.vladimirsafonov.org

Литература по курсу (1/4)

1.Сафонов В.О. Архитектуры и модели программ и знаний. Материалы курса (декабрь 2009) , https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8480&Login=&c1=en-us&c2=0

2.Сафонов В.О. Платформа облачных вычислений Microsoft Windows Azure. http://www.intuit.ru/department/se/pmsazure/

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

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

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

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

5.Safonov V.O. Secure Software Engineering. University Course. February 2007 (слайды на английском языке). http://www.msdnaa.net/curriculum/?id=6753

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

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

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

8.Материалы Microsoft по Trustworthy Computing Initiative:

http://www.microsoft.com/mscorp/twc/default.mspx

(C) Сафонов В.О. 2012

Литература по курсу (2/4)

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

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

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

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

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

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

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

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

(C)Сафонов В.О. 2012

Литература по курсу (3/4)

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

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

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

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

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

22.Howard, Michael, and David C. LeBlanc. Writing Secure Code, 2nd ed., Microsoft Press, 2002 (русский перевод: Безопасный код)

(C)Сафонов В.О. 2012

Литература по курсу (4/4)

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

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

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

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

(C) Сафонов В.О. 2012

Цели и задачи курса

Обзор и анализ классических и современных подходов к

архитектуре, моделям и технологиям разработки программ

– trustworthy computing, service-oriented architecture, cloud computing , aspect-oriented programming и др.

Обзор и анализ классических методов представления знаний и тенденций к интеграции инженерии программ,

данных и знаний (онтологии, Semantic Web, Web 2.0, Web

3.0)

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

Изучение современных инструментов – Aspect.NET (инструмент АОП для платформы .NET); Knowledge.NET

(инструмент инженерии знаний для платформы .NET)

(C) Сафонов В.О. 2012

Основоположники технологии и методологии программирования в СССР и России

А. П. Ершов, академик АН СССР: методология программирования; “лексикон” программирования; смешанные вычисленияЭ.Х. Тыугу (Эстония), академик АН Эстонии:

автоматический синтез программ; системы ПРИЗ и NUT.С.С. Лавров, чл.-корр. АН СССР: автоматический синтез и формальные спецификации программ; система СПОРА.А.В. Замулин – абстрактные типы данных; язык Атлант.В.В. Липаев – руководитель крупного института и работ по созданию больших надежных программных комплексов для специальных применений; тестирование программЯ.М. Барздинь (Латвия) – индуктивный синтез программ по примерам.

А.Л. Фуксман – автоматический синтез программ; технология векртикального слоения (предшественник АОП)

(C) Сафонов В.О. 2012

Эволюция программного обеспечения и подходов к разработке программ

1960е – 1970е гг.: “фабрика программ” (в то время - наивный подход к технологиям программирования)

Программирование – творческая деятельность, в полной мере не сводящаяся ни к каким технологиямМатематические (формальные) методы не вполне подходят для

формальной спецификации и верификации программ, вследствие фундаментально различных подходов к основным понятиям (например, к понятию переменной) – Г.С. Цейтин (1983)

1980е – 1990е гг.: Очень малое число программ и их разновидностей формально специфицируются и верифицируются (но: язык UML широко используется для моделирования; язык SDL является стандартом для спецификаций программного обеспечения для телефонии и телекоммуникаций)

2002: Microsoft: Trustworthy Computing (TWC) Initiative

В настоящее время : возвращение к идее фабрик программ на новом уровне развития: промышленные методы и технологии создания надежных и безопасных программ

Направление TWC недостаточно отражено в учебных курсах (даже в США). Каждый профессор учит тому, что TWC наилучшим образом достигается благодаря применению метдодв и инструментов, которыми он (она) занимается (Secure UML, penetration testing и т.д.)

Новые направления: service-oriented architecture; cloud computing – предоставление программных инструментов как услуг, доступных через структурированные Web-сервисы

(C) Сафонов В.О. 2012

Trustworthy Computing

Initiative (Microsoft, 2002)

Безопасность (Security) – Пользователь вправе ожидать, что система устойчива к атакам, и что конфиденциальность,

целостность и доступность данных защищены

Конфиденциальность (Privacy) – Пользователь может упрпвлять использованием своих конфиденциальных данных, и

продукт. использующий такие данные, делает это корректноНадежность (Reliability) – Пользователь может рассчитывать на то, что продукт выполняет то, что от него ожидается

Оперативность и корректность бизнеса (Business integrity) - разработчик продукта оперативно реагирует на

запросы пользователей и корректно ведет бизнес

Основная идея: Надежность и безопасность программ должны быть в центре внимания постоянно, на всех этапах жизненного цикла, начиная с самых ранних

(C) Сафонов В.О. 2012

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

(Security Development Life Cycle –SDLC): Microsoft

(C) Сафонов В.О. 2012

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