В свежепереведённом на русский (
http://panchul.livejournal.com/469643.html) учебнике Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера» приводится схема уровней определения (в учебнике это названо "уровнями абстракции", но с равным успехом это может быть и "системными уровнями", и "дисциплинами", и "технологическими платформами") электронной вычислительной системы:
Эта схема крайне интересна сама по себе. Вот несколько моих мыслей по её поводу:
1. Это образование, Карл.
Сколько всего нужно знать, чтобы сделать что-то осмысленное? Например, учебник Харрис&Харрис, из которого взята диаграмка уровней всего навсего приквел к уже переведённой книжке "Computer Architecture: A Quantitative Approach" Паттерсона и Хеннеси. "Без Х&Х книжка Х-П - это описательное знание, а вот с комбинацией двух книжек студент может что-то реализовать на FPGA" (
http://panchul.livejournal.com/469643.html?thread=19173003#t19173003).
То есть это пример тьюторской диаграммы (про определение тьюторства как определение образовательной траектории на множестве отдельных курсов):
http://ailev.livejournal.com/1145422.html Опять же, можно говорить о дисциплине и технологии на каждом из этих уровней и пытаться понять, на каком уровне дисциплины мы учим -- школьном, ПТУ, университетском или предельном. Диаграмма тут может быть совсем другой (хороший пример --
http://matt.might.net/articles/phd-school-in-pictures/), и дальше можно гадать: учить эти уровни один за одним "от математики" (ибо физика тут явно не первой должна стоять), или учить только несколько смежных, или там вообще нет "стека" и последовательности, а какая-то более сложная структура.
2. Определения, абстракции, метасистемные переходы, логические уровни.
Когда мы говорим об уровнях, неплохо бы понимать, что это за уровни. В принципе, это всё уровни определения чего-то: нам нужно описать систему, мы её описываем. Учебники ведь обычно посвящёны моделированию определяемых инженерами систем: вводят самые разные языки моделирования (так, Харрис&Харрис для описания аппаратуры вводит сразу два конкурирующих языка: SystemVerilog и VHDL). Конечно, на разных уровнях определения системы используются разные языки. Языков нужно знать много, и всех языков сразу не выучишь (полиполиглотность --
http://ailev.livejournal.com/1128482.html), мастерство зажигается очень медленно (
http://ailev.livejournal.com/1130190.html). Но унификация языков и последюущее моделирование на них (вывод моделей из-под черепов в экзокортекс раньше на бумагу, а нынче в компьютер) позволяет организовать разделение труда. Сложность платформенной многоуровневости раскладывается на множество людей, каждому из которых нужно знать только три смежных уровня, чтобы эффективно встраиваться в технологический/платформенный стек.
Конечно, многоуровневость тут должна быть рассмотрена сразу в трёх направлениях (системный подход ровно об этом, я попытался именно это отразить в своём учебнике по системноинженерному мышлению --
http://techinvestlab.ru/systems_engineering_thinking):
-- многоуровневое определение целевой системы/использующей системы (учебник Харрис&Харрис как раз об этом)
-- многоуровневое определение обеспечивающей системы системы деятельности, которая создаёт целевую систему: кто что с чем зачем делает, чтобы создать целевую систему).
-- многоуровневое определение описаний (информатика как работа агентов с текстами и кодами --
http://ailev.livejournal.com/1008054.html, но также и "гирлянды языков" -- см. мои реплики в дискуссии
http://baaltii1.livejournal.com/573648.html).
[TWIMC -- ага, не две доски, а два раза по две доски: третья приставляется и к содержательной, и к организационной доскам]
3. Инновации в технологических платформах.
"Платформа" -- это про модули и интерфейсы. Описываемые уровни платформы (модульные уровни) позволяют задавать модульные слои (layers, а не levels) с понятными интерфейсами друг ко другу. От какого-то уровня вниз или вверх (вниз! и вверх!) можно взять и заменить всю конструкцию, оставив неизменным интерфейс платформы -- все накопленные библиотеки, языки, оборудование, опытных разработчиков и производителей.
Так что эти уровни -- хороший классификатор для
пикейножилетной деятельности по отслеживанию технологических прорывов. Я поэтому и перестал с 2010 года заниматься выписыванием технологических/платформенных стеков (последний грех был тут:
http://ailev.livejournal.com/781013.html), что при современной глубине платформенного стека изображать из себя Госплан абсолютно бесперспективно, даже если этот Госплан сядет на пароход и поплывёт каким-нибудь форсайт-флотом. Предприниматели же обычно работают с парой (максимум -- тройкой) смежных уровней.