Малый ШАД_Что такое программная инженерия_3.10.15
.pdf
•Как правило, программа сперва создается («разрабатывается»), а потом – работает («исполняется»); поэтому, различают статику (то, что происходит с программой до ее выполнения) и динамику (то, что происходит с ней во время ее выполнения).
•Как в аппаратуре, так и в программном обеспечении за всю их историю наблюдается постепенный переход от «статики» к «динамике»:
–Появляется больше (служебных, вспомогательных) действий, которые
выполняются в динамике (какие можно привести примеры?)...
•При этом соблюдается компромисс между производительностью и динамичностью (которая не дается даром).
•Соответственно, различаются используемые при этом программные компоненты. Бывают компоненты, используемые:
–на этапе разработки (в статике);
–на этапе выполнения (в динамике);
–и в статике, и в динамике...
•Эти различия определяются архитектурой вычислительной системы и средствами, предоставленными системным программным обеспечением (т.н. «платформой», как теперь говорят)...
1-Oct-15 |
Software Engineering |
31 |
Системное программирование – что это?
•Системное программное обеспечение – занятие программных инженеров - специалистов в области системного программирования.
•Мы, находясь в Высшей Школе Экономики, говорим так, чтобы было понятно экономистам; они знают, что бывает:
–Производство средств производства (группа "А") и производство предметов
потребления (группа "Б") характеризуются в соответствии с фактическим
использованием продукции.
–При этом одни виды продукции целиком относятся к группе "А", (станки,
оборудование, руды черных и цветных металлов, минеральные удобрения, и т.п.),
–другие виды продукции целиком относятся к группе "Б" (швейные и трикотажные готовые изделия, пищевая рыбопродукция, хлеб и хлебобулочные изделия, бытовые холодильники, радиоприемники, мебель и др.).
–Ряд видов продукции, которые могут быть использованы на производственные и непроизводственные цели (электроэнергия, уголь, готовые ткани, мука, мясо,
животное масло и др.), распределяется между группой "А" и группой "Б" по их фактическому использованию.
1-Oct-15 |
Software Engineering |
32 |
•Средства производства и предметы потребления. Производство и потребление. Вся совокупность производимых продуктов и услуг распадается на две крупные группы в зависимости от характера их потребления:
–Блага, которые предназначены для использования (потребления) непосредственно в процессе производства, являются средствами производства, или благами производственного назначения.
–Блага, используемые для удовлетворения потребностей самих людей и
обеспечивающие условия для их воспроизводства, относятся к предметам
потребления, или благам непроизводственного назначения.
•В то же время многие блага могут выступать в качестве и средств производств, и
предметов потребления. Например, сахар, используемый для личного потребления, является благом непроизводственного назначения (предметом потребления), но если
он направляется в пищевую промышленность для получения кондитерских изделий и
выступает в качестве сырья (например, для варенья), то он относится к благам производственного назначения (средствам производства).
1-Oct-15 |
Software Engineering |
33 |
•Когда-то в Туле ученику оружейника давали набор напильников, обычно из Штирии, а прочий инструмент он делал ими сам. Штучные ружья таких мастеров брали золотые
медали в Париже и Лондоне…
•А потом в истории нашей страны был период быстрого промышленного развития - индустриализация. Связывать ее принято с первыми или довоенными пятилетками. Третье издание БСЭ утверждало, что к 1940 году валовая продукция промышленности
СССР возросла по сравнению с 1928-м годом в 6,5 раза. По объёму промышленной
продукции Советский Союз в 1937 вышел на первое место в Европе и второе в мире.
•Условием, обеспечивающим такие темпы роста, было ускоренное развитие производства средств производства (так называемой группы «А»): оно за это время увеличилось в 10 раз.
•Системное программирование – это производство средств
производства программ
–(определение специально адаптировано для университета, изначально созданного экономистами).
1-Oct-15 |
Software Engineering |
34 |
•Название «системное программирование» происходит от присутствия слова «система» в таких областях программирования, как
операционные системы и системы программирования и отладки, которые предоставляют базовое – системное - программное обеспечение любого компьютера.
•К сожалению, происхождение этого названия имеет слабое отношение к математичнской теории систем (почему?), и над этим надо работать...
–С нового учебного года у нас отрылась базовая кафедра системного программирования под руководством академика РАН В.П.Иванникова, до середины нынешнего года - директора Института системного программирования РАН...
–У него часто спрашивают: «...а остальное программирование – бессистемное?»
•Программная инженерия охватывает системное и прикладное программирование, используя и предоставляя разные формы компонентного программирования при этом...
1-Oct-15 |
Software Engineering |
35 |
Развитие средств [компонентного] программирования
•Машинный код -> Содержательные обозначения (автокод)
–Содержательное обозначения операций (инструкций), но адресация данных
машинного уровня (ручное, статическое назначение адресов).
•Автокод -> Ассемблер (и загрузчик), Макро-ассемблер
–Содержательное обозначение всех основных (низкоуровневых) элементов программ с атоматической настройкой адресов при загрузке.
•Подпрограммы (процедуры, функции); библиотеки (это все компоненты
–по разному определяемые и [пере]используемые).
•Компиляторы расширяют границы использования компонент: Машиннонезависимое программирование -> Языки программирования «высокого уровня» («более или менее» высокого уровня)...
•Язык С – «низкоуровневый язык высокого уровня»:
–Исходная идея – не переписывать ОС снова для нового компьютера...(UNIX): code reuse – очень важный аспект компонентного программирования
–Когда машины были большие, а их производительность – не очень...
–Как писать OS? (супервизор, гипервизор, самовиртуализация...)
1-Oct-15 |
Software Engineering |
36 |
•Зимой 1974 мне довелось держать в руках первый С-компилятор и ядро ОС UNIX (и-т им.Курчатова, М.Паремский и др. – впервые в СССР...)
•Повторное использование программных компонент не надо путать с их воровством (с плагиатом и другими его формами)!
ЭВМ PDP-11: Система команд PDP-11 оказала сильное влияние на язык программирования С
Тогда же, зимой 1974 года, закончив факультет прикладной математики и
написав диплом в коллективе М.А.Карцева, я пришел туда работать...
1-Oct-15 |
Software Engineering |
37 |
•Михаил Александрович Карцев (10 мая1923– 23 апреля 1983) — выдающийся ученый, д.т.н., профессор, главный конструктор 4-х поколений ЭВМ, основатель и первый директор НИИ ВК.
•Родился в Киеве, участник Великой отечественной войны. В 1947 году поступил на Радиотехнический ф-т МЭИ. Сдал экстерном экзамены за 4-й курс, студентом 5-го курса поступил на работу в лабораторию электросистем Энергетического института АН
СССР под рук. чл.-кор. АН СССР И.С.Брука. Участвовал в создании ЭВМ М-1, в 1952 возглавил создание ЭВМ М-2, в 1957 — М-4, и ее модификаций М4-2М, М4-3М и М4-4М, ...
•Автор архитектуры первой китайской ЭВМ (он сам мне показывал китайскую книгу об этом)...
1-Oct-15 |
Software Engineering |
38 |
•В 1967 г. М. А. Карцев выдвинул обогнавший свое время проект вычислительного комплекса М-9 (производительность ~1 миллиард оп/с);
–в то время заканчивалась разработка БЭСМ-6, имевшей производительность 1 млн. оп/с (потом бытовали оценки в «бэсмах», как «в попугаях»...).
•В том же году из состава созданного И. С. Бруком ИНЭУМ, на основе лаборатории Карцева, был выделен Филиал РТИ АН СССР им. Минца, который он возглавил.
•В 1969 году под его руководством была начата разработка векторной вычислительной машины М-10 на микроэлектронной элементной базе.
•В 1973 году первый промышленный образец М-10 заработал на 1-м этаже корпуса РТИ АН СССР (1-я ул. 8 Марта..., это - рядом с нашим корпусом ФКН НИУ ВШЭ...).
•После успешных испытаний М-10 с программным обеспечением Филиал РТИ АН им. Минца был преобразован в «самостоятельный» институт - НИИ ВК.
•В 1993 г. Научно-исследовательскому институту вычислительных комплексов присвоено имя его основателя — Михаила Александровича Карцева.
1-Oct-15 |
Software Engineering |
39 |
1-Oct-15 |
Software Engineering |
40 |
