Министерство образования и науки Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

«Новосибирский государственный университет» (НГУ)

Факультет информационных технологий

УТВЕРЖДАЮ

_______________________

« ___» _____________ 20___г.

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

Объектно-ориентированный анализ и дизайн

(наименование дисциплины)

НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»

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

Бакалавр

Форма обучения очная

Новосибирск

2011

Программа дисциплины «Объектно-ориентированный анализ и дизайн» составлена в соответствии с требованиями ФГОС ВПО к структуре и результатам освоения основных образовательных программ бакалавриата по Профессиональному циклу по направлению подготовки «Информатика и вычислительная техника», а также задачами, стоящими перед Новосибирским государственным университетом по реализации Программы развития НГУ.

Автор :

Факультет Информационных Технологий

Кафедра Общей Информатики

1. Цели освоения дисциплины (курса)

Дисциплина (курс) «Объектно-Ориентированный Анализ и Дизайн» имеет своей целью:

ознакомление студентов с современными методами проектирования программного обеспечения, позволяющими вести разработку программных систем средней и высокой сложности.

Для достижения поставленной цели выделяются задачи курса:

-  Ознакомление студентов с современными процессами разработки программного обеспечения (ПО), ориентированными на сквозное проектирование

НЕ нашли? Не то? Что вы ищете?

-  Изучение с основ языка моделирования UML

-  Изучение принципов анализа и проектирования объектно-ориентированных систем

-  Изучение наиболее распространенных шаблонов проектирования и архитектурных шаблонов

2. Место дисциплины в структуре образовательной программы

Дисциплина относится к разделу Б.3.В.4 «Вариативная (профильная) часть» образовательной программы и предполагает предварительное знакомство студентов с дисциплинами «Объектно-Ориентированное программирование», «Сети и телекоммуникации», «Базы данных».

