Similar presentations:
Технологии проектирования ПО. Описание курса
1. Технологии проектирования ПО
Описание курса2. Технологии проектирования ПО
Содержание курсаЛекции (18 ч.)
1.
2.
3.
4.
«Парадигмы проектирования программных систем. Различные
технологические подходы»
Виды (парадигмы) проектирования ПО.
Жизненный цикл ПО, его этапы, технологические подходы : каскадный
подход, UP, гибкие подходы. Манифест Agile Alliance.
«Введение в некоторые современные методы проектирования
программного обеспечения» Современные технологические процессы,
характерные для гибких (и не только) подходов : рефакторинг, модульное
тестирование, использование паттернов, непрерывная интеграция, контроль
версий, коллективное владение кодом, создание UML диаграмм и др.
«Требования
к
ПО.
Архитектура
ПО»
Функциональные
и
нефункциональные требования. Описание требований.
Прецеденты.
Истории. Роль требований в процессе разработки. Архитектура ПО.
Описание архитектуры. Шаблоны архитектур.
«Модели программного обеспечения. Язык UML» Моделирование ПО.
Понятие об UML. Диаграммы UML. Понятие о разработке, управляемой
моделью (MDD). Средства поддержки MDD (CASE- средства)
3. Технологии проектирования ПО
Содержание курсаЛекции
5.
6.
7.
8.
9.
«Модульные тесты и TDD» Тестирование ПО. Виды тестов. Понятие о
модульных тестах. Оболочки модульного тестирования. Рефакторинг и
тесты. Понятие о разработке, управляемой тестами (TDD)
«Рефакторинг» Признаки плохого кода.«Унаследованный» код. Каталог
шаблонов рефакторинга. Поддержка рефакторинга. Крупные
рефакторинги.
«Шаблоны проектирования» Виды паттернов. Паттерны
проектирования GoF. Каталог паттернов GoF. Использование
паттернов. Рефакторинг и паттерны.
«Шаблоны корпоративных приложений» Шаблоны для предметной
области, интерфейса пользователя и слоя данных. Шаблоны MVC, MVP,
реализация ORM.
«Декомпозиция и упаковка ПО» Расслоение и декомпозиция проектов.
Виды декомпозиции. Принципы упаковки. Метрики упаковки
Распределенное ПО. Роль паттернов в упаковке и распределении проектов.
4. Технологии проектирования ПО
Содержание курсаЛабораторные занятия (18 ч.)
1.
«Некоторые полезные практики и инструменты современной
разработки программ» Неформальное введение в рефакторинг,
модульные тесты, паттерны проектирования и декомпозицию программ.
Знакомство с UML и XML – документированием, а также системой
контроля версий.
2.
«Знакомство с UML и разработкой, управляемой моделью (MDD)»
Создание различных UML диаграмм. Описание требований в виде
прецедентов и историй. Иллюстрации требований с помощью диаграмм
UML (активности, классов, состояний, прецедентов). Реализация
сценария MDD Обновление модели по коду (Reverse Engineering).
3.
«Модульное тестирование, рефакторинг и разработка, управляемая
тестами (TDD)» Написание модульных тестов для существующего кода.
Рефакторинг с тестами с использованием различных шаблонов
рефакторинга и тестирования. Сеанс разработки через тесты (TDD).
5. Технологии проектирования ПО
Содержание курсаЛабораторные занятия
4.
«Паттерны проектирования и шаблоны разработки корпоративных
приложений» Подробное рассмотрение паттернов GoF, применение 3
заданных паттернов. Выбор паттерна (или паттернов) для решения
заданной задачи. Использование паттернов MVP и MVC для создания
интерфейса пользователя. Шаблоны для доступа к БД. Знакомство с ORM
– библиотеками.
5.
«Декомпозиция и упаковка проекта» Решение комплексной задачи – своя
контрольная работа (case study), выполняемая в ходе всего курса, должна
быть выполнена с помощью паттернов, снабжена тестами и упакована в
виде отдельных модулей. Проект должен быть размещен в системе
контроля версий (несколько версий – минимум 3).
6. Технологии проектирования ПО
Содержание курсаCase Study (курсовое задание)
Разработка небольшого приложения по вариантам, каждая часть
разработки начинает выполняться на соответствующей лабораторной
работе, начиная со
2-й: а) постановка задачи, планирование,
определение
архитектуры,
моделирование
основных
классов
предметной области с помощью MDD – к 3-ей работе; б) разработка
кода и, возможно, модификация интерфейсов классов с помощью TDD
(допускается не выполнять MDD, только описать требования с
помощью UML), описание результата – диаграмма классов через
Reverse Engineering – 1-я итерация – к 4й работе; в) рефакторинг первой
итерации и добавление функций, применение паттернов GoF,
реализация интерфейса пользователя и работы с БД – 2я итерация;
реализация шаблона MVP – 3-я итерация и 1 версия - к 5-й работе г)
версия приложения для ASP.NET, реализация паттерна MVC и
использование ORM, упаковка проекта, применение паттерна
Абстрактная фабрика – 4-я итерация и 2-я версия (не обязательно).
7. Технологии проектирования ПО
Содержание курсаДополнительное тестирование
1. Прохождение тестов в Интернет (доступные
сайты, например, http://www.quizful.net/test ),
доступные тесты на сайтах СГУ и СПбГУ ИТМО
2. Решение тестовых задач ?!
8. Технологии проектирования ПО
Материалы курсаОсновные материалы
1. Эти презентации
2. Методические указания к лабораторным
работам (по ним же можно делать курсовое
задание)
3. Примеры программ к лабораторным (!)
9. Технологии проектирования ПО
Материалы курсаДополнительные материалы
1. Книги (см. далее список)
2. Статьи в хороших журналах
3. MSDN
4. Полезные интернет-ресурсы, в том числе –
блоги разработчиков !
10. Технологии проектирования ПО
Материалы курсаРекомендуемая литература
1. Мартин Р., Мартин М. Принципы, паттерны и методики
гибкой разработки на языке C#. - СПб: Символ-Плюс, 2011. 768 с.
2. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектноориентированного проектирования. Паттерны проектирования.
СПб.: Питер. 2007. 366 с. (Книга «банды четырех» - GoF)
3. Фаулер М. Рефакторинг: улучшение существующего кода. СПб:
Символ-Плюс, 2004. 430 с.
4. Бек Кент Экстремальное программирование : Разработка через
тестирование (TDD) .- СПб.: Питер. 2003. 224с.
5. Ларман К. Применение UML 2.0 и шаблонов проектирования. – М.:
Вильямс. 2009. 736с.
6. Фримен Э., Фримен Э., Сьерра К., Бейтс Б. Паттерны
проектирования .- СПб.: Питер. 2011. 656 с.
7. Фаулер М. и др. Шаблоны корпоративных приложений. – М.:
Вильямс. 2010. 544 с.
8. Фаулер М. UML в кратком изложении.
11. Технологии проектирования ПО
Материалы курсаНеобходимое ПО
1. Visual Studio 2010 Ultimate Edition
или
1. Visual С# 2008 Express + NUnit + ObjectiF 7.1
2. Система контроля версий SVN