МЕЖДУНАРОДНЫЕ ОБРАЗОВАТЕЛЬНЫЕ СТАНДАРТЫ ПО ПРОГРАММНОЙ ИНЖЕНЕРИИ Владимир Павлов, Александр Гаврилов, Microsoft ACM/IEEE Computing Curricula 2001 Обзорный том Том по инфоматике (computer science) Том по аппаратным платформам (computer engineering) Том по программной инженерии (software engineering) Том по информационным системам (information systems) Том по информационным технологиям (information technology) Другие тома...? Том по программной инженерии (CCSE) ожидаемые результаты обучения студентов совокупность знаний по программной инженерии рекомендации по разработке учебных планов характеристики учебных планов педагогические стратегии курсы и порядок их следования Проект перевода Computing Curricula 2005: Software Engineering Организован комитетом по образованию АПКИТ Спонсируется компаниями Microsoft и Intel Редакторы перевода: В.Л.Павлов, А.А.Терехов, А.Н.Терехов Сейчас осуществляется последняя итерация Документ можно получить, направив запрос по адресу: vpavlov@microsoft.com , vlpavlov@ieee.org Предполагается публикация перевода CCSE: ожидаемые результаты обучения студентов По окончании университетского обучения выпускники должны: 5 Демонстрировать владение знаниями и навыками в области программной инженерии, а также иметь профессиональные качества, необходимые для начала работы в качестве инженера-разработчика ПО В процессе работы над программными продуктами быть способными эффективно решать поставленные перед ними задачи как индивидуально, так и в команде Разрешать противоречия в стоящих перед проектом целях, находя приемлемые компромиссы в рамках существующих ограничений (стоимость, время, знания, существующие системы и организации и т.п.) Проектировать решения в одной или более предметных областях, используя подходы программной инженерии, балансирующие этические, общественные, юридические и экономические интересы различных заинтересованных сторон Демонстрировать понимание и способность к применению распространенных теорий, моделей и методов, которые обеспечивают современную базу для идентификации и анализа проблем, проектирования, разработки, реализации, аттестации и документирования программного обеспечения Демонстрировать понимание важности и способность к ведению переговоров, способность результативно работать, осуществлять руководство и эффективно общаться с заинтересованными лицами в типичных для разработки программного обеспечения ситуациях Изучать новые модели, методы, и технологии по мере их появления, а также осознавать необходимость постоянного профессионального роста CCSE: совокупность знаний по программной инженерии 1. Основы информационных технологий (CMP) 2. Основы математики и инженерии (FND) 3. Профессиональная практика (PRF) 4. Моделирование и анализ программного обеспечения (MAA) 5. Проектирование программного обеспечения (DES) 6. Верификация и аттестация программного обеспечения (VAV) 7. Эволюция программного обеспечения (EVL) 8. Процессы разработки программного обеспечения (PRO) 9. Качество программного обеспечения (QUA) 10. Управление программными проектами (MGT) 6 CCSE: рекомендации по разработке учебных планов Разработчики учебных планов и преподаватели конкретных курсов должны иметь достаточный объем знаний и опыта в соответствующих областях, а также понимать характерные особенности программной инженерии Разработчики учебных планов и преподаватели должны мыслить в терминах конечного результата Разработчики учебных планов должны поддерживать баланс между полнотой покрытия материала и гибкостью построения курсов, оставляя преподавателям простор для инноваций Изучение ключевых концепций, принципов и проблем программной инженерии должно повторяться в течение всего учебного плана, способствуя формированию инженерного подхода у студентов Изучение некоторых тем программной инженерии подразумевает определенный уровень зрелости. Поэтому такие темы должны преподаваться в конце обучения, в то время как другой материал должен изучаться на более ранних стадиях, чтобы способствовать формированию зрелости Студенты должны также изучить некоторую прикладную область (или области), не относящуюся к программной инженерии 7 CCSE: характеристики учебных планов Курсы по программной инженерии должны преподаваться таким образом, чтобы четко проявлялись как научная, так и инженерная составляющие этой дисциплины Студенты должны получить определенные навыки, выходящие за рамки данного предмета Студентам необходимо привить стремление учиться и саморазвиваться Программная инженерия должна преподаваться как дисциплина, ориентированная на решение проблем Наибольший упор в обучении необходимо делать на основополагающих и неизменных принципах программной инженерии, а не на информации о конкретных средствах и инструментах Обучение должно проходить с использованием соответствующих современных средств, даже если данные средства не являются целью обучения Материал, преподаваемый в рамках учебного плана по программной инженерии, должен иметь строгое теоретическое обоснование и экспериментальное подтверждение, или же являться общепринятой профессиональной практикой Учебный план должен основываться на реальном практическом опыте Необходимо как можно чаще поднимать вопросы, связанные с моральными, юридическими и экономическими аспектами будущей деятельности студентов, а также раскрывать понятие того, что значит быть профессионалом в выбранной ими области 8 CCSE: педагогические стратегии Чтобы обеспечить понимание студентами определенных важных идей, необходимо мотивировать их интересными, конкретными и убедительными примерами В XXI веке обучение программной инженерии должно выйти за пределы лекционного формата, необходимо обращать внимание на важность различных подходов к преподаванию Необходимая эффективность обучения и совместной деятельности преподавателей может быть достигнута при проектировании учебного плана таким образом, чтобы студенты получали несколько типов знаний одновременно Учебный план и входящие в него курсы должны регулярно пересматриваться и обновляться 9 CCSE: курсы и порядок их следования Использование курсов из CCCS Варианты последовательностей курсов Начинаем с информатики Начинаем с программной инженерии Шаблоны учебного плана Шаблон N2S-1 - Учебный год в Северной Америке, начало на 2 году обучения, семестры Шаблон N2S-1c – На факультете информатики Шаблон N2S-1e- На инженерном факультете Шаблон E-1 – Сокращенная модель для стран, в которых математический анализ и естественные науки не являются обязательными для преподавания в вузе Шаблон E-2 – Другая модель для страны, в которой математический анализ и естественные науки не являются обязательными Шаблон N3Q-1 – Учебный год в Северной Америке, начало на 3 году обучения, разбиение по четвертям Шаблон N1S – Модель США, в которой программная инженерия преподается с самого начала в составе курсов по информатике Шаблон Jpn 1 – Японский шаблон 1 Шаблон Aus1: Австралийская модель с четырьмя курсами в семестре Шаблон Isr 1: Модель для Израиля Подробное описание предлагаемых курсов 10