ШАБЛОНЫ КАК СРЕДСТВО АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ...

Preview:

DESCRIPTION

ШАБЛОНЫ КАК СРЕДСТВО АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ПРИКЛАДНЫХ ПРОГРАММ. « Спасение утопающих, дело рук самих утопающих» Автор: Еремин Леонид Васильевич, доцент кафедры - PowerPoint PPT Presentation

Citation preview

ШАБЛОНЫ КАК СРЕДСТВО АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ

ПРИКЛАДНЫХ ПРОГРАММ

«Спасение утопающих, дело рук самих утопающих»

Автор: Еремин Леонид Васильевич, доцент кафедры

Информационные технологии Финансового университета при

Правительстве РФ

• Успехи в развитии языков программирования в 60-70 годах прошлого века в были настолько впечатляющими и обнадеживающими, что в 1974 году в Стокгольме на VI конгрессе IFIP (International Federation for Information Processing) был даже провозглашен лозунг:

“Программирование без программистов

в 1980 г.".- Эпштейн В.Л. Проблемы автоматизации проектирования систем управления. В сб.: Автоматизация проектирования систем управления. Вып.1. Под ред. акад. В. А. Трапезникова, - М.: Статистика, 1978, стр. 12.

Однако «кризис прикладного программирования» до сих пор остается проблемой №1 в “computer science”, несмотря на успехи развития технологий и языков программирования. Стало очевидным, что решение этой проблемы лежит в плоскости создания принципиально новых непроцедурных языков программирования языков постановки задач (PSL - problem statement language ), характеризующих лишь специфику требований конечного пользователя к их компьютерной реализации и позволяющих автоматизировать весь процесс перехода: от анализа исходного описания постановки задачи непосредственно к соответствующей прикладной компьютерной программе. (Л. Еремин. Роль специалистов управления в разрешении кризиса прикладного программирования. М.: Финансовая газета. Региональный выпуск, № 35, август, 2010, с. 16). В качестве одного из возможных вариантов такого подхода можно рассмотреть традиционную схему процесса проектирования прикладных программ:

Принципиальная схема процесса разработки компьютерных программ для задач организационно-экономического управления:

• ЕЯ – естественный профессиональный язык (сленг) специалистов управления;

• ЯЭМО – язык экономико-математического описания вычислительной модели;

• ЯОА – язык описания алгоритма (алгоритмической схемы);• ЯП – язык программирования;• ЯЭВМ – внутренний язык вычислительной машины.

“… в перспективе разработкой будет

заниматься не программист (человек, умеющий шаг за шагом

объяснять машине, как решать задачу), а

