В. А Камаев, В.В. Костерин

 

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

 

Учебник для студентов высших учебных заведений, обучающихся по направлению подготовки специалистов «Информатика и вычислительная техника»

 

 

Москва, 2005

 

 

 

ОГЛАВЛЕНИЕ

 

 

Г л а в а 1. ОСНОВЫ ТЕОРИИ ПРОЕКТИРОВАНИЯ

 

1.1. Общие положения

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

1.3. Системный подход и программирование

1.4. Общесистемные принципы создания программ

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

1.6. Стандарты и программирование

1.7. Описание цикла жизни программного обеспечения

1.8. Стадии и этапы разработки программ

1.9. Типовые ошибки обучаемых при составлении технического

1.10. Моделирование и программирование. Понятие спецификаций

1.11. Проблема типовых элементов в программировании

 

Г л а в а 2. ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК

 

2.1 Выбор оптимального варианта проектного решения

2.2 Пример выбора оптимального варианта программного решения 

2.3 Методы синтеза вариантов реализаций программ

2.4 Анализ требований к системе (системный анализ) и формулировка целей

2.5 Проектная процедура постановки задачи разработки программы

2.6 Психофизиологические особенности взаимодействия человека и ЭВМ

2.7 Классификация типов диалога программ

 

Г л а в а 3. ПРОЕКТНАЯ ПРОЦЕДУРА РАЗРАБОТКИ УНКЦИОНАЛЬНЫХ ОПИСАНИЙ

 

3.1. Общие сведения о проектной процедуре

3.2. История возникновения проектной процедуры

3.3. Общее описание проектной процедуры

3.4. Рекомендации начинающим

3.5. Пример разработки описания процесса «Кипячение воды в чайнике

3.6. Пример описания программы «Редактор текстов»

3.7. Теория кодирования текстов модулей (методов)

3.7.1. Последовательность выполнения проектной процедуры при кодировании текстов модулей (методов)

3.7.2. Описание внешних и внутренних данных при кодировании текстов модулей (методов)

3.7.3. Кодирование типовых структур на языках программирования 

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

3.9. Пример выполнения учебной работы «Разработка алгоритма умножения»

 

Г л а в а 4. АРХИТЕКТУРА ПРОГРАММНЫХ СИСТЕМ

 

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

4.2. Системы из отдельных программ

4.3. Системы из отдельных резидентных программ

4.4. Системы из программ, обменивающихся данными через порты

4.5. Подход к проектированию архитектуры системы на основе абстрактных машин Дейкстры

4.6. СОМ — технология разработки развивающихся и рассредоточенных комплексов программ

 

Г л а в а 5. ТЕХНОЛОГИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

 

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

5.2. Модуль и основные принципы структурного подхода

         5.2.1. Понятие модуля

         5.2.2. Понятие заглушки модуля

         5.2.3. Средства изменения топологии иерархии программы

         5.2.4. Критерии оценки качества схемы иерархии

         5.2.5. Рекомендации по организации процесса разработки схемы иерархии

5.3. Ретроспективное проектирование демонстрационной программы Mcalc фирмы «Borland Inc»

 

Г л а в а 6. ТЕХНОЛОГИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

 

6.1. История создания объектно-ориентированного программирования

6.2. Введение в объектно-ориентированный подход к разработке программ

6.3. Основные понятия объектно-ориентированной технологии

6.4. Основные понятия, используемые в объектно-ориентированных языках

6.5. Этапы и модели объектно-ориентированной технологии

6 6. Какими бывают объекты по устройству

6.7. Проектная процедура объектно-ориентированного Проектирования по Б. Страуструпу

         6.7.1. Укрупненное изложение проектной процедуры Б. Страуструпа

         6.7.2. Шаг 1. Выделение понятий и установление основных связей между ними

         6.7.3. Шаг 2. Уточнение классов с определением набора операций (методов) для каждого

         6.7.4. Шаг 3. Уточнение классов с точным определением их зависимостей от других классов

         6.7.5. Шаг 4. Задание интерфейсов классов

         6.7.6. Перестройка иерархии классов

         6.7.7. Свод правил

         6.7.8. Пример простейшего проекта

6.8. Технология проектирования на основе обязанностей

         6.8.1. RDD-технология проектирования на основе обязанностей

         6.8.2. Начинаем с анализа функционирования. Учебный пример объектно-ориентированного проекта средней сложности

         6.8.3. Динамическая модель системы

         6.8.4. Уточнение классов с точным определением их зависимостей

от других классов. Продолжение учебного примера

         6.8.5. Совместное рассмотрение трех моделей

         6.8.6. Пример ретроспективной разработки иерархии классов библиотеки визуальных компонент Delphi и С++ Builder

6.9. Альтернативный проект графического интерфейса

6.10. Проект АСУ предприятия

6.11. Обзор особенностей проектов прикладных систем

6.12. Гибридные технологии проектирования

         6.12.1. Игнорирование классов

         6.12.2. Игнорирование наследования

         6.12.3. Игнорирование статического контроля типов

         6.12.4. Гибридный проект

 

Г л а в а 7. ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ

 

7.1. Общее понятие визуального программирования.

7.2. Технология визуального программирования

 

Г л а в а 8. САSЕ-СРЕДСТВА И ВИЗУАЛЬНОЕ МОДЕЛИРОВАНИЕ

 

8.1. Предпосылки появления CASE-средств

8.2. Обзор CASE-систем

8.3. Визуальное моделирование в Rational Rose

8.4. Диаграммы UML

         8.4.1. Типы визуальных диаграмм UML

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

         8.4.3. Диаграммы последовательности

         8.4.4. Кооперативные диаграммы

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

         8.4.6. Диаграммы состояний

         8.4.7. Диаграммы компонент

         8.4.8. Диаграммы размещения

8.5. Визуальное моделирование и процесс разработки программного обеспечения

         8.5.1. Достоинства и недостатки типов процесса разработки

         8.5.2. Начальная фаза

         8.5.3. Использование Rose в начальной фазе

8.6. Работа над проектом в среде Rational Rose

 

Г л а в а 9. ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

9.1. Основные сведения

9.2. Свойства программного обеспечения

9.3. Связь процессов тестирования с процессом проектирования

9.4. Подходы к проектированию тестов

9.5. Проектирование тестов больших программ

9.6. Критерии выбора наилучшей стратегии реализации

9.7. Способы и виды тестирования подпрограмм. Проектирование тестов

9.8. Проектирование комплексного теста

9.9. Средства автоматизации тестирования

 

Г л а в а 10. МЕНЕДЖМЕНТ ПРОГРАММНЫХ РАЗРАБОТОК

 

10.1. Управление разработкой программных систем

10.2. Структура управления разработкой программных средств

10.3. Подбор команды

10.4. Методология управления проектом

10.5. Составляющие методологии разработки

10.6. Анализ пожеланий и требований заказчика

10.7. Анализ требований к проекту

10.8. Требования пользователя

10.9. Техническое проектирование 

10.10. Реализация

10.11. Системное тестирование

10.12. Приемочный тест

10.13. Послереализационный обзор

10.14. Сопровождение программ

 

ПРИЛОЖЕНИЕ 1. Стадии и этапы разработки программ по ГОСТ 19.102 - 77

ПРИЛОЖЕНИЕ 2. Пример выполнения учебного технического задания

ПРИЛОЖЕНИЕ 3. Фонд эвристических приемов проектирования программ

ПРИЛОЖЕНИЕ 4. Элементы языка Object Pascal

ПРИЛОЖЕНИЕ 5. Основные термины и определения