Материал курса «Объектно-Ориентированное программирование» необходим в полном объеме, т. к теоретическая часть курса опирается на знание студентами базовых понятий ООП (класс, объект, метод, поле, метод и поле класса, виды отношений между классами, объектная декомпозиция), а практическая часть требует навыков написания программ на объектно-ориентированном языке на выбор студента (С++/Java/C#).

Знание материала курса «Сети и телекоммуникации» не является абсолютно необходимым, но крайне желательно для лучшего понимания темы «Системная архитектура», в которой рассматриваются архитектурные шаблоны распределенных приложений Клиент-Сервер и P2P.

Ссылки на материал курса «Базы данных» использованы в последних темах курса (Шаблоны проектирования, Объектно-реляционное отображение), что допускает проведение курса «Базы данных» параллельно данному курсу.

Материал курса «Объектно-Ориентированный Анализ и Дизайн» является абсолютно необходимым для успешного прохождения производственной практики, а также дальнейшей работы выпускника в должностях «инженер-программист», «Java-разработчик», «С++-разработчик», «C#-разработчик», «Web-разработчик», «системный аналитик», «бизнес-аналитик», заявленных как целевые в п 2.1 Область профессиональной деятельности выпускника Основной Образовательной Программы высшего профессионального образования по направлению «230100 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА».

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

В результате освоения дисциплины у обучающегося формируются следующие компетенции:

ОК-1

владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения

ПК-4

Умеет разрабатывать модели компонентов информационных систем, включая модели баз данных

ПК-5

Может разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования

ПК-6

Умеет обосновывать принимаемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности

ПК-13

Владеет современными средствами и приемами моделирования, анализа и документирования требований к ПО

ПК-14

Владеет современными средствами моделирования и документирования архитектуры ПО

ПК-23

Знает методы и средства организации коллективной работы над проектом по разработке ПО

ИК-3

Владеет методами построения и анализа формальных моделей предметных областей

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

·  Знать: Основные фазы процесса разработки ПО; основы языка UML; принципы объектно-ориентированного проектирования

·  Уметь: Проводить анализ требований и проектировать, на основе данных анализа, системы и подсистемы с использованием языка моделирования UML; применять шаблоны проектирования и архитектурные шаблоны

·  Владеть: средством UML моделирования на примере Astah Community Edition; инструментом контроля версий SVN

4. Структура и содержание дисциплины

Структура дисциплины

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

п/п

Раздел

дисциплины

Семестр

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы текущего контроля успеваемости

(по неделям семестра)

Форма промежуточной аттестации

(по семестрам)

Лекции

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

Самост. работа

1

Введение

6

1

2

2

2

Выбор курсового проекта

6

2

2

2

Утверждение проекта

3

Анализ требований к ПО, бизнес-анализ

6

2-5

8

8

8

Утверждение Use-case модели, промежуточная оценка

4

Объектно-ориентированный анализ

6

6,7

4

6

8

Утверждение аналитической модели, промежуточная оценка

5

Системная архитектура

6

8

2

2

2

6

Объектно-ориентированный дизайн.

6

9-11

6

4

8

Утверждение дизайн-модели, промежуточная оценка

7

Шаблоны проектирования

12-14

6

2

4

8

Объектно-реляционное отображение

15

2

9

Обзор процессов разработки ПО

16

2

10

Реализация курсового проекта на выбранной технологии

12-16

10

48

Защита проекта, оценка

Итого по курсу

32

32

80

Диф. зачет

Содержание курса лекций

1.  Введение

Понятие о сложности ПО. Декомпозиция, ОО декомпозиция и ОО-проектирование. Основные фазы процесса разработки ПО. Роль системного архитектора.

2.  Анализ требований к программному обеспечению.

Язык UML. Диаграммы классов, классы, отношения между классами, пакеты.

Необходимость моделирования требований к программному обеспечению. Понятие варианта использования и актера. Диаграммы вариантов использования. Документирование вариантов использования.. Отношения между вариантами использования и актерами. Сценарии вариантов использования. Диаграммы деятельностей, блоки принятия решений и линейки синхронизации. Цели и задачи бизнес-анализа. Пример описания бизнес-процессов.

3.  Объектно-ориентированный анализ

Цели и задачи фазы анализа.  Процесс перехода от фазы сбора требований к фазе анализа. Аналитическая модель. Аналитические классы и отношения между ними. Реализации вариантов использования, коллаборации. Описание коллабораций с помощью диаграмм взаимодействия.

4.  Системная архитектура

Системная архитектура и ее составные части.

Архитектурные шаблоны:

·  Многоуровневая архитектура

·  Клиент-сервер

·  Одноранговая архитектура

·  Каналы и фильтры

·  Списки контроля доступа

·  Модель-Представление-Контроллер 

5.  Объектно-ориентированный дизайн

Цели объектно-ориентированного дизайна.  Процесс перехода от фазы анализа к фазе дизайна.

Принципы дизайна классов:

·  Правило целостности абстракции

·  Закон Деметры

·  Принцип закрытости

·  Принцип подстановки (Liskov)

·  Принцип разделения интерфейсов

Принципы проектирования зависимостей

·  Принцип инверсии зависимости

·  Принцип ацикличности зависимостей

Принципы проектирования пакетов:

·  Общий принцип повторного использования

·  Принцип локализации изменений

·  Принцип стабильности зависимостей. Стабильность.

·  Принцип стабильных абстракций. Абстрактность. Генеральная последовательность.

6.  Шаблоны проектирования

7.  Понятие шаблона проектирования. Классификация шаблонов проектирования.

8.  Часто используемые шаблоны:

·  Абстрактный сервер

·  Абстрактный клиент

·  Адаптер

·  Синглетон

·  Monostate

·  Мост

·  Стратегия

·  Абстрактная фабрика

·  Лестница в небо

9.  Объектно-реляционное отображение

10.  Обзор процессов разработки ПО. Необходимость процесса разработки ПО. Классификация процессов разработки. Унифицированный процесс разработки IBM Rational. Фазы процесса: инициирование, уточнение, разработка, завершение, Активности: Анализ предметной области, анализ требований, системный анализ и проектирование, реализация, размещение. Артефакты и документы процесса: концепция, спецификация требований, архитектурный документ. Легковесные процессы разработки ПО. Экстремальное программирование.

5. Образовательные технологии

В курсе использованы следующие образовательные технологии:

1.  Лекции. Презентации лекций доступны студентам на сайте курса. Приветствуется предварительная распечатка студентом презентаций и добавление комментариев по ходу лекции непосредственно на распечатку слайдов, что позволяет не тратить время на переписывание и перерисовывание в конспекты диаграмм, графиков и тезисов.

2.  Практические занятия в терминальном классе. В ходе занятий производится обсуждение проекта с преподавателем и с другими студентами группы. Задачей преподавателя, помимо контроля за правильным применением в работе над проектом материала лекций, является помощь в выборе подходящей технологии и установке правильного объема функциональных требований, реализуемого в течение 1 семестра. Все преподаватели курса являются действующими архитекторами и разработчиками ПО софтверных компаний Новосибирска и институтов СО РАН, и обладают достаточным опытом для оценки трудоемкости предложенного студентом проекта.

3.  Самостоятельная работа. В процессе самостоятельной работы над проектом студент должен реализовать последовательно все этапы разработки ПО, в соответствии с производственным процессом, принятом в индустрии: от начального анализа требований, через моделирование на UML, до реализации ПО на выбранном языке и платформе программирования.

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

В целях обеспечения текущего контроля успеваемости студентов в течение семестра работа над проектом разбивается на этапы, с приемкой каждого этапа преподавателем на семинарах.

Этап 1: Use-case модель проекта

Этап 2: Аналитическая модель проекта

Этап 3: Дизайн модель проекта

Этап 4: Защита проекта

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

Проект предлагается студентом и согласуется с преподавателем на семинаре. Приветствуется выбор студентом в качестве проекта темы, близкой к тебе будущей дипломной работы. При согласовании проекта преподаватель, основываясь на своем опыте в разработке ИТ-проектов, ограничивает объем проекта до уровня, реализуемого в пределах 1 семестра.

Примерные темы проектов:

1.  Модельная система автоматизации торгового предприятия

2.  VNC-клиент для платформы Android

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

4.  Интернет-библиотека

5.  Новостная лента

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

а) основная литература:

