Главная страница

Шпоры по технологии программирования. 1. Раскройте содержание предварительного и детального внешнего проектирования по


Скачать 0.49 Mb.
Название1. Раскройте содержание предварительного и детального внешнего проектирования по
Дата21.01.2019
Размер0.49 Mb.
Формат файлаdoc
Имя файлаШпоры по технологии программирования.doc
ТипДокументы
#64557
страница2 из 5
1   2   3   4   5

24. Приведите пример таблицы решений для какой-либо внешней спецификации.

Приведем пример таблицы решений для спецификации процесса выбора символов из входного потока по следующим правилам: а) если очередной символ является управляющим, то подать звуковой сигнал и вернуть код ошибки;

б) если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки; в) если очередной символ не находится в заданном диапазоне, (положим, от ‘а’ до ‘я’), то подать звуковой сигнал и вернуть код ошибки;

г) иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика. Таблица решений для данного примера приведена ниже ( таблица 1.1). Здесь ‘Д’ означает ‘да’, ‘Н’ - ‘нет’, 1,2 - помеченные действия выполняются в указанном порядке.



25. Дайте определения статических структур данных. Каковы их отличительные особенности?

Структура данных – это совокупность элементов данных, между которыми существуют некоторые отношения, причем элементами данных могут быть простые данные и структуры данных.Важный признак структуры – ее изменчивость. Под изменчивостью будем понимать изменение числа элементов структуры и (или) связей между элементами структуры. По этому признаку различают структуры статические, полустатические и динамические. Статический класс структур характеризуется тем, что для их размещения в памяти ЭВМ выделяется фиксированный объем памяти.
26.Приведите пример функционального программирования. Функциональный стиль программирования основан на аргументной постановке задачи абстракции математической функции и аналитическом методе построения программ подобно математическим преобразованиям. Функциональное программирование широко используется в языке Лисп. Можно привести пример на языке Паскаль: Begin {Функциональный стиль) Writeln(Ln(Abs(Sin(5.5)); End., а если бы использовали процедурный стиль программирования то: Var x,y,z,t: Real; {Процедурный стиль} Begin х:=5.5; y:=Sin(x); z:=Abs(y); t:= Ln(z); Writeln(t); End.
28. Дайте определения полустатических структур данных. Каковы их отличительные особенности?Полустатические структуры данных - это последовательные линейные списки с переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом. Отличительной особенностью яв-ся то что в статических структурах данных число элементов постоянно, а в полустатических число элементов может изменятся. Однако, хотя n=Var, максимальное значение n задается явно и ограничивает длину списка.
29. Дайте определение жизненного цикла программного продукта и назовите его основные этапы при традиционной технологии разработки ПО. Жизненный цикл ПП определяется как совокупность последовательных состояний программного продукта и всех действий по его преобразованию, начиная с анализа возникшей потребности в автоматизации определенных функций обработки данных до их программной реализации и включения в программное обеспечение (ПО) конкретного применения. Традиционно в жизненном цикле ПП принято выделять следующие этапы: 1) анализ; 2) проектирование; 3) программирование или, иначе говоря, кодирование функциональных модулей; 4)тестирование и отладка; 5)эксплуатация и сопровождение.
31. Дайте определение объектно-ориентированного программирования. Назовите основные свойства ООП. Обьектно–ориентированное программирование - это подход, в котором данные и поведение (методы обработки данных) жестко связаны. Данные и поведение представлены в виде классов, экземпляры которых - объекты. ООП позволяет пользователю вводить собственные типы данных, расширяя тем самым набор встроенных в язык типов данных. Для обозначения этих расширений используется термин абстрактные типы данных (АТД). Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих их. Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Полиморфизм - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой.
32. В чем отличие стратегий тестирования и какие практические рекомендации можно дать по их применению? Решающую роль играет проектирование тестов. Возможен целый ряд подходов к стратегии проектирования тестов. Чтобы ориентироваться в них, рассмотрим два крайних подхода /1/. Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, либо спецификаций сопряжения программы или модуля. Программа при этом рассматривается как черный ящик (стратегия ‘черного ящика’). Существо такого подхода - проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание. Второй подход основан на анализе логики программы (стратегия ‘белого ящика’). Существо подхода - в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Полное тестирование программы невозможно. Тест для любой программы будет обязательно неполным, то есть тестирование не гарантирует отсутствие всех ошибок. Стратегия проектирования тестов заключается в том, чтобы попытаться уменьшить эту неполноту насколько это возможно. При этом ключевым вопросом является следующий: какое подмножество всех возможных тестов имеет наивысшую вероятность обнаружения ошибок при ограниченных времени, трудовых затратах, стоимости, машинном времени и т.п. Наихудшей из всех методологий является случайный набор тестов, так как он имеет малую вероятность быть оптимальным. Рекомендуется следующая процедура разработки тестов:

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

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



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


