Главная » Все файлы » Просмотр файлов из архивов » Документы » Е.А. Жоголев - Лекции по технологии программирования

Е.А. Жоголев - Лекции по технологии программирования

2019-05-12СтудИзба

Описание файла

Документ из архива "Е.А. Жоголев - Лекции по технологии программирования", который расположен в категории "". Всё это находится в предмете "технологии программирования" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "Е.А. Жоголев - Лекции по технологии программирования"

Текст из документа "Е.А. Жоголев - Лекции по технологии программирования"

146


МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

им. М.В.ЛОМОНОСОВА

Факультет вычислительной математики и кибернетики

Е.А.Жоголев

ЛЕКЦИИ

ПО ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

1 9 9 7

Е.А.Жоголев. Лекции по технологии программирования. - М.: Московский государственный университет им. М.В.Ломоносова, факультет ВМиК, рукопись, 1997.

Copyright ã Е.А. Жоголев, 1994-1997.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Лекция 1. НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ИСТОРИЧЕСКИЙ И СОЦИАЛЬНЫЙ КОНТЕКСТ ПРОГРАММИРОВАНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

  1. Программа как формализованное описание процесса обработки данных. Программное средство . . . . . . . . . . . . . . . . . . 9

  2. Неконструктивность понятия правильной программы . . . .10

1.3. Надежность программного средства . . . . . . . . . . . . . . . . . 11

  1. Технология программирования как технология разработки надежных программных средств . . . . . . . . . . . . . . . . . . . . . . 12

1.5. Технология программирования и информатизация общества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Упражнения к лекции 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Литература к лекции 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Лекция 2. ИСТОЧНИКИ ОШИБОК В ПРОГРАММНОМ СРЕДСТВЕ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

  1. Интеллектуальные возможности человека. . . . . . . . . . . . . 18

  2. Неправильный перевод как причина ошибок в программном средстве. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

  3. Модель перевода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4. Основные пути борьбы с ошибками . . . . . . . . . . . . . . . . . . 22

Литература к лекции 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Лекция 3. ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

  1. Специфика разработки программных средств . . . . . . . . . . 23

  2. Жизненный цикл программного средства . . . . . . . . . . . . . 24

  3. Понятие качества программного средства . . . . . . . . . . . . . 25

  4. Обеспечение надежности - основной мотив разработки программных средств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

  5. Методы борьбы со сложностью . . . . . . . . . . . . . . . . . . . . 28

  6. Обеспечение точности перевода . . . . . . . . . . . . . . . . . . . . 29

  7. Преодоление барьера между пользователем и разработчиком . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

  8. Контроль принимаемых решений . . . . . . . . . . . . . . . . . . . 29

  9. Литература к лекции 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Лекция 4. ВНЕШНЕЕ ОПИСАНИЕ ПРОГРАММНОГО СРЕДСТВА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

  1. Назначение внешнего описания программного средства и его роль в обеспечении качества программного средства. 31

  2. Определение требований к программному средству . . . 33

  3. Спецификация качества программного средства . . . . . . . 35

4.4. Функциональная спецификация программного средства . 37

4.5. Методы контроля внешнего описания программного средства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Литература к лекции 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Лекция 5. МЕТОДЫ СПЕЦИФИКАЦИИ СЕМАНТИКИ ФУНКЦИЙ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

  1. Основные подходы к спецификации семантики функций. 41

  2. Метод таблиц решений . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

  3. Операционная семантика . . . . . . . . . . . . . . . . . . . . . . . . . . 45

  4. Денотационная семантика . . . . . . . . . . . . . . . . . . . . . . . . . 47

  5. Аксиоматическая семантика . . . . . . . . . . . . . . . . . . . . . . . 50

  6. Языки спецификаций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Упражнения к лекции 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Литература к лекции 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Лекция 6. АРХИТЕКТУРА ПРОГРАММНОГО СРЕДСТВА . . . . . 54

  1. Понятие архитектуры программного средства . . . . . . . . . 54

  2. Основные классы архитектур программных средств . . . . 54

  3. Архитектурные функции . . . . . . . . . . . . . . . . . . . . . . . . . . 59

  4. Контроль архитектуры программного средства . . . . . . . . 59

Литература к лекции 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Лекция 7. РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ И МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ . . . . . . . . . . . . . . . . . . . . 61

  1. Цель модульного программирования . . . . . . . . . . . . . . . . 61

  2. Основные характеристики программного модуля . . . . . . . 62

  3. Методы разработки структуры программы . . . . . . . . . . . . 64

  4. Контроль структуры программы . . . . . . . . . . . . . . . . . . . . . 72

Литература к лекции 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Лекция 8. РАЗРАБОТКА ПРОГРАММНОГО МОДУЛЯ. . . . . . . . . 74

  1. Порядок разработки программного модуля . . . . . . . . . . . . 74

  2. Структурное программирование . . . . . . . . . . . . . . . . . . . . 75

  3. Пошаговая детализация и понятие о псевдокоде. . . . . . . . 78

  4. Контроль программного модуля . . . . . . . . . . . . . . . . . . . . . 83

Литература к лекции 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Лекция 9. ДОКАЗАТЕЛЬСТВО СВОЙСТВ ПРОГРАММ . . . . . . . . 84

  1. Обоснования программ. Формализация свойств программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

