- •Технология программирования. Качество программных систем.
- •Аспекты качества оценки программных систем.
- •Стадии разработки программного обеспечения.
- •Внедрение:
- •Разработка спецификаций.
- •Разработка спецификаций методом структурного анализа.
- •Разработка спецификаций оперативно-графическим методом (hipo).
- •Документирование программного обеспечения.
- •Проектирование систем.
- •Определение основных компонентов системы.
- •Определение потоков данных.
- •Определение процессов.
- •Методы разработки данных.
- •Графические диаграммы (граф-диаграммы)
- •Диаграммы Варнье-Орра.
- •Функциональные схемы.
- •Проектирование программ.
- •Группы методов проектирования программ:
- •Метод нисходящего проектирования.
- •Пошаговое уточнение.
- •Модульная структура программ.
- •Монолитно-модульная структура.
- •Последовательно-модульная структура.
- •Модульно-иерархическая структура.
- •Модульно-хаотическая структура.
- •Технологический цикл конструирования программной системы (пс): три процесса.
- •Модель анализа:
- •Этап проектирования
- •Этап кодирования
- •Этап проектирования
- •Проверенная и объединённая пс
- •Особенности этапа проектирования.
- •Предварительное
- •Детальное
- •Интерфейсное
- •Структурирование систем.
- •Управление
- •Моделирование управления.
- •Модель централизованного управления.
- •Главная
- •Обработчик событий и
- •Прерывания
- •Обработчик
- •Процесс
- •Декомпозиция подсистем на модули. Модульность.
- •Характеристики модуля.
- •Последовательная связность.
- •Коммуникативная связность.
- •Модуль отчёт о средней зарплате
- •Процедурная связность.
- •Модуль вычисления средних значений
- •Модуль вычисления средних значений
- •Временная связность.
- •Модуль инициализировать систему
- •Логическая связность.
- •По совпадению.
- •Сцепление модулей.
- •Сложность программной системы.
- •Программная документация.
- •Средства проектирования прикладных программ.
- •Графическое построение схем алгоритмов и программ.
- •Разработка схем алгоритмов и программ с использованием конкретного языка программирования.
- •Использование специальных языков проектирования программ, псевдокодов.
- •Реализация программ.
- •Программирование на языках высокого уровня:
- •Программирование с защитой от ошибок.
- •Структурное программирование.
- •Программирование в стандартизированном стиле.
- •Основные принципы стандартизации стиля программирования:
- •Правила размещения фрагментов исходного текста.
- •Правила составления комментариев.
- •Основное правило составления пояснительных комментариев.
- •Правило выбора имён.
- •Правило обеспечения наглядности логической структуры.
- •Нисходящее программирование.
- •Методы проверки программ:
- •Тестирование программного обеспечения.
- •Тестирование элементов.
- •Тестирование интеграций.
- •Нисходящее тестирование интеграций.
- •Возможные шаги процесса нисходящей интеграции:
- •Восходящие тестирования интеграций.
- •Сравнение нисходящего и восходящего тестирования.
- •Тестирование правильности.
- •Системное тестирование.
- •Основные типы системных тестов.
- •Тестирование восстановления.
- •Тестирование безопасности.
- •Стрессовое тестирование.
- •Тестирование производительности.
- •Аксиомы тестирования.
- •Отладка.
- •Общая схема сопровождения по.
Характеристики модуля.
Связность модуля – это мера независимости его частей.
Чем выше связность модуля, тем выше результат проектирования. Для обозначения связности модуля используют понятие силы связности модуля.
Связность |
Сила связности |
1.функциональная |
10 |
2.последовательная |
9 |
3.коммуникативная |
7 |
4.процедурная |
5 |
5.временная |
3 |
6.логическая |
1 |
7.по совпадению |
0 |
Этот модуль не может быть разбит на два других, имеющих связность того же типа. Критерий для формирования функциональной связности: возможность формулировки назначения модуля в виде одного предложения в повелительном наклонение, без запятых и слов: если, затем, тогда.
Пример:
Проверить строку символов.
Выделить однотипные поля данных.
Оптимизировать группу команд.
Последовательная связность.
Этот модуль может быть разбит на последовательные части, выполняющие независимые функции, но совместно реализующие единственную функцию.
Пример:
Если модуль используется для оценки, потом для обработки данных, то он имеет последовательную связность. Он реализуется как последовательность операций (циклов). При этом данные на выходе какой-либо функции целиком являются входными для следующей функции.
Сопровождать модули с информационной связностью также легко, как и с функциональным, но возможности повторного использования модуля ниже, чем в 1-м случае, т.к. совместное применение действия модуля с информационной связностью полезно не всегда.
Коммуникативная связность.
Части модуля связаны по данным (работают с одной же структурой данных).
Пример:
Модуль отчёт о средней зарплате
Используется таблица зарплаты служащих
Сгенерировать отчёт по зарплате
Вычислить погрешность средней зарплаты
Вернуть отчёт по зарплате, средней зарплате
КОНЕЦ Модуля.
Все элементы модуля работают со структурой “таблица зарплат служащих”. С точки зрения клиента проблема применения коммуникативно-связного модуля состоит в избыточности результата.
Общее у модулей с коммуникативной и информационной связностью:
Модули содержат элементы, связанные по данным.
Их удобно использовать, т.к. не многие элементы связаны со внешней средой.
Различия:
Информационно связанный модуль работает подобно сборочной линии, т.е. важен порядок действий. В коммуникативно-связном модуле порядок безразличен.
Процедурная связность.
Части модуля связаны порядком выполняемых ими действий, реализующих некоторый сценарий поведения. Зависимости по данным между элементами нет.
Пример:
Модуль вычисления средних значений
Используется таблица А, затем таблица В
Вычислить среднее по таблице А
Вычислить среднее по таблице В
Вернуть среднее по А и по В
Конец модуля.
Этот модуль обрабатывает две полностью несвязанных таблицы. Действия программиста с целью минимизации кода используют один цикл в интересах двух обработчиков.
Пример: