Технология разработки программных систем

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

Данное пособие предназначено для студентов направлений 230100 и 230200. В первой части рассматриваются общие принципы технологии программирования. Здесь даются базовые понятия, рассматривается полный “цикл жизни” программы, а также освещаются основные вопросы, касающиеся создания надежных программных систем. Вторая часть посвящена технологии программирования применительно к операционной системе Windows. Здесь детально рассматриваются все аспекты взаимодействия операционной системы и пользовательских приложений. Особое значение уделяется вопросам, связанным с оптимальным использованием ресурсов операционной системе Windows. Освоив материал этой части, вы сможете создать Windows приложение любой сложности. В третьей части излагается технология Windows программирования на базе MFC в среде Microsoft Visual C++.

Кафедра экономической математики, информатики и статистики

Библиографическая запись:

Боровской, И. Г. Технология разработки программных систем: Учебное пособие [Электронный ресурс] / И. Г. Боровской. — Томск: ТУСУР, 2012. — 260 с. — Режим доступа: https://edu.tusur.ru/publications/2436
Год издания: 2012
Количество страниц: 260
Скачиваний: 73
УДК:   681.3.06

Рекомендовано Сибирским региональным учебно-методическим центром высшего профессионального образования для межвузовского использования в качестве учебного пособия для студентов технических и экономических специальностей всех форм обучения.

Оглавление (содержание)

Введение

Часть 1. Общие сведения о технологии программирования

1. Задачи технологии программирования

1.1. Базовые определения

1.2. Невозможность доказательства отсутствия программных ошибок

1.3. Надежность программной системы

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

1.5. Этапы развития технологии программирования

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

2. Общие принципы разработки программных систем

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

2.2. Основные подходы при создании ПС

2.3. Жизненный цикл программной системы

2.4. Понятие качества программной системы

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

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

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

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

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

3. Архитектура программной системы

3.1. Понятие архитектуры программной системы

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

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

4. Тестирование и отладка программной системы

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

4.2. Принципы и виды отладки программной системы

4.3. Заповеди отладки программной системы

4.4. Автономная отладка программной системы

4.5. Комплексная отладка программной системы

Часть 2. Windows программирование на основе API

5. Основные характеристики Windows платформ

5.1. Краткая история Windows

5.2. Отличия и общие свойства Windows платформ

5.2.1. Общие свойства Windows платформ

5.2.2. Отличия Win32 платформ

5.2.3. Окна и сообщения

5.2.4. Приложения, потоки и окна

5.2.5. Классы окон

5.2.6. Венгерская нотация

5.2.7. Типы сообщений

5.2.8. Сообщения и многозадачность

5.2.9. Очереди сообщений

5.2.10. Процессы и потоки

5.2.11. Потоки и сообщения

5.2.12. Оконная функция – функция обратного вызова

5.2.13. Синхронные и асинхронные сообщения

5.2.14. Функции Windows

5.2.15. Другие API

6. Структура Windows приложений

6.1. Файлы заголовков

6.2. Глабальные переменные

6.3. Точка входа в приложение

6.4. Необходимые переменные

6.5. Регистрация класса окна

6.6. Создание главного окна

6.7. Отображение главного окна

6.8. Цикл обработки сообщений

6.9. Функция окна

7. Обработка сообщений в оконной функции

7.1. Создание окна WM_CREATE

7.2. Определение размера окна WM_SIZE

7.3. Отображение содержимого окна WM_PAINT

7.3.1. Случаи генерации сообщения WM_PAINT

7.3.2. Особенность сообщения WM_PAINT

7.3.3. Правила обработки WM_PAINT

7.3.4. Отрисовка вне WM_PAINT

7.3.5. Определение возможностей контекста устройства

7.3.6. Системные метрики

7.4. Определение расположения окна WM_MOVE

7.5. Использование оконных полос прокрутки

7.5.1. Диапазон и положение полос прокрутки

7.5.2. Сообщения полос прокрутки

7.6. Клавиатурный ввод

7.6.1. Фокус ввода и активное окно

7.6.2. Генерация клавиатурных сообщений

7.6.3. Аппаратные сообщения

7.6.3.1. Системные аппаратные сообщения

7.6.3.2. Несистемные аппаратные сообщения

7.6.3.3. Битовые поля параметра lParam

7.6.3.4. Виртуальные коды клавиш

7.6.4. Символьные сообщения