9.2. Свойства простых операторов . . . . . . . . . . . . . . . . . . . . . . 85

  1. Свойства основных конструкций структурного программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

  2. Завершимость выполнения программы. . . . . . . . . . . . . . . . 88

  3. Пример доказательства свойства программы . . . . . . . . . . 89

Упражнения к лекции 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Литература к лекции 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Лекция 10. ТЕСТИРОВАНИЕ И ОТЛАДКА ПРОГРАММНОГО СРЕДСТВА. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

  1. Основные понятия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

  2. Принципы и виды отладки . . . . . . . . . . . . . . . . . . . . . . . . 92

  3. Заповеди отладки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

  4. Автономная отладка модуля . . . . . . . . . . . . . . . . . . . . . . . 96

  5. Комплексная отладка программного средства . . . . . . . 100

Литература к лекции 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Лекция 11. ОБЕСПЕЧЕНИЕ ФУНКЦИОНАЛЬНОСТИ И НАДЕЖНОСТИ ПРОГРАММНОГО СРЕДСТВА . . . . . . . . . . . . . . . . 104

  1. Функциональность и надежность как обязательные критерии качества программного средства . . . . . . . . . . . . . . . . . 104

11.2. Обеспечение завершенности программного средства. . 104

11.3. Обеспечение точности программного средства . . . . . . . 106

11.4. Обеспечение автономности программного средства. . . 106

11.5. Обеспечение устойчивости программного средства . . . 107

11.6. Обеспечение защищенности программных средств . . . 108

Литература к лекции 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Лекция 12. ОБЕСПЕЧЕНИЕ КАЧЕСТВА ПРОГРАММНОГО СРЕДСТВА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

  1. Общая характеристика процесса обеспечения качества программного средства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

  2. Обеспечение легкости применения программного средства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

  3. Обеспечение эффективности программного средства. . 117

  4. Обеспечение сопровождаемости программного средства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

  5. Обеспечение мобильности программного средства . . . 119

  6. Литература к лекции 12. . . . . . . . . . . . . . . . . . . . . . . . . . 120

Лекция 13.

Лекция 14. АТТЕСТАЦИЯ ПРОГРАММНОГО СРЕДСТВА . . . . 118

  1. Назначение аттестации программного средства . . . . . . 118

  2. Виды испытаний программного средства . . . . . . . . . . . 118

  3. Методы оценки качества программного средства . . . . 120

Литература к лекции 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Лекция 15. ОЪЕКТНЫЙ ПОДХОД К РАЗРАБОТКЕ ПРОГРАММНЫХ СРЕДСТВ

Лекция 16. КОМПЬЮТЕРНАЯ ПОДДЕРЖКА РАЗРАБОТКИ И СОПРОВОЖДЕНИЯ ПРОГРАММНЫХ СРЕДСТВ

Лекция 17. ОБЯЗАННОСТИ И ОТВЕТСТВЕННОСТЬ ПРОГРАММИСТОВ. ИНТЕЛЛЕКТУАЛЬНАЯ СОБСТВЕННОСТЬ.

Технология - совокупность производственных процессов в определенной отрасли производства, а также научное описание способов производства.

С.И. Ожегов. Словарь русского языка. - М.: Советская энциклопедия, 1975

ВВЕДЕНИЕ

Настоящее учебное пособие представляет собой расширение и новую редакцию конспекта лекций , читавшихся в течении ряда лет на факультете Вычислительной математики и кибернетики МГУ:

Е.А. Жоголев. Введение в технологию программирования (конспект лекций). - М.: "ДИАЛОГ-МГУ", 1994.

По содержанию оно полностью соответствует обновленной программе курса "Технология программирования", утвержденного для студентов программистских кафедр.

Хотя понятие технологии в русском языке имеет ясное определение, понятие технологии программирования требует некоторого уточнения прежде всего из-за необходимости определения, что следует считать продуктом этой технологии. Кроме того появление этого термина в русскоязычной научной литературе вызвано в значительной степени не всегда адекватным переводом иноязычной литературы по программированию, что привело к различным определениям (толкованиям) этого понятия. Это уточнение делается в первой лекции настоящего курса.

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

Содержание курса сложилось в результате критического анализа многих научных источников, часто противоречивших друг другу, с учетом опыта программирования автора настоящего курса, а также

результатов исследований, проведенных на кафедре системного программирования факультета ВМиК МГУ (в частности, по проблеме качества программного обеспечения). Расширение пособия по сравнению с ранее изданным было связано с включением в обновленную программу курса вопросов обеспечения качества программных продуктов и их документирования, объектного подхода к их разработке, компьютерной технологии и компьютерной поддержки разработки программных продуктов, а также социально-этических вопросов программирования.

Курс рассчитан на студентов, уже прослушавших общий курс по программированию и умеющих работать на компьютере. Его целью является помочь лицам, приступающим к разработке больших программных "продуктов", рационально организовать свой программистский труд.

Математика делает то, что можно, так, как нужно, тогда как информатика делает то, что нужно, так, как можно.

Программистский фольклор

Лекция 1.

НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ИСТОРИЧЕСКИЙ И СОЦИАЛЬНЫЙ КОНТЕКСТ ПРОГРАММИРОВАНИЯ

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
431
Средний доход
с одного платного файла
Обучение Подробнее