Примерная программа наименование дисциплины Проектирование и архитектура программных систем Рекомендуется для направления (ий) подготовки (специальности (ей))

Вид материалаПримерная программа

Содержание


2. Место дисциплины в структуре ООП
3. Требования к результатам освоения дисциплины
4. Объем дисциплины и виды учебной работы
Аудиторные занятия (всего)
Самостоятельная работа (всего)
Другие виды самостоятельной работы
5. Содержание дисциплины
5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами
5.3. Разделы дисциплин и виды занятий
6. Лабораторный практикум
7. Практические занятия (семинары)
8. Примерная тематика курсовых проектов (работ)
9. Учебно-методическое и информационное обеспечение дисциплины
Контроль усвоения теоретических знаний
Итоговый контроль теоретических и практических знаний студента в сессию
Подобный материал:





Приложение 3


ПРИМЕРНАЯ ПРОГРАММА


Наименование дисциплины Проектирование и архитектура программных систем


Рекомендуется для направления (ий) подготовки (специальности (ей))

_____________________________________________________________

(указываются код и наименования направления(ий)

подготовки (специальности (ей) и/или профилей (специализаций)


Квалификация (степень) выпускника _______________________

(указывается квалификация (степень) выпускника в соответствии с ФГОС)


1. Цели и задачи дисциплины: Познакомить студентов с процессом разработки программных систем с применением технологий моделирования. Дать представление о существующих методологиях проектирования программного обеспечения и выработать у студентов практические навыки по их применению. Уклон делается на разработке прикладного корпоративного программного обеспечения, например систем поддержки управления предприятием и сходных с ними.


2. Место дисциплины в структуре ООП: Изучение курса «Проектирование и архитектура программных систем» требует предварительных знаний в следующих областях: информатика, объектно-ориентированное программирование, технология разработки ПО. Желательно владение техническим английским языком, так как часть материалов по курсу представлена на английском языке.


3. Требования к результатам освоения дисциплины:

    Процесс изучения дисциплины направлен на формирование следующих компетенций:

Современный подход к разработке сложных приложений и программных комплексов. В рамках курса студенты изучают методы структурного проектирования, унифицированный язык моделирования и на его основе методы объектно-ориентированного анализа и проектирования. Программа курса в достаточной степени отвлечена от конкретных технологий, чтобы дать адекватное представление о дисциплине проектирования ПО. В результате обучения, студенты знакомы с методами проектирования, способны самостоятельно разработать систему, удовлетворяющую функциональным и нефункциональным требованиям, что подтверждается курсовым проектом. Курс включает следующие основные разделы:
  1. Элементы языка UML
  2. Структурное проектирование
  3. Объектно-ориентированное проектирование

    (указываются в соответствии с ФГОС ВПО)

В результате изучения дисциплины студент должен:

Знать: Основы инженерии программного обеспечения______________________________

    Уметь: Самостоятельно разрабатывать программные системы, удовлетворяющие функциональным и нефункциональным требованиям._______________________________

    Владеть: Принципами гибкого моделирования с использованием языка UML, а также основными принципами проектирования систем.____________________________________

4. Объем дисциплины и виды учебной работы

Общая трудоемкость дисциплины составляет ___________ зачетных единиц.

Вид учебной работы

Всего часов

Семестры













Аудиторные занятия (всего)

51













В том числе:

-

-

-

-

-

Лекции

34













Практические занятия (ПЗ)
















Семинары (С)

17













Лабораторные работы (ЛР)
















Самостоятельная работа (всего)

34













В том числе:

-

-

-

-

-

Курсовой проект (работа)

34













Расчетно-графические работы
















Реферат
















Другие виды самостоятельной работы


































Вид промежуточной аттестации (зачет, экзамен)
















Общая трудоемкость час

зач. ед.

86





























5. Содержание дисциплины

5.1. Содержание разделов дисциплины

№ п/п

Наименование раздела дисциплины

Содержание раздела

1.

Введение в инженерию программного обеспечения (4 часа).

Различия между программным и аппаратным обеспечением. Показатели качества ПО. Виды ПО. Цели и задачи проектирования. Отличия проектирования от исследования. Основные определения в инженерии ПО. Процесс, проект, рабочий продукт. Основные процессы разработки. Предписывающие и описывающие процессы. Каскадная, инкрементная, итеративная модель. Прототипирование. Обзор стандартов в области инженерии ПО. Организация разработки ПО. Методология Scrum. Обзор Rational Unified Process.


2.

Основы моделирования при помощи UML (1 час).

Понятие о моделировании и проектировании. Структурное моделирование. История создания UML. Структура метамодели UML. Основные понятия: элемент, классификатор, отношение, пространство имен. Представления модели, виды диаграмм.


3.

Статическое представление модели и моделирование требований (4 часа).

Диаграммы классов. Понятия класса, интерфейса, типа данных. Виды отношений: ассоциация, зависимость, абстракция, реализация и другие. Ограничения. Экземпляры классов. Варианты использования (прецеденты). Описание требований при помощи прецедентов. Введение в объектно-ориентированный анализ. Выделение классов. Метод Аббота, карточки Класс-Контракт-Коллеги (CRC), диаграммы устойчивости.


4.

Динамическое представление модели (7 часов).

Поведение. Основные определения. Структурированный классификатор. Композит и часть. Диаграммы внутренней структуры. Представление взаимодействия. Диаграммы взаимодействия и коммуникации. Основные понятия: роль, спецификация выполнения, сообщение. Кооперация. Описание сценариев вариантов использования. Представление деятельности. Представление о сетях Петри. Виды действий, разделы. Контекст выполнения. Потоки управления и данных (объектные). Представление процессов на диаграммах деятельности. Представление конечных автоматов. Диаграммы схем состояний. Состояние, переход, псевдосостояния, составные состояния. Семантика конечных автоматов в UML. Обработка событий, переход по завершении. Моделирование жизненного цикла классификатора с помощью конечных автоматов. Пакеты. Управление моделью.


5.

Контрольная работа по UML (2 часа).




6.

Методы структурного проектирования (4 часа).

Основные понятия. Модуль. Процесс структурного проектирования. Виды методов: сверху-вниз, снизу-вверх, итеративные. Модульность. Принципы разделения системы на модули. Метрики качества модульности. Метод постепенного уточнения, структурные диаграммы (STD). Методика структурного анализа/проектирования (SSA/SD). Элементарные транзакции. Диаграммы потоков данных (DFD). Метод структурного программирования Джексона (JSP). Разбор примеров применения.


7.

Введение в архитектуру ПО (1 час).

Архитектура и структура программной системы. Факторы, влияющие на архитектуру. Заинтересованные лица. Роль архитектуры. Стандартные стили архитектур: вызов-возврат, каналы-фильтры, многоуровневая, клиент-сервер, сервис-ориентированная. Совместное применение стилей.

8.

Объектно-ориентированное проектирование (6 часов).

Абстрактные типы данных. Принципы ООП. Характеристики дизайна. Паттерны проектирования. Структурные, создания и паттерны поведения (GoF). Примеры паттернов. Строитель. Посетитель. Шаблон метода. Фасад. Мост. Метрики качества объектно-ориентированного дизайна. Комплект метрик Чидамбера-Кемерера. Реализация требований качества к ПО при помощи ООП. Модифицируемость, переносимость, устойчивость.


9.

Документирование архитектуры и дизайна (1 час).

Роль документирования. Понятие о точке зрения. Рекомендации и структура документа.


10.

Проблемы современной практики проектирования (4 часа).

Модельно-ориентированный подход к разработке (MDD/MDA). Платформонезависимая модель и платформозависимая модель (PIM/PSM). Сервис-ориентированная архитектура. Потоки работ (workflow). Использование каркасов приложений (framework). Проблемы проектирования распределенных объектных систем. Понятие о транзакциях. Другие темы.


5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами

№ п/п

Наименование обеспе-чиваемых (последую-щих) дисциплин

№ № разделов данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин

1

2

3

4

5

6

7

8



1.































2.































































5.3. Разделы дисциплин и виды занятий

№ п/п

Наименование раздела дисциплины

Лекц.

Практ.

зан.

Лаб.

зан.

Семин

СРС

Все-го

час.

1.

Введение в инженерию программного обеспечения (4 часа).

4







2




6

2.

Основы моделирования при помощи UML (1 час).

1







0




1

3.

Статическое представление модели и моделирование требований (4 часа).

4







2




6

4.

Динамическое представление модели (7 часов).

7







3




10

5.

Контрольная работа по UML (2 часа).

2







2




4

6.

Методы структурного проектирования (4 часа).

4







1




5

7.

Введение в архитектуру ПО (1 час).

1







0




1

8.

Объектно-ориентированное проектирование (6 часов).

6







3




9

9.

Документирование архитектуры и дизайна (1 час).

1







0




1

10.

Проблемы современной практики проектирования (4 часа).

4







0




4

11.

Консультации по проектам

0







1




1

12.

Защита проектов. Проведение зачета

0







4




4


6. Лабораторный практикум

№ п/п

№ раздела дисциплины

Наименование лабораторных работ

Трудо-емкость

(час.)

1.










2.






















7. Практические занятия (семинары)

№ п/п

№ раздела дисциплины

Тематика практических занятий (семинаров)

Трудо-емкость

(час.)

1.

1 занятие

Обсуждение первой лекции. Начало формирования глоссария предметной области, обсуждение литературы и т.д. Формирование представлений о проектной организации разработки. Разбор примеров проектов разработки систем.

2

2.

2 занятие

Анализ предметных областей. Построение моделей. Обсуждение и предложение предметной области к описанию. Практика использования нахождения абстракции и выделения классов.

2

3.

3 занятие

Обсуждение подходов к моделированию поведения. Практика описании поведения. Разбор Примеров. Выбор темы проекта.

2

4.

4 занятие

Подготовка к контрольной работе. Консультации по проектам

2

5.

5 занятие

Обсуждение принципов декомпозиции системы. Практика структурного проектирования. Обсуждение роли архитектуры. Консультации по проектам

2

6.

6 занятие

Обсуждение принципов ООП. Разбор примеров применения паттернов. Сдача первой части проекта.

2

7.

7 занятие

Разбор полного примера анализа и проектирования программной системы. Обсуждение.

2

8.

8 занятие

Защита проектов.

2


8. Примерная тематика курсовых проектов (работ)

1. Бронирование и продажа билетов онлайн. Просмотр программы мероприятий.

2.Безопасный Переезд. ПО управления шлагбаумом на переезде. Имеются датчики приближения поезда. Подумать, какие еще датчики нужны. Управлять нужно светофорами, шлагбаумом, подумать чем еще.

3.УниЛифт. ПО управления лифтом многоэтажного дома. Кроме стандартного управления, нужны кнопки вызова диспетчера, датчик задымления, управление дверьми и возможность использования с различными алгоритмами обхода нажатых на этажах кнопок. ПО должно работать с разными лифтами, домами и датчиками.

4. АТМ

Банкомат. Выдача денег по пластиковой карте, оплата услуг.

Обеспечение целостности данных. Использование транзакций

5. CallЦентр

Прием звонков, их классификация через голосовое меню, управление операторами. Отслеживание историй звонков от клиентов.

Варианты предметной области: техподдержка, мобильная связь, покупки по телефону.

6. НаКурорт. Удаленное бронирование номеров в гостиницах на курортах. Классификация по типу клиентов и составление программы пребывания в зависимости от типа (студенты, в возрасте, семья). Работа с гостиницами и турбюро.

7. ГрантЭкспресс. Регистрация, обработка, рецензирование заявок на гранты через Интернет. Составление и ведение пакетов документов. Проведение экспертизы, учет экспертов и пользователей.

8. РестоСам. Официантов - в консультанты. Самостоятельный заказ блюд из меню с телефона по вай-фай, синий зуб, вап или Интернет, заранее, до прихода в ресторан. Узнавание клиентов, составление предпочтений, подбор ресторанов по предпочтениям/доступности.

9. ИнПлан. Студенты могут выбирать себе курсы в университете. Для получения специализации нужно прослушать определенный набор базовых курсов и несколько дополнительных на общую сумму часов. Все курсы платные, студент может расходовать свой бюджет на разные курсы. Профессора могут ставить оценки, студенты отслеживать свою успеваемость.

10. Ресурсовед. Библиотека управления процессом распределенного решения задач оптимизации методами типа Монте-Карло (поиск новых лекарств, криптография,...). Поддерживает модели вычислительной среды, заказывает/удаляет ресурсы, распределяет нагрузку.


9. Учебно-методическое и информационное обеспечение дисциплины:

а) основная литература
  1. М. Фаулер. UML. Основы. Третье издание. (любой издатель)
  2. Гамма Э., Хелм Р., Джонсон Р. Приемы объектно-ориентированного проектирования. Паттерны проектирования, любое издание.
  3. R. Pressman. Software Engineering: A Practitioner's Approach, 6th Ed. - McGraw Hill, 2005
  4. С. А. Орлов. Технологии разработки программного обеспечения. Разработка сложных программных систем. Для студентов и преподавателей высших учебных заведений. – Питер, 2004. – 527 с.
  5. Л. Басс, П. Клементс, Р. Кацман. Архитектура программного обеспечения на практике. 2-е изд. – Л.:Питер, 2006, 576 с.
  6. C. Амблер, Гибкие Технологии: Экстремальное Программирование и Унифицированный Процесс Разработки. - Питер, 2005


б) дополнительная литература
  1. Б. Мейер, Объектно-ориентированное конструирование программных систем. - Русская Редакция, 2005
  2. B. Liskov, J. Guttag. Program Development in Java: Abstraction, Specification and Object-Oriented Design. - Addison-Wesley, 2000

