Процесс разработки программно-методического продукта «Лабораторный практикум по вычислительной математике» Для сотрудников кафедры выч. математики, участвующих в проекте Содержание 1 Роли участников проекта..................................................................................................2 2 Подпроцессы (этапы) работы и ориентировочные сроки .............................................3 3 Обязанности и взаимодействие участников в процессе работы ..................................3 3.1 Анализ задач проекта .................................................................................................3 3.2 Формулировка (технических) требований к программам ......................................3 3.3 Проектирование программ ........................................................................................4 3.4 Разработка программ .................................................................................................4 3.5 Формулировка требований к методическим материалам ......................................4 3.6 Проектирование методических материалов ............................................................4 3.7 Разработка методических материалов .....................................................................4 3.8 Методическая критика лаб ........................................................................................5 3.9 Тестирование лаб .......................................................................................................6 4 Мероприятия проекта .......................................................................................................6 5 Конкретные методисты и их связь с лабами ..................................................................7 6 Конкретные разработчики и их связь с подпроектами .................................................7 Терминология Ниже используется понятие «подпроекта», то есть набора лаб, выполненных по одной технологии. С учетом результатов анализа, проведенного в документе «Концепция практикума», в проекте имеются: 1. Подпроект “Java” 2. Подпроект “C++” Ранее предложенный подпроект «Практикум по написанию расчетных программ студентами» (“Source”) теперь явно не выделяется, однако в качестве программ для проверки студенческих будут использоваться лабы двух вышеприведенных подпроектов (к которым предъявляются новые требования для использования в качестве проверочных программ). Перечень изменений документа Дата 28.06 .2006 01.07 .2006 05.07 .2006 22.07 .2006 29.08 .2006 22.10 .2006 Версия 0.1 0.2 0.3 0.4 0.5 0.6 Автор Евдокимов Евдокимов Евдокимов Евдокимов Евдокимов Евдокимов Описание изменений Измененные разделы Создание структуры документа и ее первичное все наполнение Описание процессов по сбору и обработке за- 3.8, 3.9. Reпросов (требований, ошибок и др.) questForm.xls Ввод сроков подпроцессов. Ввод конкретных 4, 5, 6, 1 участников проекта. Добавление раздела мероприятий. Добавление роли эксперта Изменения в наборе лаб и их распределении по 5, 6, *.xls методистам; в составе разработчиков проектов Изменения, связанные с изменением набора лаб 5, 2, *.xls и вводом их приоритетов (см. «Концепция 0.6») Удаление подпроектов MATLAB и Source. Из- терминоломенения в наборе лаб гия, 5, 6, *.xls Процесс разработки практикума по вычислительной математике. Версия 0.6 1 1 Роли участников проекта Пользователи результатов проекта Студенты – студенты 3го курса, проходящие курс «Вычислительная математика» и участвующие таким образом в тестировании и использовании лаб. Преподаватели – преподаватели курса, использующие старые лабы или планирующие использовать новые лабы. Критики – несколько преподавателей, которые оценивают и обоснованно критикуют с методической точки зрения текущие результаты работы, предоставляемые старшими разработчиками и старшим методистом (это могут быть лишь те части практикума, в разработке которых критики не участвуют!). Эта роль предлагается В.В. Демченко; Н.М. Кравченко и/или Л.М. Стрыгиной. Конечные исполнители Разработчики – люди (студенты), привлеченные руководителем проекта (и старшими разработчиками) для программной реализации лаб по заданным требованиям. Технические писатели – студенты или разработчики, привлеченные методистами для технической работы по оформлению гипертекстовых методических материалов, предназначенных для встраивания в лабы. Ответственные исполнители Старшие разработчики – 3 человека, которые имеют опыт выполнения программных проектов (на базе соответствующих технических средств), ставят конкретные задачи разработчикам и отвечают за их эффективное программирование (в смысле отношения функциональности и качества программ к трудозатратам). В рамках этого они также проектируют лабы и программируют критические места кода. Каждый старший разработчик отвечает за один из подпроектов. Методисты – преподаватели курса, которые имеют опыт использования старых лаб на занятиях и отвечают за формулировку своих и обобщение чужих требований по конкретным лабам, за расстановку приоритетов по ним (для старших разработчиков), за контроль выполнения требований (по функционалу и качеству своих лаб), а также за доработку методических материалов (гипертекстов), встраиваемых в лабы разработчиками. При контроле качества (весной и осенью 2007 г.) они используют студентов как тестировщиков новых лаб (напрямую и через других преподавателей). Каждый методист отвечает за одну или несколько лаб. Эксперты – «упрощенные» методисты (из числа тех, кто участвовал в разработке старого практикума), привязанные к нескольким конкретным лабам. Они не отвечают за лабы (и не взаимодействуют с разработчиками и тех. писателями), но выполняют функции советчиков и источников информации для основных методистов лаб. Старший методист – один из методистов, кто отвечает за доработку методистами методических материалов. Эту роль предлагается выполнять А.И. Лобанову (зам. – В.И.Косарев). Общее руководство Руководитель проекта – тот, кто отвечает за результат проекта в целом, включая написание отчетных материалов и стимуляцию разработчиков к участию в проекте. Эту роль назначено выполнять А.Евдокимову. Руководитель методической работы – тот, кто отвечает за применимость результатов проекта в курсе с методической точки зрения, а также стимулирует преподавателей к участию в проекте. Эту роль предлагается выполнять В.Б. Пирогову. Таким образом, преподаватели могут участвовать в разработке лаб следующими путями: а) выдача замечаний и новых требований (любые преподаватели); б) обобщение этих замечаний/требований, их обсуждение с разработчиками (методисты); Процесс разработки практикума по вычислительной математике. Версия 0.6 2 в) руководство доработкой методических материалов (методисты); г) контроль качества реализации требований – см. пункт (а) (любые преподаватели); д) методическая критика лаб – см. пункт (а) (критики и любые другие преподаватели). 2 Подпроцессы (этапы) работы и ориентировочные сроки Подпроцессы процесса разработки (workflows, группы работ определенного вида) не стоит называть «этапами», т.к. они обычно существенно перекрываются во времени. В таблице приведены планируемые сроки начала и окончания каждого подпроцесса в рамках каждого подпроекта (в формате «месяц.год»). № 1 2 3 4 Подпроцессы Анализ задач проекта Выработка требований Проектирование программ Разработка программ* 5 Проектирование методических материалов 6 Разработка методических материалов 7 Методическая критика лаб Тестирование лаб *) Подпроекты MATLAB 07-09.06 07-09.06 07-10.06 09-12.06 08-10.06 07-09.06 10-11.06 09.06-08.07 07-02.07 10-04.07 (лаба 8 - 11.06!) (лаба10 - 02.07) (лабы 3,4 – 09.07) 11-12.06 09-10.06 10-11.06 Java C++ Source / Check 12-02.07 / 09-12.06 – / 11-11.06 – / 11-08.07 12-02.07 / - 12-07.07 10-03.07 11-04.07 02-08.07 / - 11.07; 05-10.07 03-11.07 11-06.07 02-05.07 02-06.07 04.07; 10-11.07 04-06.07 / 04.07; 09-12.07 имеется ввиду первая (бета) версия программ. 3 Обязанности и взаимодействие участников в процессе работы Ниже указываются не только взаимодействия между участниками на каждом из подпроцессов проекта, но и промежуточные результаты – те файлы, которыми обмениваются участники при этом взаимодействии (т.н. deliverables). 3.1 Анализ задач проекта Руководитель проекта, руководитель методической работы и старший методист уточняют сформулированные выше задачи проекта и концепции их реализации – по итогам обсуждений (в т.ч. обсуждений с методистами и старшими разработчиками). Также они (совместно с руководством проекта по курсу НВП) проводят поиск и анализ существующих практикумов по вычислительной математике, передавая найденное методистам. Результаты – куски текста (произвольной структуры), пригодные для вставки в документацию по проекту и одновременно служащие основой для формулировки требований к конкретным подпроектам и лабам. Данный документ и документ «Концепция практикума» (как минимум, в версии 1.0) также относятся к результатам данного подпроцесса. 3.2 Формулировка (технических) требований к программам Старшие разработчики под управлением руководителя проекта пишут документы заданной руководителем проекта структуры, которые конкретизируют технические требования по реализации общих концепций (полученных при анализе задач). При этом для простоты следует отталкиваться от требований, реализованных в старом практикуме (то есть указывать только новые функции и новые особенности реализации старых функций, а также, если требуется, общую структуру требуемых функций). Результаты (работы старших разработчиков) – документы функциональноструктурных требований для разработчиков каждого подпроекта. Требования делятся на «математическое» описание (структура которого определяется структурой задачи и используемых для нее численных методов) и на «интерфейсное» описание (графический интерфейс и привязанные к нему возможности по выполнению невидимых – но не имеющих прямого отношения к математике – функций). Эти две части описания включаются в Процесс разработки практикума по вычислительной математике. Версия 0.6 3 справочную систему практикума. Для экономии усилий на разработку справочной системы требования пишутся в настоящем времени «** выполняется путем выбора из списка **» или «Для ** следует выбрать » (а не в будущем времени «** будет реализовано путем **» или «Для ** должно открываться окно **»). Методисты интенсивно взаимодействуют на этом этапе со старшими разработчиками, отвечая на их вопросы и обращая внимание на важные требования (при возможности, методисту стоит прочитать документ требований). Подробности работы методистов по обобщению требований рассмотрен в разделе 3.8. Следует заметить, что среди требований и замечаний, которые собираются методистами, только наиболее крупные требования включаются старшими разработчиками в документ «Требования». 3.3 Проектирование программ Проектирование программ является обязанностью исключительно старших разработчиков, взаимодействие с разработчиками здесь может носить случайный характер. Результаты – каркас программ для каждого подпроекта и/или их техническое описание (в виде диаграмм и/или текста). 3.4 Разработка программ (Взаимодействие между старшими и младшими разработчиками в процессе разработки не описывается, поскольку оно для них понятно.) Результаты – 2-3 последовательные версии соответствующих программ, пригодные для передачи методистам и преподавателям. 3.5 Формулировка требований к методическим материалам Задача формулировки требований к методическим материалам (которые будут использоваться как основная часть «справочной системы программ») не заслуживает выделения в отдельный подпроцесс. Данная задача завершается уточнением списка разделов справки, описанного в документе «Концепция практикума» (в разделе «Методические материалы практикума»). Уточнение данного списка входит в обязанности руководителя проекта, руководителя методической работы и старшего методиста, после чего список (написанный в документе «Концепция практикума») служит основой для работы методистов. 3.6 Проектирование методических материалов С учетом сказанного выше, результаты проектирования методических материалов заключаются в подготовке для каждой лабы набора текстов (и ссылок), которые будут в процессе разработки единообразно оформлены и включены в подразделы справки «Учебник», «Задачник», «Варианты» и «Вопросы». Как и при формулировке требований к программам (см. раздел 3.2), для простоты здесь следует отталкиваться от содержания справки, включенной в старый практикум (то есть указывать только новые тексты и их связь со старыми, а также, во многих случаях, новую общую структуру подразделов). Проектирование методических материалов по лабе является исключительной обязанностью методиста лабы, однако при этом ему рекомендуется обращаться к другим методистам (напрямую или через старшего методиста) для накопления всевозможных текстов по тематике данной лабы. 3.7 Разработка методических материалов При разработке методических материалов методист взаимодействует с техническими писателями, которым он выделяет черновую работу по слиянию описаний лаб и приведению их в нужный формат (формат определяется руководителем проекта и старшим разработчиком соответствующего подпроекта). Процесс разработки практикума по вычислительной математике. Версия 0.6 4 Результаты – 2-3 последовательные версии материалов, причем две последние версии передаются разработчикам лабы для вставки в справочную систему (это нужно как минимум два раза, чтобы можно было учесть недостатки материалов, проявляющиеся лишь при их просмотре из справочной системы). 3.8 Методическая критика лаб Данный проект характеризуется противоречивыми мнениями большого количества пользователей проекта (преподавателей), а также их слабым знакомством с современными технологиями разработки программ. Основные сложности подобных проектов возникают в процессе сбора замечаний от преподавателей и превращения этих замечаний в новые технические требования к программам. Для того, чтобы обеспечить соответствие разрабатываемых лаб ожиданиям преподавателей (не только на этапе критики сделанного, но и на этапе формулировки требований), будет использоваться следующий формализованный процесс сбора и обработки замечаний (запросов на изменение) и требований (запросов на создание новой функциональности). Сбор замечаний и новых требований от преподавателей (в том числе от методистов) реализуется двумя способами. Во-первых, любые преподаватели могут заполнять простую таблицу – «форму запросов» (намного удобнее это делать в электронном виде, но возможно также и в бумажном виде, что разумно делать на занятиях, где преимущественно и возникают замечания). Эта форма передается любым способом руководителю проекта (бланк формы распространяется им же). Во-вторых, на общих методических семинарах и на «семинарах по подпроектам» (см. раздел 4) методистами, экспертами и критиками устно высказываются замечания, которые фиксируются (в электронной форме запросов) специально приглашенным разработчиком. В-третьих, методисты выясняют требования у своих экспертов на персональных встречах, на которые также может приглашаться один из разработчиков. Отличие критиков от «простых преподавателей» (не получающих деньги по проекту) заключается лишь в том, что они а) присутствуют на общих методических семинарах (по приглашению руководителя методической работы); б) по мере готовности получают разработанные лабы (от руководителя проекта) и методические материалы (от старшего методиста); в) в 2007 г. обязуются не реже 1 раза в 2 месяца передавать руководителю заполненную форму запросов (см. выше), причем в электронном виде. Обработка замечаний и новых требований, собранных рассмотренным выше образом, осуществляется методистами после получения от руководителя проекта тех запросов преподавателей, которые относятся к их лабам. Результаты обработки запросов методистами – это тоже формы запросов (в электронном виде), содержащие те же замечания и требования, но, возможно, с более конкретными формулировками (основанными на собственных представлениях методиста о лабе, за которую он отвечает), а также с более правильным указанием приоритетов по запросам (вплоть до отбрасывания тех запросов, которые методист считает лишними или вредными). Таким образом, в большинстве случаев работа методиста сводится к копированию строк из нескольких форм в свою форму (таблицу Excel) с небольшими правками и с добавлением своих запросов. Форма от методиста направляется руководителем проекта старшим разработчикам подпроектов, к которым она относится. Также форму запросов рекомендуется использовать методистам для ввода плана собственной работы и работы технического писателя (для соответствующих «запросов» в столбце «модуль» выбирается «метод. указания»). Примечание. Неизбежно, что к концу проекта НЕ будут реализованы все запросы, постоянно собираемые в рамках данного подпроцесса. Однако в обработанном методи- Процесс разработки практикума по вычислительной математике. Версия 0.6 5 стами виде все запросы сохранятся (как неотъемлемая часть проекта) и будут служить основой для дальнейшего развития практикума. 3.9 Тестирование лаб Тестирование лаб (в весеннем и осеннем семестрах 2007 г.) осуществляется методистами этих лаб и студентами их групп. Тестирование предполагает поиск ошибок, то есть некорректного поведения программы. Результаты тестирования фиксируются методистом и другими участниками в той же форме запросов, через которую собираются замечания и новые требования. Другими словами, замечания к работоспособности программ обрабатываются во многом аналогично тому, как обрабатываются «методические» замечания к лабам (см. раздел 3.8). Отличие лишь в том, что методисты имеют меньше отношения к формам запросов на устранение ошибок, такие формы собираются и обрабатываются, в основном, старшими разработчиками. В столбце «Тип запроса» (в форме запросов) можно выбрать 3 типа запросов, связанных с ошибками: «ошибка – неверно» (программа работает, но не так, как нужно), «ошибка – не работает» (программа не выполняет некоторое действие, и при этом «молчит»), «ошибка – ругается» (программа выдает сообщение об ошибке в корректной ситуации или вообще прекращает свою работу). Для ошибок в методических материалах, конечно, имеет смысл только один тип запроса: «ошибка – неверно». 4 Мероприятия проекта Мероприятие 1 – «общий методический семинар», который назначается (не реже 1 раза в 2 месяца) и возглавляется руководителем методической работы (который вместе с руководителем проекта составляет и заранее рассылает повестку дня участникам семинара). На семинаре присутствует большинство методистов и руководитель проекта, доводящий затем результаты семинара до старших разработчиков. В зависимости от повестки дня, руководитель методической работы приглашает на семинар определенных экспертов и критиков. Руководитель проекта также обычно привлекает одного из разработчиков для фиксации результатов семинара (всех разработчиков каждый раз нет смысла приглашать на общие семинары, но иногда каждому из них полезно послушать требования и замечания из первоисточника). На семинаре определяются наиболее приоритетные проблемы практикума в целом, принимаются решения об изменении в общих требованиях к программам и методическим материалам, высказываются требования и замечания по конкретным лабам (см. раздел 3.8). При этом методисты принимают активное участие в обсуждении не только своих лаб. Мероприятия 2 – «семинары по подпроектам», которые назначаются руководителем проекта (не реже 1 раза в 2 месяца по каждому подпроекту) и возглавляются им. На семинаре по подпроекту присутствуют старший разработчик проекта и все его разработчики; руководитель проекта также обычно привлекает на семинары методистов некоторых лаб подпроекта. На семинаре обсуждаются функциональные и «интерфейсные» требования к конкретным программам, принимаются решения об их изменении (точнее, о конкретизации изменений, требуемых методистами). Результаты семинара фиксируются одним из разработчиков. Мероприятия 3 – «встречи с методистом». Встречи первого вида назначаются методистом с целью выяснения текущего состояния дел у разработчиков подпроекта, в который входит его лаба (обычно только у старшего разработчика). Второй вид встреч – встречи методиста с экспертом его лабы (если методист не является сам себе экспертом). Такие встречи, если они касаются требований к программам (а не методических материалов) происходят тоже в присутствии старшего разработчика – для экономии времени методиста и для того, чтобы разработчик зафиксировал основные результаты встречи). Процесс разработки практикума по вычислительной математике. Версия 0.6 6 5 Конкретные методисты и их связь с лабами Замечания по названию и содержанию лаб см. в документе «Концепция практикума». Вопросом помечены те методисты, с кем пока нет договоренностей на данные лабы. Нумерация лаб указана в соответствие с разделом 2.5 «Концепции практикума»; приоритеты (срочность разработки лаб) взяты из раздела 2.4 того же документа. № 2 34 Название лабы Приоритет Методист Эксперт День встреч Цикл лаб «Алгебраические уравнения и системы» (подпроект Java) Линейные системы уравнений. Спектр матриц Нелинейные уравнения и системы. Локализация корней. Минимум март (высокий) сентябрь (средний) Аристова Е.Н. Симаков С.С. Пирогов В.Б. пятница Демченко В.В? вторник? Цикл лаб «Приближение функций» (подпроект Java) 5 6 Интерполяция функций Среднеквадратич. приближение. (Переопределенные системы) 1 7 8 Погрешности вычислений Численное дифференцирование Численное интегрирование октябрь (ср) октябрь (низкий) Лобачев В.А. Иванов В.Д. вторник Цикл лаб «Дискретные функции» (подпроект Java) сентябрь (ср) ноябрь (низ) ноябрь (низ) Пирогов В.Б. – пятница? Косарев В.И. – понедельник? Цикл лаб «Обыкновенные дифференциальные уравнения» (подпроект Java, №10б–С++) 9 Задача Коши для нелин. СОДУ 10а Кр. задача для нелин. СОДУ 10б Кр. задача для лин. ОДУ 2 пор. ноябрь 2006! декабрь (низ) февраль (выс) Евдокимов А.В. Лобанов А.И. Пирогов В.Б. Лобанов А.И. – – понедельник? понедельник? Цикл лаб «Одномерные уравнения в частных производных» (подпроект C++) 11 12 13 Уравнение переноса. Волновое уравнение Уравнение теплопроводности Конв.-диффузионное уравнение март (высокий) март (выс) апрель (низ) Косарев В.И. – понедельник? Лобанов А.И. Пастушков Р.С. – – понедельник? понедельник? Цикл лаб «Многомерные уравнения в частных производных» (подпроект C++, Java) 14 15 [Ур. теплопроводности в 2D] Уравнение Пуассона. Методы решения сеточных уравнений (оч. низкий) апрель (высокий) (пока не делаем) Аристова Е.Н. Пирогов В.Б. пятница Под вопросом на текущий момент: участие двух экспертов в работе по НАУ. 6 Конкретные разработчики и их связь с подпроектами Ниже перечисляются разработчики, старшие разработчики и технические писатели – для того, чтобы методисты могли понимать, с кем им нужно взаимодействовать (для этого нужно также понять, к каким подпроектам относятся лабы). Вопросом помечены те разработчики, с кем пока нет договоренностей. № Участник 1 Корчак Антон 2 Константинов Никита 3 Бабурин Дмитрий 4 Евдокимов Алексей 5 Лебедева Ирина 6 Жмуров Артем? 1 2 3 4 Сушко Геннадий Трифонов Сергей Погорелова Елена Украинец Артем? Роль (функции) Подпроект Java разработчик (данные, формы); с осени – ст.разработчик разработчик (методы) + тех.писатель? разработчик (графики,XML?) + тех.писатель? ст.разработчик до осени (GUI), консультант по используемым библиотекам разработчик (GUI) разработчик (лабы 8-9, графики) Подпроект С++ разработчик (GUI); до осени – ст.разработчик разработчик (методы, данные) разработчик (справка, формы) + тех.писатель (с осени) ст. разработчик Режим работы, ограничения % участия (в 2006г.) 5 курс 30 4 курс 3 курс занят как руководитель всего проекта работает в фирме работает в фирме 1/2 15 10 10 4 курс 4 курс 3 курс аспирант 2го года 25 25 15 10? Процесс разработки практикума по вычислительной математике. Версия 0.6 10 15 7 Не хватает на текущий момент: 1-2 технических писателей; а также не хватает времени у старших разработчиков. Процесс разработки практикума по вычислительной математике. Версия 0.6 8