
- •Оглавление
- •9. Тестирование программных продуктов …………………..263
- •10. Отладка программного обеспечения …………………..287
- •11.Составление программной документации …………………..300
- •Предисловие
- •Введение
- •1. Технология программирования. Основные понятия и подходы
- •1.1. Технология программирования и основные этапы ее развития
- •1.2. Проблемы разработки сложных программных систем
- •1.3. Блочно-иерархический подход к созданию сложных систем
- •1.4. Жизненный цикл и этапы разработки программного обеспечения
- •1.5. Эволюция моделей жизненного цикла программного обеспечения
- •1.6. Ускорение разработки программного обеспечения. Технология rad
- •1.7. Оценка качества процессов создания программного обеспечения
- •Контрольные вопросы
- •2. Приемы обеспечения технологичности программных продуктов
- •2.1. Понятие технологичности программного обеспечения
- •2.2. Модули и их свойства
- •2.3. Нисходящая и восходящая разработка программного обеспечения
- •2.5. Стиль оформления программы
- •2.6. Эффективность и технологичность
- •2.7. Программирование «с защитой от ошибок»
- •2.8. Сквозной структурный контроль
- •Контрольные вопросы и задания
- •3. Определение требований к программному обеспечению и исходных данных для его проектирования
- •3.1. Классификация программных продуктов по функциональному признаку
- •3.2. Основные эксплуатационные требования к программным продуктам
- •3.3. Предпроектные исследования предметной области
- •3.4. Разработка технического задания
- •1.Введение
- •2. Основание для разработки
- •3. Назначение
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •1. Введение
- •2. Основание для разработки
- •3. Назначение
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •3.5. Принципиальные решения начальных этапов проектирования
- •Контрольные вопросы и задания
- •4. Анализ требований и определение спецификаций программного обеспечения при структурном подходе
- •4.1. Спецификации программного обеспечения при структурном подходе
- •4.2. Диаграммы переходов состояний
- •4.3. Функциональные диаграммы
- •4.4. Диаграммы потоков данных
- •4.5. Структуры данных и диаграммы отношений компонентов данных
- •4.6. Математические модели задач, разработка или выбор методов решения
- •Контрольные вопросы и задания
- •5. Проектирование программного обеспечения при структурном подходе
- •5.1. Разработка структурной и функциональной схем
- •5.2. Использование метода пошаговой детализации для проектирования структуры программного обеспечения
- •5.3. Структурные карты Константайна
- •5.4. Проектирование структур данных
- •5.5. Проектирование программного обеспечения, основанное на декомпозиции данных
- •5.6. Case-технологии, основанные на структурных методологиях анализа и проектирования
- •Контрольные вопросы и задания
- •6. Анализ требований и определение спецификаций программного обеспечения при объектном подходе
- •6.2. Определение «вариантов использования»
- •Типичный ход событий (окончание)
- •Альтернатива
- •6.3. Построение концептуальной модели предметной области
- •6.4. Описание поведения. Системные события и операции
- •Контрольные вопросы и задания
- •7. Проектирование программного обеспечения при объектном подходе
- •7.1. Разработка структуры программного обеспечения при объектном подходе
- •7.2. Определение отношений между объектами
- •7.3. Уточнение отношений классов
- •7.4. Проектирование классов
- •7.5. Компоновка программных компонентов
- •7.6. Проектирование размещения программных компонентов для распределенных программных систем
- •7.7. Особенность спиральной модели разработки. Реорганизация проекта
- •Контрольные вопросы и задания
- •8. Разработка пользовательских интерфейсов
- •8.1. Типы пользовательских интерфейсов и этапы их разработки
- •8.2. Психофизические особенности человека, связанные с восприятием, запоминанием и обработкой информации
- •8.3. Пользовательская и программная модели интерфейса
- •8.4. Классификации диалогов и общие принципы их разработки
- •8.5. Основные компоненты графических пользовательских интерфейсов
- •8.6. Реализация диалогов в графическом пользовательском интерфейсе
- •8.7. Пользовательские интерфейсы прямого манипулирования и их проектирование
- •8.8. Интеллектуальные элементы пользовательских интерфейсов
- •Контрольные вопросы и задания
- •9. Тестирование программных продуктов
- •9.1. Виды контроля качества разрабатываемого программного обеспечения
- •9.2. Ручной контроль программного обеспечения
- •9.3. Структурное тестирование
- •9.4. Функциональное тестирование
- •9.5. Тестирования модулей и комплексное тестирование
- •9.6. Оценочное тестирование
- •Контрольные вопросы и задания
- •10. Отладка программного обеспечения
- •10.1. Классификация ошибок
- •10.2. Методы отладки программного обеспечения
- •10.3. Методы и средства получения дополнительной информации
- •10.4. Общая методика отладки программного обеспечения
- •Контрольные вопросы
- •11. Составление программной документации
- •11.1. Виды программных документов
- •11.2. Пояснительная записка
Серия основана в 2000 году
РЕДАКЦИОННАЯ КОЛЛЕГИЯ:
чл.-кор. РАН И.Б. Федоров — главный редактор
д-р техн. наук И.П. Норенков — зам. главного редактора
д-р техн. наук Ю.М. Смирнов — зам. главного редактора
д-р техн. наук В.В. Девятков
д-р техн. наук В.В. Емельянов
канд. техн. наук И.П. Иванов
д-р техн. наук В.А. Матвеев
канд. техн. наук Н.В. Медведев
д-р техн. наук В.В. Сюзев
д-р техн. наук Б.Г. Трусов
д-р техн. наук В.М. Черненький
д-р техн. наук В.А. Шахнов
Г.С. ИВАНОВА
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
Издание второе, стереотипное
Допущено Министерством образования
Российской Федерации
в качестве учебника для студентов
высших учебных заведений, обучающихся по направлению
«Информатика и вычислительная техника»,
специальностям: «Вычислительные машины, комплексы,
системы и сети», «Автоматизированные системы обработки
информации и управления», «Программное обеспечение
вычислительной техники и информационных систем»
Москва
Издательство МГТУ имени Н.Э. Баумана 2003
УДК 681.3.06(075.8) ББК 32.973-018 И201
Рецензенты:
кафедра «Компьютерные системы и технологии»
Московского государственного инженерно-физического института
(зав. кафедрой профессор Л.Д. Забродин);
кафедра «ЭВМ, комплексы и сети»
Московского государственного авиационного института
(зав. кафедрой профессор О.М. Брехов)
Иванова Г.С.
И201 Технология программирования: Учебник для вузов. - 2-е изд., стереотип. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2003. - 320 с.: ил. (Сер. Информатика в техническом университете.)
ISBN 5-7038-2077-4
Подробно рассмотрены основные методы и нотации, применяемые при разработке сложного программного обеспечении. При этом особое внимание уделено проектированию программных систем с использованием структурного, объектного и компонентного подходов. Детально разобраны основные приемы обеспечения требуемых технологических свойств. Приведена классификация и проанализированы принципы проектирования пользовательских интерфейсов программного обеспечения. Изложение материала иллюстрируется большим количеством примеров и поясняющих рисунков.
Содержание учебника соответствует курсу лекций, который автор читает в МГТУ им. Н.Э. Баумана.
Для студентов вузов, обучающихся по специальностям, связанным с информатикой. Может быть полезен всем изучающим программирование самостоятельно.
УДК 681.3.06(075.8) ББК 32.973-018
© Г.С. Иванова, 2002 ISBN 5-7038-2077-4 (с) МГТУ им. Н.Э. Баумана. 2002
Оглавление
Предисловие …………….9
Введение ……………10
1. Технология программирования. Основные понятия и подходы………..12
Технология программирования и основные этапы ее развития ……….....12
Проблемы разработки сложных программных систем…………………….23
Блочно-иерархический подход к созданию сложных систем ……………..24
Жизненный цикл и этапы разработки программного обеспечения………..27
Эволюция моделей жизненного цикла программного обеспечения……….32
Ускорение разработки программного обеспечения. Технология RAD……37
Оценка качества процессов создания программного обеспечения ………...40
2. Приемы обеспечения технологичности программных продуктов………..45
Понятие технологичности программного обеспечения……………………..45
Модули и их свойства ……………..46
Нисходящая и восходящая разработка программного обеспечения ………55
Структурное и «неструктурное» программирование. Средства
описания структурных алгоритмов …………….57
Стиль оформления программы …………….65
Эффективность и технологичность …………….68
Программирование «с защитой от ошибок» …………….70
Сквозной структурный контроль …………….73
3. Определение требований к программному обеспечению и исходных
данных для его проектирования …………………75
Классификация программных продуктов по функциональному признаку ……75
Основные эксплуатационные требования к программным продуктам……........78
Предпроектные исследования предметной области …………………81
Разработка технического задания …………………82
Принципиальные решения начальных этапов проектирования ………………..95
4. Анализ требований и определение спецификаций программного обеспечения при структурном подходе ………………….103
Спецификации программного обеспечения при структурном подходе…….......103
Диаграммы переходов состояний ………………….107
Функциональные диаграммы ………………….109
Диаграммы потоков данных ………………….114
Структуры данных и диаграммы отношений компонентов данных……………123
Математические модели задач, разработка или выбор методов решения……...136
5. Проектирование программного обеспечения при структурном подходе………139
Разработка структурной и функциональной схем ……………………139
Использование метода пошаговой детализации для проектирования структуры программного обеспечения ……………………143
Структурные карты Константайна …………………….149
Проектирование структур данных …………………….154
Проектирование программного обеспечения, основанное на декомпозиции данных …………………….159
Case-технологии, основанные на структурных методологиях анализа
и проектирования …………………….164
6. Анализ требований и определение спецификаций программного обеспечения при объектном подходе …………………….167
6.1. UML — стандартный язык описания разработки программных продуктов
с использованием объектного подхода …………………..167
Определение «вариантов использования» …………………..170
Построение концептуальной модели предметной области …………………..176
Описание поведения. Системные события и операции …………………..182
7. Проектирование программного обеспечения при объектном подходе .…….............188
7.1. Разработка структуры программного обеспечения при объектном
подходе ……………………188
Определение отношений между объектами ……………………191
Уточнение отношений классов ……………………197
Проектирование классов ……………………201
Компоновка программных компонентов ……………………208
Проектирование размещения программных компонентов
для распределенных программных систем ……………………211
7.7. Особенность спиральной модели разработки. Реорганизация проекта .…………212
8. Разработка пользовательских интерфейсов ……………………214
Типы пользовательских интерфейсов и этапы их разработки……………………..214
Психофизические особенности человека, связанные с восприятием, запоминанием и обработкой информации ……………………224
Пользовательская и программная модели интерфейса ……………………227
Классификации диалогов и общие принципы их разработки……………………..230
Основные компоненты графических пользовательских интерфейсов ..……........237
Реализация диалогов в графическом пользовательском интерфейсе…………….241
Пользовательские интерфейсы прямого манипулирования
и их проектирование ……………………251
8.8. Интеллектуальные элементы пользовательских интерфейсов…………………...259