Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП лекции Разделы 1-3.doc
Скачиваний:
20
Добавлен:
28.09.2019
Размер:
1.95 Mб
Скачать

Министерство образования и науки Российской Федерации

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

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

Факультет: АВТОМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ Кафедра: ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

Конспект лекций

по дисциплине: Технология программирования

по направлению 654600 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

Факультет автоматики и информационных технологий

специальность 230101 Вычислительные машины, комплексы, системы и сети

САМАРА 2008

С О Д Е Р Ж А Н И Е

Раздел 1. Задача проектирования программных систем 6

Тема 1.1. Технология программирования и основные этапы ее развития 7

1.1.1. Стихийное программирование. 8

1.1.2. Структурное программирование. 10

1.1.3. Объектно-ориентированное программирование. 11

1.1.4. Компоненты и CASE-технология. 13

1.1.5. Платформа .NET. 16

Тема 1.2. Организация процесса проектирования программного обеспечения (ПО) 16

1.2.1. Проблемы разработки сложных программных систем. 16

1.2.2. Блочно-иерархический подход к проектированию ПО. 17

1.2.3. Жизненный цикл ПО. 19

1.2.4. Процессы жизненного цикла. 20

1.2.5. Модели жизненного цикла ПО. 22

24

1.2.6. Оценка качества процессов разработки ПО. 24

1.2.7. Технология RAD. 27

Тема 1.3. Технологичность программных продуктов 28

1.3.1. Понятие технологичности ПО. 28

1.3.2. Модульное программирование. 29

1.3.3. Нисходящая и восходящая разработка ПО. 34

1.3.4. Стиль оформления программы. 36

1.3.5. Эффективность и технологичность. 37

Тема 1.4. Определение требований к ПО 39

1.4.1. Классификация программных систем. 39

1.4.2. Эксплуатационные требования к ПО. 41

1.4.3. Исследование предметной области. 43

1.4.4. Разработка технического задания. 44

Тема 1.5. Начальный этап проектирования 46

1.5.1. Выбор архитектуры ПО. 46

1.5.2. Выбор типа пользовательского интерфейса. 47

1.5.3. Выбор подхода к разработке. 48

1.5.4. Выбор средств разработки. 48

1.5.5. Стандарты разработки. 50

Раздел 2. Использование декомпозиции и абстракции при структурном подходе к анализу и проектированию ПО 52

Тема 2.1. Анализ требований к ПО и декомпозиция системы при структурном подходе 52

2.1.1. Спецификация процедур и данных при структурном подходе. 52

2.1.2. Диаграммы переходов состояний. 53

2.1.3. Функциональные диаграммы. 55

2.1.4. Диаграммы потоков данных. 58

2.1.5. Абстрактные структуры данных. 60

2.1.6. Математические модели задач. 62

Тема 2.2. Методы проектирования структуры ПО 67

2.2.1. Структурная схема ПО. 67

2.2.2. Функциональная схема ПО. 68

2.2.3. Метод пошаговой детализации. 69

2.2.4. Проектирование ПО, основанное на декомпозиции данных. 71

2.2.5. Case-технологии на основе структурного подхода. 72

Тема 2.3. Проектирование структур данных 73

2.3.1. Векторная структура. 74

2.3.2. Списковые структуры. 74

2.3.3. Представление данных во внешней памяти. 75

Раздел 3. Использование декомпозиции и абстракции при объектно-ориентированном подходе к анализу и проектированию ПО 78

Тема 3.1. Анализ требований к ПО и декомпозиция системы при объектном подходе 78

3.1.1. Язык UML. 78

3.1.2. Диаграммы вариантов использования. 80

3.1.3. Диаграммы классов. 83

3.1.4. Диаграмма последовательностей. 85

3.1.5. Диаграмма деятельностей. 88

Тема 3.2. Проектирование ПО при объектном подходе 90

3.2.1. Типы классов объектов. 90

3.2.2. Отношения между объектами. 92

3.2.3. Интерфейсы. 94

3.2.4. Проектирование классов. 95

3.2.5. Компоновка программных компонентов. 96

Раздел 4. Разработка ПО 100

Тема 4.1. Проектирование интерфейса с пользователем 100

4.1.1. Типы пользовательских интерфейсов. 100

4.1.2. Пользовательская и программная модели интерфейса. 100

4.1.3. Разработка диалогов. 100

4.1.4. Основные компоненты графических пользовательских интерфейсов. 100

