- •Кокорева е.В.
- •Технология программирования Москва 2007
- •Содержание
- •Лабораторная работа № 1 Этапы разработки программного обеспечения при структурном подходе к программированию. Стадия «Техническое задание»
- •Разработка технического задания
- •Порядок разработки технического задания
- •Общие положения
- •Содержание разделов
- •Лабораторная работа № 2 Структурный подход к программированию. Стадия «Эскизный проект»
- •Анализ требований и определение спецификаций при структурном подходе
- •Спецификации процессов
- •Словарь терминов
- •Диаграммы переходов состояний (sdt)
- •Функциональные диаграммы
- •Диаграммы потоков данных (dfd)
- •Диаграммы сущность-связь
- •Лабораторная работа № 3 Структурный подход к программированию. Стадия «Технический проект»
- •Проектирование программного обеспечения при структурном подходе
- •Структурная схема разрабатываемого программного обеспечения.
- •Функциональная схема
- •Метод пошаговой детализации при составлении алгоритмов
- •Структурные карты Константайна
- •Структурные карты Джексона
- •Лабораторная работа № 4 Этапы разработки программного обеспечения. Стадия «Реализация»
- •Составление программной документации
- •1. Виды программных документов
- •Лабораторная работа № 5 Проектирование программной системы при объектном подходе к программированию
- •Основы uml - проектирования
- •1. Шаг первый
- •2. Шаг второй
- •3. Шаг третий
- •Шаг четвертый
- •Лабораторная работа № 6 Тестирование программ методами «белого ящика»
- •Тестирование программного обеспечения
- •1. Виды тестов
- •2. Стратегия «белого ящика»
- •Лабораторная работа № 7 Тестирование программ методами «черного ящика»
- •Тестирование по принципу «черного ящика»
- •Эквивалентное разбиение Основу метода составляют два положения:
- •1.1. Выделение классов эквивалентности
- •1.2. Построение тестов
- •Анализ граничных значений
- •Анализ причинно-следственных связей
- •Предположение об ошибке
- •Пример применения методов тестирования «черным ящиком»
- •6. Общая стратегия тестирования
- •Лабораторная работа № 8 Создание сетевых приложений на Delphi с использованием Windows Sockets api
- •Сетевые приложения
- •Лабораторная работа № 9 Использование технологий ole, com и ActiveX
- •2. Понятие сом
- •3. Как работает сом
- •4. Обзор технологий ActiveX и ole
- •5. Составные документы
- •6. Управляющие элементы ActiveX
- •7. Распределенная сом
- •Приложение 1 Варианты заданий Лабораторные работы №№ 1-4 выполняются для одного и того же варианта.
- •Приложение 2 Пример технического задания на программный продукт
- •2. Основание для разработки
- •3. Назначение разработки
- •4. Технические требования
- •Литература
Метод пошаговой детализации при составлении алгоритмов
Метод пошаговой детализации реализует нисходящий подход к программированию и предполагает пошаговую разработку алгоритма. Можно выделить следующие этапы:
Создается описание программы в целом. Определяются основные логические шаги, требуемые для решения задачи, даже если пока неизвестно, как их выполнить. Эти логические шаги могут отражать различные физические способы решения или могут быть удобными групповыми именами для тех действий, выполнение которых представляется довольно смутно. Последовательности шагов, требуемых для решения задачи, записываются на обычном языке или на псевдокоде.
Рис. 3. Пример функциональной схемы программного комплекса
В общих терминах детализируется описание шагов, введенных на этапе 1. В детализированное описание может входить обозначение циклических структур, в то время как действия внутри циклов могут по-прежнему оставаться неясными. Таким образом, выполняются только общие эскизы сложных действий.
На этом и последующих уровнях в виде последовательных итераций производятся те же действия, что описаны на этапе 2. При каждой новой итерации уточняются детали, оставшиеся неясными после предыдущих итераций, и создаются более определенные описания. По мере выполнения итераций неопределенные детали становятся все проще и проще, так что на каком-то этапе могут быть полностью описаны.
Разработка завершена: в модульном виде получено описание требуемой программы. Перевод этого описания в программу на конкретном языке программирования должен быть достаточно простой задачей.
Пример 1. Пусть требуется определить наибольшее значение в некотором наборе данных и вывести эти данные, поделенные на наибольшее значение. Скажем, если данные представляют собой последовательность чисел:
5.0, -3.24, 10.0, -1.25, 8.33
то вывод должен выглядеть следующим образом:
0.5, -0.324, 1, -0.125, 0.833
Уровень 1:
Программа
ввести данные
найти максимум введенных данных
вывести результаты
Конец.
Детализация 1.1. Ввод данных можно детализировать на псевдокоде следующим образом:
Ввести данные:
определить количество чисел
Цикл-пока не все элементы введены
прочитать и запомнить значение элемента
Все-цикл
Детализация 1.2. Отыскание максимума можно детализировать следующим образом:
Найти максимум:
выбрать в качестве максимума первый элемент данных
сравнить все значения с максимумом, заменяя текущий максимум
на очередное значение, если оно не превысило его
Детализация 1.3. Вывод результатов можно детализировать следующим образом:
Цикл-пока не все элементы выведены
вывести значение элемента
Все-цикл
Уровень 2. Он включает в себя три детализованные выше части, из которых только детализация 1.2 требует дополнительного внимания. Ее можно детализировать на псевдокоде следующим образом:
Найти максимум:
выбрать в качестве максимума первый элемент данных
Цикл-пока не все элементы проверены
сравнить все значения с максимумом
Если текущее значение больше максимума
Максимум = текущее значение
Конец-если
Конец-цикл
Задача в приведенном примере проста и не требует разбиения на модули.
При решении реальной задачи может потребоваться написать на псевдокоде много уровней, чтобы довести все модули до такого состояния, при котором они окажутся готовыми для программирования.