34. Поясните определение качества ПО и такого критерия качества, как эффективность. Приведите пример повышения эффективности реализации алгоритма в программе. Качество ПП – это совокупность его черт и характеристик, которые влияют на способность ПП удовлетворять заданные потребности пользователя.Как и в случае технических устройств, показатели качества являются противоречивыми, что означает: улучшение одних показателей качества может быть достигнуто за счет ухудшения других. Качество ПП является удовлетворительным, если количественные показатели свойств гарантируют успешное его использование. Критериями качества ПП являются: функциональность; надежность; легкость применения; эффективность; сопровождаемость; мобильность. Эффективность – это отношение уровня услуг, предоставляемых ПП к объему используемых вычислительных ресурсов. Объем используемых вычислительных ресурсов количественно определяется затратами машинного времени и оперативной памяти на выполнение заданных функций.
35. Дайте определение и приведите пример линейного односвязного списка.

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

Пример: физическая последовательность записей и логическая последовательность содержательных частей односвязного списка: L1:,<0>; L2:,; L3:,; L4:,; L5:,; L6:,; L7: ,. Состояние указателя начала списка - .

Ответ:

L3




L2




L4




L5




L7




L6




L1




0







D3




D2




D4




D5




D7




D6




D1


36. Изложите цель и основные этапы реализации метода эквивалентного разбиения.

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

а) каждый тест должен включать столько различных входных условий, сколько это возможно, с тем чтобы минимизировать общее число тестов;

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

а) выделение класса эквивалентности;

б)построение тестов.

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

Входные

условия

Правильные классы

эквивалентности

Неправильные классы эквивалентности

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

Следующий этап данного метода - построение тестов.

Этот процесс включает в себя:

- назначение каждому классу эквивалентности уникального номера;

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

- запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности.
37. Дайте определение и приведите пример линейного двусвязного списка.

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

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



В первой записи пустым является обратный указатель, а в последней – прямой. В этом случае доступ к списку возможен как с начала списка, так и с его конца. Например, если физическая последовательность записей содержательных частей двусвязного списка является следующей: L1:,<0>,; L2:,,; L3:,,<0>; L4:,,; L5:,,; L6:,, и состояние указателя начала списка - , а указателя конца списка- , то логическую последовательность содержательных частей этого списка - , , , , , .
38. Какие модели ЖЦ ПП Вы знаете. В чем отличие моделей жизненного цикла (ЖЦ) программного продукта (ПП) в традиционной и CASE- технологии разработки ПО? Модель ЖЦ ПП определяет перечень этапов преобразования программа -> программное средство -> программный продукт, порядок выполнения этапов, а также критерии перехода от этапа к этапу. Традиционная модель ЖЦ ПО строится по каскадному принципу (переход на следующий этап происходит после окончания работ по предыдущему этапу) или по поэтапному принципу с промежуточным контролем. CASE-технология базируется на спиральной модели ЖЦ ПП, суть которой в следующем. Делается упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Все эти этапы выполняются на каждом витке спирали ЖЦ. Каждый виток спирали соответствует некоторому уровню детализации проекта. Каждый следующий виток характеризуется более высокой степенью детализации создаваемого ПО. Каждый виток заканчивается тем, что уточняются цели и характеристики проекта и планируются работы следующего витка спирали. Тем самым реализуется нисходящий принцип проектирования. Чем же принципиально CASE-технология отличается от традиционной? Исторически так сложилось, что при проектировании новых объектов структурный аспект отражается в виде схем (принципиальные электрические схемы, механические схемы, комбинированные схемы и т.п.). Так вот CASE-технологии иначе еще называют структурным системным анализом, что отражает тот факт, что и функционирование объекта (в рассматриваемом случае разрабатываемого ПО) отражается в различных схемах, таблицах, диаграммах, матрицах, картах и т.п
39. Перечислите основные принципы структурного программирования. Цель структурного программирования – разработка программы, которой присуща определенная структура, основанная на применении принципов структурного программирования. Перечислим эти принципы:

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

