- •Технология программирования. Качество программных систем.
- •Аспекты качества оценки программных систем.
- •Стадии разработки программного обеспечения.
- •Внедрение:
- •Разработка спецификаций.
- •Разработка спецификаций методом структурного анализа.
- •Разработка спецификаций оперативно-графическим методом (hipo).
- •Документирование программного обеспечения.
- •Проектирование систем.
- •Определение основных компонентов системы.
- •Определение потоков данных.
- •Определение процессов.
- •Методы разработки данных.
- •Графические диаграммы (граф-диаграммы)
- •Диаграммы Варнье-Орра.
- •Функциональные схемы.
- •Проектирование программ.
- •Группы методов проектирования программ:
- •Метод нисходящего проектирования.
- •Пошаговое уточнение.
- •Модульная структура программ.
- •Монолитно-модульная структура.
- •Последовательно-модульная структура.
- •Модульно-иерархическая структура.
- •Модульно-хаотическая структура.
- •Технологический цикл конструирования программной системы (пс): три процесса.
- •Модель анализа:
- •Этап проектирования
- •Этап кодирования
- •Этап проектирования
- •Проверенная и объединённая пс
- •Особенности этапа проектирования.
- •Предварительное
- •Детальное
- •Интерфейсное
- •Структурирование систем.
- •Управление
- •Моделирование управления.
- •Модель централизованного управления.
- •Главная
- •Обработчик событий и
- •Прерывания
- •Обработчик
- •Процесс
- •Декомпозиция подсистем на модули. Модульность.
- •Характеристики модуля.
- •Последовательная связность.
- •Коммуникативная связность.
- •Модуль отчёт о средней зарплате
- •Процедурная связность.
- •Модуль вычисления средних значений
- •Модуль вычисления средних значений
- •Временная связность.
- •Модуль инициализировать систему
- •Логическая связность.
- •По совпадению.
- •Сцепление модулей.
- •Сложность программной системы.
- •Программная документация.
- •Средства проектирования прикладных программ.
- •Графическое построение схем алгоритмов и программ.
- •Разработка схем алгоритмов и программ с использованием конкретного языка программирования.
- •Использование специальных языков проектирования программ, псевдокодов.
- •Реализация программ.
- •Программирование на языках высокого уровня:
- •Программирование с защитой от ошибок.
- •Структурное программирование.
- •Программирование в стандартизированном стиле.
- •Основные принципы стандартизации стиля программирования:
- •Правила размещения фрагментов исходного текста.
- •Правила составления комментариев.
- •Основное правило составления пояснительных комментариев.
- •Правило выбора имён.
- •Правило обеспечения наглядности логической структуры.
- •Нисходящее программирование.
- •Методы проверки программ:
- •Тестирование программного обеспечения.
- •Тестирование элементов.
- •Тестирование интеграций.
- •Нисходящее тестирование интеграций.
- •Возможные шаги процесса нисходящей интеграции:
- •Восходящие тестирования интеграций.
- •Сравнение нисходящего и восходящего тестирования.
- •Тестирование правильности.
- •Системное тестирование.
- •Основные типы системных тестов.
- •Тестирование восстановления.
- •Тестирование безопасности.
- •Стрессовое тестирование.
- •Тестирование производительности.
- •Аксиомы тестирования.
- •Отладка.
- •Общая схема сопровождения по.
Модуль вычисления средних значений
Используем таблицу А, таблицу В
Сумма таблицы А:=0
Сумма таблицы В:=0
Для i:=0, то 300
Сумма А: = сумма А + сумма А(i)
Сумма В: = сумма В + сумма В(i)
Среднее таблицы А: = сумма А/300
Среднее таблицы В: = сумма В/300
Вернуть среднее таблиц А и В
Конец модуля.
На уровне реализации код этого модуля стал зависимым. Продукт сдали заказчику. Спустя время возникла задача сопровождения – модифицировать модуль под уменьшение таблицы В.
Временная связность.
Части модуля не связаны, но необходимы в один и тот же период работы системы.
Недостаток:
Сильная взаимная связь с другими модулями. Поэтому сильна чувствительность к внесению изменений.
Пример:
Модуль инициализировать систему
Перемотать магнитную ленту 1
Счетчик магнитной ленты 1:=0
Перемотать магнитную ленту 2
Счетчик магнитной ленты 2:=0
Таблица текущих записей :=_ _
Таблица количества записей :=0…0
Переключатель 1: = выкл
Переключатель 2: = вкл
Конец модуля.
Элементы этого модуля почти несвязны друг с другом, но все они более тесно взаимодействуют с другими модулями, что приводит к сложным внешним связям. Если программист соблазняется возможностью совместного использования кода, то модуль становится трудно использовать повторно.
Процедурно – связные модули и временные связные похожи, т.к. трудно объявить организацию такого модуля без перечисления внутренних деталей.
Различия:
Порядок выполнения действий более важен в процедурно – связных модулях. Кроме того, процедурно – связные модули имеют тенденцию к совместному использованию циклов и ветвлений, а модули временной связности чаще содержат линейный код.
Логическая связность.
Части модуля объединены по принципу функционального подобия. Например, модуль состоит из разных программ обработки ошибок. При каком использовании этого модуля клиент выбирает только одну из подпрограмм?
Недостаток:
сложность сопровождения
большая вероятность внесения ошибок при изменении сопряжения ради одной из функций.
Пример:
Модуль пересылка сообщения
Переслать по электронной почте
Переслать по факсу
Послать в телеконференцию
Переслать по FTP-протоколу
Конец модуля.
Здесь действия попадают в одну категорию, хотя имеют не только сходства, но и различия. К сожалению, эти соблазны программиста использовать общий код действия, приводят:
к уродливому внешнему виду модуля с разными параметрами, обеспечивающими несколько видов доступа
к запутанной внутренней структуре со множеством переходов.
Таким образом, модуль становится сложным как для понимания, так и для сопровождения.
По совпадению.
В модуле отсутствуют явно выраженные внутренние связи. Элементы данного модуля не имеют никаких отношений друг с другом.
Пример:
Модуль Разные функции (параметры)
Поздравить с Новым годом (кого-то)
Проверить исправность аппаратуры(…)
Заполнить анкету героя (…)
Измерить температуру (…)
Вывести собаку на прогулку (…)
Запастись продуктами (…)
Приобрести «Jaguar» (…)
Конец модуля.
Элементы действий не связаны ни потоком данных, ни потоком управления. Данный модуль имеет все недостатки логически связанных модулей, и даже усиливает их. Связность по совпадению встречается редко.
Причины возникновения:
бездумный перевод существующего монолитного кода в модули
необоснованные изменения модулей, плохой (обычно временной) связностью, приводящие к добавлению флажков, переключателей.