Тема 4.2. Реализация графических пользовательских интерфейсов. 100

4.2.1. Диалоги, управляемые пользователем. 100

4.2.2. Диалоги, управляемые системой. 100

4.2.3. Использование метафор. 100

4.2.4. Технология Drag and Drop. 100

4.2.5. Интеллектуальные элементы. 100

Тема 4.3. Структурное программирование в Visual C++. 100

4.3.1. Базовые типы данных. 100

4.3.2. Указатели и адресная арифметика. 100

4.3.3. Составные типы данных. 100

4.3.4. Выражения и операции. 100

4.3.5. Управляющие конструкции. 100

Тема 4.4. Разработка векторных структур данных в Visual C++. 100

4.4.1. Статические одномерные массивы. 101

4.4.2. Статические многомерные массивы. 101

4.4.3. Динамические массивы. 101

4.4.4. Массивы указателей. 101

Тема 4.5. Разработка списковых структур данных в Visual C++. 101

4.5.1. Стеки. 101

4.5.2. Очереди. 101

4.5.3. Списки. 101

4.5.4. Бинарные деревья. 101

Тема 4.6. Классы в Visual C++. 101

4.6.1. Объявление классов и экземпляров классов. 101

4.6.2. Инкапсуляция данных и методов. 101

4.6.3. Конструкторы классов. 101

4.6.4. Деструкторы классов. 101

Тема 4.7. Скрытие данных в классах Visual C++. 101

4.7.1. Разделы в описании класса. 101

4.7.2. Friend-конструкции. 101

4.7.3. Статические члены классов. 101

4.7.4. Использование описателя CONST в классах. 101

Тема 4.8. Наследование классов в Visual C++. 101

4.8.1. Вложенность классов. 101

4.8.2. Наследование данных и методов. 101

4.8.3. Типы наследования. 101

Тема 4.9. Полиморфизм в Visual C++. 101

4.9.1. Полиморфизм раннего связывания. 102

4.9.2. Полиморфизм позднего связывания и виртуальные функции. 102

4.9.3. Абстрактные методы и классы. 102

Тема 4.10. Операции ввода/вывода данных в Visual C++. 102

4.10.1. Функции консольного ввода-вывода. 102

4.10.2. Функции файлового ввода-вывода. 102

4.10.3. Использование библиотеки классов потокового ввода-вывода. 102

Тема 4.11. Методы повышения гибкости и надежности объектно-ориентированных программ в Visual C++. 102

4.11.1. Перегрузка операций. 102

4.11.2. Шаблоны функций. 102

4.11.3. Шаблоны классов. 102

4.11.4. Обработка исключений. 102

Тема 4.12. COM-технология. 102

4.12.1. Основные понятия. 102

4.12.2. Типы интерфейсов. 102

4.12.3. Типы COM-объектов. 102

4.12.4. Фабрика классов. 102

Тема 4.13. Построение COM-сервера. 102

4.13.1. Язык IDL. 102

4.13.2. Определение пользовательского интерфейса. 102

4.13.3. Реализация пользовательского интерфейса. 102

4.13.4. Создание тестового клиента. 102

Тема 4.14. Обзор платформы MS .NET. 102

4.14.1. Общая идея архитектуры .NET. 102

4.14.2. Достоинства и недостатки .NET. 103

4.14.3. Схема трансляции программ в .NET. 103

4.14.4. Язык MSIL. 103

4.14.5. Объектно-ориентированная модель .NET. 103

Раздел 5. Тестирование, отладка и документирование ПО. 103

Тема 5.1. Методы тестирования программ. 103

5.1.1. Виды контроля качества ПО. 103

5.1.2. Ручной контроль ПО. 103

5.1.3. Структурное тестирование. 103

5.1.4. Функциональное тестирование. 103

5.1.5. Тестирование модулей и комплексное тестирование. 103

5.1.6. Оценочное тестирование, оценка качества программного продукта. 103

Тема 5.2. Методы отладки ПО. 103

5.2.1. Классификация ошибок. 103

5.2.2. Методы отладки ПО. 103

5.2.3. Интегрированные средства отладки. 103

Тема 5.3. Документирование и оценка качества программных продуктов. 103

5.3.1. Виды программных документов. 103

5.3.2. Пояснительная записка. 103

5.3.3. Руководство пользователя. 103

5.3.4. Руководство системного программиста. 103

5.3.5. Правила оформления документации. 103