ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Проектирование информационных систем
Добавлен: 21.10.2018
Просмотров: 10738
Скачиваний: 8
Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
В.Т. Калайда, В.В. Романенко
ТЕХНОЛОГИЯ
РАЗРАБОТКИ
ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
Учебное пособие
для студентов специальности 230105 —
«Программное обеспечение вычислительной техники
и автоматизированных систем»
2007
Корректор: Осипова Е.А.
Калайда В.Т., Романенко В.В.
Технология разработки программного обеспечения: Учебное посо-
бие. — Томск: Томский межвузовский центр дистанционного обра-
зования, 2007. — 257 с.
© Калайла В.Т., Романенко В.В., 2007
© Томский межвузовский центр
дистанционного образования, 2007
3
ОГЛАВЛЕНИЕ
1 Введение. Проблемы современного программирования .........8
2 Этапы разработки программного обеспечения....................10
2.1 Анализ требований, предъявляемых к системе ....................11
2.2 Определение спецификаций...................................................12
2.3 Проектирование.......................................................................13
2.4 Кодирование ............................................................................15
2.5 Тестирование ...........................................................................16
2.6 Эксплуатация и сопровождение.............................................19
Контрольные вопросы...................................................................21
3 Методы разработки программного обеспечения как
научная дисциплина ..................................................................23
3.1 Методы управления разработкой...........................................23
3.1.1 Выполнение проекта.........................................................25
3.1.2 Методика оценки затрат ...................................................27
3.1.3 Контрольные точки...........................................................32
3.1.4 Средства разработки .........................................................33
3.1.5 Надежность ........................................................................34
3.2 Методы проведения разработки программного
обеспечения..............................................................................34
3.3 Развитие методов разработки программного
обеспечения..............................................................................37
3.3.1 Язык определения задач и анализатор задач ..................38
3.3.2 Система структурного анализа и проектирования
SADT.................................................................................40
3.3.3 Система SREM ..................................................................42
3.3.4 Методика Джексона..........................................................42
3.4 Выводы .....................................................................................43
Контрольные вопросы...................................................................44
4 Методы разработки программного обеспечения .................46
4.1 Язык проектирования программ ............................................46
4.2 Стратегия проектирования .....................................................50
4.2.1 Нисходящее проектирование и нисходящая
разработка.........................................................................50
4.2.2 Структурное проектирование ..........................................54
4.3 Данные......................................................................................59
4
4.3.1 Обзор структур данных ....................................................59
4.3.2 Абстрактные конструкции ...............................................65
Контрольные вопросы...................................................................78
5 Правильность программ...........................................................80
5.1 Аксиомы ...................................................................................80
5.2 Правила преобразования данных...........................................83
5.3 Доказательства правильности программ...............................83
Контрольные вопросы...................................................................86
6 Тестирование...............................................................................87
6.1 Психология и экономика тестирования программ ...............87
6.2 Экономика тестирования ........................................................90
6.2.1 Тестирование программы как черного ящика ................90
6.2.2 Тестирование программы как белого ящика ..................91
6.2.3 Принципы тестирования ..................................................94
6.3 Ручное тестирование .............................................................100
6.3.1 Инспекции и сквозные просмотры................................101
6.3.2 Инспекции исходного текста .........................................103
6.3.3 Список вопросов для выявления ошибок при
инспекции.......................................................................106
6.3.4 Сквозные просмотры ......................................................119
6.3.5 Оценка посредством просмотра ....................................120
6.4 Проектирование теста ...........................................................122
6.4.1 Тестирование путем покрытия логики программы .....123
6.4.2 Эквивалентное разбиение...............................................132
6.4.3 Анализ граничных значений ..........................................139
6.4.4 Применение функциональных диаграмм......................146
6.4.5 Предположение об ошибке ............................................166
6.4.6 Стратегия .........................................................................168
Контрольные вопросы.................................................................169
7 Технология разработки программ ........................................170
7.1 Разбиение задачи на независимые подзадачи.....................170
7.2 Разбиение задачи на одинаковые по сложности части ......170
7.3 Рекурсия и динамическое программирование....................171
7.3.1 Рекурсия ...........................................................................171
7.3.2 Динамическое программирование.................................172
7.3.3 Моделирование ...............................................................172
7.4 Поиск ......................................................................................172
5
7.4.1 Поиск в списках...............................................................173
7.4.2 Деревья поиска ................................................................175
7.4.3 Стратегия распределения памяти ..................................178
7.5 Сортировка.............................................................................179
7.6 Алгоритм выбора из конечного состояния .........................181
7.7 Сопрограммы .........................................................................181
Контрольные вопросы.................................................................183
8 Методы управления проектированием программных
изделий........................................................................................184
8.1 Организация управления проектированием
программного изделия ..........................................................184
8.1.1 Понятие изделия как средства общения .......................184
8.1.2 Нисходящий анализ процесса управления
проектированием программного изделия....................185
8.1.3 Организация взаимодействия ........................................186
8.1.4 Установление целей, средства их достижения.............187
8.1.5 Подбор и обучение кадров .............................................189
8.2 Организация планирования разработок программного
изделия....................................................................................190
8.2.1 Виды планов ....................................................................191
8.2.2 Декомпозиция планов.....................................................194
8.2.3 Организационная структура группы планирования ....195
8.2.4 Планы, связанные с созданием программных
изделий............................................................................197
8.2.5 Опытный образец изделия..............................................200
8.2.6 Организация планирования в фазе исследования ........200
8.2.7 Организация планирования в стадии анализа
осуществимости.............................................................203
8.2.8 Организация планирования в фазах
конструирования и кодирования..................................203
8.2.9 Организация планирования в фазах оценки
и использования.............................................................204
8.2.10 Обязанности группы планирования при
рассмотрении и утверждении планов разработки
программного изделия ..................................................205
8.3 Организация разработки программного изделия ...............208