1.  Г. Буч и др. «Объектно-ориентированный анализ и проектирование с примерами приложений», 3-е изд. - М.: Вильямс, 2010 – 718с., ил.

2.  Г. Буч, Дж. Рамбо, А. Якобсон. Введение в UML от создателей языка, М.: ДМК - Пресс, 2с., ил.

3.  Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. "Приемы объектно-ориентированного проектирования. Паттерны проектирования". - СПб: Питер, 2011. – 366с., ил.

б) дополнительная литература:

1.  «Современные методы описания функциональных требований к системам». – М.: Лори, 2002 – 263с.

2.  Мартин, «Быстрая разработка программ: принципы, примеры, практика». – М.: Издательский дом «Вильямс», 2004. – 752с., ил.

3.  , «Объектно-ориентированное программирование, анализ и дизайн». НГУ, 2001. – 40с.

в) программное обеспечение и Интернет-ресурсы:

1.  UML редактор ASTAH Community edition (бесплатное ПО)

2.  Microsoft Office Word (коммерческое ПО) или Open Office (бесплатное ПО)

3.  SVN-сервер на UNIX-сервере ФИТ (бесплатное ПО)

4.  Tortoise SVN-клиент (бесплатное ПО)

5.  сайт с материалами курса: http://www. *****/OOAD/

6.  UML 2.3 Infrastructure, Object Management Group, 2010, http://www. omg. org

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

Для проведения курса требуются следующие технические ресурсы:

1.  Лекционная аудитория с проектором, ноутбуком и PDF-Reader для проведения презентаций

2.  Терминальный класс с компьютерами на базе процессоров не хуже P-IV 3Hz, 1Gb RAM

3.  Программное обеспечение компьютеров терминального класса:

a.  операционная система Microsoft Windows (XP, Vista, Win7) или Linux

b.  Программное обеспечение J2SE 1.6 (бесплатное ПО)

c.  UML редактор ASTAH Community edition (бесплатное ПО)

d.  Microsoft Office Word (коммерческое ПО) или Open Office (бесплатное ПО)

e.  Tortoise SVN-клиент на компьютерах терминального класса (бесплатное ПО)

4.  SVN-сервер на UNIX-сервере ФИТ (бесплатное ПО)

Рецензент (ы) _________________________

Программа одобрена на заседании ____________________________________________

(Наименование уполномоченного органа вуза (УМК, НМС, Ученый совет)

от ___________ года.