Главная В избранное Версия для печати

Меню:

... По українськи

Обучение программной инженерии

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

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

И последнее по счету, но не по важности: студенты еще не осознают всей пользы разработки требований. Несколько лет назад при решении конкретной задачи я попросил студентов прежде всего сформулировать требования. Один из них недовольно возразил: «Как я могу написать, что делает система, если я ее пока не запрограмував?»

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

Максимальное упрощение. В своем учебнике по программной инженерии я использую аналогию с обучением плаванию. В начале XX века Амстердамской школьники обычно учились плавать на школьном игровой площадке, лежа на деревянных скамейках и отрабатывает правильные движения. Моему отцу, что вырос в селе, плавание далось гораздо тяжелее - дед обвьязав его веревки вокруг пояса, бросил в реку и крикнул: «Пливе!» Сегодня уроки плавания начинаются мягко, в детском бассейне, с мамой и множеством плавательных приспособлений . Постепенная количество поплавками уменьшается, а бассейн становится глубже.

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

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

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