Программа курса «Паттерны объектно-ориентированного проектирования»




Скачать 78.51 Kb.
НазваниеПрограмма курса «Паттерны объектно-ориентированного проектирования»
Дата03.10.2012
Размер78.51 Kb.
ТипПрограмма курса

Программа курса «Паттерны объектно-ориентированного проектирования»


I. Организационно-методический раздел

1.1. Название курса

Дисциплина «Паттерны объектно-ориентированного проектирования»

Специальность и раздел стандарта — Паттерны объектно-ориентированного проектирования.

Компонент - национально-региональный (вузовский).

1.2. Цели и задачи курса

Курс предназначен для студентов 4-6 курсов ММФ, ФФ, ФИТ НГУ.

Основной целью освоения дисциплины является получение знаний в области разработки современных программных систем, с использованием объектно-ориентированных языков программирования.

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

1. Изучение основ рефакторинга программного кода;

2. Изучение паттернов проектирования.

1.3. Требования к уровню освоения содержания курса (дисциплины)

По окончании изучения указанной дисциплины студент должен

-     иметь представление о технологии разработки программного обеспечения с использованием тестирования (test-driven development technique).

-     знать освещаемые в рамках курса паттерны проектирования.

-     уметь изображать применяемые паттерны в виде UML диаграмм.

-     уметь применять паттерны проектирования в разработке программного обеспечения как в фазах проектирования, так и в фазах разработки.

1.4. Формы контроля

Итоговый контроль.   Для контроля усвоения дисциплины учебным планом предусмотрен экзамен. На экзамене студенту будут предложены ряд коротких вопросов, ответы на которые он будет излагать устно. Каждый вопрос оценивается в некоторое количество баллов. Оценка за экзамен будет суммой оценок за ответы на вопросы. Итоговая оценка, идущая в диплом, складывается из оценки за экзамен и оценки за выполнение практических заданий, приведенных в диапазон от 2 до 5.

Текущий контроль. В течение семестра выполняются от 3 до 4 практических заданий. Результаты выполнения которых учитываются наравне с оценкой за экзамен для выставления итоговой оценки.

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

2.1. Новизна курса (научная, содержательная; сравнительный анализ с подобными курсами в России и за рубежом) его актуальность   - для дисциплин специальной подготовки.

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

Курс  освещает паттерны проектирования, при этом делая акцент на практические аспекты применимости паттернов.  В курсе “Объектно-ориентированный анализ и дизайн”, читаемом на 3-м курсе ФИТ НГУ, две лекции посвящены паттернам проектирования. Вполне очевидно, что за такой короткий срок можно дать только очень обзорное представление об этой теме. Курсы по данной тематике читаются во многих университетах, среди которых университеты Сан-Диего (San Diego State University), Калифорнии (University of California: Santa Cruz ), Женеве (University of Geneva). Наиболее интересным, на взгляд авторов, курса является курс, читаемый в Университете Сан-Диего профессором Роджером Уитней (Roger Whitney). Материалы и методические наработки упомянутого курса использовались для подготовки нашего курса.

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

2.2. Тематический план курса (распределение часов).

Наименование разделов и тем

 

Количество     часов

 

Лекции

 

Семинары

 

Лаборатор­ные работы

 

Самостоятель­ная     работа

 

Всего часов

 

 

 

28

 

 

 

16

44

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

28

 

 

 

 

16

44

 

2.3. Содержание отдельных разделов и тем.

1.      Введение.

2.      Рефакторинг.

3.      Порождающие паттерны: creation methods, фабричный метод.

4.      Порождающие паттерны: фабрика.

5.      Порождающие паттерны: Строитель, прототип.

6.      Упрощение кода с помощью паттернов: композитный метод, стратегия.

7.      Упрощение кода с помощью паттернов:  состояние, команда.

8.      Обобщение: шаблонный метод, композит,  наблюдатель.

9.      Обобщение: адаптер, интерпретатор.

10.  Аккумуляция: посетитель, collecting parameter.

11.  Другие (структурные) паттерны: мост, фасад,

12.  Другие (структурные) паттерны: прокси, декоратор.

13.  Другие (поведенческие) паттерны: посредник, итератор,

14.  Другие (поведенческие) паттерны: хранитель.

 

2.4. Перечень примерных контрольных вопросов и заданий для самостоятельной работы (в объеме часов, предусмотренных образовательным стандартов и рабочим учебным планом данной дисциплины).

Для самостоятельной работы студентам предлагается разработать от 3 до 4 программ с использованием одного из следующих языков программирования – С++, Java, C#, ObjectiveC. Каждое задание оценивается в некоторое количество баллов в зависимости от сложности, так же оцениваются улучшения программы, которые могут быть предложены преподавателем.

Примеры заданий для студентов:             

 

Необходимо вывести введенное 10-тичное число словами на русском языке в 8-ми и 10-ной системах. Например: вводим – 131, выводим – сто тридцать один в десятичной системе; двести три в восьмеричной системе. При проектировании подумайте о том, как ваше решение можно было бы локализовать на другие языки (английский, немецкий, …). 

 

Описание предполагаемого решения (не предоставляется студенту): при решении задачи предполагается, что будет применен паттерн интерпретатор, те будет создан DSL описывающий правила порождающей грамматики для подобных преобразований. При этом можно использовать библиотеки, реализующие работу с регулярными выражениями. Оценка сроков выполнения задания – 20 часов. (20 баллов).