2. В программах рекомендуется применять 4 типа конструкций: а) последовательность ( модулей, операторов) б) разветвление (условный оператор); в) цикл 1) с предусловием 2) с постусловием 3)выбор из нескольких альтернатив

3. Разработку программ рекомендуется вести сверху – вниз или по нисходящей стратегии. Суть нисходящей стратегии в том, что проектировщик должен приступить к работе, имея только концептуальный, абстрактный замысел о том, что система или программа будет делать. Затем этот замысел постепенно конкретизируется шаг за шагом, тем самым погружаясь в подробности окончательного программного продукта до тех пор, пока не будет достигнуто «дно», под которым понимаются программные модули, реализующие отдельные функции или процедуры преобразования данных
40. Дайте определение модуля и назовите его основные атрибуты.

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

Модуль – это программа, обладающая тремя основными атрибутами:

  1. он выполняет одну или несколько функций;

  2. модуль реализует некоторую логику (алгоритм).

  3. используется в одном или нескольких контекстах.

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


41. Что такое макетирование программ, каковы его основные достоинства и где этот метод нашел широкое применение?

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

Нисходящее проектирование и его реализация (макетирование) первоначально как бы встраивались в структурное программирование, но впоследствии они были выделены и встроены в CASE-технологии.
42. Перечислите критерии качества ПО и приведите их определения. Какие из них являются обязательными для ПО?

Критериями качества ПП являются: функциональность; надежность; легкость применения; эффективность; сопровождаемость; мобильность.

Функциональность – это способность ПП выполнять набор функций, определенных его внешними спецификациями. Надежность ПП – это способность безотказно выполнять заданные функции при заданных условиях в течение заданного периода времени с высокой степенью вероятности. Легкость применения – это способность минимизировать затраты пользователя на подготовку и ввод исходных данных и оценку полученных результатов, а также вызывать положительные эмоции пользователя. Эффективность – это отношение уровня услуг, предоставляемых ПП к объему используемых вычислительных ресурсов. Сопровождаемость – это такие характеристики ПП, которые позволяют минимизировать усилия по внесению изменений при обнаружении ошибок в ПП и при его модификации. Мобильность – это способность ПП быть перенесенным из одной вычислительной среды (окружения) в другую, в частности, с одной ЭВМ на другую (применяют термин “перенос с одной платформы на другую”. Функциональность и надежность являются обязательными критериями качества ПП, причем обеспечение надежности является неотъемлемой частью всех этапов и процессов разработки ПП.
43. Перечислите особенности динамических структур данных.

Динамическая структура имеет следующие основные признаки:

1.Непостоянство и непредсказуемость размера (числа элементов) структуры в процессе ее обработки.

2. Отсутствие физической смежности элементов структуры в физической памяти. Логическая последовательность элементов задается в явном виде с помощью одного или нескольких указателей или связок, хранящихся в самих элементах. Часто динамические структуры физически представляются в форме связных списков. Связный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка.
44. Назовите последовательность работ при тестировании ПО. Какой или какие этапы являются наиболее ответственными и почему?

В тестирование входят следующие этапы: а) постановка задачи для теста, б) проектирование теста, в) написание тестов, г) тестирование тестов, д) выполнение тестов, е) изучение результатов тестирования. Решающую роль играет проектирование тестов. Как правило, исчерпывающее тестирование для всех входных данных программы неосуществимо, поэтому ограничиваются меньшим числом тестов. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста. Именно проектирование тестов – наиболее сложная задача, входящая в процесс тестирования. При проектировании приходится идти на ряд компромиссов. Грамотное проектирование теста поможет отыскать максимальное число ошибок.
46. В чем отличие каскадной и спиральной моделей жизненного цикла ПО?

