- •Технология программирования. Основные этапы ее развития. (и 2 вопрос тут же)
- •Этапы развития технологии программирования. (см. Пункт первый)
- •Технологии com и corba.
- •Проблемы, возникающие при разработке сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл и этапы разработки программного обеспечения. Кратко охарактеризуйте основные этапы.
- •Постановка задачи, анализ требований и определение спецификаций.
- •Проектирование, реализация и сопровождение.
- •Модели жизненного цикла программного обеспечения.
- •Case-технологии.
- •Оценка качества процессов создания программного обеспечения.
- •Использование cmm при оценке качества процессов создания программного обеспечения.
- •Использование стандартов iso 9000 и spice при оценке качества процессов создания программного обеспечения.
- •Понятие технологичности программного обеспечения.
- •Модули и их свойства.
- •Сцепление модулей.
- •Связность модулей.
- •Нисходящая и восходящая разработка программного обеспечения.
- •Структурное программирование.
- •Средства описания структурных алгоритмов.
- •Стиль оформления программы.
- •Эффективность и технологичность программного обеспечения.
- •Программирование с «защитой от ошибок».
- •Сквозной структурный контроль
- •Классификация программных продуктов по функциональному признаку.
- •Эксплуатационные требования к программным продуктам.
- •Предпроектные исследования предметной области.
- •Техническое задание. Основные разделы.
- •Архитектура программного обеспечения.
- •Тип пользовательского интерфейса.
- •Выбор языка и среды программирования.
- •1). Выбор языка программирования.
- •Спецификация программного обеспечения при структурном подходе.
- •Язык описания разработки программных продуктов uml.
- •Тестирование программного обеспечения.
Связность модулей.
Связность – мера прочности соединения функциональных и информационных объектов внутри одного модуля. виды связности (в порядке убывания уровня):
функциональную;
последовательную;
информационную (коммуникативную);
процедурную;
временную;
логическую;
случайную.
При функциональной связности все объекты модуля пред-ны для выполнения одной функции (рис.а): операции, объединяемые для выполнения одной функции, или данные, связанные с одной функцией. Модуль, элементы кот связаны функц-о, имеет четко определенную цель, при его вызове выполняется одна задача(подпрограмма поиска минимального элемента массива). Такой модуль имеет макс связность, => хорошие технологические кач-ва: простота тестирования, модификации и сопровождения. Именно с этим связано одно из требований структурной декомпозиции «один модуль – одна функция».
При последовательной связности функций выход одной функции служит исходными данными для другой функции (рис. 2.1, б)., такой модуль имеет одну точку входа, т.е. реализует одну подпрограмму, выполняющую две функции. данные, используемые послед-ми ф-ми, также связаны последовательно. Модуль с последовательной связностью функций можно разбить на два или более модулей, как с последовательной, так и с функциональной связностью. Такой модуль выполняет нес-ко ф-ий, =>, его технологичность хуже: сложнее организовать тестирование, при выполнении модификации мысленно приходится разделять функции модуля.
Информационно связанными считают функции, обрабатывающие одни и те же данные (рис. 2.1, в). При использовании структурных языков программирования раздельное выполнение функций можно осуществить только, если каждая функция реализуется своей подпрограммой. Несмотря на объединение неск-их ф-ий, информационно связанный модуль имеет неплохие показатели технологичности. Тк все функции, работающие с некоторыми данными, собраны в одно место, что позволяет при изменении формата данных корректировать только один модуль. Информационно связанными также считают данные, которые обрабатываются одной функцией.
Процедурно связаны функции или данные, которые являются частями одного процесса (рис. 2.1, г). получают, если в модуле объединены функции альтернативных частей программы. При процедурной связности отдельные элементы модуля связаны крайне слабо, тк реализуемые ими действия связаны лишь общим процессом, => технологичность данного вида связи ниже, чем предыдущего.
Временная связность - функции выполняются // или в течение некоторого периода времени (рис. 2.1, д). Временная связность данных означает, что они используются в некотором временном интервале( вр-ю связность имеют фу-и, выполняемые при инициализации некоторого процесса). Отличие: действия, реализуемые такими функциями, обычно могут выполняться в любом порядке. Содержание модуля с временной связностью функций имеет тенденцию меняться: в него могут включаться новые действия и/или исключаться старые. Большая вероятность модификации функции еще больше уменьшает показатели технологичности модулей данного вида по сравнению с предыдущим.
Логическая связь базируется на объединении данных или функций в одну логическую группу (рис. 2.1, е). В качестве примера можно привести функции обработки текстовой информации или данные одного и того же типа. Модуль с логической связностью часто реализует альтернативные варианты одной операции, ( сложение целых чисел и сложение вещественных чисел). Из такого модуля всегда будет вызываться одна какая-либо его часть, при этом вызывающий и вызываемый модули будут связаны по управлению. Понять логику работы модулей труднее, чем модулей, использующих временную связность => показатели техн-сти еще ниже.
В том случае, если связь между элементами мала или отсутствует, считают, что они имеют случайную связность. Модуль, элементы которого связаны случайно, имеет самые низкие показатели технологичности, так как элементы, объединенные в нем, вообще не связаны.