Файл: Технология раработки програмного обеспечения УП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

Федеральное агентство по образованию 

 

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

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) 

 

Кафедра автоматизированных систем управления (АСУ) 

 
 

В.Т. Калайда, В.В. Романенко  

 

 

ТЕХНОЛОГИЯ

 

РАЗРАБОТКИ

  

ПРОГРАММНОГО

 

ОБЕСПЕЧЕНИЯ

 

 
 

Учебное пособие 

для студентов специальности 230105 —  

«Программное обеспечение вычислительной техники  

и автоматизированных систем» 

 

 
 
 

 
 
 

 
 

 
 
 
 

 

2007 

 


background image

 
 
 
 

 
 
 
Корректор: Осипова Е.А. 
 
 
 
 
 
 
Калайда В.Т., Романенко В.В. 
Технология  разработки  программного  обеспечения:  Учебное  посо-
бие. — Томск: Томский межвузовский центр дистанционного обра-
зования,  2007. — 257 с. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                                                    

© Калайла В.Т., Романенко В.В., 2007 

                                                    

© Томский межвузовский центр 

                                                        дистанционного образования, 2007 


background image

 

 

 
 

ОГЛАВЛЕНИЕ

 

 

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 


background image

 

 

 
 

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 


background image

 

 

 
 

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