Математика | ||||
Бутаков Е. А. j 93 Методы создания качественного программно: обеспечения ЭВМ. — М.: Энергоатомиздат, 1984.-232 с., ил. — (Применение вычислительных маши в исследованиях и управлении производством) 70 к. Тираж 12 000 экз. Рассмотрены научные и организационные методы повышения к честна программирования и производительности труда программ: стов. Отдельно рассмотрены современные методы проверки правил , ности программ, основанные на аппарате математической логики, также современные практические приемы отладки и испытания {Т стирования) программ. Ряггиытяня ня ин-жрнрплв занимающихся ппогпаммиппвянмв! | ||||
ПРЕДИСЛОВИЕ Профессия программиста является одной из самых молодых, настолько молодой, что большинство первых программистов еще не состарилось. Несмотря на свою молодость эта профессия становится одной из массовых инженерных профессий, именно инженерных, потому что разработка, производство и эксплуатация программ сегодня и по характеру труда, и по его месту в общественном производстве являются инженерным делом. Чем же объясняется столь быстрое распространение профессии программиста? Прежде всего, конечно тем, что электронные вычислительные машины (ЭВМ) находят все большее число применений в самых различных областях человеческой деятельности — от торговли до космических путешествий. Это, естественно, повлекло быстрый рост производства самых разнообразных ЭВМ. При всем их многообразии все ЭВМ имеют одну общую черту: для их работы нужны программы, а программы пишут программисты. Существенно также, что производительность ЭВМ, определяемая числом элементарных операций, выполняемых в единицу времени, за тридцать лет возросла в 104 раз, а производительность труда программистов за это время увеличилась в 2—3 раза. Этот факт объясняется следующим образом. Изобретение языков программирования и создание соответствующих трансляторов, снабженных средствами обнаружения синтаксических ошибок, библиотеками подпрограмм, системами отладки и т. д., существенно упростили и облегчили процесс программирования, однако с развитием ЭВМ и средств программирования значительно усложнились сами задачи. Теперь программисту приходится намного больше времени тратить на этапы, предшествующие собственно написанию программы или кодированию, а также на объединение (интеграцию) независимо разработанных программ, отладку и тестирование всей программы. Даже по самым оптимистическим ЬачпК«М пР°изв°Дительность труда программистов при ^ рао°тке ординарных программ не превышает 10 отла- женных и испытанных команд в день. В случае же по* шенных требований к качеству . программы, наприы трансляторов, эта цифра снижается до трех и даже ДЕ команд в день. Однако и при столь низкой производите, ности качество программ оставляет желать лучшего, т более что по мере расширения сферы применения ЭВМ таких областях, как управление производственными п] цессами и транспортными средствами, биомедицинск аппаратура, чрезвычайно жесткими становятся требован] предъявляемые к качеству программного обеспечения. В этой книге делается попытка выделить наиболее 31 чительные и перспективные направления в области ПОЕ шения качества программного обеспечения ЭВМ. Нел* сказать, что материал, составляющий содержание кни является совершенно новым для советского читателя: последние годы издан целый ряд отечественных и перевс ных книг, посвященных тем или иным аспектам пробле! создания качественного программного обеспечения. Од! ко на сегодняшний день ощущается необходимость в < стематическом изложении всех основных методов и м< используемых в настоящее время при создании крупн: программных комплексов и направленных на повышен их качества. При этом автор стремился придерживать уровня изложения, доступного для программистов ере ней квалификации и студентов старших курсов, специа/ зирующихся по программированию. В книге практически не рассмотрены методы оптимш ции программ. Автор полагает, что эти вопросы луч! всего рассматривать в связи с проблемами реализац .языков программирования и структурой компиляторе Наибольшее внимание уделено такой характеристике в чества, как надежность. Это объясняется тем, что проб; ма надежности программного обеспечения сегодня явл ется наиболее важной в практическом отношении. В сам< деле, об эффективности, мобильности и других характ ристиках качества имеет смысл говорить только в т< случае, если программа является достаточно надежной. В книве не нашли отражения имеющие непосредстве ное отношение к освещаемой в ней тематике Я-технолог производства программных комплексов, разработанная Институте кибернетики АН УССР, и другие аналогичш разработки. Это интересное направление широко предста лено в книгах соответствующих разработчиков, и конспе тивное изложение идеи «промышленной технологии» из! товления программ вряд ли удовлетворило бы читател* Все источники, в той или иной мере использованные при написании книги, приведены в списке литературы, однако ссылки на эти источники делаются только в том 'случае, если ознакомление с соответствующим источником, по мнению автора, будет способствовать более глубокому усвоению излагаемого материала. Ценные замечания рецензента Н. А. Абрамовой и научного редактора Д. А. Поспелова несомненно способствовали улучшению изложения и позволили исключить многие неточности и огрехи. Автор считает своим долгом выразить персональные благодарности А. А Запевалину, Л. И. Комоловой и И. А. Линчевскои за большую помощь в подготовке книги. Автор ОГЛАВЛЕНИЕ Предисловие.............. 3 Глава первая. Процесс программирования, языки программирования и качество программного обеспечения ЭВМ . . б 1.1. Характеристики качества программного обеспечения . . 6 1.2. Свойства языков программирования, определяющие качество программы........... 12 1.3. Простота............. 18 1.4. Надежность . . .......... 20 1.5. Быстрота трансляции.......... 25 1.6. Эффективность объектного кода....... 27 1.7. Удобочитаемость........... 29 1.8. Блочная структура.......... 32 1.9. Тенденции развития языков программирования ... 34 Глава вторая. Стандартизация процесса разработки и производства программ и программной документации ... 46 2.1. Стандартизация, дисциплина и творчество в программировании ............. 46 2.2. Виды программ и программных документов .... 51 2.3. Основные стадии и этапы разработки программ и программной документации......... 55 Глава третья. Средства проектирования и документирования программ............. 64 3.1. Проектирование и структурирование . программ — путь к повышению их качества........ 64 3.2. Графическая иерархическая документация (ГИД) . . 70 3.3. Спецификация модулей......... 77 Глава четвертая. Простейшие пути повышения качества программ.............. 80 4.1. Надежность, правильность и устойчивость программ 80 4.2. Борьба с ошибками.......... 85 4.3. Сквозной структурный контроль . ...... 89 4.4. Стиль программирования и качество программ ... 92 Глава пятая. Структурное программирование .... 98 5.1. Основные положения.......... 98 5.2. Терминология и обозначения........ 103 5.3. Структурирование программ........ 111 5.4. Теорема о структурировании........ 113 5.5. Процесс структурного программирования . ... 120 5.6. Структурное программирование и корректность программ 125 229 5.7. Языки программирования и структурное программирование .............. 129 5.8. Технология структурного программирования . 131 Глава шестая. Верификация программ...... 140 6.1. Постановка задачи.......... 140 6.2. Частичная корректность......... 145 6.3. Оканчиваемость........... 152 6.4. Эвристические методы получения индуктивных утверждений .............. 156 6.5. Прагматические аспекты верификации программ . . 166 Глава седьмая. Отладка программ...... 171 7.1. Сущность процесса отладки........ 171 7.2. Виды средств отладки и важнейшие требования к ним 175 7.3. Программные прерывания........ 177 7.4. Коды возврата............ 181 7.5. Листинги заданий........... 182 7.6. Дампы и коды завершения........ 184 7.7. Отладочные средства языков программирования . . 186 Глава восьмая. Испытание программ с целью обнаружения ошибок............... 190 8.1. Организация "процесса испытаний....... 190 8.2. Тестирование компонентов: функциональное и структурное тестирование ........... 195 8.3. Тестирование компонентов: метод обнаруживающих подобластей ............. 209 8.4. Автоматизация процесса создания и испытания программы .............. 216 Список литературы............. 225 Цена: 150руб. |
||||