- •Технология программирования. Качество программных систем.
- •Аспекты качества оценки программных систем.
- •Стадии разработки программного обеспечения.
- •Внедрение:
- •Разработка спецификаций.
- •Разработка спецификаций методом структурного анализа.
- •Разработка спецификаций оперативно-графическим методом (hipo).
- •Документирование программного обеспечения.
- •Проектирование систем.
- •Определение основных компонентов системы.
- •Определение потоков данных.
- •Определение процессов.
- •Методы разработки данных.
- •Графические диаграммы (граф-диаграммы)
- •Диаграммы Варнье-Орра.
- •Функциональные схемы.
- •Проектирование программ.
- •Группы методов проектирования программ:
- •Метод нисходящего проектирования.
- •Пошаговое уточнение.
- •Модульная структура программ.
- •Монолитно-модульная структура.
- •Последовательно-модульная структура.
- •Модульно-иерархическая структура.
- •Модульно-хаотическая структура.
- •Технологический цикл конструирования программной системы (пс): три процесса.
- •Модель анализа:
- •Этап проектирования
- •Этап кодирования
- •Этап проектирования
- •Проверенная и объединённая пс
- •Особенности этапа проектирования.
- •Предварительное
- •Детальное
- •Интерфейсное
- •Структурирование систем.
- •Управление
- •Моделирование управления.
- •Модель централизованного управления.
- •Главная
- •Обработчик событий и
- •Прерывания
- •Обработчик
- •Процесс
- •Декомпозиция подсистем на модули. Модульность.
- •Характеристики модуля.
- •Последовательная связность.
- •Коммуникативная связность.
- •Модуль отчёт о средней зарплате
- •Процедурная связность.
- •Модуль вычисления средних значений
- •Модуль вычисления средних значений
- •Временная связность.
- •Модуль инициализировать систему
- •Логическая связность.
- •По совпадению.
- •Сцепление модулей.
- •Сложность программной системы.
- •Программная документация.
- •Средства проектирования прикладных программ.
- •Графическое построение схем алгоритмов и программ.
- •Разработка схем алгоритмов и программ с использованием конкретного языка программирования.
- •Использование специальных языков проектирования программ, псевдокодов.
- •Реализация программ.
- •Программирование на языках высокого уровня:
- •Программирование с защитой от ошибок.
- •Структурное программирование.
- •Программирование в стандартизированном стиле.
- •Основные принципы стандартизации стиля программирования:
- •Правила размещения фрагментов исходного текста.
- •Правила составления комментариев.
- •Основное правило составления пояснительных комментариев.
- •Правило выбора имён.
- •Правило обеспечения наглядности логической структуры.
- •Нисходящее программирование.
- •Методы проверки программ:
- •Тестирование программного обеспечения.
- •Тестирование элементов.
- •Тестирование интеграций.
- •Нисходящее тестирование интеграций.
- •Возможные шаги процесса нисходящей интеграции:
- •Восходящие тестирования интеграций.
- •Сравнение нисходящего и восходящего тестирования.
- •Тестирование правильности.
- •Системное тестирование.
- •Основные типы системных тестов.
- •Тестирование восстановления.
- •Тестирование безопасности.
- •Стрессовое тестирование.
- •Тестирование производительности.
- •Аксиомы тестирования.
- •Отладка.
- •Общая схема сопровождения по.
Правила составления комментариев.
Существует 3 вида комментариев:
вводные
оглавления
пояснительные
Вводные помогают понять назначение, интерфейсы и ограничения, накладываемые на программу, т.е. они представляют собой внешнюю спецификацию, встроенную в исходный текст программы. Здесь содержатся сведения:
имя модуля;
его назначение;
сведения об используемых математических методов;
описание входных и выходных данных;
перечень используемых подпрограмм;
описание внешних эффектов;
ограничения и допущения;
сведения об авторах;
дата разработки;
описание внесённых в ходе сопровождения изменений.
Комментарии оглавления.
Они дают представление об организации исходного текста большой программы, они включаются в головной модуль программы.
Содержат:
перечни модулей;
краткое описание назначения и указания подчинённости модулей.
Если модули обмениваются информацией через общие блоки данных, то в комментарии включаются сведения о доступности этих блоков данных из различных модулей.
Пояснительные комментарии.
Они необходимы для пояснения тех частей программы, которые сложны для понимания при чтении только одних операторов. Каждый функционально законченный фрагмент и все точки ветвления логики и использование переменных должны быть прокомментированы.
Основное правило составления пояснительных комментариев.
Необходимо не перефразировать операторы языка программирования, а давать дополнительные сведения о цели и смысле выполняемых действий.
Пример:
E=sqrt(u)
Пояснительный комментарий: вычисляется среднее квадратическое отклонение.
Комментарии не должны затруднять чтение исходного текста, их следует выделять специальными символами и располагать с некоторым сдвигом вправо по отношению к операторам программы.
Правило выбора имён.
Имена должны обладать мневмотичностью, т.е. отражать сущность описываемых объектов. В связи с ограничениями на длину переменных при выборе имён сокращению подлежат не более 3-х первых слов. Абравиатура всегда включает начальные буквы слов. Согласные всегда важнее гласных. Начало слова всегда важнее его конца. Абравиатура включает 6–12 букв.
Правило обеспечения наглядности логической структуры.
Используются дополнительные пробелы для выделения составных частей операторов.
Нельзя располагать на одной строке программы. Это облегчает поиск и удаление ошибок, модификацию программы, чтение текста.
Всегда надо использовать ( )-ки для пояснения структуры записываемых выражений.
a*b/c*d*e/f
(a*b*d*e)/(c*f)
Надо использовать отступы для выявления структуры составных и вложенных операторов.
Нисходящее программирование.
Предполагается поэтапная разработка программы начиная с модулей верхнего и кончая модулями нижних уровней иерархии. Исходные тексты верхних модулей появляются при неполной проработке структуры программы на нижних уровнях иерархии. Последовательность разработки: см. пример-рисунок
A-B-C-D-B1-B2-C1-D1-D2-D3
Преимущества нисходящего программирования:
На ранних этапах проектирования могут быть получены исходные тексты модулей верхних уровней. При этом точность и полнота представления программы на реальном языке программирования значительно выше, чем при использовании псевдокода или схем алгоритма.
В процессе проектирования вскрываются противоречия и трудности, которые могли остаться незамеченными долгое время.
Нисходящее программирование может быть совмещено с выполнением отладки программы нисходящим методом.