27
Программирование и проектирование (методологический анализ) Часть первая Розин Вадим Маркович Институт философии РАН 23 декабря 2016 г., г.Москва

Программирование и проектирование (методологический анализ)

Embed Size (px)

Citation preview

Page 1: Программирование и проектирование (методологический анализ)

Программирование и проектирование

(методологический анализ) Часть первая

Розин Вадим Маркович

Институт философии РАН

23 декабря 2016 г., г.Москва

Page 2: Программирование и проектирование (методологический анализ)

Различения и вопросы

В нашей стране различаются: «компьютерное программирование», «программирование» как рамка для «большого проекта», включающего в себя много других проектов (подпроектов) и «программирование» в социальной сфере (образование, город, здравоохранение и пр.).

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

2

Page 3: Программирование и проектирование (методологический анализ)

Продолжение

Два разных понимания: одно, предполагает создание

отдельно проектов и программ и затем их

реализацию в специальной деятельности (среде),

другое ‒ трактует реализацию всего лишь как

момент разработки проекта или программы. В

традиции ММК первый вид проектирования

называется «традиционным» («прототипическим»,

«новым»), второй ‒ «нетрадиционным». На западе

широко обсуждает близкое различие между

обычными и «гибкими проектами». Именно

проблема реализации гибких проектов

способствовала развитию концепции и практики

«управления проектами».3

Page 4: Программирование и проектирование (методологический анализ)

Иллюстрация второго типа понимания программирования

1. Программу нельзя построить, а потом реализовать. Построение

программы включает ее реализацию, ибо программирование есть

средство организации и соорганизации работ, которые выполняются в

контексте программы и в процессе программирования… программа

естественным образом переходит (или перерастает) в реализацию (в

программе не разделяются ее разработка и реализация).

2. Программа не может быть “спущена” исполнителям, “доведена”

до них. Программная организация предполагает, что каждый участник

работы – исполнитель -- сам программирует свою работу, но

обязательно в рамках и контексте целого

3. Характерной чертой программирования является проблемная

организация работ. Благодаря такой организации дело движется не

только вперед -- на раз и навсегда зафиксированном уровне понимания

ситуации и целей, -- но и вглубь: мы периодически пересматриваем свое

самоопределение, цели, ситуацию, сообразуясь с непрерывно

перестраивающейся сеткой.

• С.Б. Савелова «Гуманитарное программирование и проектирование

как технология «работы с будущим»» (1999)4

Page 5: Программирование и проектирование (методологический анализ)

продолжение

В компьютерном программировании огромную роль играют «языки программирования». Стоит ли по аналогии говорить о «языках проектирования» (схемы, разного рода знания, нормы и пр.)?

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

5

Page 6: Программирование и проектирование (методологический анализ)

Продолжение

Проектирование и программирование у нас часто понимают

как виды деятельности и технологий. При этом они

рассматриваются вне культурно-исторической и социальной

среды, например, просто как последовательность задач,

объектов, действий и операций, средств, продуктов. Анализ

практик и кооперации деятельности, на мой взгляд,

удовлетворяет той же логике.

Альтернативный подход ‒ анализ деятельности и технологий

в контексте культурно-исторической и социальной среды.

В этом случае стоит задача реконструкции становления,

развития и функционирования проектирования и

программирования. Это одна, методологическая, стратегия

анализа среды проектирования и программирования. Другая

стратегия характерна для западной практики осознания . Она

задается концепцией «управления проектами». 6

Page 7: Программирование и проектирование (методологический анализ)

Анализ компьютерного программирования

В компьютерном программировании

происходит своего рода преобразование с

помощью языков программирования

исходного текста (задачи или текста другого

типа) вплоть до записи в двоичном коде,

управляющей процессором. Что собой

представляет это преобразование (замещение,

моделирование, символизация,

алгоритмизация, переход в другой язык и

пр.)? Насколько верна формула «модель ‒

алгоритм ‒ программа»? 7

Page 8: Программирование и проектирование (методологический анализ)

Иллюстрация из интернета

Компьютер не «мыслит», он способен реализовывать программы,

составленные человеком. Поэтому необходимо: поставить проблему; разработать

