+7(495)926-7456
+7(495)926-7456
Электронные компоненты  Мануалы 

0 1 [ 2 ] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

ния принципов работы микропроцессора iAPX432 с языком Ада, а также символикой, применяемой Г. Бушем при толковании понятий этого языка. Идея использования графической системы обозначений возникла благодаря успешному применению и развитию структурных графов Хансена в параллельном Паскале, которому посвящена более ранняя книга автора, написанная с Б. Боуденом.

Графическая система обозначений обеспечивает конкретное однозначное эскизное отображение необходимых свойств разрабатываемых Ада-программ. Такие эскизы являются удобным инструментом сжатого «стенографического» описания как программ, так и систем, проектируемых средствами языка Ада.

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

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

Традиционно сложная проблема организации параллельных процессов рассматривается в книге на примерах, относящихся



К области повседневного взаимодействия людей, что облегчает понимание развиваемых концепций. При этом читателю предлагается аналогами задач считать отдельных индивидуумов, а аналогами взаимодействий между задачами посредством предусмотренного в языке Ада механизма рандеву - взаимодействия между людьми в деловых учреждениях. Благодаря такому подходу проблемы параллельности процессов и способы их решения приобретают для читателя знакомые очертания и уже не кажутся ему чем-то совершенно новым и невообразимым.

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

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

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

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



ные схемы будущих программ в символической нотации, а именно это и есть логический уровень проектирования систем.

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

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

Изложенные в книге идеи прошли проверку в учебной аудитории в рамках нескольких курсов лекций для студентов старших курсов и аспирантов факультета системотехники и вычислительной техники Карлтонского университета, а также слушателей краткосрочных курсов университетской ассоциации и промышленных кругов. В ходе этой преподавательской работы, начавшейся в 1980 г., идеи автора претерпевали изменения, обновлялись и совершенствовались.

Книга состоит из трех частей. Части I и II являются вводными и должны быть доступны для читателей с минимальной начальной подготовкой. Первая из них содержит введение в предмет, обоснование актуальности рассматриваемых вопросов и обзор языка Ада как средства проектирования систем. Во второй части дается введение в логическое проектирование с использованием языка Ада, излагаются методы наглядного описания систем и иллюстрируется их применение на многочисленных простых примерах. В части III принципы логического проектирования рассматриваются более подробно. Сначала

) Сквозной структурный контроль представляет собой организационный механизм объективного первичного анализа документации проектов и текстов программ специалистами, равными по положению, не предусматривающий никаких мер административного воздействия. Концепции сквозного структурного контроля достаточно подробно изложены в книге: Дж. Хьюз, Дж. Мичтом, Структурный подход к программированию, М.; Мир, 1980.Др«ж. ред.



0 1 [ 2 ] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104