Технология программирования - Кленин А. С.
Технология программирования - Кленин А. С.
Главная страницаСобытия, олимпиады, конкурсы...АбитуриентамОфициальный ИМКН (документы)Неофициальный ИМКН (юмор, общение)Структура ИМКН: факультеты, кафедры, лабораторииБиблиотека (учебные материалы), ссылки, программыПоиск по сайту и в Интернет Электронная почта
Оглавление
Курсовые и дипломные работы
  2008
  2007
  2006
  2005
  2004
  2003
  2002
  2001

Технология программирования

(Кафедра информатики, специальность системное программирование, 2004/2005)

Преподаватель: Кленин Александр Сергеевич Электронная почта Кленина А. С.

См. также Курс 2003/2004 года.

Группа Тип
занятия
Посещение1 День Аудитория Время
236 Лекция Необязательное Вторник 332 9:30 - 11:00
1В графе "Посещение" указаны требования преподавателя, которые могут отличаться от требований деканата и учебного отдела.

Пререквизиты

Для изучения настоящего курса требуется успешное завершение курсов Практикум на ЭВМ (2 курс) и Программирование на C++.

Требования к отчётности

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

План курса

I часть

Изучение общих вопросов технологии построения программных систем
  1. Требования к отчётности.
    Сложность и сложные системы. Примеры естественных и искусственных сложных систем. Хаотическое поведение сложных систем как основное препятствие в управлении и моделировании. Источники сложности.
  2. Признаки работоспособной сложной системы. Методы борьбы со сложностью. Моделирование, абстракция, декомпозиция. Функциональная и объектно-ориентированная декомпозиция. Технология: система обозначений, процесс и инструментаьлные средства.
  3. Процесс разработки как часть жизненного цикла программного обеспечения. Модели жизненного цикла. Последовательная модель разработки. (Waterfall).
  4. Недостатки и кризис последовательной модели разработки ПО. Циклическая (спиральная) модель. Параллельная модель. Экстремальное программирование.
  5. Менеджемент как часть технологического процесса. Общие проблемы управления коллективной работой. Преимущества лидера перед комитетом. Особенности и проблемы управления коллективами программистов. Закон Кана. Предел Брукса. Вертикальное (параллельное) и горизонтальное (конвейерное) разделение труда. Кодирование парами.
  6. Стандарты на процесс проиводства ПО. Модели качества. ISO-9000, CMM. Проектная документация. Vision Statement, Documentation Specification, Requirement Specification.
  7. Спецификация требований к системе. Описание предметной области. Требования к окружению. Архитектура системы, архитектурно-контекстная диаграмма. Общие требования.
  8. Оформление отчёта по курсовой работе. Раздел "Введение". Подготовка доклада и презентации.
  9. Семинар по темам курсовых работ.
  10. Спецификация требований к системе. Требования к данным, функциональности, интерфейсу, надёжности, безопасности, эффективности, процессу.
  11. Проблемы управления версиями. Тривиальные методы управления. Системы автоматическогог управления версиями. Нумерация версий. Forks. Branches.

II часть

Изучение языка моделирования UML
  1. Deficiency Management. Управление ошибками, системы и процессы. Bug Reporting.
  2. Количественные оценки (метрики). Оценки сложности ПО, качества ПО, эффективности процесса разработки.
  3. История и эволюция языков моделирования. Блок-схемы, диаграммы потоков управления и данных, архитектурно-контекстные диаграммы, HIPO, CRC-карточки.
  4. Возинкновение и развитие стандарта UML. Основные концепции моделирования (абстрагирование, множественность представлений). Обзор стаднартных элементов и пакетов. Виды диаграмм.
  5. Диаграммы классов. Классы, объекты, отношения ассоциации.
  6. Отношения зависимости, обобщения, реализации. Стереотипы, интерфейсы.
  7. Диаграмма ваирантов использования. Применение совместно с спецификацией функций.
  8. Диаграмма развёртывания. Статические и динамические диаграммы, как средства изображения структур и процессов.
  9. Диаграмма состояний. Связь с конечными автоматами. Применение при изображении пользовательского интерфейса и stateful протоколов.
  10. Диаграмма деятельности. Аналогии и преимущества перед блок-схемами. Диаграмма с разделением областей ответственности.
  11. Диаграмма последовательности.
  12. Диаграмма кооперации.
  13. Низкоуровневые методики проектирования ПО. Компоненты. Каркасы. Паттерны. Паттерны порождения, структуры и управления.
  14. Правовые и этические аспекты распространения ПО. Copyright и лицензирование. EULA. Свободно распространяемое ПО. BSD и GPL лицензии.

Литература

    Базовые источники

  1. Буч Гр. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд.. -- М.: Бином, 1999
  2. Кленин А. С. Методические указания по подготовке и защите отчётов на специализации "Прикладная математика. Системное программирование"
  3. Орлов С. А. Технологии разработки программного обеспечения: Учебник. -- СПб.: Питер, 2002
  4. Hyde R. Software Development Guidelines, 2000
  5. OMG Unified Modeling Language Specification, Version 1.5, March 2003

    Дополнительные источники

  6. Горбунов-Посадов М. М. Конфигурации программ. - М.: Малип, 1994.
  7. Зелковиц М., Шоку А., Гэннон Дж. Принципы разработки программного обеспечения: Пер. с англ. - М.: Мир, 1982.
  8. Липаев В. В. Проектирование программных средств. - М.: Высш. шк., 1990.
  9. Практическое программирование -- Checklists
  10. Рамбо Дж., Якобсон А., Буч Гр. UML: Специальный справочник. -- СПб.: Питер, 2002
  11. Brooks F. Mythical man-month, 2nd ed., 1995
  12. Computing Curricula-2001: Software Engineering, Approved by the ACM Council, IEEE-CS Board of Governors, 2001
  13. Frye J., Yoder J. Online Patterns Catalog, Hillside Group, 2000-2003
  14. ISO-9001: Software quality assurance standard.
  15. Read R. L. How to be a Programmer: A Short, Comprehensive, and Personal Summary, 2002