модель; построить алгоритм решения задачи; написать программу; ввести

программу и исходные данные в память; отладить программу.

• Свойства алгоритма: Конечность алгоритма означает, что за конечное число

шагов должен быть получен результат; Дискретность алгоритма означает, что

алгоритм должен быть разбит на последовательность выполняемых шагов;

Понятность алгоритма означает, что алгоритм должен содержать только те

команды, которые входят в набор команд, который может выполнить

конкретный исполнитель; Точность алгоритма означает, что каждая команда

должна пониматься однозначно; Массовость алгоритма означает, что

однажды составленный алгоритм должен подходить для решения подобных

задач с разными исходными данными. Детерминированность

(определенность). Алгоритм обладает свойством детерминированности, если

для одних и тех же наборов исходных данных он будет выдавать один и тот же

результат, т.е. результат однозначно определяется исходными данными.

Таким образом, Алгоритм — это понятное и точное предписание исполнителю,

выполнить конечную последовательность шагов, приводящей от исходных

данных к искомому результату.

8

Page 9: Программирование и проектирование (методологический анализ)

Продолжение (что такое формализация?)

(типичное описание) Выделяются существенные признаки изучаемого объекта и дается развернутое содержательное описание (системный анализ). Следующий этап ‒ формализация содержательного описания связей между выделенными признаками с помощью некоторого языка кодирования: языка схем, языка математики и т.д. ("перевод " полученной структуры в какую- либо заранее определенную форму). Формализация — это сведение содержания к форме. Формулы, описывающие физические процессы, — это формализация этих процессов. Радиосхема электронного устройства — это формализация функционирования этого устройства. Ноты, записанные на нотном листе, — это формализация музыки и т.п.

Формализованная информационная модель — это определенные совокупности знаков (символов), которые существуют отдельно от объекта моделирования, могут подвергаться передаче и обработке. Реализация информационной модели на компьютере сводится к ее формализации в форматы данных, с которыми "умеет" работать компьютер. 9

Page 10: Программирование и проектирование (методологический анализ)

Смысл формализации

Обычно он раскрывается через понятия «моделирование» и «символизация». Тогда получается загадка: каким это образом сложное смысловое содержание исходного текста удается в конце выразить в моделях двоичного кода. Это затруднение снимается, если мы на формализацию посмотрим иначе: это способ решения определенной задачи путем замещения интересующего нас текста другим, выступающим в роли схемы или модели, с которой дальше можно действовать как с самостоятельным идеальным объектом. Подобное замещение и осознается как моделирование или символизация, но это лишь условие, позволяющее решить задачу.

10

Page 11: Программирование и проектирование (методологический анализ)

Иллюстрация

Платон в «Пире» решает следующую проблему: как родовое понимание любви (любовь ‒ внешнее действие богов) заменить пониманием, позволяющим отдельному человеку любить самостоятельно. Он строит схему андрогина(«любовь есть поиск своей половины и стремление к целостности»).

Хотя эта схема рассматривается героями «Пира» как знание о любви (т.е. модель), но суть ее в другом, она позволяет блокировать родовое понимание любви и ввести личностное . То есть решить проблему. Анализ показывает, что любое знание, схема или модель строятся так, чтобы можно было решить определенную задачу или проблему. Другими словами, это не только знания, но и средства деятельности.

11

Page 12: Программирование и проектирование (методологический анализ)

продолжение

Что значит решить задачу? Не только задать

последовательность определенных действий

(преобразований), но таких, которые переводят исходную

ситуацию (объект, систему) S(ис) ( в новую, с заданными

свойствами S(к)). Например, затмение должно закончиться

(ягуар отпустит солнце), в результате сложения получим

число, равное в определенном отношении исходной

совокупности чисел, расчет времени и места затмения

позволяет именно в указанное время и месте увидеть

реальное затмение, реализация эффективной программы

лечения приводит к выздоровлению заболевшего.

Основная проблема ‒ как представить , означить

(схематизировать, промоделировать) исходную ситуацию,

чтобы нужное преобразование и ожидаемый эффект

получились?

12

Page 13: Программирование и проектирование (методологический анализ)

продолжение