3.    Учебно-методическое обеспечение дисциплины

3.2. Темы рефератов (курсовых работ) — не предусмотрено.

3.3. Образцы вопросов для подготовки к экзамену

             

1.      Какой паттерн вы, скорее всего, примените в ситуации, когда нужно спрятать от пользователя сложный код, отвечающий за создание объекта. (3 балла)

2.      Какой паттерн вы бы применили, если бы у вас имелась группа связанных объектов, которые спроектированы, чтобы работать вместе, и вы хотите быть уверены что они будут использованы вместе? (3 балла)

3.      Какой паттерн вы бы применили в ситуации, когда вы хотите чтобы клиент создавал новый объект без явного определения класса нового объекта? (3 баллов)

4.      Какой паттерн вы бы применили, чтобы упростить смену алгоритма, который использует класс? (3 баллов)

5.      Объясните, как работает паттерн “Мост”. (10 баллов)

6.      Оба паттерна “Хранитель” и  “Команда” могут быть использованы для реализации операции Undo (10 баллов)

i) Опишите ситуацию или условия когда вы бы использовали паттерн “Хранитель”.

ii) Опишите ситуацию когда следует избегать применения паттерна “Хранитель”.

 

7.      Даны следующие методы классов A и B, которые имеют общего предка class С. Измените эти методы, используя паттерны “Шаблонный метод” и “Фабричный метод”.

 

Class A

send( Request aRequest, URL anAddress)

              {

                            log( “send in class A called”);

                            NetClient sender = new HttpClient();

                            sender address(anAddress);

                            Repsonse result = sender process( aRequest);

                            if (result is404()) {log(“Error in sending message”)};

              }

 

              Class B

              send( Request aRequest, URL anAddress)

              {

                            log( “send in class B called”);

                            NetClient sender = new FtpClient ();

                            sender address(anAddress);

                            Repsonse result = sender process( aRequest);

                            if (result isEmpty ()) {log(“Error in sending message”)};

}

 

3.4. Список основной и дополнительной литературы.

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

1.          E.Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

2.          J. Kerievsky. Refactoring to patterns. Addison-Wesley, 2005.

3.          Roger Whitney. Lecture notes, assignments, exams questions: CS 635 Advanced Object-Oriented Design and Programming. San Diego State University, Spring Semester, 2010.

Дополнительная литература:

4.          Буч Г. Объектно-ориентированный анализ  и проектирование с примерами приложений на C++. - М.: БИНОМ, 2001.

5.          Roger Whitney. Lecture notes, assignments, exams questions: CS 635 Advanced Object-Oriented Design and Programming. San Diego State University, Spring Semester, 2010.

6.          Martin Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.

7.          M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts.  Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.

3.5. Для изучения дисциплины использование нормативно-правовых актов не предусматривается.

Похожие:

Программа курса «Паттерны объектно-ориентированного проектирования» iconПлан введение сущность объектно-ориентированного подхода к программированию > Объектно-ориентированный анализ Процесс объектно-ориентированного проектирования > Пример объектно-ориентированного анализа
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка...
Программа курса «Паттерны объектно-ориентированного проектирования» iconНаучный редактор Н. Шалаев Литературный редактор А. Петроградская Технический редактор С. Прока Иллюстрации А. Бахарев Художник Н. Биржаков Верстка Л. Пискунова ббк 32. 973. 2-018
П75 Приемы объектно-ориентированного проектирования. Паттерны проектирования. – Спб: Питер, 2001. – 368 с: ил. (Серия «Библиотека...
Программа курса «Паттерны объектно-ориентированного проектирования» iconПрограмма курса «Объектно-ориентированный анализ и проектирование»
В курсе рассматриваются современные методы и средства анализа и проектирования программного обеспечения (ПО), основанные на применении...
Программа курса «Паттерны объектно-ориентированного проектирования» iconЛекция: Современные технологии объектно-ориентированного анализа и проектирования информационных систем Концепции объектно-ориентированного анализа и проектирования.
Нформационных моделей бизнес-систем и бизнес-процессов. Особенности проектирования, анализа и формализации корпоративных систем....
Программа курса «Паттерны объектно-ориентированного проектирования» iconРабочая программа по курсу “ Объектно-ориентированное программирование
Целью курса является ознакомление студентов с принципами объектно-ориентированного программирования на примере языка Smalltalk
Программа курса «Паттерны объектно-ориентированного проектирования» iconПрограмма курса “основы объектно-ориентированного программирования и технологии визуального программирования”
Необходимость разработки программы курса "Основы объектно-ориентированного программирования и технологии визуального программирования...
Программа курса «Паттерны объектно-ориентированного проектирования» iconМинобрнауки томский государственный университет факультет информатики утверждаю
Цель курса – изучение методов объектно-ориентированного анализа и проектирования
Программа курса «Паттерны объектно-ориентированного проектирования» iconМинобрнауки томский государственный университет факультет информатики утверждаю
Цель курса – изучение методов объектно-ориентированного анализа и проектирования
Программа курса «Паттерны объектно-ориентированного проектирования» iconТомский государственный университет факультет информатики утверждаю
Цель курса – изучение методов объектно-ориентированного анализа и проектирования с использованием Унифицированного Языка Моделирования...
Программа курса «Паттерны объектно-ориентированного проектирования» iconОбъектно-ориентированный анализ и проектирование
В курсе рассматриваются современные методы и средства анализа и проектирования программного обеспечения, основанные на применении...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница