|
|
 |
Технология программирования
(Кафедра информатики, специальность системное программирование, 2004/2005)
Преподаватель: Кленин Александр Сергеевич 
См. также Курс 2003/2004 года.
| Группа |
Тип занятия |
Посещение1 |
День |
Аудитория |
Время |
| 236 |
Лекция |
Необязательное |
Вторник |
332 |
9:30 - 11:00 |
1В графе "Посещение" указаны требования преподавателя,
которые могут отличаться от требований деканата и учебного отдела.
Пререквизиты
Для изучения настоящего курса требуется успешное завершение курсов
Практикум на ЭВМ (2 курс) и
Программирование на C++.
Требования к отчётности
Отчётность по данному курсу является допуском к оценке по курсовой работе.
Зачёт принимается по отчёту о курсовой работе, а также по результатам защиты
курсовой работы в конце семестра.
План курса
I часть
Изучение общих вопросов технологии построения программных систем
- Требования к отчётности.
Сложность и сложные системы. Примеры естественных и искусственных сложных систем.
Хаотическое поведение сложных систем как основное препятствие в управлении и моделировании.
Источники сложности.
- Признаки работоспособной сложной системы. Методы борьбы со сложностью.
Моделирование, абстракция, декомпозиция. Функциональная и объектно-ориентированная декомпозиция.
Технология: система обозначений, процесс и инструментаьлные средства.
- Процесс разработки как часть жизненного цикла программного обеспечения. Модели жизненного цикла.
Последовательная модель разработки. (Waterfall).
- Недостатки и кризис последовательной модели разработки ПО. Циклическая (спиральная) модель.
Параллельная модель. Экстремальное программирование.
- Менеджемент как часть технологического процесса. Общие проблемы
управления коллективной работой. Преимущества лидера перед комитетом.
Особенности и проблемы управления коллективами программистов.
Закон Кана. Предел Брукса.
Вертикальное (параллельное) и горизонтальное (конвейерное) разделение труда.
Кодирование парами.
- Стандарты на процесс проиводства ПО. Модели качества. ISO-9000, CMM.
Проектная документация. Vision Statement, Documentation Specification, Requirement Specification.
- Спецификация требований к системе. Описание предметной области. Требования к окружению.
Архитектура системы, архитектурно-контекстная диаграмма. Общие требования.
- Оформление отчёта по курсовой работе. Раздел "Введение". Подготовка доклада и презентации.
- Семинар по темам курсовых работ.
- Спецификация требований к системе. Требования к данным, функциональности, интерфейсу, надёжности,
безопасности, эффективности, процессу.
- Проблемы управления версиями. Тривиальные методы управления. Системы автоматическогог управления
версиями. Нумерация версий. Forks. Branches.
II часть
Изучение языка моделирования UML
- Deficiency Management. Управление ошибками, системы и процессы. Bug Reporting.
- Количественные оценки (метрики). Оценки сложности ПО, качества ПО,
эффективности процесса разработки.
- История и эволюция языков моделирования. Блок-схемы, диаграммы потоков управления и данных,
архитектурно-контекстные диаграммы, HIPO, CRC-карточки.
- Возинкновение и развитие стандарта UML. Основные концепции моделирования
(абстрагирование, множественность представлений). Обзор стаднартных элементов и пакетов. Виды диаграмм.
- Диаграммы классов. Классы, объекты, отношения ассоциации.
- Отношения зависимости, обобщения, реализации. Стереотипы, интерфейсы.
- Диаграмма ваирантов использования. Применение совместно с спецификацией функций.
- Диаграмма развёртывания. Статические и динамические диаграммы,
как средства изображения структур и процессов.
- Диаграмма состояний. Связь с конечными автоматами. Применение при изображении
пользовательского интерфейса и stateful протоколов.
- Диаграмма деятельности. Аналогии и преимущества перед блок-схемами. Диаграмма с разделением
областей ответственности.
- Диаграмма последовательности.
- Диаграмма кооперации.
- Низкоуровневые методики проектирования ПО. Компоненты. Каркасы. Паттерны. Паттерны порождения,
структуры и управления.
- Правовые и этические аспекты распространения ПО. Copyright и лицензирование. EULA.
Свободно распространяемое ПО. BSD и GPL лицензии.
Литература
Базовые источники
- Буч Гр. Объектно-ориентированный анализ и проектирование
с примерами приложений на C++, 2-е изд.. -- М.: Бином, 1999
- Кленин А. С. Методические указания по
подготовке и защите отчётов на специализации "Прикладная математика. Системное программирование"
- Орлов С. А. Технологии разработки программного обеспечения: Учебник. --
СПб.: Питер, 2002
- Hyde R.
Software Development Guidelines, 2000
-
OMG Unified Modeling Language Specification, Version 1.5, March 2003
Дополнительные источники
- Горбунов-Посадов М. М. Конфигурации программ. - М.: Малип, 1994.
- Зелковиц М., Шоку А., Гэннон Дж.
Принципы разработки программного обеспечения: Пер. с англ. - М.: Мир, 1982.
- Липаев В. В. Проектирование программных средств. - М.: Высш. шк., 1990.
- Практическое программирование -- Checklists
- Рамбо Дж., Якобсон А., Буч Гр. UML: Специальный справочник. -- СПб.: Питер, 2002
- Brooks F. Mythical man-month, 2nd ed., 1995
-
Computing Curricula-2001: Software Engineering,
Approved by the ACM Council, IEEE-CS Board of Governors, 2001
- Frye J., Yoder J. Online Patterns Catalog,
Hillside Group, 2000-2003
- ISO-9001: Software quality assurance standard.
- Read R. L. How to be a Programmer:
A Short, Comprehensive, and Personal Summary, 2002
|