- •Технология программирования. Качество программных систем.
- •Аспекты качества оценки программных систем.
- •Стадии разработки программного обеспечения.
- •Внедрение:
- •Разработка спецификаций.
- •Разработка спецификаций методом структурного анализа.
- •Разработка спецификаций оперативно-графическим методом (hipo).
- •Документирование программного обеспечения.
- •Проектирование систем.
- •Определение основных компонентов системы.
- •Определение потоков данных.
- •Определение процессов.
- •Методы разработки данных.
- •Графические диаграммы (граф-диаграммы)
- •Диаграммы Варнье-Орра.
- •Функциональные схемы.
- •Проектирование программ.
- •Группы методов проектирования программ:
- •Метод нисходящего проектирования.
- •Пошаговое уточнение.
- •Модульная структура программ.
- •Монолитно-модульная структура.
- •Последовательно-модульная структура.
- •Модульно-иерархическая структура.
- •Модульно-хаотическая структура.
- •Технологический цикл конструирования программной системы (пс): три процесса.
- •Модель анализа:
- •Этап проектирования
- •Этап кодирования
- •Этап проектирования
- •Проверенная и объединённая пс
- •Особенности этапа проектирования.
- •Предварительное
- •Детальное
- •Интерфейсное
- •Структурирование систем.
- •Управление
- •Моделирование управления.
- •Модель централизованного управления.
- •Главная
- •Обработчик событий и
- •Прерывания
- •Обработчик
- •Процесс
- •Декомпозиция подсистем на модули. Модульность.
- •Характеристики модуля.
- •Последовательная связность.
- •Коммуникативная связность.
- •Модуль отчёт о средней зарплате
- •Процедурная связность.
- •Модуль вычисления средних значений
- •Модуль вычисления средних значений
- •Временная связность.
- •Модуль инициализировать систему
- •Логическая связность.
- •По совпадению.
- •Сцепление модулей.
- •Сложность программной системы.
- •Программная документация.
- •Средства проектирования прикладных программ.
- •Графическое построение схем алгоритмов и программ.
- •Разработка схем алгоритмов и программ с использованием конкретного языка программирования.
- •Использование специальных языков проектирования программ, псевдокодов.
- •Реализация программ.
- •Программирование на языках высокого уровня:
- •Программирование с защитой от ошибок.
- •Структурное программирование.
- •Программирование в стандартизированном стиле.
- •Основные принципы стандартизации стиля программирования:
- •Правила размещения фрагментов исходного текста.
- •Правила составления комментариев.
- •Основное правило составления пояснительных комментариев.
- •Правило выбора имён.
- •Правило обеспечения наглядности логической структуры.
- •Нисходящее программирование.
- •Методы проверки программ:
- •Тестирование программного обеспечения.
- •Тестирование элементов.
- •Тестирование интеграций.
- •Нисходящее тестирование интеграций.
- •Возможные шаги процесса нисходящей интеграции:
- •Восходящие тестирования интеграций.
- •Сравнение нисходящего и восходящего тестирования.
- •Тестирование правильности.
- •Системное тестирование.
- •Основные типы системных тестов.
- •Тестирование восстановления.
- •Тестирование безопасности.
- •Стрессовое тестирование.
- •Тестирование производительности.
- •Аксиомы тестирования.
- •Отладка.
- •Общая схема сопровождения по.
объектомУправление
СУБД
ОС
Моделирование управления.
Известно два типа моделей управления:
Модель централизованного управления.
Модель событийного управления.
В этой модели одна подсистема выделяется как системный контроллер. Ёе обязанности – руководить работой других систем.
Две разновидности:
Модель вызов – возврат.
программаГлавная
Подпрограмма 2
Подпрограмма 1
Подпрограмма 2.1
Подпрограмма 1.2
Подпрограмма 1.1
Подпрограмма 1.1.1
Модель менеджера. Она используется в системах параллельной обработки.
Процессы- -датчики
Процессы- -исполнители
Вычислительные
процессы
Процессы- -обработчики
отказов
Системный контроллер
Пользовательский интерфейс
Здесь системой управляют внешние события. Две разновидности:
Широковещательная модель. Каждая подсистема уведомляет обработчика о своём интересе к конкретным событиям. Когда событие происходит, обработчик пересылает его подсистеме, которая может обработать это событие. Функции управления в обработчик не встраиваются.
Подсистема 2
Подсистема 1
Подсистема N
сообщенийОбработчик событий и
Модель управляемая прерываниями. Здесь все прерывания разбиты
на группы – Типы прерываний, которые образуют вектор прерываний.
Для каждого типа прерывания есть свой обработчик.Каждый обработ-
чик реагирует на свой тип прерывания и запускает свой процесс.
Прерывания
Вектор В
В 1 1Обработчик
Процесс
Декомпозиция подсистем на модули. Модульность.
Известны два типа моделей модульной декомпозиции:
Модель типа данных(Разбиение по функциям);
Модель объектов.(Эта модель основана на слабо сцеплённых единицах имеющих собственные наборы данных состояния и наборы операций).
Выбор типа декомпозиции зависит от сложности разбиваемой подсисте-мы.
Модуль – фрагмент программного текста являющийся строительным блоком для физической структуры системы. Модуль состоит из интер-фейсной части и части реализации. Модульность – свойство системы, ко-
торая может подвергаться декомпозиции на ряд внутренне связанных и слабо зависящих друг от друга модулей.
X – Проблема
C(X) – Сложность решения проблемы X
T(X) – Затраты на решение X
Пусть p1,p2 – Проблемы
C(p1) > C(p2) => T(p1) > T(p2)
C(p1+p2) > C(p1) + C(p2)
T(p1+p2) > T(p1) + T(p2)
Таким образом сложную проблему легче решить разделив её на управляемые части. Это аргумент в пользу модульности. В данном случае не учитываются затраты на межмодульный интерфейс.
Стоимость
Стоимость
Общая стоимость интерфейса
Стоимость
одного модуля
Количество
Область min стоимости модулей
Нет корректного критерия для гарантированного предсказания точки оптимума. Оптимальный модуль должен удовлетворять двум критериям:
Снаружи он проще чем внутри;
Его проще использовать чем построить.
Информационная закрытость.
Принцип информационной закрытости. Содержание модулей должно быть скрыто друг от друга.
Информационная закрытость означает все модули независимы, об-мениваются только информацией необходимой для работы;
Доступ к операциям и структурам данных модуля ограничен.
Обеспечивается возможность разработки модулей различными независимы-ми коллективами. Обеспечивается лёгкая модификация системы.