Структурный подход к программированию-ДЖ.Хьюз Москва 1980 стр.280 Книга посвящена вопросам структурного подхода к программированию - новому направлению в программировании. Она содержит множество примеров, иллюстраций и рекомендаций руководителям программистских коллективов. Особую ценность имеют конкретные данные по структурному программированию ня КОБОЛе, ФОРТРАНе и ПЛ/1, трансляторы с которых имеются на отечественных машинах ЕС ЭВМ. Книга предназначена программистам и их руководителям. Она будет полезна студентам и аспирантам вычислительных специальностей университетов и институтов.
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Традиционная технология программирования складывалась в условиях, когда основным потребителем программ были научные учреждения, вычислительные ресурсы были ограничены, а проблемы сопровождения программ были по существу неизвестны. Основным критерием качества создаваемой программы считалась ее узко понимаемая эффективность, и мало кого интересовали отрицательные последствия тех ухищрений, которые применялись для ее достижения,
К настоящему времени ситуация коренным образом изменилась. Потребителем программ стало по существу все народное хозяйство, и узким местом^ста-ли не столько вычислительные, сколько человеческие ресурсы, необходимые для создания и сопровождения крупных систем программ. Стало ясно, что разумная технология программирования должна обеспечить снижение общих трудозатрат с учетом всего жизненного цикла программы — от замысла до завершения эксплуатации. Она должна учитывать, что сопровождение крупных комплексов программ стоит намного дороже их создания, да и в процессе создания приходится не столько писать программы, сколько читать их. В этих условиях важнейшими критериями качества становятся понятность, надежность и удобство сопровождения программ, а также возможность точно планировать их производство,-
Неудовлетворенность традиционной технологией и постепенное осознание новых критериев заставило крупнейших производителей программ интенсивно искать новые технологические принципы. Наиболее впечатляющих успехов в этом деле добилась корпорация ИБМ.
Когда в начале семидесятых годов появились первые сообщения о том, что существует технология программирования, позволяющая создавать достаточно крупные программы практически без ошибок и при этом укладываться в запланированные сроки и бюджет, эти сообщения были восприняты с большим недоверием, Ведь большинство программистов привыкли к тому, что отладка, а тем более комплексная отладка — весьма капризный и по существу непредсказуемый процесс, обычно нарушающий все разумные оценки по срокам и затратам,
И тем не менее сообщения оказались в целом верными — речь шла о первых применениях разработанных фирмой ИБМ так называемых Усовершенствованных методов программирования. Они оказали революционизирующее влияние практически на все стороны деятельности по созданию программ, соединив в себе лучшие элементы личной технологии классных программистов и достижения теории программирования с индустриальным характером современного производства программ при тщательном учете изменившихся требований к ним,
Перед вами учебное пособие по одной из важнейших компонент Усовершенствованных методов — структурному подходу к программированию (с сущностью Усовершенствованных методов можно познакомиться по книге Ф. Я. Дзержинского и А. И. Тер-Саакова *)). Авторы не претендуют на изложение теоретических основ структурного подхода. Их цель — научить рядового программиста пользоваться этим подходом в повседневной практической деятельности. Особую ценность придают книге конкретные рекомендации по структурному программированию на КОБОЛе, ФОРТРАНе и ПЛ/1, трансляторы с которых имеются на отечественных машинах, а также по организации нисходящей разработки, пошаговой детализации, сквозному структурному контролю и тестированию. Правда, иногда авторы слишком увлекаются упрощенчеством, не сообщая читателю о возможных трудностях при попытках использовать их рекомендации «в лоб». Это касается, в частности, нисходящей реализации и выделения наборов тестов. Существенно фундаментальнее аналогичные вопросы изложены в монографии Г. Майерса -). Для советского читателя может оказаться трудным разобраться досконально в некоторых примерах из американской экономики, тем более, что авторы рассматривают лишь фрагменты, а не полные программы. Пугаться этого не следует — как правило, для понимания существа излагаемой технологии достаточно общего представления о назначении рассматриваемого фрагмента.
Книга Дж. Хьюз и Дж. Мичтома написана на основе богатого опыта, накопленного ИБМ по внедрению и использованию структурного подхода, она будет полезна как программистам, желающим улучшить методы своей работы, так и руководителям программистских коллективов.
Предисловие авторов и главы 1, 5, 8, 9, 10 переведены Э. М. Киуру, главы 2, 3, 4, 6, 7 — А. Л. Александровым. При переводе экономических терминов большую помощь оказал С. А. Овсейчик.
В. Ш. Кауфман <
ПРЕДИСЛОВИЕ
Одни называют появление структурного программирования революцией, другие говорят, что это дело будущего. Некоторым оно кажется модой, причудой, которая пройдет со временем. Как бы то ни было, ясно одно: после изучения идей структурного программирования и соответствующих приемов вы, несомненно, измените свой стиль решения задач с помощью ЭВМ. В этой книге понятие структурирования распространяется с собственно программы на весь процесс программирования.
Заглавие Структурный подход к программированию выбрано с целью подчеркнуть необходимость общего подхода к программированию—единого метода, который требует определенной дисциплины на всех стадиях программистского проекта: спецификации, проектирования, собственно программирования (кодирования) и тестирования. Можно надеяться, что при более формализованном способе получения программ программирование станет больше походить на науку.
Цель настоящей книги — изложить основные идеи и эффективные методы, присущие структурному подходу. Для программиста она содержит достаточно информации, чтобы он мог сам применять предлагаемые методы на практике. Администратору же знакомство с книгой позволит уверенно управлять теми, кто использует структурные методы, или контролировать их деятельность.
Книга предназначена для тех, кто знаком с основными понятиями программирования. Так как это не общее введение в программирование и не введение в программирование на конкретном языке, то было бы разумным использовать книгу в курсе, которому предшествуют один или несколько вводных курсов программирования. Профессионалы (любого уровня) в области обработки данных также извлекут пользу от применения излагаемой методики. Программисты и разработчики могли бы использовать новые идеи, излагаемые в книге, в своей повседневной работе. Руководители проектов и администраторы, усвоив излагаемый в книге подход, могли бы способствовать его внедрению, а также контролировать тех, кто его применяет.
Доскональное знакомство с программированием не требуется — важно понимание специфики процесса программирования. Разделы о проектировании программ, нисходящей разработке, структурном программировании и тестировании изложены так, что для их понимания не нужно знать конкретный язык программирования. Однако, если вас интересует вполне определенный язык программирования, вы можете выбрать в соответствии с вашими склонностями главу 6, 7 или 8, где говорится о КОБОЛе, ФОРТРАНе и ПЛ/1.
J) Из популярной в 30-е годы песенки.— Прим, перев,
ОГЛАВЛЕНИЕ
Предисловие редактора перевода , . ........ ........ 5
•Предисловие............................ 7
Глава 1. НОВАЯ ДИСЦИПЛИНА ПРОГРАММИРОВАНИЯ .... 9
Пролог.......................... 9
Что такое структурное программирование?........ 11
Зачем нужна эта новая дисциплина?............ 12
Что такое структурный подход?............, 14
Выводы для руководства................. 24
Эпилог.......................... 25
Выводы.......................... 27
Контрольные вопросы и упражнения.......... , 28
Глава 2. НИСХОДЯЩАЯ РАЗРАБОТКА: ПРОЕКТИРОВАНИЕ
ПРОГРАММЫ...................... 29
Модульность....................... 29
Нисходящее проектирование программ........... 34
Выводы для руководства................. 49
Выводы......................... 49
Контрольные вопросы и упражнения ........... 50
Глава 3. НИСХОДЯЩАЯ РАЗРАБОТКА: ПЛАНИРОВАНИЕ И РЕАЛИЗАЦИЯ........................ 52
Планирование ...................... 52
Реализация.............,......... 63
Выводы для руководства................. 66
Выводы........',................. 68
Контрольные вопросы и упражнения............ 70
Глава 4. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ......... 72
Управляющие структуры................. 73
Псевдокод........................ 82
Выводы для руководства ................. 89
Контрольные вопросы и упражнения......... . , 92
Глава 5. ПОШАГОВАЯ ДЕТАЛИЗАЦИЯ.............. 94
Блок-схемы.......I............... 98
Правила детализации................... 99
Сегментирование .............;,..,... 115
Выводы..................,..,.,, 124
Контрольные вопросы и упражнения ......,,,,. 128
Глава 6. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ НА СТАНДАРТНОМ КОБОЛе..................... 130'
Модульность....................... 131
Структурирование программ на КОБОЛе......... '41
О стиле программирования................ 156'
Как облегчить чтение программы............. 163 ,
Выводы......................... 168
Контрольные вопросы и упражнения........... 177
Глава 7. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ НА ФОРТРАНе 178
Организация программ на языке ФОРТРАН........ 179
Структурирование программ на ФОРТРАНе....... 182
О стиле программирования................. 189
Как облегчить чтение программы............, 192
Использование препроцессора с выходом на ФОРТРАН . . . 194
Выводы.......................... 203
Контрольные вопросы и упражнения........... 204
Глава 8. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ НА ПЛ/1 . . . 206
Модульность..................., , , . 206
Структурирование ПЛ/1-программ............. 216
Некоторые приемы программирования на ПЛ/1 ...... 226
Как облегчить чтение программ............. 228
Пример программы..................., 231
Выводы........................, 233
Контрольные вопросы и упражнения .. ч........ t 240
Глава 9. СКВОЗНОЙ СТРУКТУРНЫЙ КОНТРОЛЬ ......,' 241
Кто этим занимается?................... 243
Атмосфера на контрольной сессии............, 245
Как это все происходит?................. 246
Выводы для руководства................., 249
Выводы......................., , 252
Контрольные вопросы.................i 252
Глава 10. ТЕСТИРОВАНИЕ.................., 254
Что и как яужно тестировать?.............. 255
Разработка плана тестирования............, 263
Прогон тестов.................•. . . . , 265
Выводы для руководства .......,,........ 265
Выводы.......,.............,,,. 267
Контрольные вопросы и упражнения ............ 268
Глоссарий .................... ....,,,.. 269
Список литературы......................, , 274


Hosted by uCoz