Традиционная модель ЖЦ ПО строится по каскадному принципу (переход на следующий этап происходит после окончания работ по предыдущему этапу) или по поэтапному принципу с промежуточным контролем (с циклами обратной связи между этапами, что предполагает корректировки в процессе проектирования, но растягивает все этапы на весь период разработки). Суть спиральной модели ЖЦ ПО в следующем. Делается упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Все эти этапы выполняются на каждом витке спирали ЖЦ. Каждый виток спирали соответствует некоторому уровню детализации проекта. Каждый следующий виток характеризуется более высокой степенью детализации создаваемого ПО. Каждый виток заканчивается тем, что уточняются цели и характеристики проекта и планируются работы следующего витка спирали.

48. Дайте определение таблицы решений и укажите этапы ЖЦ ПП, в которых эти таблицы могут применяться. Таблица решений – это такая внешняя спецификация ПО, в которой отражаются комбинации условий, выполняемых для входных данных, и соответствующие этим комбинациям действия по преобразованию информации. Проектирование спецификаций процессов с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий и множество решений. ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа ‘да-нет’. Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место. ТР применяются на этапе детального внешнего проектирования. Содержанием этого этапа является разработка спецификаций функций ПО.
49.Перечислите основные принципы структурного программирования.

Принципы структурного программирования:

1. Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход.

Это позволяет максимально упростить стыковку модулей в программе.

2. В программах рекомендуется применять 4 типа конструкций: а) последовательность, б) разветвление (условный оператор), в) цикл, г) выбор из нескольких альтернатив.

3. разработку программ рекомендуется вести сверху – вниз или по нисходящей стратегии.
50. Приведите пример статической структуры данных. Назовите составные части этой структуры и их связи.Статические структуры характеризуются тем, что для их размещения в памяти ЭВМ выделяется фиксированный объем памяти. СС подразделяются на вектора, массивы, записи и таблицы. Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа. Элементы вектора находятся между собой в отношении непосредственного следования. В памяти ЭВМ элементы вектора представляются последовательностью одинаковых по длине участков памяти, как правило, расположенных в порядке следования элементов в группе. к-мерным массивом называется конечное упорядоченное множество (к-1) мерных массивов, все элементы которых принадлежат одному и тому же типу. При к=1 получаем вектор.
51. В чем отличие отладки и тестирования программ? Какие методы применяются при отладке программ? Целью тестирования является обнаружение ошибок в программе. Отладкой называется процесс выявления природы ошибки программы и исправления ошибок, после того, как ошибки были обнаружены в процессе тестирования. На этом этапе выделяют две задачи: 1)определение природы ошибки; 2)исправление ошибки. Наиболее распространенными и наименее эффективными для отладки являются так называемые методы ‘грубой силы’. К ним относят: 1)отладку с использованием дампа памяти; 2)отладку с использованием операторов печати по всей программе; 3)отладку с использованием автоматических средств: наиболее предпочтительно. Общей характеристикой методов ‘грубой силы’ является то, что они не требуют значительных умственных затрат и могут продолжаться бесконечно долго, если наряду с ними не применять более гибкие методы, к которым относятся:

1. метод индукции: он включает 1)определение данных тестирования, имеющих отношение к ошибке; 2)анализ от частного к общему позволит выявить закономерности в данных пункта 1); 3)в результате анализа (п.2) выдвигается гипотеза о причине ошибки; 4)для подтверждения гипотезы 3 разрабатывается один или больше тестов, которые должны либо подтвердить, либо опровергнуть гипотезу; 5)если дополнительные тесты подтверждают гипотезу, можно приступать к исправлению ошибки, а вот если не подтверждают, то требуется в лучшем случае возврат к п.3, а в худшем - к п.2.

2.Альтернативный метод дедукции заключается в: 1)перечисление возможных причин или гипотез 2)использование данных тестирования для исключения некоторых возможных причин; 3)уточнение выбранной наиболее вероятной гипотезы, возможно с использованием дополнительных тестов; 4)доказательство выбранной гипотезы совпадает с п.4 и п.5 метода индукции.
52.Перечислите особенности динамических структур данных. Динамическая структура имеет следующие основные признаки:

1.Непостоянство и непредсказуемость р-ра (числа элементов) структуры в процессе ее обработки.

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

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

 -пустой указатель, означает конец списка.

Физическая структура списка может быть такой :



