- •Список рисунков
- •Список таблиц
- •Предисловие
- •Лекция 1. Проблемы разработки сложных программных систем
- •Программы «большие» и «маленькие»
- •Принципы работы со сложными системами
- •Литература к Лекции 1
- •Лекция 2. Жизненный цикл и процессы разработки ПО
- •Понятие жизненного цикла ПО
- •Стандарты жизненного цикла
- •Группа стандартов ISO
- •Группа стандартов IEEE
- •Группа стандартов CMM, разработанных SEI
- •Модели жизненного цикла
- •Литература к Лекции 2
- •«Тяжелые» и «легкие» процессы разработки
- •Унифицированный процесс Rational
- •Экстремальное программирование
- •Литература к Лекции 3
- •Лекция 4. Анализ предметной области и требования к ПО
- •Анализ предметной области
- •Выделение и анализ требований
- •Варианты использования
- •Литература к Лекции 4
- •Лекция 5. Качество ПО и методы его контроля
- •Качество программного обеспечения
- •Методы контроля качества
- •Тестирование
- •Проверка на моделях
- •Ошибки в программах
- •Литература к Лекции 5
- •Лекция 6. Архитектура программного обеспечения
- •Анализ области решений
- •Архитектура программного обеспечения
- •Разработка и оценка архитектуры на основе сценариев
- •UML. Виды диаграмм UML
- •Статические диаграммы
- •Динамические диаграммы
- •Литература к Лекции 6
- •Лекция 7. Образцы проектирования
- •Образцы человеческой деятельности
- •Образцы анализа
- •Архитектурные стили
- •Каналы и фильтры
- •Многоуровневая система
- •Литература к Лекции 7
- •Лекция 8. Образцы проектирования (продолжение)
- •Данные–представление–обработка
- •Образцы проектирования
- •Подписчик
- •Идиомы
- •Шаблонный метод
- •Образцы организации и образцы процессов
- •Инспекция программ по Фагану
- •Литература к Лекции 8
- •Удобство использования программного обеспечения
- •Психологические и физиологические факторы
- •Человеку свойственно ошибаться
- •Скоростные показатели деятельности человека
- •Внимание человека
- •Понятность
- •Память человека
- •Разные категории пользователей
- •Методы разработки удобного программного обеспечения
- •Контроль удобства программного обеспечения
- •Литература к Лекции 9
- •Лекция 10. Основные конструкции языков Java и C#
- •Платформы Java и .NET
- •Лексика
- •Целочисленные типы
- •Типы чисел с плавающей точкой
- •Инструкции и выражения
- •Выражения
- •Наследование
- •Шаблонные типы и операции
- •Дополнительные элементы описания операций
- •Описание метаданных
- •Средства создания многопоточных программ
- •Библиотеки
- •Основные понятия компонентных технологий
- •Общие принципы построения распределенных систем
- •Синхронное и асинхронное взаимодействие
- •Транзакции
- •Литература к Лекции 12
- •Лекция 13. Компонентные технологии разработки Web-приложений
- •Web-приложения
- •Расширяемый язык разметки XML
- •Платформа Java 2 Enterprise Edition
- •Связь
- •Именование
- •Процессы и синхронизация
- •Целостность
- •Отказоустойчивость
- •Защита
- •Работа с XML
- •Платформа .NET
- •Связь
- •Именование
- •Процессы и синхронизация
- •Целостность
- •Отказоустойчивость
- •Защита
- •Работа с XML
- •Литература к Лекции 13
- •Общая архитектура Web-приложений
- •Уровень бизнес-логики и модели данных в J2EE
- •Компоненты данных и сеансовые компоненты
- •Компоненты, управляемые сообщениями
- •Дескрипторы развертывания компонентов EJB
- •Уровень модели данных в .NET
- •Протокол HTTP
- •Уровень пользовательского интерфейса в J2EE
- •Сервлеты
- •Серверные страницы Java
- •Уровень пользовательского интерфейса в .NET
- •Литература к Лекции 14
- •Лекция 15. Развитие компонентных технологий
- •Развитие технологий J2EE
- •Jakarta Struts
- •Java Server Faces
- •Управление данными приложения. Hibernate
- •Java Data Objects
- •Enterprise Java Beans 3.0
- •Среда Spring
- •Ajax
- •Web-службы
- •Описание интерфейса Web-служб
- •Связь
- •Именование
- •Процессы
- •Синхронизация и целостность
- •Отказоустойчивость
- •Защита
- •Литература к Лекции 15
- •Лекция 16. Управление разработкой ПО
- •Задачи управления проектами
- •Окружение проекта
- •Структура организации-исполнителя проекта
- •Организационная культура
- •Заинтересованные в проекте лица
- •Виды деятельности, входящие в управление проектом
- •Управление содержанием проекта и качеством
- •Метрики ПО
- •Управление ресурсами
- •Специфика управления персоналом
- •Управление рисками
- •Управление коммуникациями и информационным обеспечением
- •Литература к Лекции 16
ней отсутствуют пятый и шестой уровни, прикладные протоколы пользуются непосредственно службами протоколов транспортного уровня.
Другой пример многоуровневой архитектуры — архитектура современных информационных систем или систем автоматизации бизнеса. Она включает следующие уровни [3].
•Интерфейс взаимодействия с внешней средой.
Чаще всего этот уровень рассматривается как интерфейс пользователя. В его рамках определяется представление данных для передачи другим системам или пользователям, набор экранов, форм и отчетов, с которыми имеют дело пользователи.
•Бизнес-логика. На этом уровне реализуются основные правила функционирования данного бизнеса, данной организации.
•Предметная область. Данный уровень содержит концептуальную схему данных, с которыми имеет дело организация. Эти же данные могут использоваться и другими организациями в своей работе.
•Уровень управления ресурсами.
На нем находятся все ресурсы, которыми пользуется система, в том числе другие системы. Очень часто используемые ресурсы сводятся к набору баз данных, необходимых для работы организации. На этом уровне определяется структура используемых ресурсов и способы управления ими, в частности, конкретное размещение данных по таблицам реляционной базы данных или классам объектной базы данных и соответствующий набор индексов. Чаще всего схемы баз данных оптимизируются под конкретный набор запросов, и поэтому их структура несколько отличается от концептуальной схемы данных, находящейся на предыдущем уровне.
Часто два средних уровня объединяются в один — уровень функционирования приложений, что дает в результате широко используемую трехзвенную архитектуру информационных систем.
Литература к Лекции 7
[1]Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер-ДМК, 2001.
[2]M. Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997.
[3]М. Фаулер и др. Архитектура корпоративных программных приложений. М.: Вильямс, 2004.
[4]Mars Climate Orbiter Mishap Investigation Board Phase I Report.
Доступен по адресу ftp://ftp.hq.nasa.gov/pub/pao/reports/1999/MCO_report.pdf
[5]M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Englewood Cliffs, NJ, 1996.
[6]M. Shaw and P. Clementz. A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems. Proceeding of COMPSAC, Washington, D.C., August 1997.
[7]F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented Software Architecture. A System of Patterns. Wiley, 2002.
[8]Э. Таненбаум. Современные операционные системы. 2-е издание. СПб.: Питер, 2002.
[9]Э. Таненбаум. Компьютерные сети. 4-е издание. СПб.: Питер, 2003.
[10]Л. Басс, П. Клементс, Р. Кацман. Архитектура программного обеспечения на практике. СПб.: Питер, 2006.
[11]Э. Дж. Брауде. Технология разработки программного обеспечения. СПб.: Питер, 2004.
106