Cодержит самые полные данные об угрозах, исходящих из Интернета, авторитетный анализ и комментарии. Выводы отчета помогут эффективно защитить компьютеры от вирусов, фишинга и спама в будущем.
Рассматриваются три типичных метода хищения данных: добронамеренные сотрудники, нацеленные атаки извне и мстительные сотрудники. Наряду с обзором способов противодействия даны конкретные советы по предотвращению взлома.
Открытые системы :: Академия ОС
О преподавании программной инженерии
В последние годы программистское сообщество приложило немало усилий для упорядочения накопленных знаний и поиска способов их преобразования в учебные планы.
Ханс ван Влиет
В последние годы программистское сообщество приложило немало усилий для упорядочения накопленных знаний и поиска способов их преобразования в учебные планы. В результате этих усилий появились проекты SWEBOK (Guide to the Software Engineering Body of Knowledge — «Руководство по сумме знаний о программной инженерии») и SE 2004 (Software Engineering 2004).
SWEBOK отражает общепринятое представление о том, что должен знать программный инженер, имеющий степень бакалавра и четырехлетний опыт работы. SE 2004 содержит руководящие принципы создания учебных планов по программной инженерии для студентов-выпускников. Можно рассматривать SE 2004 как образовательный эквивалент SWEBOK.
SE 2004 и SWEBOK — важные вехи, отражающие обширный реальный опыт авторских коллективов и результаты обсуждения в рабочих группах. Оба документа особо подчеркивают «инженерную» сторону программной инженерии [1-3], направленность которой влияет как на содержание типичного курса последней, так и на понимание студентами сущности изучаемой дисциплины. Техническая ограниченность понимания дисциплины порождает ряд допущений, способных ввести в заблуждение преподавателей.
Ряд авторов опубликовали схожие статьи о мифах, относящихся к формальным методам, разработке требований и содержанию учебных курсов по программной инженерии. Например, в [4] обсуждается, смогут ли новые выпускные программы по программной инженерии стать панацеей. Заблуждения, о которых идет речь, касаются содержания типичного курса программной инженерии и его восприятия студентами младших курсов.
Контекст
Как правило, голландские университеты не предлагают отдельных ученых степеней по информатике и компьютерной инженерии. Они располагают трехлетней программой бакалавриата и двухлетней магистерской программой по информатике. Большинство студентов выбирают бакалавриат сразу после средней школы. Учебная программа не имеет особой специализации и обычно включает в себя лишь общий курс по программной инженерии, который, как правило, состоит из теоретических основ и практической работы над проектом. Магистерская программа содержит более специализированные курсы по программной инженерии.
В Свободном университете (Vrije Universiteit) оценивают теоретическую и практическую части собственного курса программной инженерии, соответственно, как четыре и восемь зачетных единиц ECTS. В Европейской системе зачетов результатов обучения (European Credit Transfer System, ECTS) одна единица ECTS составляет приблизительно 28 учебных часов, а полный год равен 60 ECTS. Продолжительность курса Свободного университета — 12 недель. Студенты должны изучать его на втором году программы бакалавриата, не имея на начальном этапе достаточной зрелости в области информатики и программной инженерии. Как правило, каждый год на него записываются 150-200 студентов.
Мы следуем рекомендациям SE 2004 о первоочередном изучении информатики: серьезное знакомство с программной инженерией осуществляется на втором году обучения. Содержание нашего курса во многом совпадает с предложенным в SE 2004 курсом SE201, представляющим основные принципы и концепции программной инженерии.
Заблуждения преподавателей программной инженерии
Заблуждение 1. Для курса программной инженерии нужен промышленный проект
Это заблуждение основано на том, что студентов надо готовить к «реальному миру», который сложен, изменчив и полон противоречий. Он наполнен действующими лицами из разных предметных областей, имеет политические и культурные аспекты. Чтобы достойно ответить на его вызов, следует основывать учебные проекты на реальных примерах [5] или вводить в упражнения для студентов искусственные усложнения и препятствия [6]. Вопрос состоит в том, насколько все это нужно.
Чрезмерная нагрузка на студентов. На первом году обучения студенты изучают программирование, структуры данных, устройство компьютеров и т. д. В этих курсах преподаватели, как правило, четко структурируют работу и ставят вполне понятные задачи, каждая из которых часто имеет лишь один правильный ответ. В курсе программной инженерии студенты внезапно оказываются перегруженными множеством новых тем. Разумеется, можно попробовать ненавязчиво осветить некоторые принципы программной инженерии в других вводных курсах, но это не так-то просто.
В начале нашего курса программной инженерии студенты еще не знакомы с разработкой требований и не умеют писать непротиворечивые требования или получать их у специалистов по предметной области; упорядочивать требования по приоритетам; соотносить требования с усилиями, необходимыми для их реализации; документально оформлять требования.
И последнее по счету, но не по важности: студенты еще не осознают всей пользы разработки требований. Несколько лет назад при решении конкретной задачи я попросил студентов первым делом сформулировать требования. Один из них недовольно возразил: «Как я могу написать, что делает система, если я ее пока не запрограммировал?»
Проблема не ограничивается разработкой требований. Аналогичные сложности возникают при знакомстве с проектированием, тестированием, управлением конфигурацией, контролем над качеством и т. д. Сопровождение вводных курсов по этим темам примерами из реальной жизни требует слишком многого от студентов и преподавателей. Вдобавок студенты недостаточно зрелы для того, чтобы оценить важность многих тем программной инженерии. Некоторые задачи вполне очевидны: обращайте внимание на документацию, контролируйте конфигурацию, тщательно все проверяйте и т. д. Однако студенты не ощущают в полной мере сложность таких проблем, как организация рабочей группы и калькуляция расходов. Профессиональные программисты познают все это на практике.
Максимальное упрощение. В своем учебнике по программной инженерии [7] я использую аналогию с обучением плаванию. В начале XX века амстердамские школьники обычно учились плавать на школьной игровой площадке, лежа на деревянных скамейках и отрабатывая правильные движения. Моему отцу, выросшему в деревне, плавание далось намного труднее — дед обвязал его веревкой вокруг пояса, бросил в реку и крикнул: «Плыви!» Сегодня уроки плавания начинаются мягко, в детском бассейне, с мамой и множеством плавательных приспособлений. Постепенно количество поплавков уменьшается, а бассейн становится глубже.
Я отношусь к студентам, как к детям на игровой площадке. Обычно я концентрирую внимание максимум на нескольких проблемах в специально подобранной среде. Я раскрываю все необходимые темы курса (попутно рассказывая любимые анекдоты) — при том, что учебный проект охватывает лишь несколько ключевых проблем. С дополнительными трудностями реальной жизни студенты столкнутся в последующие годы в других курсах. Отмечу: порой положительная оценка моего начального курса программной инженерии формируется у студентов лишь через несколько лет после его окончания.
Платформа DIRECTUM стала центральным звеном в создаваемой информационной системе, направленной на повышение эффективности и открытости местных органов власти.
Комментарии:
Для того, чтобы оставить комментарий авторизуйтесь или зарегистрируйтесь.