54. Назовите известные Вам методы тестирования стратегии “белого ящика” и укажите их основной недостаток. Стратегия ‘белого ящика’ основана на анализе логики программы. Существо подхода - в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Тестирование по принципу белого ящика характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы). Методы стратегии ‘белого ящика’: покрытия операторов; покрытия решений (покрытия переходов); покрытия условий; критерий решений (условий); комбинаторного покрытия условий. Существуют следующие недостатки. Недостаток в том, что даже выполнение всех путей не гарантирует соответствия программы ее спецификациям. Допустим, если требовалось написать программу для вычисления кубического корня, а программа фактически вычисляет корень квадратный, то программа будет совершенно неправильной, даже если проверить все пути. Вторая проблема - отсутствующие пути. Если программа реализует спецификации не полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И, наконец, проблема зависимости результатов тестирования от входных данных то есть когда путь может правильно выполняться для одних данных и неправильно для других.

55.Дайте определение и приведите пример нотации.

Под нотацией понимаются правила формализованного описания структуры системы, элементов данных и других ее компонентов с помощью схем, диаграмм, формальных и естественных языков. Например, в качестве миниспецификаций некоторые CASE-технологии используют таблицы решений. Правила построения такой таблицы и представляют собой нотацию.
58. Дайте определение модели жизненного цикла (ЖЦ) программного продукта (ПП). Какие модели ЖЦ ПП Вы знаете? В чем их недостатки? Модель ЖЦ ПП определяет перечень этапов преобразования программа -> программное средство -> программный продукт, порядок выполнения этапов, а также критерии перехода от этапа к этапу. Традиционная модель ЖЦ ПО строится по каскадному принципу, суть которого в том, что переход на следующий этап происходит после окончания предыдущего. Единственным недостатком такой простой модели ЖЦ является то, что на практике очень часто принятые на предыдущем этапе (или на предыдущих этапах) решения приходится пересматривать из-за неверной интерпретации требований заказчика. Другая модель ЖЦ ПП строится по поэтапному принципу с промежуточным контролем. Критерием перехода на следующий этап является готовность документов, о которых было упомянуто выше. Такая модель является более жизнеспособной по сравнению с каскадной моделью, но наличие циклов обратных связей растягивает все этапы ЖЦ ПП на весь период разработки, что, в свою очередь, затрудняет планирование работ по созданию и внедрению программных продуктов. CASE-технология базируется на спиральной модели ЖЦ ПП, суть которой в следующем. Делается упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Все эти этапы выполняются на каждом витке спирали ЖЦ. Каждый виток спирали соответствует некоторому уровню детализации проекта. Каждый следующий виток характеризуется более высокой степенью детализации создаваемого ПО. Каждый виток заканчивается тем, что уточняются цели и характеристики проекта и планируются работы следующего витка спирали. Тем самым реализуется нисходящий принцип проектирования.
59.В чем заключается декомпозиция целей разрабатываемого программного продукта? Какой документ получается в результате декомпозиции целей разрабатываемого ПП? Декомпозиция целей программного продукта заключается в структурировании по схеме: основные цели — подцели 1-го уровня. . . —. . . подцели i-го уровня —. . . . — подцели n-го уровня — функции для пользователя ПО. В результате выполнения декомпозиции целей получают системную архитектуру. СА представляет собой документ, отражающий модульно-иерархическую структуру проектируемого программного продукта с подробным описанием функциональных спецификаций отдельных модулей

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

1. Прочность по совпадению; 2. Прочность по логике; 3. Прочность по классу; 4. Процедурно-прочный модуль;

5. Коммуникационно- прочный модуль; 6. Информационная прочность; 7. Функциональная прочность. Виды сцепления:1. Сцепление по содержимому; 2. Сцепление по общей области; 3. Сцепление по управлению; 4. Сцепление по формату; 5. Сцепление по данным.
61. Какие подходы применяют при тестировании модульных программ? В чем их отличие?


Наиболее распространенным приемом тестирования модульных программ является пошаговое тестирование. На практике применяют две его разновидности:

1. восходящее тестирование; 2. нисходящее тестирование.

Методика восходящего тестирования включает следующие щаги: а) сначала тестируются ‘листья’ дерева структуры программы, т.е. модули Е,C,F. Для их тестирования программируются драйверы. В функции драйвера входит формирование тестовых данных для отлаживаемого модуля и передача ему управления; б) затем аналогично тестируются модули вышележащего уровня совместно с уже оттестированными модулями нижележащего уровня. Применительно к рассматриваемому нами примеру проектируются драйверы для тестирования пар B-E и D-F; в) пошаговый процесс продолжается до тех пор, пока не будет включен в процесс тестирования последний модуль (‘корень’ дерева структуры программы). Для нашего примера это будет модуль А. Для его тестирования совместно с вызываемыми программами нижележащего уровня драйвер разрабатывать не требуется.