проблемная схема новая

ситуация реальность

означение

действия

S (ис) S (к)

13

Page 14: Программирование и проектирование (методологический анализ)

продолжение

Схема или модель некоторой ситуации (исходной или следующих за исходной) не только представляет эту ситуацию (что часто воспринимается как тождество), но и содержит (Хайдеггер сказал бы «скрывает») в своем строении решение проблемы или задачи. Интуитивно, чувствуя это, Л.Витгенштейн долго бился над проблемой тождества: «Тожество самый Дьявол и есть, и невероятно важно; намного важнее, чем я думал. Оно прямо связано —больше чего бы то ни было ‒ с самыми фундаментальными вопросами, особенно с вопросами, касающимися появления того же аргумента в разных местах функции». «Вопрос о существе тожества не решается, пока не прояснено существо тавтологии. А вопрос о нем есть основной вопрос всей логики (Расселу 15.12.1913). Приходилось ли вам когда думать о природе тавтологии?»

Дальше идет пример того, каким образом в формальной логике устанавливается тождество (обычного высказывания и его символической записи), за которым скрывается один из способов установления истинности.

14

Page 15: Программирование и проектирование (методологический анализ)

продолжениеОпределение значения истинности конъюкции (т.е. союза «и» - &). Пусть А и В вместе истинны. Что приписать (А&В)? ‒ Либо истину, либо

ложь. Допустим, высказывания “Чашка упала” и “Чашка разбилась” оба

истинны, и А указывает на первое высказывание. В этой ситуации

конъюкцию (А&В) следует признать истинной: “Чашка упала & Чашка

разбилась”. Допустим теперь, что В указывает на первое высказывание, а

А на второе: “Чашка разбилась & Чашка упала”. Если примешивать к

пониманию конъюкции указание на временной порядок событий “А и

затем В”, то теперь конъюкцию (А&В) следует признать ложной. Но мы

не имеем права одному и тому же выражению языка приписывать как

истину, так и ложь. Следовательно, необходимо отлучить конъюкцию от

проблем времени. В отличие от нестрогой формулировки “Чашка

разбилась и упала”, формулировка “Чашка разбилась & Чашка упала”

наталкивает на мысль, что здесь фиксируется не временной порядок

событий, а просто два изолированных факта. Изолировать разделенные

во времени факты можно указанием на время совершения события. Тогда

абсурдное “NN умер и родился” превратиться во вполне приемлемое “NN

умер в n году и NN родился в m году”. Другими словами, эта

формализация предполагает установление тождества конкретных

событий со схемами истинности за счет ряда упрощений

(преобразований) этих событий (отлучение от времени и т.п.). 15

Page 16: Программирование и проектирование (методологический анализ)

Продолжение (смысл формализации)

Формализация представляет собой схематизацию (исходного

текста, замещающего исходный и т.д.), позволяющую: 1)

решить поставленную задачу (она может быть самой разной:

вычислить, создать эквивалентный текст, преобразовать его и

прочее), 2) построить алгоритм и на его основе программу

для заданного процесса вычисления (или других

технических операций), 3) облегчить работу программистам

и пользователям.

Прогресс формализации происходит как за счет новых

технических изобретений (например, от контактно-релейных

переключений, к электронно-ламповым устройствам, затем

полупроводникам и платам), так и совершенствования

языков программирования (создания новых); иногда

введения новых промежуточных уровней формализации.

16

Page 17: Программирование и проектирование (методологический анализ)

Идея среды программирования

Среда программирования включает в себя разработку языков программирования, а также изобретение (проектирование) новых технических способов выполнения программ. Аналогично можно говорить и о среде проектирования, включающей в себя, с одной стороны, разработку языков проектирования (эскизов, проектных схем, норм проектирования, прототипов, моделей и пр.), с другой ‒ разработку новых технологий изготовления спроектированного изделия. Это так сказать, один план среды, ниже пойдет речь о втором, культурно-историческом и социокультурном плане (логико-семиотические, технологические и институциональные предпосылки).

17

Page 18: Программирование и проектирование (методологический анализ)

Логико-семиотическая предпосылка программирования

