Главная страница
Навигация по странице:

  • 22. Назовите нотации и приведите пример нотации для изображения структурных алгоритмов.*

  • 23. Дайте определение прочности модуля и приведите примеры модулей с разными классами прочности.*

  • 24. Дайте определение сцепления модулей и приведите примеры модулей с разными видами сцепления.*

  • Дайте определение полустатических структур данных. Какие структуры относятся к этому классу В чем их особенности * *

  • Дайте определение технологии программирования. Какие технологии Вы знаете и к каким периодам относится появление этих технологий *

  • 28. Дайте определение объектно-ориентированного программирования (ООП). Назовите и охарактеризуйте основные свойства ООП.*

  • 29. Блочно-иерархический подход к созданию программных систем.*

  • 30. Проблемы разработки сложных программных систем.*

  • 31. Дайте определение модели жизненного цикла (ЖЦ) программного продукта (ПП). Каскадная модель ЖЦ ПП. Область применения, достоинства и недостатки.*

  • Вопросы с ответами(2008-2009).doc. Назовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какойлибо задачи (в виде дерева разбиения)


    Скачать 456.5 Kb.
    НазваниеНазовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какойлибо задачи (в виде дерева разбиения)
    Дата14.01.2021
    Размер456.5 Kb.
    Формат файлаdoc
    Имя файлаВопросы с ответами(2008-2009).doc.doc
    ТипДокументы
    #168096
    страница2 из 5
    1   2   3   4   5

    16. Дайте определение схемы, перечислите схемы, которые используются при документировании ПО, и их назначение. Приведите пример какой-либо схемы и назовите группы символов, которые в таких схемах применяются.*

    Схема - графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения операций, данных, потока, оборудования и т.д. Различают:

    -схемы данных;

    -схемы программ;

    -схемы работы системы;

    -схемы взаимодействия программ;

    -схемы ресурсов системы.

    Схемы данных отображают путь данных при решении задач и определяют этапы обработки и применяемые носители данных.

    Схемы программ отображают последовательность операций в программе.

    Схемы работы системы отображают управление операциями и поток данных в системе.

    Схемы взаимодействия программ отображают путь активации программ и взаимодействий с данными. Каждая программа показывается только один раз (в схеме работы системы может изображаться более чем в одном потоке управления).

    Схемы ресурсов системы отображают конфигурацию блоков данных и обрабатывающих блоков, требуемую для решения задачи или набора задач.
    17. Приведите пример постановки задачи для теста, проектирования теста и тестирования теста. * *
    18. Приведите пример и дайте пояснения редуцирования таблицы решений для какой-либо внешней спецификации.*

    19. Дайте определение линейного односвязного списка. Приведите пример линейного односвязного списка до исключения и после исключения из него какой-либо записи.*

    20. Дайте определение линейного односвязного списка. Приведите пример линейного односвязного списка до включения и после включения в него новой записи.*

    Связный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка. В односвязном линейном списке каждый элемент состоит из двух различных по назначению полей: содержательного и поля указателя.

    В односвязном линейном списке каждый элемент состоит из двух различных по назначению полей: содержательного и поля указателя. Включение списка и исключения элемента из списка осуществляется путем корректировки указателей. Схематично покажем включение в односвязный список нового элемента между двумя существующими элементами списка. Чаще всего местоположение нового элемента определяется по назначению ключа:


    В этом случае значение L2 записывается в поле указателя включаемой записи значение поля указанной записи, после которого включается новый элемент, изменяется на LN , ,окончательная логическая структура будет следующей:


    21. Дайте определение линейного двусвязного списка. Приведите пример линейного двусвязного списка до включения и после включения в него новой записи.*

    Связный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка. В односвязном линейном списке каждый элемент состоит из двух различных по назначению полей: содержательного и поля указателя.
    22. Назовите нотации и приведите пример нотации для изображения структурных алгоритмов.*

    Под нотацией понимаются правила формализованного описания структуры системы, элементов данных и других ее компонентов с помощью схем, диаграмм, формальных и естественных языков. Например, в качестве миниспецификаций некоторые CASE-технологии используют таблицы решений. Правила построения такой таблицы и представляют собой нотацию.
    23. Дайте определение прочности модуля и приведите примеры модулей с разными классами прочности.*

    1. Прочность по совпадению. Между предложениями модуля нет устойчивых смысловых связей. Такая ситуация возникает, если повторяющуюся группу предложений программы оформляют в виде отдельного модуля и используют его в разных контекстах.

    Например модуль вычисления суммы , может использоваться в разных контекстах, и в зависимости от контекста изменяется и смысл связей между предложениями модуля.

    Основная проблема с модулями такого класса – это необходимость тщательной проверки, не теряется ли смысл обработки данных при каждом новом использовании модуля.

    2. Прочность по логике - при каждом вызове выполняется некоторая функция из набора функций модуля. Как следует из этого определения, прочный по логике модуль выполняет несколько функций, и требуемая в конкретный момент функция выбирается (определяется) вызывающим модулем.

    Пример: библиотека стандартных программ, реализующих численные методы.

    Основная проблема с модулями этого класса – это использование одного и того же сопряжения в разных программах. Правила этого сопряжения должны быть выдержаны как в вызывающей, так и вызываемой программах.

    3. Прочность по классу – модуль выполняет несколько функций, отнесенных разработчиком к одному классу. Например: autoexec.bat.

    Обычно это первые или последние модули в программных комплексах, на которые возлагаются операции инициализирования и завершения.

    Для таких модулей основная проблема состоит в том, что они неявно связаны с другими модулями и при изменениях прочных по классу модулей часто возникают ошибки, когда эти связи не учитываются.

    4. Процедурно-прочный модуль – выполняет несколько функций относящихся к одной функциональной процедуре решения задачи. Здесь единственная проблема состоит в том, что фрагменты программы, относящиеся к одной функции, могут быть не последовательными в тексте модуля, усложняются изменения в модуле.

    5. Коммуникационно- прочный модуль. Это процедурно прочный модуль, в котором все функции модуля связаны по данным.

    Те же проблемы, что и у процедурно – прочного модуля, но они менее острые, т.к. связь по данным в одной функции ускоряет связь предложений этойфункциии их разрыв менее вероятен, а иногда невозможен.

    6. Информационная прочность – модуль выполняет несколько функций над одной и той же строкой данных, но каждая функция представляется отдельным входом в модуль.

    7. Функциональная прочность – это когда модуль выполняет одну функцию – это то, к чему следует стремиться при проектировании модульной структуры ПО. Информационно - прочные модули следует рассматривать как физическое соединение нескольких функционально – прочных модулей.

    Модуль может соответствовать описанию нескольких типов прочности. В этом случае принято его относить к высшему типу прочности, определению которой он удовлетворяет.

    24. Дайте определение сцепления модулей и приведите примеры модулей с разными видами сцепления.*

    Сцепление модулей является мерой взаимозависимости модулей по данным и определяется как способом передачи данных между модулями, так и свойствами передаваемых данных. Для достижения минимальной сложности программного комплекса необходимо добиться такого сопряжения между модулями, чтобы все данные чередовались между ними в форме явных и простых параметров.

    Виды сцеплений охарактеризуем в порядке уменьшения сцепления.

    1. Сцепление по содержимому – модуль ссылается на данные (содержимое) другого модуля. Большинство языков программирования высокого уровня делает такое сцепление практически невозможным.

    2. Сцепление по общей области – модули ссылаются на одну и ту же глобальную структуру данных.

    При этом основная проблема та, что имена глобальных переменных связывают модули на этапе их кодирования (программирования), а, следовательно, использование таких модулей в других программах или других контекстах затруднено или невозможно вообще. И кроме того, любые изменения в структуре глобальных данных влекут проверку (тестирование) всех сцепленных по общей области модулей.

    3. Сцепление по управлению – один модуль управляет функционированием другого. При этом в вызываемый модуль передается значение управляющей переменной.

    Предполагается, что вызывающий модуль “знает” логику работы вызываемого, что уменьшает их независимость.

    4. Сцепление по формату – модули ссылаются на одну и ту же структуру данных. Если модуль А вызывает модуль В и передает ему запись анкетных данных служащего и при этом как А так и В чувствительны к изменению структуры или формата записи, то А и В сцеплены по формату.Такого сцепления, по возможности, следует избегать, поскольку оно создает ненужные связи между модулями.

    5. Сцепление по данным – передаваемые параметры – простые (неструктурированные) данные.

    Сцепление модулей может удовлетворять определению нескольких типов сцепления. В этом случае принято относить тип сцепления к самому жесткому типу, т.е. к меньшему по номеру из рассмотренных типов сцеплений.
    25. Дайте определение линейного двусвязного списка. Приведите пример линейного двусвязного списка до исключения и после исключения из него какой-либо записи. *

    Линейный двусвязный список отличается от односвязного тем, что каждый его элемент содержит два указателя, один из которых (прямой указатель) адресует следующий элемент в списке, а другой (обратный указатель) - адресует предыдущий элемент списка.

    Логическая структура двусвязного списка:



    В первой записи пустым является обратный указатель, а в последней – прямой. В этом случае доступ к списку возможен как с начала списка, так и с его конца. Например, если физическая последовательность записей содержательных частей двусвязного списка является следующей: L1:,<0>,; L2:,,; L3:,,<0>; L4:,,; L5:,,; L6:,, и состояние указателя начала списка - , а указателя конца списка- , то логическую последовательность содержательных частей этого списка - , , , , , .


    1. Дайте определение полустатических структур данных. Какие структуры относятся к этому классу? В чем их особенности? * *

    Полустатические структуры данных - это последовательные линейные списки с переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом. Отличительной особенностью яв-ся то что в статических структурах данных число элементов постоянно, а в полустатических число элементов может изменятся.

    Определения этих структур данных основаны на понятии списка или списковой структуры. Списком называется линейно-упорядоченная последовательность элементов данных E(1),E(2)…E(n), где n>0,причем каждый элемент E(i) характеризуется одним и тем же набором полей. Такой список называют линейным списком из-за линейной упорядоченности элементов. При n=const и соответствующем выборе элемента данных, последовательный линейный список сводится к вектору, к массиву, записи или таблице. Так, вектор может быть определен как последовательный линейный список, в котором каждый элемент-скаляр одного и того же типа. При n = Var последовательный линейный список представляет собой структуру, не обладающую свойством постоянства. Однако, хотя n = Var, максимальное значение n задается явно и ограничивает длину списка. Такие структуры называют полустатические. К таким структурам относятся стеки и очереди.


    1. Дайте определение технологии программирования. Какие технологии Вы знаете и к каким периодам относится появление этих технологий? *

    Применительно к программированию технологию можно определить, как совокупность процессов создания, сопровождения и применения программного продукта. Любая технология программирования базируется на некоторой методологии разработки программ.

    CASE-системами или CASE-технологиями называют реализованные в виде программных продуктов технологические системы, ориентированные на создание сложных программных систем и поддержку их полного жизненного цикла или его основных этапов.
    28. Дайте определение объектно-ориентированного программирования (ООП). Назовите и охарактеризуйте основные свойства ООП.*

    Обьектно–ориентированное программирование - это подход, в котором данные и поведение (методы обработки данных) жестко связаны. Данные и поведение представлены в виде классов, экземпляры которых - объекты. ООП позволяет пользователю вводить собственные типы данных, расширяя тем самым набор встроенных в язык типов данных. Для обозначения этих расширений используется термин абстрактные типы данных (АТД). Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих их. Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Полиморфизм - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой.
    29. Блочно-иерархический подход к созданию программных систем.*

    В природе существуют иерархии “целое-часть”, “простое-сложное”(иерархия развития систем в процессе эволюции). В этой иерархии любая функционирующая система является результатом развития более простой системы. Именно данный вид иерархии реализуется механизмом наследования объектно-ориентированного программирования.

    Будучи в значительной степени отражением природных и технических систем, программные системы обычно являются иерархическими, т.е. обладают описанными выше свойствами. На этих свойствах иерархических систем строится блочно-иерархический подход. Этот подход предполагает сначала создание частей таких объектов, а затем “сборку” из них самого объекта.

    30. Проблемы разработки сложных программных систем.*

    Большинство современных программных систем объективно очень сложны. Эта сложность обуславливается многими причинами, главной из которых является логическая сложность решаемых ими задач.

    Пока вычислительных установок было мало и ид. возможности были ограничены, ЭВМ применяли в очень узких областях науки и техники, причем, в первую очередь, там, где решаемые Задачи были хорошо детерминированы и требовали значительных вычислений. В наше время, когда созданы мощные компьютерные сети, появилась возможность переложить на них решение сложных ресурсоемких задач, о компьютеризации которых раньше никто я не думал. Сейчас в процесс компьютеризации вовлекаются совершенно новые предметные области, а для уже освоенных областей усложняются уже сложившиеся постановки задач.

    Дополнительными факторами, увеличивающими сложность разработки программных систем, являются [2]:

    • сложность формального определения требований к программным системам;

    • отсутствие удовлетворительных средств описания поведения дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий;

    • коллективная разработка;

    • необходимость увеличения степени повторяемости кодов.
    31. Дайте определение модели жизненного цикла (ЖЦ) программного продукта (ПП). Каскадная модель ЖЦ ПП. Область применения, достоинства и недостатки.*

    ЖЦ представляет собой непрерывный процесс, продолжающийся достаточно длительное время от момента принятия решения о создании информационной системы и заканчивая моментом изъятия ее из эксплуатации. В этом временном промежутке выделяют фазы, стадии, этапы.

    Моделью жизненного цикла программной системы называют структуру, определяющую последовательность осуществления процессов, действий и задач, выполняемых на протяжении ЖЦ ПП, а также взаимодействие между этими процессами, действиями и задачами.

    Традиционная модель ЖЦ ПО строится по каскадному принципу, суть которого в том, что переход на следующий этап происходит после окончания предыдущего.

    Каскадная модель получили еще и другое название “водопад”. Эта модель имеет ряд положительных качеств, благодаря которым она хорошо себя зарекомендовала и получила широкое распространение:

    • на каждом этапе формируется законченный набор проектной документации, отвечающей критериям полноты и согласованности. На заключительных этапах разрабатывается пользовательская документация, охватывающая все предусмотренные стандартами виды обеспечения информационной системы: организационное, методическое, информационное, программное, техническое;

    • выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения и соответствующие затраты.

    Каскадная модель хорошо зарекомендовала себя при разработке систем обработки информации, для которых на этапе анализа можно достаточно точно и полно сформулировать все требования. К ним можно отнести сложные расчетные программные комплексы и системы реального времени.

    Перечень недостатков каскадной модели более обширен, чем перечень ее достоинств:

    • существенная задержка получения результатов;

    • ошибки и недоработки на любом из этапов выясняются, как правило, на последующих этапах работ, что приводит к необходимости возврата на предыдущие этапы;

    • сложность распараллеливания работ по проекту;

    • сложность управления проектом;

    • высокий уровень риска и ненадежность инвестиций.


    1   2   3   4   5


    написать администратору сайта