WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 | 2 || 4 | 5 |   ...   | 16 |

“…распознавание изображений, численные вычисления, графика, обработка сигналов, библиотеки с множеством переменных и зависимых решений во время компиляции (например, библиотеки для обновления даты и времени или курса валют)…” [1] - 16 - УМП «Автоматизированные методы разработки архитектуры ПО» 2.5. Интенциальное программирование Автоматизация применения порождающего программирования сопровождается исследованиями по созданию специальных систем (сред) Чарльз (Кароль) Симони метапрограммирования, которые С 1972 по 1980 год работал а Xerox Palo Alto Research Center (PARC), занимаясь предлагают более широкую поддержку разработкой текстового редактора Bravo, порождающего программирования. Эти первого редактора, работающего на принципе WYSIWYG.

системы поддерживают автоматический С 1981 по 2002 работал в корпорации рефакторинг и позволяют собрать больше Microsoft, где принимал участие в разработке программных продуктов знаний по проектированию, чем при Microsoft Excel, Multiplan, Word и традиционном программировании. Этим других. С 1991 года работал старшим специалистом по архитектуре отделения обеспечивается более высокий уровень Advanced Technology компании Microsoft автоматизации рефакторинга или другого Research (Редмонд, штат Вашингтон), где занимался проблемой Intentional вида сопровождения (развития) ПО, Programming или IP. В корпорации занимал должности руководителя поскольку уменьшается количество разработки прикладных программ, проектных решений, которые должны главного программиста, ведущего инженера.

предшествовать кодированию.

Основал компанию Intentional Software Применение таких систем позволяет Corporation.

Участник космического полёта 7 апреля снижать ограничения, связанные с 2007 член 12-й экспедиции посещения возможностями конкретных языков МКС. Продолжительность полета составила 13 суток 19 часов 00 минут программирования и позволяют секунд.

перенастроить существующие приложения В 1997 году был избран членом Национальной инженерной Академии на новые платформы с минимизацией (National Academy of Engineering) США.

Почётный доктор Университета города затрат за счёт исключения этапов Печ (Pcsi Tudomnyegyetem) в Венгрии, переписывания программ на другие языки 2001 год.

Имеет лицензию пилота программирования.

многодвигательных летательных Ярким и пока единственным аппаратов, реактивных самолётов и вертолётов. Общий налет к концу примером реализаций таких систем года составлял более 2 000 часов.

является система IP, разработанная В 2006 году был награжден венгерским орденом «За заслуги» (Order of Merit of Чарльзом (Каролем) Симони (Charles the Hungarian Republic, Magyar (Kroly) Simonyi) в период его работы в Kztrsasgi rdemrend), после полёта был награжден Большим крестом Ордена корпорации Microsoft. Работа в среде Республики (Венгрия, 2007).

метапрограммирования IP (Intentional Programming) иногда называется ментальное или интенциальное программирование. Автор терминов "языкоориентированное программирование" (Language Oriented Programming) и "языковой инструментарий" (Language Workbench), Мартин Фаулер, исследуя и развивая идеи порождающего программирования, пишет, что:

“…благодаря использованию” … “инструментария современных сред - 17 - УМП «Автоматизированные методы разработки архитектуры ПО» разработки (IDE)11, этот вид программирования становится гораздо более жизнеспособным. Как бы там ни сложилось в будущем, я уверен, что этот вид приложений на настоящий момент является самым интересным явлением на горизонте нашей индустрии…”[6].

Данное направление также Сергей Дмитриев Магистр математики. 15 лет раразрабатывается в компании JetBrains, занимается разработкой программного обеспечения.

генеральным директором которой является Основатель компании JetBrains, известный специалист и создатель IntelliJ IDE создавшей среду разработки IntelliJ IDEA. До ее основания работал в for Java, Сергей Дмитриев.

компании TogetherSoft менеджером Компьютерные журналисты называют проектов и ведущим разработчиком.