Альтернативное нисходящее тестирование состоит из следующих действий: а) тестирование начинается с вызывающего модуля программы (‘корня’ дерева структуры программы). Для модулей нижележащего уровня (вызываемых) программируются так называемые ‘заглушки’; б) после переходят к тестированию нижележащих модулей. Причем, формализованной процедуры подключения к вызывающему модулю нижележащих вызываемых модулей не существует. Единственное ограничение, которым руководствуются при выборе очередного претендента на тестирование, заключается в том, что этот модуль должен вызываться уже оттестированным модулем вышележащего уровня. Если очередной тестируемый модуль вызывает модули еще нижележащего уровня, для нижележащих модулей программируются ‘заглушки’; в) процесс тестирования продолжается до тех пор, пока не будет оттестирован последний модуль из ‘листьев’ дерева структуры программы.
62. Назовите схемы и группы символов, применяемых в схемах ПО согласно ГОСТ. Какие символы не применяются в схемах программ, но применяются во всех других схемах? Схема данных состоит из: -символов данных; -символов процесса, который следует выполнить над данными; -символов линий для указания потоков данных между процессами и (или) носителями данных ; -специальных символов, назначение которых здесь и в других схемах. Символы данных предшествуют и следуют за символами процесса. Схема данных начинается и заканчивается символами данных. Схема программы: отображают последовательность операций в программе. Схема программы состоит из:-символов процесса, указывающих фактические операции; -обработки данных; -линейных символов для указания потока управления; -специальных символов. Схема работы системы: отображают управление операциями и поток данных в системе. Схема работы системы состоит из: -символов данных; -символов процесса, указывающих операции над данными и определяющих логический путь, которого следует придерживаться; -линейных символов для указания потоков данных между процессами и (или) носителями данных, а также потока управления между процессами; -специальных символов. Схема взаимодействия программ: отображают путь активации программ и взаимодействий с данными. Каждая программа показывается только один раз (в схеме работы системы может изображаться более чем в одном потоке управления). Схема взаимодействия программ состоит из: -символов данных; -символов процесса для указания операций над данными; -линейных символов, отображающих поток между процессами и данными и инициации процессов; -специальных символов. Схема ресурсов системы : отображают конфигурацию блоков данных и обрабатывающих блоков, требуемую для решения задачи или набора задач. Схема ресурсов системы состоит из: -символов данных, для отображения входных, выходных и запоминающих устройств ЭВМ; -символов процесса, отображающих процессоры (центральные процессоры, каналы и т.д.); -линейных символов для отображения передачи данных между устройствами ввода-вывода и процессорами, а также и управления между процессорами; -специальных символов. Символы данных применяют во всех видах схем за исключением схем программ. Исключение составляет символ «данные», который также используется и в схемах программ.


63.Что такое редуцирование таблицы решений? Приведите пример. Редуцирование ТР заключается в том, что если есть 2 столбца, у которых перечень действий совпадает, и которые отличаются только результатами условий ‘Д’ и ‘Н’ в одной строке, то такие столбцы могут быть слиты в один.
64. В каком случае представление разреженной матрицы в виде нелинейного списка выгоднее представления в памяти ЭВМ всех элементов матрицы?

Разреженные матрицы – это массивы, большинство элементов которого равны “0”. Для разряженных матриц нет смысла хранить все элементы матрицы, а хранят только ненулевые значения. Подходящей физической структурой такого массива является связный список. В случае когда надо сэкономить память и не захламлять ее ненужными нулями.
65. Приведите схему последовательного выполнения этапов жизненного цикла (ЖЦ) программного продукта (ПП) при традиционной технологии разработки. Традиционная модель ЖЦ ПО строится по каскадному принципу, суть которого в том, что переход на следующий этап происходит после окончания предыдущего . Если по оси ординат отложить этапы ЖЦ, а по оси абсцисс - время, то каскадную модель ЖЦ можно проиллюстрировать так




Эксплуатация и сопровождение
Тестирование и отладка
Программирование
Проектирование
Анализ

1   2   3   4   5


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