Вопрос

Posted on Posted in Без рубрики

Есть у меня желание (и возможности) сделать курс и преподавать в колледже такую дисциплину, как «архитектура ПО».

Вопрос а) как вы считаете, должен ли студент колледжа (т.е. это не ВУЗ, это ССУЗ) иметь представление об архитектуре, или это не его задача и б) посоветуйте хороших учебников для.

Originally published at Aceler online. You can comment here or there.

Поделиться:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • Digg
  • БобрДобр
  • MisterWong.RU
  • Memori.ru
  • МоёМесто.ru
  • Сто закладок
  • Блог Я.ру
  • Блог Li.ру
  • Одноклассники
  • Add to favorites
  • Blogger
  • email
  • Netvibes

23 thoughts on “Вопрос

  1. Если профильный курс, конечно, должен иметь хотя бы представление.
    Учебники могу порыться… потом скажу чО и как, хе

    1. +1. Если профильный — то обязательно должен знать. Как, что, почему так и что стало с теми, кто делал иначе.

  2. Представление иметь, конечно, хорошо. Вот только что ты понимаешь под этим курсом. Огласи хотя бы примерную программу. Мне, как практикующему архитектору, было бы интересно на это посмотреть.

    1. Это сложный вопрос, поскольку курс будет разработан под программу колледжа.

      Я бы хотел шаблоны проектирования, с чем их едят, немного (или много) про UML, пройтись по десятку шаблонов. Ничего экстраординарного, там всё равно не потянут :)

      1. Лучше сконцентрируйся на том, что разработка — это циклический процесс и в нем каждая составляющая важна. И проведи через семестр сквозной курс, материал которого будет задействован на остальных курсах ИТшной направленности. Например, на основе OpenUP/Basic, чтобы приблизить их к UMA и SPEM2.0 как к некоей идеальной системе организации архитектурного и проектного труда. Чтобы прошли все типовые стадии и смогли использовать имеющиеся практики. Среди них есть и эволюционная архитектура с эволюционным дизайном. Довольно четко можно показать, как идет развитие и усложение проекта и архитектуры, как учитывать ошибки и вносить изменения. Стадий базовых всего четыре, практик разработки — семь, управления — пять. Это немного, зато пройдут через все типовые роли и поймут, какой уровень ответственности каждая из них накладывает, как работать в команде и балансировать интересы всех участников, какие результаты от них требуются на каждом этапе.

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

        ПО для поддержки курса: http://www.eclipse.org/epf/, http://epf.eclipse.org/, http://epf.eclipse.org/wikis/openup/ (там есть еще кусочек русской версии, но только кусочек).

        1. Вот об этом вопрос. Всё перечисленное выше — это уровень институтского курса, причём не младше четвёртого. В колледже это нереально, особенно пройти все этапы разработки, если ребята даже разрабатывать не умеют. Поэтому и встаёт вопрос — нужно ли давать небольшой кусочек всего процесса, и если нужно, то какой именно.

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

          Командную работу тоже надо давать, да и понятия о Q&A были бы не лишние, я уже не говорю про проектирование и сопровождение ИС, но это тогда надо делать колледж уровня Кембриджа и соответствующее финансирование :)

          1. Я считаю, что именно из-за подхода «это уровень институтского курса» мы и имеем сейчас полную разруху в головах и беспорядок в софте. Никто этому в институте не учит и не будет нормально учить. Освоить такое можно только на практике и как можно раньше в нее окунувшись. Университетские теоретики идут лесом, потому что практикой они не поверены или давно ее покинули.

            Посмотри ту самую вики по OpenUP, там довольно легко вырисовывается совершенно базовый курс, без глубокого погружения в проблематику, но с практическими выводами «как делать». А закрепляются эти выводы обратной связью на практических проектах, где обязательно у студентов будут ошибки. Важно, чтобы эти ошибки были контролируемыми и создавали обратную связь. Чтобы четко им было видно зачем все это нужно.

            Вот при таком закреплении на реальных ошибках можно будет и типовые шаблоны проектирования показать, вложив их в архитектурную канву. Но не наоборот.

          1. Такого курса в чистом виде (как курс) не существует в свободном доступе. То, о чем я говорю, преподается внутри сотрудникам IBM и в некоторых других крупных корпорациях, а также доступно для самостоятельного изучения по ссылкам, которые я привел. Но там лишь часть общей картины — по которой ее можно восстановить, но реальность значительно шире. К примеру, в OpenUP/Basic всего несколько work product в базовой библиотеке, в практиках внутри ТрехБукв их около 30 тысяч.

            Однако для начала изучения оно подходит достаточно хорошо.

    1. Мне представляется, что человеческий мозг похож на маленький пустой чердак, который вы можете обставить, как хотите. Дурак натащит туда всякой рухляди, какая попадется под руку, и полезные, нужные вещи уже некуда будет всунуть, или в лучшем случае до них среди всей этой завали и не докопаешься. А человек толковый тщательно отбирает то, что он поместит в свой мозговой чердак. Конан Дойл, «Этюд в багровых тонах»

        1. Какой вопрос — такой ответ.
          Курс о котором глаголится подразумевает Общее Образование.
          Это означает, что человек изучает Всё Одновременно.
          А так — если это убогая специальность «Оператор ЭВМ» — нафиг не нужны им паттерны.
          Аналогично тестировщики.

          Хочешь простой пример? Тестировщики СУБД. Высшее техническое образование, в том числе и по информатике.
          Большим Успехом является то, что после двучасовой лекции (и 2+ лет работы, ага) ДВОЕ из ТРИДЦАТИ поняли что такое ПЛАН ВЫПОЛНЕНИЯ ЗАПРОСА. Даже не в деталях, просто они теперь знают что есть ДЕРЕВО ОБРАБОТЧИКОВ, и что от его порядка зависит ПРОИЗВОДИТЕЛЬНОСТЬ.

          Так что стандартным ВУЗовским тупиздням курс бесполезен. Кто может оценит и кому это нужно — уже сам работает и жрёт всё на лету (мало), кто прилежный — того просто брать негроидом на копейки, а остальные 90% тупиздни просто от армии косят! =)

          1. Вообще-то речь идёт о колледже, а не ВУЗ-е. К тому же, речь идёт о дополнительном курсе, а не основном, т.е. туда будут ходить те, кому надо. Вопрос стоит именно в том, что надо. Тебе, как человеку, к которому приходят всякие выпускники, и отвечать :)

            1. По-моему, в текущей системе образования уже бесполезно делать что-либо.
              Айтишное и не только образование уже кардинально пересматривать надо и реструктурировать.
              С текущим положением дел оно просто отмирает. Не только высшее, но и школы.
              Мертвому припарки, грубо говоря.

              1. Третий раз говорю — речь идёт о колледже. Колледж может вообще свою дополнительную программу делать, ему главное, чтобы по основной программе сдавалось ЕГЭ, дополнительная волнует только ректора.

                Соответственно, мы можем сделать что угодно. Вопрос. Третий раз. Что? :)

                  1. Образование упразднить? :D

                    Я не знаю, как у тебя с эффектом, а у нас студенты пишут свободное ПО, участвуют в процессе разработки, документацию документируют, работают с реальным софтом. А ты говоришь, эффекта ноль :)

                    Ладно, поставлю вопрос по-другому: что бы ты хотел, чтобы приходящие к тебе на работу свежевыпущенные программисты знали из области архитектуры ПО, командной работы, Q&A? Понятно, что сделать сразу крутой курс мы не сможем, поэтому надо ограничиться только самым базовым и важным, чтобы с этого можно было быстро научиться всему остальному.

                    1. ОК, спасибо, жду ;)

                      P.S. Сегодня у нас релиз одной из студенческих работ, кстати.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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