В 1993 году (до работы в работы Сергея фабрикой кодогенераторов, особенно в связи с созданием в его компании технологии Meta Programming System (MPS) [7]. В интервью Сергея корреспонденту ресурса http://www.codegeneration.net [8], посвященного теме автоматизации разработки программного обеспечения, содержится изложение выполняемых им работ, развивающих идеи IP.

(Integrated Development Environment) – прим. автора - 18 - УМП «Автоматизированные методы разработки архитектуры ПО» 2.6. Автоматное программирование Наиболее известной Российской разработкой в области автоматизации программной инженерии является метод проектирования и реализации реактивных объектно-ориентированных программ с явным выделением состояний. Для поддержки метода разработано инструментальное средство UniMod. Работы Анатолия Абрамовича Шалыто [9], создавшего автоматное программирование, связаны с идеей Анатолий Абрамович Шалыто создатель автоматного исполняемого языка моделирования UML программирования.

для генерации ПО. Метод основан на Родился в 28.05.1948 г. в городе Ленинграде.

использовании автоматного В 1971 г. с отличием окончил ЛЭТИ им.

Ульянова (Ленина) по специальности программирования12 (SWITCH“автоматика и телемеханика”.

технология) [10] и UML-нотации.

С 1971 г. работает в научнопроизводственном объединении Базирующееся на этом методе «Аврора» (Санкт-Петербург), инструментальное средство специализируясь в области проектирования систем логического программирования UniMod, является управления.

встраиваемым модулем для платформы Кандидат технических наук (1977 г.).

Доктор технических наук (2000 г.).

Eclipse. В работах [11, 12] авторы С 1998 г. преподает на кафедре отмечают, что в настоящее время язык "Компьютерные технологии" СанктПетербургского института точной моделирования UML применяется, в механики и оптики.

С 2001 года заведующий кафедрой основном, как язык спецификации "Информационные системы".

моделей систем. При этом существующие C 2004 г. заведующий кафедрой "Технологии программирования".

UML-средства позволяют строить В 1991 г. предложил Switch-технологию различные диаграммы и автоматически — технологию программирования, основанную на применении конечных создавать по диаграмме классов «скелет» автоматов для описания поведения кода на языках программирования, кроме программ.

В 2002 г. организовал "Движение за того, предоставляют возможность открытую проектную программную автоматически генерировать код документацию".

Автор более 70 изобретений.

поведения программы по диаграммам состояний. Однако известные инструменты не позволяют в полной мере эффективно связывать «скелет» кода с моделью поведения, которую можно описывать с помощью диаграмм состояний, деятельностей, кооперации или последовательностей. Отсутствие однозначной операционной семантики, по мнению авторов, при традиционном написании программ приводит к различию описания поведения в модели и в программе, а также к произвольной интерпретации программистами поведенческих http://ru.wikipedia.org/wiki/Автоматное программирование - 19 - УМП «Автоматизированные методы разработки архитектуры ПО» диаграмм, а описание поведения в модели часто носит неформальный характер. Возможна ситуация, когда формальная модель поведения строится архитектором, а программисты при разработке исходного кода ее не используют, выполняя разработку с применением собственного толкования однозначно описанной модели. Появление операционной семантики в языке UML идентифицирует однозначность понимания диаграмм участниками проектирования ПО и позволит создать исполняемый UML, а генерация кода при этом может, в частности, выполняться непосредственно при интерпретации описанной модели.

Особенность реализованного в инструментальном средстве UniMod метода состоит в том, что проектирование программы выполняется так же, как проводится автоматизация технологических процессов для данной предметной области. При этом строится схема связей, содержащая источники информации, систему управления, объекты управления и обратные связи от этих объектов к системе управления. Система управления реализуется в виде системы взаимодействующих конечных автоматов, каждый из которых является структурным автоматом (автоматом, имеющим несколько входов и выходов). Применяемая SWITCH-технология определяет для каждого автомата два типа диаграмм (схема связей и граф переходов) и их операционную семантику. При наличии нескольких автоматов строится схема их взаимодействия. Для каждого типа диаграмм определяется соответствующая нотация13.

Приведем пример применения SWITCH-технологии при проектировании и реализации автомата предпусковых операций:

Словесное описание задачи.

1. Перечислим сигналы, блокирующие проведение предпусковых операций.

1.1. Обобщенный сигнал "Блокировка пуска" из систем управления общекорабельными системами (СУ ОКС). При наличии этого сигнала выдается сигнал "Подготовка пуска" в указанную систему.

1.2. Сигнал "Механизм валопроворотный не отключен".

1.3. Сигнал "Предельный выключатель".

1.4. Дизель не остановлен — частота вращения превышает рабочую частоту.

1.5. Команда на выполнение любого вида останова.

1.6. Наличие сигнала "Вода в охладителе" (аварийный уровень).

2. При наличии хотя бы одного из сигналов, указанных в п.п.1.2...1.6, система управления не должна принимать управляющую команду подготовки к пуску.

3. При нажатии оператором кнопки "Подготовка к пуску" выдается сигнал в СУ ОКС. После снятия сигнала "Блокировка пуска" из СУ ОКС http://is.ifmo.ru/i0=science&i1=minvuz - 20 - УМП «Автоматизированные методы разработки архитектуры ПО» и при отсутствии блокирующих сигналов по п.п. 1.2...1.6, система должна выполнить перечисленные ниже действия.

3.1. Запомнить команду на подготовку к пуску.

3.2. Включить табло "Подготовка к пуску".

3.3. Выдать команду на включение маслопрокачивающего насоса, замкнув контакт в цепи его магнитного пускателя.

3.4. Включить табло "Прокачка маслом" при замыкании контакта пускателя маслопрокачивающего насоса.

3.5. Подать питание на электромагнит стопа регулятора частоты вращения.

3.6. Подать команду на открытие клапана подачи воздуха к дизель-генератору.

3.7. Подать команду на открытие клапана воздуха низкого давления.

3.8. Включить табло "Проворот".

3.9. Включить контроль времени проворота (60 с).

3.10. Выдать команду в регулятор частоты вращения на установку первой ступени частоты, и через 4 с снять эту команду.

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

4.1. Снять питание с электромагнита клапана воздуха низкого давления.

4.2. Отключить табло "Проворот".

4.3. Отключить контроль времени проворота (60 с).

5. При превышении давлением масла предпускового давления и отработки команды на уменьшение заданной частоты вращения до первой ступени, система управления должна выполнить перечисленные ниже действия.

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

5.2. Снять команды на подготовку к пуску, перечисленные в п.3.

5.3. Отключить табло "Подготовка к пуску".

5.4. Включить табло "Пуск разрешен".

5.5. Включить память завершения предпусковых операций и дать разрешение на выполнение пуска.

6. В случае снижения давления масла ниже предпускового давления или увеличения затяжки пружины регулятора частоты вращения до третьей позиции или появления блокирующих сигналов по п. 1.1–1.3, 1.5, 1.6 система управления должна выполнить перечисленные ниже действия.

6.1. Отключить память завершения предпусковых операций.

6.2. Отключить табло "Пуск разрешен".

6.3. Разомкнуть контакт остановки маслопрокачивающего насоса и через 4 с вновь замкнуть его.

- 21 - УМП «Автоматизированные методы разработки архитектуры ПО» 6.4. Снять питание с электромагнита остановки регулятора частоты вращения.

6.5. Отключить табло "Прокачка маслом" при размыкании контакта пускателя маслопрокачивающего насоса.

6.6. Снять команду на открытие клапана подачи воздуха к дизель-генератору.

7. Если по истечении времени (п. 3.9) от датчика проворота коленвала не поступило трех импульсов, то система управления должна выполнить перечисленные ниже действия.

7.1. Включить аварийное табло "Нет проворота".

7.2. Включить обобщенный сигнал звуковой сигнализации.

7.3. Отключить табло "Подготовка к пуску".

7.4. Снять питание с электромагнита клапана пускового воздуха низкого давления.

7.5. Отключить контроль времени проворота (60 cек).

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

7.7. Разомкнуть контакт остановки маслопрокачивающего насоса и через 4 с вновь замкнуть этот контакт.

7.8. Отключить табло "Прокачка маслом" при размыкании контакта пускателя маслопрокачивающего насоса.

7.9. Отключить память команды на подготовку к пуску.

7.10. Снять команду на открытие клапана подачи воздуха к дизель-генератору.

8. Отключение обобщенной звуковой сигнализации и перевод аварийного табло "Нет проворота" в постоянное свечение производится нажатием кнопки "Квитирование".

9. Разблокировка системы управления и отключение табло "Нет проворота" производится нажатием кнопки "Разблокировка".

- 22 - УМП «Автоматизированные методы разработки архитектуры ПО» Схема связей приведена на рис. 1.

Рисунок 1. Схема связей Так выглядит граф переходов:

Рисунок 2. Граф переходов Текст функции, реализующей автомат в системе UniMod:

#include "photon_stuff.h" #include "dg.h" #include "log.h" #include "defines.h" void A1( int e, dg_t *dg ) { int y_old = dg->y1 ;

#ifdef GRAPH_EVENTS_LOGGING log_exec( dg, "A1", y_old, e ) ;

#endif - 23 - УМП «Автоматизированные методы разработки архитектуры ПО» switch( dg->y1 ) { case 0:

if( e == 0 ) dg->y1 = 1 ;

break ;

case 1:

A1_0( e, dg ) ;

if( e == 70 || x300(dg) || !x350(dg) || x500(dg) || x510(dg) || x520(dg) || dg->y3 != 0 || dg->y4 != 0 || dg->y7 == 2 || dg->y7 == 4 ) { z10_0(dg) ; z30_0(dg) ; z420_0(dg) ; z430_0(dg) ;

z440_0(dg) ; z810_0(dg) ;

dg->y1 = 0 ;

} else if( dg->y1_0 == 3 ) dg->y1 = 3 ;

else if( dg->y1_0 == 2 && x350(dg) && x280(dg) && !x290(dg) && !x300(dg) ) dg->y1 = 2 ;

break ;

case 2:

if( e == 0 ) dg->y1 = 1 ;

break ;

case 3:

if( e == 0 ) dg->y1 = 1 ;

break ;

default:

#ifdef GRAPH_ERRORS_LOGGING log_write( LOG_GRAPH_ERROR, dg->number, "ERROR IN A1: unknown state number!", 0 ) ;

#endif break ;

} ;

