Опыт преподавания объектно-ориентированного подхода в моделировании, анализе(Прочитано 83797 раз)
Galogen, Ваша правда. Не решился я назвать вещи своими именами. Проблема в преподавателях. И мало их, и мало молодежи.
Основные результаты подоспеют к началу второй декады января (~220 человек), может быть, не будет чем похвастать.



Galogen, Ваша правда.
Основные результаты подоспеют к началу второй декады января (~220 человек), может быть, не будет чем похвастать.
Меня, зовут Эдуард. Так к слову...

Жаль, если правда моя. Печально это слышать.

Да результаты объявите. А так же не плохо бы, если бы Вы рассказали о своем опыте преподавания. Поскольку - может в моей методике есть такие моменты, которые сами посебе плохие, от того и результаты не ахти.



Эдуард, спасибо за оч. интересную и познавательную тему. Какие сейчас результаты?



Эдуард, спасибо за оч. интересную и познавательную тему.
Рад что тема оказалась полезной.

Какие сейчас результаты?
О результатах сейчас говорить преждевременно. Семестр только начался.

Однако есть изменения как в программе курса, так и порядке преподавания.

1. Курс мне сократили до 30 часов лекций и 15 часов занятий. Если по лекциям куда не шло, то для практических крайне мало. Правда, поскольку занятия ведутся в одной аудитори, легко менять местами лекции и практические

2. Отменили экзамен, сделали зачет, пр этом даже не дифференцированный, т.е. без оценки. Это плохо. Народ сразу начинает относиться к предмету довольно халатно, понимают, что как-нить зачет пропинают. А экзамена - нет. Потому пришлось ввести жесткие коррективы. Всех отправил на http://www.intuit.ru, самостоятельно читать курс про UML господина Леоненкова, а также сдавать тесты и экзамен, либо сразу экстерном. В качестве доказательства должны мне предоставить либо распечатку зачетки с сайта, либо работать в локальной вресии, которую мы в прошлом году купили.

3. Все лекции перевожу на презентации. За основу беру книгу Рамбо и Блаха Объектно-ориентированное моделирование и разработка, добавляя сведения и из других книг. Процесс идет, не так быстро, достаточно тяжело, т.к. приходится перечитывать кучу литературы, внимательно анализировать информацию и пытаться в презентациях передать главное.
При этом собственно UML стараюсь уделять внимания поменьше, а больше как его применять для решения вопрос анализа: анализа предметной области, требований, элементов системы и т.п.
Фактически иду по Рамбо и Блаха: модель классов, модель состояний, модель взаимодействия, а дальше вопросы связанные с анализом предметной области и приложения.

4. Практические занятия решил раздробить. Т.е. каждое занятие атомарно. В приницпе оно будет базироваться на некоторой описанной предметной области, однако получение полной и цельной картины не преследуется, буду отрабатывать приемы использования ООА, UML.

Сейчас дал такую задачу. Есть набор некоторых абстракций , объединенных некоторой темой. Задача студентов составить самую общую модель классов (по сути ER модель) и описать полученное некоторым связным рассказом.

Далее попрошу обменяться студентов этими моделями, и уже по незнакомым моделям студенты должны вновь написать рассказ, ну а потом сравним оригинал с тем, что получилось :) Попробуем разобрать ошибки.
« Последнее редактирование: 29 Февраля 2008, 19:03:15 от Galogen »



Жаль, что ушли от варианта работы над единой задачей во время всего семестра (имею в виду практику), но ,наверно, на это были причины. Я сам начал преподавать проектирование ИС, наработок пока оч. мало, поэтому с большим интересом читаю ваши заметки.  Материал "Интуита" изучаем, но мне он не оч. нравится. А



Жаль, что ушли от варианта работы над единой задачей во время всего семестра (имею в виду практику), но ,наверно, на это были причины.
По-моему, причины я изложил. Хотя есть и другие причины - это у меня нет ассистента, который брал бы часть нагрузки на себя и обеспечивал помощь. Практика показывает, что работа над единой задачей оказывается сложной, не потому, что студенты не способны ее охватить, а потому, что возможно не выстроена верно мотивации.
Трудно сказать

Я сам начал преподавать проектирование ИС, наработок пока оч. мало, поэтому с большим интересом читаю ваши заметки.  Материал "Интуита" изучаем, но мне он не оч. нравится. А
Я бы посоветовал следующий подход в целом:
 нужна практика для формирования навыков моделирования, анализа и прочее. Т.е. какие-то мелкий абстрактные задачки для погружения в технологию. Настроить надо инструмент. А вот после можно попробовать уже единую комплексную задачу.
Однако нужно на мой взгляд задачу все-таки ставить сразу (цели, задачи, подзадачи), а не давать студентам пытаться найти цель, поставленной перед ними задачи.
Либо нужно ясно формулировать проблему...



Продолжаю публиковать свой опыт преподавания.

