План учебника
Jan. 27th, 2015 12:29 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Совместными усилиями с
snowman_sailor и
ramendik написали план учебника по введению в программную инженерию. Вместо двух частей получилось три.
На мой взгляд, проект получился весьма амбициозным, и не уверен что у нас троих хватит квалификации, чтобы раскрыть (особенно, учитывая ограничения на объем) все темы. (правда, как известно, хочешь в чем-нибудь разобраться - прочитай по нему спецкурс).
В общем я бы с удовольствием пригласил на отдельные разделы других авторов, которые лучше меня понимают в соответствующих вопросах. (все это планируется публиковать под CC).
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
На мой взгляд, проект получился весьма амбициозным, и не уверен что у нас троих хватит квалификации, чтобы раскрыть (особенно, учитывая ограничения на объем) все темы. (правда, как известно, хочешь в чем-нибудь разобраться - прочитай по нему спецкурс).
В общем я бы с удовольствием пригласил на отдельные разделы других авторов, которые лучше меня понимают в соответствующих вопросах. (все это планируется публиковать под CC).
no subject
Date: 2015-01-27 09:42 am (UTC)Либо название поменяйте, либо надо сокращать. Введение в специальность - курс на десяток лекций, и тоненькая брошюрка.
no subject
Date: 2015-01-27 09:47 am (UTC)И в первом семестре было 10 теоретичеких курсов с учебниками сравнимой тошщины. Ну ладно, 8 если выкинуть высшую математику и историю КПСС.
no subject
Date: 2015-01-27 09:52 am (UTC)no subject
Date: 2015-01-27 10:03 am (UTC)no subject
Date: 2015-01-27 10:07 am (UTC)Если конкретно - скромный эпилог под заголовком "Жизнь после релиза" придется развернуть в три самостоятельных раздела, превышающие по объему весь остальной текст, вместе взятый.
Честно говоря, мне хотелось об этом сказать сразу, как только увидел оный план. Но вот как раз потому, что учебник называется "Введение...", а не "Конструирование больших программных систем", заставил себя заткнуться.
no subject
Date: 2015-01-27 10:07 am (UTC)1) введение про время, причинность и теорию относительности (что бывают события, про которые нельзя сказать, кто был первым, что сообщения распространяются не мгновенно, и т.д.); - кстати, обьяснять VCS и БД будет проще
2) введение в моделирование данных и онтологию (почему нельзя всему присвоить id, почему вредно считать что чего-то бывает только 1 штука, что такое вообще identity - сравнение по ссылке, по значению, почему нельзя составить Исчерпывающий Список Всего, что делать если мы Машину-5 разобрали на Запчасть-7 и Запчасть-8, а потом собрали из них Машину-10 и Машину-11 и т.д.)
Особенно это в форматах данных важно (версионирование, то-се. СУБД часть вопросов худо-бедно закрывают)
UPD: отличие между неизвестными, ошибочными, неполными и неточными данными еще
3) про оценку производительности (как мерять, как интерпретировать результаты, как искать бутылочные горлышки)
4) как собирать с юзеров фидбек, как отличать фантазии юзеров от наблюдений юзеров (известный анекдот "голова болеть начала? а вот когда мы эту сотовую вышку еще и включим..."), и вообще инженерия требований, хоть она и достойна отдельной книги...
5) как правильно обрабатывать ошибки, хмммм, тут нет серебряной пули но я где-то видел хороший сравнительный обзор, только ссылку потерял
Список ни в коем случае не полон, просто не включая мозг написал
no subject
Date: 2015-01-27 10:07 am (UTC)no subject
Date: 2015-01-27 10:09 am (UTC)В первой части - каши больше. в третьей - меньше.
Дабы не быть голословным:
- разделы "межпрограмное взаимодействи", "Расширяемые программы", "использование внешних программ", IMHO нуждаются в сведении в
два раздела
no subject
Date: 2015-01-27 10:16 am (UTC)no subject
Date: 2015-01-27 10:27 am (UTC)Нельзя, слишком уж все перемешано.
К сожалению коментарий ушел раньше чем я его дописал.
- разделы "межпрограмное взаимодействи", "Расширяемые программы", "использование внешних программ", IMHO нуждаются в сведении в два раздела - теоретические основы межпрограмного взаимодействия, и обзор используемых реализаций.
- Раздел о виртуализации производит странное впечатление. Объединять ее с кроссплатформенностью смысла нет никакого. Существенная часть того что относят к виртуализации двинулась в сторону изоляции среды исполнения, но при этом альтернативные варианты изоляции оставлены без внимания.
- часть раздела "настройка и персонализация" явно просится в третью часть.
no subject
Date: 2015-01-27 10:35 am (UTC)Это что-то вроде онтологической базы системной инженерии. Чему пытается учить
Ну то есть если вы сумеете впихнуть это в 3-5 страниц. это можно включить во введение. Но боюсь, что тут понадобится более объемное изложение.
Про оценку производительности спряталось под заголовками "нагрузочное тестирование и профайлинг".
Про взаимодействие с польхователями есть. Инженерия требований и правда, достойна отдельной книги. Причем не для всех из тех, кому нужен этот курс, будет нужен и тот.
Что касается того, как правильно обрабатывать ошибки, то это должно идти красной нитью через всю вторую и третью часть. Потому что вообще говоря вся архитектура и весь программистский инструметарий - это средства, позволяющие либо обрабатывать, либо не допускать определенные типы ошибок.
no subject
Date: 2015-01-27 10:39 am (UTC)Здесь есть именно обзор реализаций. А теоретические основы будут в каком-нибудь другом курсе.
Ну а разделение на три главы связано с тем, что эта тема (обзор реализаций) слишком обширная, чтобы ее можно было свести воедино. И, на мой взгляд, с точки зрения разработчика здесь имеют место принципиально разные ситуациции, когда
а) мы разработываем одновременно оба конца взаимодействия
б) мы приделываем к большой внешней системе маленький плагин
в) мы собираем большую систему из готовых кирпичиков.
no subject
Date: 2015-01-27 10:41 am (UTC)no subject
Date: 2015-01-27 10:41 am (UTC)к процессу подготовки первокурсников в рамках массового очного первого образования 17-леток отношения не имеет. (простите ради аллаха, вы давно первокурсников "среднего хорошего вуза" вживую видели?)
P.S. (читать "введение в специальность" в течение ДВУХ СЕМЕСТРОВ раз в неделю, как здесь предлагалось - это безумие. Введение должно быть достаточно интенсивным, а не подпороговым, чтобы скорость запоминания хоть немного превышала скорость выветривания)
P.P.S - основной вопрос - пожалуйста, сообщите предпололжительное кол-во учебных часов для этого курса?
no subject
Date: 2015-01-27 10:43 am (UTC)Это надо изучать если не в начальной школе, то по крайней мере не позже полового созревания. Но лучше всё-таки в начальной.
no subject
Date: 2015-01-27 10:45 am (UTC)Я бы не стал на этом основании исключать такие темы, а также подразумевать, что их все знают. Даже из ээммм взрослых с высшим образованием таких людей вряд ли найдется 5%
no subject
Date: 2015-01-27 10:46 am (UTC)no subject
Date: 2015-01-27 10:50 am (UTC)no subject
Date: 2015-01-27 10:51 am (UTC)no subject
Date: 2015-01-27 10:53 am (UTC)До этого да, видел кучу литературы (про многопоточность, и т.д. и т.п.) в которой вроде как авторы должны были знать про сабж, но видимо сами не знали, поэтому писали то, что и сейчас выглядит малопонятным бредом.
no subject
Date: 2015-01-27 11:01 am (UTC)2) Онтологии и моделирование данных там размазаны тонким слоем между управлением знаниями и хранением данных. Возможно, рассказывать про них явно хорошая идея.
3) Оценка производительности есть в тестировании, к которому она, собственно, и относится
4) Инженерию требований может и стоит включить, но насчет "достойна отдельной книги" не уверен. Мне не попадалось ни одной вменяемой книги о работе с требованиями. Все они разводят воду вокруг трех мыслей: аккуратно все записывайте, проверяйте хотелки пользователей на моделях, отслеживайте противоречия между требованиями. Да и работа с требованиями, на мой взгляд, куда больше политика чем инженерия.
no subject
Date: 2015-01-27 11:01 am (UTC)И переучивание взрослых - тоже занятие нужное.
Насчет учебных часов - это не ко мне. Если оценка "пара в неделю"*"2 семестра" вас не устраивает, что еще надо? По-моему с большей точностью оно не формулируется.
no subject
Date: 2015-01-27 11:03 am (UTC)Поэтому переучивать людей придется.
no subject
Date: 2015-01-27 11:04 am (UTC)Можно вот с вот этого хотя бы начать: Discovering Requirements: How to Specify Products and Services
no subject
Date: 2015-01-27 11:07 am (UTC)