if( y_old == dg->y1 ) goto A1_end ;

{ #ifdef GRAPH_TRANS_LOGGING log_trans( dg, "A1", y_old, dg->y1 ) ;

#endif #ifdef DEBUG_FRAME update_debug() ;

#endif } ;

switch( dg->y1 ) { case 1:

A1_0( 0, dg ) ;

z10_1(dg) ; z20_1(dg) ; z30_1(dg) ; z400_1(dg) ;

z420_1(dg) ; z430_1(dg) ; z440_1(dg) ; z460(dg) ;

z810_1(dg) ;

break ;

case 2:

- 24 - УМП «Автоматизированные методы разработки архитектуры ПО» zl0_0(dg) ; z30_0(dg) ; z400_0(dg) ; z440_0(dg) ;

z810_0(dg) ;

break ;

case 3:

zl0_0(dg) ; z30_0(dg) ; z40_2(dg) ; z400_0(dg) ;

z430_0(dg) ;

z440_0(dg) ; z410(dg) ;

z700_l(dg) ; zl300(dg, MSG_NO_TURN) ;

break ;

} ;

Al_end:

#ifdef GRAPH_ENDS_LOGGING log_end( dg, "Al", dg->yl, e ) ;

#endif } ;

Авторы инструментального средства UniMod, сохранив автоматный подход, реализовали UML-нотацию при построении диаграмм в рамках SWITCH-технологии. Архитектурное проектирование производится следующим образом: “…Используя нотацию UML-диаграмм классов, строятся схемы связей автоматов, которые определяют интерфейс автоматов, а графы переходов строятся с помощью нотации UML-диаграммы состояний. При наличии нескольких автоматов их схема взаимодействия не строится, а все они изображаются на диаграмме классов. Диаграмма классов (как схема связей) и диаграммы состояний образуют предлагаемый графический язык для описания структуры и динамики программ”... [10].

- 25 - УМП «Автоматизированные методы разработки архитектуры ПО» При этом проектирование программы осуществляется следующим образом:

Pages:     | 1 | 2 || 4 | 5 |   ...   | 16 |






















© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.