В этом году я серьезно пересмотрел практику преподавания предмета. Причины этого я уже излагал, но повторюсь для связности текста. Вот эти причины:

1. Курс несколько сократили по часам. 45 часов аудиторной нагрузки. Из них 30 часов на лекции и 15 часов на практику. Вообщем-то довольно мало для такого серьезного курса. Спасает тот факт, что и лекции и практические занятия проходят в одной аудитории (дисплейном классе), что позволяет на лекциях рассматривать некоторые практические вопросы.

2. Отменен экзамен по дисциплине, взамен только зачет. По моему мнению это несколько ослабляет мотивацию студентов в обучении, и влияет на серьезность отношения их к предмету. Чтобы усилить отвественность по предмету, я ввел дополнительный контроль. Студентам предложено самостоятельно изучать нотацию UML и сдать по ней ряд тестов и экзамен, используя курс на http://www.intiut.ru.  Поскольку мы купили локальную версию сайта, то у студетов есть возможность ею воспользоваться.

3. Я веду сейчас этот предмет один. С одной стороны есть +, т.к. уровень требований один. Но есть и минусы - достаточно тяжело проверять, контролироватьи давать обратную связь

Методика преподавания изменилась. В основу курса положена книга Рамбо и Блаха "UML 2.0 Объектно ориентированное моделирование и разработка". Также студентам предлагаются книги Леоненкова "Самоучитель UML", известная книга Гради Буча Объектно-ориентированный анализ и проектирование, Руководство пользователя UML от его создателей, Алистера Коберна "Современные методы описания функциональных требований к системе", Крэга Лармана "Применения UML 2.0 и шаблонов проектирования".

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

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

Сначала я дал пристрелочное задание.
Цитировать
Подготовьте диаграмму классов для каждой группы классов. Добавьте на каждую диаграмму не менее 10 отношений (ассоциаций и обобщений). При необходимости используйте имена ассоциаций и полюсов. Используйте также квалифицированные ассоциации и указывайте кратность. Показывать атрибуты и операции не нужно. При подготовке диаграмм вы можете добавлять дополнительные классы. Не забудьте прокомментировать диаграммы. Составьте глоссарий и связное описание по полученной диаграмме.
1)   школа, детская площадка, директор, школьный совет, класс, книга, ученик, учитель, кафетерий, комната отдыха, компьютер, парта, стул, линейка, дверь, качели
2)   автомобиль, двигатель, колесо, тормоз, тормозной огонь, дверь, аккумулятор, глушитель, выводящая труба глушителя
3)   замок, ров, подъемный мост, башня, призрак, лестница, подземелье, этаж, коридор, комната, окно, камень, лорд, леди, кухарка
4)   выражение, константа, переменная, функция, список аргументов, опе¬ратор отношения, член, множитель, арифметический оператор, опера¬тор, компьютерная программа
5)   файловая система, файл, ASCII-файл, двоичный файл, файл-ката¬лог, диск, привод, дорожка, сектор
6)   газовая печь, вентилятор, двигатель вентилятора, комнатный термо¬регулятор, терморегулятор печи, увлажнитель, датчик влажности, регу¬лятор подачи газа, регулятор вентилятора, клапан для теплого воздуха
7)   шахматная фигура, горизонталь, вертикаль, поле, доска, ход, дерево ходов
8)   сточная труба, холодильник, морозильник, стол, лампа, выключа¬тель, окно, дымовая сигнализация, охранная сигнализация, шкаф, хлеб, сыр, лед, дверь, кухня

На следующем занятии я дал такое задание. Студенты менялись своими результатами (диаграммами только) и должны были составить связное описание по диаграмме классов своих оппонентов. На это я отвел примерно 30-40 минут.
Далее к доске выходили авторы диаграммы и их оппоненты, которые пытались написать по ней связный рассказ.
Оппоненты демонстрировали на экране результат своего описания и делали замечания по диаграмме авторов. Авторы демонстрировали свое авторское описание и соглашались или нет с описанием оппонентов. Я комментировал диаграмму и указывал на ошибки, допущенные при ее составлении.

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

Самым сложным оказалось использование обощения

Пример:

Авторское описание
Цитировать
Замок – средневековое сооружение, построенное из камня. Он окружен защитной стеной, вокруг которой вырыт ров, наполненный водой. Чтобы попасть в замок через ров опускается подъемный мост, который сооружен в защитной стене.
Замок состоит из этажей. На каждом этаже находятся комнаты, и есть единый коридор. В комнате имеются окна. Чтобы попасть с одного этажа на другой существует лестница. На одном из этажей имеется кухня, где работает кухарка.
Также в замке имеется подземелье, где бродит по ночам призрак и не дает жителям замка спать.
Одним из самых высоких сооружений замка является башня, в которой живут лорд и его жена леди.

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

