- •Технология программирования
- •Технология программирования (определение, цели дисциплины). Отличие от программной инженерии.
- •Основные этапы разработки (российский и международный стандарты).
- •Жизненный цикл по. Процессы жц. Модели жц по. Их достоинства и недостатки.
- •Парадигмы программирования.
- •Методы разработки структуры программ (восходящая и нисходящая разработка, конструктивный и архитектурный подходы).
- •Модульное программирование. Характеристики модуля (связность, сцепление, сложность)
- •Структурные методы анализа и проектирования (проверьте, я в лекциях не нашла!)
- •Визуальное моделирование и проектирование с использованием uml.
- •Хороший стиль программирования. Правильные имена. Форматирование кода. Комментирование кода. Общие правила разработки классов.
Модульное программирование. Характеристики модуля (связность, сцепление, сложность)
Модульная структура программы представляет собой древовидную структуру, в узлах которой размещаются программные модули, а направленные дуги показывают статическую подчиненность модулей. Если в тексте модуля имеется ссылка на другой модуль, то их на структурной схеме соединяет дуга, которая исходит из первого и входит во второй модуль. Другими словами, каждый модуль может обращаться к подчиненным ему модулям. При этом модульная структура программной системы, кроме структурной схемы, должна включать в себя еще и совокупность спецификаций модулей, образующих эту систему.
Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчиненные модули.
При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
1) модуль вызывается на выполнение вышестоящим по иерархии модулем и, закончив работу, возвращает ему управление;
2) принятие основных решений в алгоритме выносится на максимально высокий по иерархии уровень;
3) если в разных местах алгоритма используется одна и та же функция, то она оформляется в отдельный модуль, который будет вызываться по мере необходимости.
Состав, назначение и характер использования программных модулей в значительной степени определяются инструментальными средствами.
Например, при разработке СУБД используются следующие программные модули:
1) экранные формы ввода и/или редактирования информации базы данных;
2) отчеты;
3) макросы;
4) стандартные средства для обработки информации;
5) меню для выбора функции обработки и др.
Связность модуля – это мера зависимости его частей (внутренняя характеристика модуля).
Типы связности:
(сбоку возможность изменения, внутр. связи)
1) Случайная (по совпадению) – в модуле отсутствуют явно выраженные внутренние связи. СС=0 -- --
2) Логическая – части модуля объединены по принципу функционального подобия. СС=1 -- --
3) Временная – части модуля не связаны, но необходимы в один и тот, же период работы системы. СС=3 -- --
4) Процедурная – модуль состоит из элементов, реализующих независимые действия, для которых задан единый порядок работы, то есть порядок передачи управления (связности по данным нет). -+ -+
5) Коммуникативная – части модуля связаны по данным (используют одни и те же структуры данных). СС=7 + +
6) Информационная (последовательная) – выходные данные одной части используются как входные данные в другой части модуля. СС=8 + +
7) Функциональная – модуль содержит элементы, участвующие в выполнении одной и только одной проблемной задачи. СС=10 + +
Сцепление модуля – мера взаимозависимости модулей (внешняя характеристика модуля), которая определяет, насколько хорошо модули отделены друг от друга. Модули независимы, если каждый из них не содержит о других никакой информации.
Типы сцепления: (в лекциях к этому еще и картинки есть)
1) Сцепление по данным – модули обмениваются данными, представленными скалярными значениями. СЦ=1
2) Сцепление по образцу – модули обмениваются данными, объединенными в структуры. СЦ=2
3) Сцепление по управлению – модуль посылает другому некоторый информационный объект (флаг), предназначенный для управления внутренней логикой модуля. СЦ=4
4) Сцепления по внешним ссылкам
5) Сцепление по общей области – модули разделяют одну и ту же глобальную структуру данных. СЦ=7
6) Сцепление по содержимому – модуль содержит обращения к внутренним компонентам другого (передает управление внутрь, читает и/или изменяет внутренние данные или сами коды). СЦ=9
Рутинность модуля - это зависимость модуля от своей собственной предыстории (чем меньше, тем лучше)
Сложность модуля
Мера длины модуля
N=n₁log₂(n₁)+n₂log₂(n₂)
Количество операторов-n₁
Количество операндов-n₂
V=N*log₂(n₁+n₂)
V(G)=E-N+2
V(G)- число вершин в дереве,представл. стр-ру прогр. Системы
E- число дуг