7.6.5. Обработка сообщения WM_CHAR

7.6.6. Определение состояния управляющих клавиш

7.6.7. Наборы символов

7.7. Системный таймер

7.7.1. Использование таймера. Первый способ

7.7.2. Использование таймера. Второй способ

7.8. Удаление окна, сообщение WM_DESTROY

8. Ресурсы приложения и их использование

8.1. Меню приложения

8.1.1. Виды меню

8.1.2. Возможные состояния пунктов меню

8.1.3. Сообщения от пунктов меню

8.1.4. Создание главного меню приложения

8.1.5. Функции для работы с меню

8.2. Стандартные элементы управления

8.2.1. Создание стандартных элементов управления

8.2.2. Разрушение элементов управления

8.2.3. Функции для работы с элементами управления

8.2.4. Сообщения дочерних окон

8.2.5. Сообщения родительского окна дочерним окнам

8.2.6. Расширенное управление дочерними окнами

8.2.7. Оконные процедуры элементов управления

8.2.8. Элемент управления кнопка

8.2.8.1. Стили кнопок

8.2.8.2. Сообщения от кнопок, получаемые родительским окном

8.2.8.3. Сообщения от родительского окна к кнопке

8.2.8.4. Кнопки-переключатели

8.2.8.5. Сообщение от переключателей

8.2.8.6. Сообщение от родительского окна к переключателям

8.2.9. Структура DRAWITEMSTRUCT

8.2.10. Стандартный элемент управления окно ввода

8.2.10.1. Стили окна редактирования

8.2.10.2. Сообщения от редактора к родительскому окну

8.2.10.3. Сообщения от родительского окна к редактору

8.2.11. Стандартный элемент управления статический текст

8.2.11.1. Стили элемент управления STATIC

8.2.11.2. Сообщения от статического элемента управления

8.2.11.3. Сообщения от родительского окна к STATIC

8.2.12. Стандартный элемент управления список

8.2.12.1. Стили элемента управления список

8.2.12.2. Сообщения от списка к родительскому окну

8.2.12.3. Сообщения от родительского окна к списку

8.2.13. Стандартный элемент управления список с вводом

8.2.13.1. Стили элемента управления combobox

8.2.13.2. Сообщения от combobox к родительскому окну

8.2.13.3. Сообщения от родительского окна к combobox

9. Создание и использование диалоговых окон

9.1. Этапы создания диалога

9.1.1. Создание шаблона диалога

9.1.2. Функция диалога

9.1.2.1. Сходства между диалоговой функцией и оконной процедурой

9.1.2.2. Различия между диалоговой функцией и оконной процедурой

9.2. Типы диалоговых панелей

9.3. Создание модального диалога

9.4. Закрытие модального диалога

9.5. Окна сообщений

9.6. Немодальные диалоги

9.7. Диалоговые окна общего пользования

10. Управление файлами

10.1. Доступ к файловой системе

10.2. Потоковый ввод/вывод

10.3. Функции ядра Windows для работы с файлами

10.4. Специализированные функции для работы с файлами

11. Печать документов

11.1. Последовательность печати документа

11.2. Контекст устройства принтера

11.3. Диалог отмены печати

11.4. Запуск процесса печати

11.5. Печать страницы документа

11.6. Завершение печати документа

12. Процессы и потоки

12.1. Диспетчеризация потоков

12.2. Проблемы многопоточной технологии

12.3. Создание рабочего потока

12.4. Организация взаимодействия потоков

12.4.1. Рабочий поток – процесс

12.4.2. Процесс – рабочий поток

12.5. Общая схема взаимодействия потоков

13. Приложение "Тестер файлов"

13.1. Функция WinMain()

13.2. Функция главного окна

13.3. Вспомогательные функции

13.4. Функция рабочего потока

Часть 3. WINDOWS ПРОГРАММИРОВАНИЕ НА ОСНОВЕ MFC

14. Введение в VISUAL C++

14.1. Интерфейс вызовов функций в Windows

14.2. Библиотеки динамической загрузки

14.3. Преимущества использования MFC

14.4. Основные компоненты MFC приложения

14.5. Архитектура MFC приложения

14.6. Наследование – главный принцип построения MFC приложений

14.7. Каркас приложения

14.8. Проект приложения

14.9. Типы мастеров проектов

14.10. Имена, используемые в MFC

15. Краткий обзор классов MFC

15.1. CObject – самый базовый класс библиотеки MFC

15.2. CCmdTarget – основа структуры приложения MFC

15.3. Классы CWinThread и CWinApp – подзадачи приложения

15.4. CDocument – документ приложения

15.5. CDocTemplate, CSingleDocTemplate и CMultiDocTemplate – шаблоны документов

15.6. CWnd – базовый класс окон

15.7. CFrameWnd – окно обрамляющей рамки

15.8. CView – окна просмотра

15.9. CDialog – диалоговые панели

15.10. Семейство классов - элементов управления

15.11. Управляющие панели

15.12. CMenu – класс меню приложений

15.13. Массивы, списки, словари

15.14. Файловая система

15.15. Контекст отображения

15.16. Объекты графического интерфейса

15.17. Исключения

15.18. Классы, не имеющие базового класса

16. Структура простейших MFC приложений

16.1. Приложение без главного окна

16.2. Приложение с главным окном

16.3. Обработка сообщений

16.3.1. Оконные сообщения

16.3.2. Сообщения от элементов управления

16.3.3. Командные сообщения

16.3.4. Таблица сообщений

16.3.5. Обработчики сообщений

17. Диалоговые панели в MFC приложениях

17.1. Этапы создания диалоговых панелей

17.2. Модальная диалоговая панель

17.2.1. Шаблон диалога

17.2.2. Класс диалоговой панели и его реализация

17.2.3. Отображение модальной диалоговой панели

17.3. Немодальная диалоговая панель

18. Поддержка MFC новых элементов управления

18.1. Элемент CRichEditCtrl

18.1.1. Создание элемента RichEdit

18.1.2. Загрузка текста в RichEdit

18.1.3. Форматирование текста

18.1.4. Форматирование параграфов

18.1.5. Сохранение в файле текста

18.2. Элемент управления CListCtrl

18.2.1. Предварительные замечания

18.2.2. Создание элемента ListCtrl

18.2.3. Инициализация списка

18.2.4. Выборка из списка

18.2.5. Пересортировка списка

18.3. Элемент CTreeCtrl

18.3.1. Предварительные замечания

18.3.2. Создание элемента

18.3.3. Инициализация элемента

18.3.4. Вставка объектов

18.3.5. Позиционирование

18.3.6. Динамическое изменение образа объекта

18.3.7. Динамический отклик на пользовательский выбор

18.3.8. Отслеживание нажатий кнопок мыши

18.3.9. Редактирование меток объектов

18.4. Элемент CSpinButtonCtrl

19. Архитектура DOCUMENT-VIEW

19.1. Пользовательский интерфейс

19.2. Документ и его представления

19.3. Создание документов и его отображений

19.4. Взаимодействие документа и его видов

19.5. SDI-приложение

19.5.1. Ресурсы приложения

19.5.2. Динамическая замена одного объекта вид другим

19.5.3. Расщепление главного окна приложения

19.6. MDI-приложение

19.6.1. Ресурсы приложения

19.6.2. Классы приложения

19.7. Дополнительные компоненты MFC приложений

19.7.1. Панель управления

19.7.2. Дополнительные возможности панели управления

19.7.3. Панель состояния

19.7.4. Индикаторы панели состояния

19.7.5. Дополнительные возможности панели состояния

20. DLL и MFC

20.1. Библиотеки динамической компоновки

20.2. Библиотеки импортирования

20.3. Согласование интерфейсов

20.4. Загрузка неявно подключаемой DLL

20.5. Динамическая загрузка и выгрузка DLL

20.5.1. Загрузка обычной DLL

20.5.2. Выгрузка DLL

20.5.3. Библиотеки ресурсов

20.6. Создание DLL

20.6.1. Загрузка MFC расширений динамических библиотек

20.6.2. Функция DllMain

20.6.3. Экспортирование функций из DLL

20.6.4. Файл определения модуля

20.6.5. Экспортирование классов

20.6.6. Статическая память DLL

20.7. Использование MFC в DLL

20.7.1. Обычные MFC DLL

20.7.2. Управление информацией о состоянии MFC

20.7.3. Динамические расширения MFC

20.7.4. Инициализация динамических расширений

20.7.5. Загрузка динамических расширений MFC

20.7.6. Экспортирование классов из динамических расширений

Вместо заключения – API, MFC, что же дальше?

Литература к первой части

Литература ко второй части

Литература к третьей части