Еще одно описание оппонентов
Цитировать
Средневековый ЗАМОК Англии – это величественное сооружение, построенное из крепкого КАМНЯ рабочими из Древнего Рима, окружённое ЗАЩИТНОЙ СТЕНОЙ. ЗАЩИТНУЮ СТЕНУ окружал РОВ с водой, вырытый на много метров вглубь. Там живут крокодилы, охраняющие вход в ЗАМОК. В ЗАЩИТНОЙ СТЕНЕ сооружён ПОДЪЁМНЫЙ МОСТ, сделанный из крепкого дуба, который опускался через РОВ.
ЗАМОК состоит из нескольких ЭТАЖЕЙ, соединённых ЛЕСТНИЦАМИ. На ЭТАЖЕ есть (а может и не быть) КУХНЯ, где работают пухленькие КУХАРКИ, длинный КОРРИДОР, по которым бегают и играют детишки, а также КОМНАТЫ, в которых есть ОКНА, выходящие на прекрасные красоты той, ещё нетронутой природы.
В ЗАМКЕ есть БАШНИ, верхушки которых уходят высоко в небо, где парят орлы, грачи и ведьмы! :-) В них живут гламурные, пафосные и высокомерные ЛЕДИ и ЛОРДЫ.
УУУ!!! Страшно? Бойтесь, детишки! Ведь в ЗАМКЕ есть ПОДЗЕМЕЛЬЕ, по которому бродит ПРИЗРАК, пугающий всех жителей и гостей! Не попадайтесь ему! :-)

Небольшой разбор полетов от меня.
Ребыта-оппонеты, делая описание почувствовали нелогичность некоторых связей и устранили их. На мой взгляд - это ошибка. Например связь-обощение между камнем и замком. Следовало бы читать - ЗАМОК - это КАМЕНЬ, что отличает замок от камня - это наличие или отношение ко всяким стенам, рвам и т.п.
При этом второе описание оппонетов ближе к действительности - по карйней мере в части башен и леди с лордами.
При этом сами авторы дают описание не совсем коррелирующее с диаграммой.
« Последнее редактирование: 13 Марта 2008, 20:31:05 от Galogen »



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

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

Методика такова:
1. Группа делится на пары.
2. Каждой паре выдается описание некоторой задачи (в идеале это должно быть нечто близкое к реальным постановкам в виде некоторого документа: запросы заказчика)
3. Задача разбивается на ряд заданий, каждое задание ориентировано на построение той или иной модели на уровне анализа: построение модели предметной области, модель взаимодействия и модель состояний.
4. Во время семинара разбирается некоторый пример, задание выполняется самостоятельно дома. На семинаре также вместе изучаем то, что сделано ребятами. Предлагается аудитори самим делать замечания.

Сейчас выполнено построение предметной области. Как всегда из группы активно работают не больше 4-5 пар, по сути, если всего 12 пар, имеем 1/3.

Основные ошибки или трудности в определении ассоциаций. Выделение объектов предметной области происходит более или менее верно, а вот с ассоциациями проблемно.
В качестве  рекомендаций даю рекомендации Рамбо и Блаха, а также Лармана.

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

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

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

Типичной ошибкой включать в список атрибутов класса по сути атрибут ссылку на связанный класс.

Некоторые включают операции.

Хотел бы спросить какие правила вы используете при построении моделей предметной области?

Сейчас прошло уже 4 занятия
« Последнее редактирование: 15 Апреля 2008, 10:46:48 от Galogen »



Galogen, спасибо за ведение репортажа "с места событий".. Читаем, разбираемся. Ваш опыт, ваши трудности воспринимаются легче, когда вы приводите конкретные результаты работы группы(пример с замком). В последнем сообщении не очень понятно, как на это реагирует группа? Каковы их достижения? Мааааленький примерчик очень бы поспособствовал пониманию) Спасибо!



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

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

Задача про банкомат


Задача про торговый автомат


Задача про вузовскую библиотеку



Не уверен, что тема актуальна через столько лет. Могу отчитаться о текущем состоянии курса ООАП на ВМК МГУ.
Практикум переведен с Rational Rose на Topcased. Возможно, в новом году студентам будет предоставляться выбор Topcased или Papyrus. Они такие же глючные как Rose, но с открытым кодом и поддержкой UML2.
Устаканилась форма проведения экзамена -- письменная работа из 3-х частей (тест, задачи, вопросы с содержательным ответом).
Некоторые материалы доступны здесь: http://sp.cmc.msu.ru/ooap/



Не уверен, что тема актуальна через столько лет.
Конечно, актуально. Я постоянно ее совершенствую, правда не хватает времени постить сюда.



Ссылка на курс Бертрана Мейера по архитектуре ПО
http://se.inf.ethz.ch/courses/2011a_spring/soft_arch/
впечатляет экзаменационная работа на два десятка страниц.



Некоторые материалы доступны здесь: http://sp.cmc.msu.ru/ooap/

Спасибо за лекционный материал. Взял на заметку.



Обновлены материалы по курсу. В этом учебном году перешли на среду Modelio.




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19