квалифицированный пользователь (( человек,

умеющий формулировать, что

ему нужно “на выходе”.

А. Евтюшкин. Рассуждения о технологической

платформе. ж. Банковские технологии, февраль, 1998, стр. 14-16.

Достаточно близкое по идее направление рассматривалось и в передаче «Эволюция языков программирования»

http://archive.svoboda.org/programs/sc/2004/sc.012004.asp

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

• Вместе с тем, еще в мае 1980 года в МЭСИ (на ЭВМ ЕС-1020) была продемонстрирована возможность генерации эффективных прикладных программ по запросам, выполненным на языке, близком к естественному профессиональному языку специалистов управления.

• Разработка системы генерации прикладных программ осуществлялась в ПНИЛ МО АСУ МЭСИ в рамках проекта «Латорица 2МВО»: «Исследование и разработка многоуровневой системы программирования, обеспечивающей моделирование и машинное проектирование систем обработки данных различных уровней».

• Проект «Латорица 2МВО» выполнялся в 1976 - 1980 гг. в рамках тематики Министерства высшего образования по заказу НИИАА (Научно-исследовательского института автоматической аппаратуры).

• Научным руководителем проекта был ректор МЭСИ, проф. В.В. Шураков.

По инициативе ректора МЭСИ, в ноябре 1979 г. (в качестве демонстрации

отечественных достижений в области “computer-science”)

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

программ по запросам на естественном языке

обсуждалась на встрече с группой ведущих американских IT-

специалистов, возглавляемой проф. Д.Тайкроу

(D. Teichroew - один из авторов известного проекта ISDOS –

Information System Design and Optimization System).

Стимулом же к развертыванию работ по созданию системы генерации прикладных программ послужил 5-летний опыт (в 1971 - 1975 гг.) «ручного» проектирования прикладных программ с использованием шаблонов, управляющих процессом формирования алгоритмов компьютерной реализации учетно-статистических задач. Вместе с тем, следует отметить, что идея управления проектированием прикладных алгоритмов посредством моделей была высказана еще в 1963 году двумя математиками: А. Чарнсом и У. Купером на симпозиуме в Кейсовском технологическом институте (США). В своем докладе они отметили целесообразность такой организации процесса компьютерного моделирования, при котором "… сама модель становится «метапрограммой» в том смысле, что она устанавливает общие правила для составления вычислительных алгоритмов…" (стр. 118, Чарнс А., Купер У. Модели условной экстремизации и их использование для оценки качества систем. // В сб. Общая теория систем. – М.: Мир, 1966)

«Проекты, предлагающие программирование на естественном языке, гибельны по своей сути».

(Дейкстра Эдсгер Вибе)

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

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

• В этом плане характерно, что особый вклад в распространение этой идеи среди разработчиков прикладных программ принадлежит американскому архитектору Кристоферу Александру, который составил набор шаблонов (“patterns”) для проектирования зданий и предложил язык шаблонов (“pattern language”) в качестве средства описания архитектурных решений.

• Разработанная в МЭСИ концепция получила свое практическое подтверждение – в мае 1980 года на ЭВМ ЕС-1020 была осуществлена экспериментальная апробация системы, обеспечивающей генерацию уникальных прикладных ПЛ-программ по запросам на языке, близком к естественному профессиональному языку специалистов управления .

• Еремин Л.В. «К проблеме проектирования шаблонов процедур обработки данных при создании АСП СОД». Программное обеспечение АСУ. Сб. научных трудов. Вып.4., М.: МЭСИ, 1977, стр. 113-124.

• Еремин Л.В. «Характеристика языков двухуровневой системы машинного проектирования программ обработки учетно-статистической информации - «СИНТЕЗ». / Материалы семинара «Автоматизация проектирования». – М.: МДНТП им. Ф.Э. Дзержинского, 1981, с. 17-22.

• Еремин Л.В. «Исследование и разработка системы автоматизированного проектирования программ обработки учетно-статистической информации». Автореферат диссертации на соискание ученой степени кандидата экономических наук, – М.: МЭСИ, 1981, 24 с.

Для демонстрации предложенного принципа проектирования уникальных алгоритмов прикладных программ (и в знак признания заслуг американского архитектора К. Александра в развитие технологий объектно-ориентированного программирования) воспользуемся следующим условным примером - генерацией Инструкций по возведению различных зданий в рамках следующих допущений:

Здания могут:• быть одно- или многоэтажными;• иметь жилое, офисное или смешанное назначение (в

последнем случае офисные помещения занимают нижние этажи здания, а последующие отводятся для жилья);

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

(прозванных в народе – «курьи ножки»);• завершаться стандартной крышей или крышей со смотровой,

либо вертолетной площадкой.

• Очевидно количество возможных вариантов возводимых зданий (даже в рамках представленных ограничений – приближается к бесконечному множеству).

• В принципе при данной постановке задачи возможно применение универсального алгоритма формирования Инструкций по управлению возведением уникальных зданий.

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

• Недаром, как отмечают американские специалисты: «Если у вас есть пакет прикладных программ, и вы устанавливаете его в 16 различных организациях, то при этом вы создаете 16 различных пакетов» (стр. 169., Громов Г.Р. Очерки информационной технологии. - М.: ИнфоАрт, 1993).

Условные обозначения параметров, управляющих процессом формирования инструкций по возведению

зданийХарактеристики строящихся зданий:

N1 Количество этажей подземного паркинга

N2 Наличие несущих колонн-опор (да = 1, нет = 0)

N3 Количество этажей офисного назначения

N4 Количество жилых этажей

N5Стандартная крыша (0)Крыша с вертолетной площадкой (1)Крыша со смотровой площадкой (2)

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

Подготовка Инструкция на строительство здания:

- с 3-мя этажами подземного паркинга (N1 = 3);- на несущих колоннах-опорах (N2 = 1);- с 2-мя этажами офисного назначения (N3 =2);- с 24-мя этажами жилого назначения (N4 =24);- с крышей со смотровой площадкой (N5 =2);.

N1=3; N2=1; N3=2; N4=24; N5=2.

f (3; 1; 2; 24; 2)

Задание на строительство зданияХарактеристики строящихся зданий:

N1 Количество этажей подземного паркинга

N2 Наличие несущих колонн-опор (да = 1, нет = 0)

N3 Количество этажей офисного назначения

N4 Количество жилых этажей

N5Стандартная крыша (0)Крыша с вертолетной площадкой (1)Крыша со смотровой площадкой (2)

3

1

2

24

2

Начало

Бетонирование фундамента

Строительство 2-этажа

паркинга

Возведение несущих

колонн-опор

Строительство 1-этажа

паркинга

Строительство 3-этажа

паркинга

Строительство 2-офисного этажа

Строительство 1-офисного этажа

N4=0 ?

Строительствоi-жилого этажа

N4=N4-1

Установки смотровой площадки

Конец

N1=3-1

N1=3-2

N1=3-3

N2=1

N3=2-1

N3=2-2

N4>3

N4>3

N4>3

N5=2

да

нет

N1=3; N2=1; N3=2; N4=24; N5=2

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

На этом мое сообщение заканчивается,

Благодарю за внимание!

Recommended