Лейбниц: «Единственное средство улучшить наши умозаключения ‒ сделать их, как и у математиков, наглядными, так чтобы свои ошибки находить глазами, и, если среди людей возникнет спор, нужно сказать: “Посчитаем!”; тогда без особых формальностей можно будет увидеть, кто прав”…“Под “аргументом формы” я разумею не только схоластический способ аргументирования, который применяется в школах, но всякое рассуждение, умозаключающее на основании формы и не имеющее надобности в каких бы то ни было дополнениях. Таким образом, сорит или иное силлогистическое построение, избегающее повторения, даже хорошо составленный счет, алгебраическое исчисление представляется мне приблизительно аргументами формы, ибо форма рассуждения в них предъуказана так, что мы уверены в безошибочности рассуждения”». Сравни: ГП «принцип параллелизма формы и содержания»

18

Page 19: Программирование и проектирование (методологический анализ)

ПродолжениеЭтот замысел был реализован за счет трех основных

изобретений: 1) истолкования понятий как математических

функций (Фреге и Рассел), что позволило обозначать

символами отдельные высказывания и понимать их как

переменные, 2) сведение всех значений высказываний к двум

основным ‒ истинности и ложности (Фреге) и 3) создание на

основе двух предыдущих изобретений таблиц истинности

(своего рода порождающей системы), с помощью которых

строится автономный язык символической логики

(Витгенштейн). То есть, по сути, создания реальности

идеальных событий (идеальных объектов).

Означает ли это, что удалось формализировать

мышление? Если иметь в виду сложившиеся и

отрефлексированные способы мысли, то, частично, «да».

«Нет» в случае мышления в процессе становления и новых

форм. Мышление все же ‒ культурный, социальный и

психологический феномен. Вроде бы два контрпримера.19

Page 20: Программирование и проектирование (методологический анализ)

Добавление«Виртуальный игрок в Unreal Tournament 2004 по имени UT^2, созданный учеными Техасского университета в Остине, завоевал приз на чемпионате BotPrize, как бот, которому удалось обмануть большинство судей, выдав себя за человека. Боты в состязании играли против других ботов и такого же количества людей. У людей кроме обычного набора оружия было «судейское ружье», чтобы помечать оппонента как бота или человека. Победивший бот набрал рейтинг «человечности» 52%, а средний рейтинг у людей составил лишь 40%. Таким образом, UT^2 прошел «тест Тьюринга», согласно которому, если машина может убедить человека в том, что она человек, значит, она способна мыслить. Сам Тьюринг предсказывал, что компьютеры пройдут тест к 2000 году. Как объясняют разработчики, чтобы выдать бота за человека, его поведению пришлось придать элементы иррациональности, свойственные людям. Но основной механизм поведения в игре, объясняют ученые, создан путем нейроэволюции — процесса, когда нейросеть, реализующая искусственный интеллект, проходит через серию испытаний на выживание в условиях игры. Выживающие нейросети сохраняются, остальные отбрасываются. Из выживших путем случайной мутации создаются наследники. «Эволюция» продолжается до тех пор, пока не появляются сети с желаемым поведением».

20

Page 21: Программирование и проектирование (методологический анализ)

Продолжение

Может ли машина быть умнее человека и, например,

обыграть его в шахматы? Известно, что в мае 1997

года компьютер Deep Blue в матче из шести

партий обыграл чемпиона мира по шахматам

Гарри Каспарова.

Но сторонники компьютерного мышления не понимают, что

программы Deep Blue включали в себя не только переборы и

сравнения ходов и их следствий, но также обобщение

лучших шахматных партий и даже практику подготовки к

шахматным чемпионатам, которую разработал и успешно

использовал наш чемпион мира М. Ботвинник. В этом

смысле Каспаров сражался не с машиной, а с воплощенной в

машинной среде шахматной культурой; культура же на

порядок мощнее индивида. Другое дело, что удалось

формализовать лучшие шахматные партии и даже частично

практику подготовки к шахматным соревнованиям. 21

Page 22: Программирование и проектирование (методологический анализ)

Технологическая предпосылка

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