в) базы данных, информационно-справочные и поисковые системы
  1. Введение в гибкое моделирование (ссылка скрыта)
  2. INTUIT.RU: Интернет-Университет Информационных Технологий: Программирование: Объектно-ориентированное программирование
    (ссылка скрыта)
  3. InformIT. Статьи по ИТ и разработке (ссылка скрыта)
  4. Спецификация UML 2.2 на сайте OMG. (ссылка скрыта)



в) программное обеспечение

1. Rational Unified Process (RUP)


10. Материально-техническое обеспечение дисциплины:

ПЭВМ не ниже Pentium III.

11. Методические рекомендации по организации изучения дисциплины:

- Контроль усвоения теоретических знаний:


Контрольная работа с оценкой по пятибалльной шкале.

- Контроль усвоения практических навыков:


Две оценки по пятибалльной шкале по результатам выполнения курсового проекта.

- Итоговый контроль теоретических и практических знаний студента в сессию:


Дифференцированный зачёт.


Весовой коэффициент зачетной оценки практических знаний в оценке за семестр – 0,6.


Разработчики:

___________________ __________________ _____________________

(место работы) (занимаемая должность) (инициалы, фамилия)


___________________ _________________ _____________________

(место работы) (занимаемая должность) (инициалы, фамилия)


Эксперты:

____________________ ___________________ _________________________

(место работы) (занимаемая должность) (инициалы, фамилия)


____________________ ___________________ _________________________

(место работы) (занимаемая должность) (инициалы, фамилия)