Индустриальное производство основано на работе машин и это массовое производство. Оно складывается в условиях буржуазной конкуренции. Воспроизводство индустриального производства предполагает подготовку новых специалистов и следовательно, обучение. Как массовое машинное производство индустрия ускоряет разделение труда, а также формирует установки на стандартизацию. Чтобы удовлетворить конкуренции приходится экономить, бороться за качество и время (ускорять). Кроме того, конкуренция, начиная с работ Тейлора, заставляет изучать, оптимизировать и перестраивать производство, а также опять обучать. Еще одно следствие ‒ формирование управления.

Вводится (открывается) новая реальность, а именно технология, которая описывает индустриальную деятельность в языке операций, их условий, разделения труда, управления. Одновременно, технологию начинают характеризовать установки на качество, экономию, стандартизацию, рациональное описание производственных процессов, их оптимизацию, на подготовку новых специалистов ‒ технологов.

Программирование и проектирование формируются именно в этой среде.

22

Page 23: Программирование и проектирование (методологический анализ)

Продолжение

Традиционное программирование и проектирование удовлетворяют основным характеристикам технологической среды. Реализация программ и проектов предполагает использование машин (технических или «машин деятельности»). Программирование и проектирование встроены в массовое индустриальное производство. Для них характерны установки на качество, экономию, минимизацию времни, стандартизацию, разделение труда, управление, обучение (как условия рыночной конкуренции). Основные способы представления: процессы, операции, условия.

23

Page 24: Программирование и проектирование (методологический анализ)

Социальная технологизация

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

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

24

Page 25: Программирование и проектирование (методологический анализ)

ИллюстрацияЗ. Бауман, в книге «Актуальность холокоста» говорит о технологии и социальной инженерии и конкретно описывает формирование технологии «окончательного решения еврейского вопроса». На первом этапе элита, захватившая власть, посылает обществу такой месседж: евреи – источник всех зол и очищение от них Германии является первоочередной национальной задачей. Ко второму этапу можно отнести разработку необходимой для практического осуществления данного послания социальной технологии (сначала вытеснения евреев из Германии, затем полного их уничтожения). Эта технология включала в себя следующие этапы: определение (построение типологии, позволяющей отделить еврея от арийца, а также задать промежуточные типы), увольнение служащих и экспроприация коммерческих компаний, концентрация (дистанцирование от общества и помещение в лагеря смерти), эксплуатация труда и голодомор, уничтожение.К третьему этапу, хотя он разворачивался одновременно со вторым, нужно отнести создание институтов, обеспечивающих воспроизводство созданной технологии (научных институтов изучения еврейского вопроса, отделов в СМИ, «экономического отдела Главного управления имперской безопасности», лагерей смерти и других).

25

Page 26: Программирование и проектирование (методологический анализ)

продолжениеУтвердившись в мысли, что страна советов окружена врагами и надо готовиться к

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

Старт этой работе дает постановление от 1 июня 1928 г. «О мерах по упорядочению капитального строительства промышленности и электростроительства». Постановление содержит раздел “Использование заграничного опыта и достижений иностранной техники”, который предоставляет ВСНХ возможность “привлекать иностранных специалистов для работы в государственной промышленности, в частности, по проектированию” <...>

22 марта 1931 г. приказом ВСНХ СССР № 158, опыт, накопленный в стенах Госпроектстроя, переносится на другие сферы промышленного проектирования – создается еще один головной проектный институт, на который возлагается проектирование сооружений других важнейших отраслей военно-промышленного комплекса: химической, авиационной, текстильной, резиновой промышленности – Госпроектстрой-2. Образуется он лишь после того, как собирается достаточное количество (“критическая масса”) специалистов, прошедших организационную выучку основного Госпроекстроя, способных составить кадровый костяк новой крупной проектной организации.

26

Page 27: Программирование и проектирование (методологический анализ)

Литература

Розин В.М. Логика и методология. От «Аналитик» Аристотеля к «Логико-философскому трактату Л.Витгенштейна. М., 2014.

Розин В.М. Эволюция инженерной и проектной мысли. Инженерия: становление, развитие, типология. М., 2014.

Розин В.М. Техника и технология. От каменных орудий до Интернета и роботов. Йошкар-Ола, ПГТУ. 2016.

27