- •1. Раскройте содержание предварительного и детального внешнего проектирования по.
- •2. Дайте определение структуры данных.
- •4. Перечислите принципы модульного программирования.
- •5. В чем заключаются восходящий и нисходящий методы проектирования по?
- •6. Какие стратегии тестирования Вы знаете? в чем их отличие?
- •7. Назовите символы, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов.
- •8. В чем отличия нисходящего и восходящего метода тестирования программных модулей?
- •9. Дайте определения полустатических структур данных. Каковы их отличительные особенности?
- •10. Приведите пример структуры данных. Дайте пояснения относительно ее частей.
- •11. Назовите цель и перечислите принципы модульного программирования.
- •12. В чем отличия двумерного массива (матрицы) и таблицы?
- •45. Дайте определение технологии, методологии и метода.
- •14. Опишите этапы отладки и тестирования программ. В чем отличие целей отладки и тестирования?
- •16. Приведите структуры управления (последовательности операторов) в структурном программировании.
- •17. Дайте определения основных типов данных и назовите операции их обработки
- •18.Дайте определение схемы, перечислите схемы, которые используются при документировании по, и их назначение.
- •20. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий?
- •21. На чем основано процедурное программирование и каковы его недостатки?
- •22. Дайте определение структуры данных и приведите пример.
- •23. Назовите основные преимущества case- технологий по сравнению с традиционной технологией проектирования.
- •24. Приведите пример таблицы решений для какой-либо внешней спецификации.
- •25. Дайте определения статических структур данных. Каковы их отличительные особенности?
- •35. Дайте определение и приведите пример линейного односвязного списка.
- •36. Изложите цель и основные этапы реализации метода эквивалентного разбиения.
- •37. Дайте определение и приведите пример линейного двусвязного списка.
- •40. Дайте определение модуля и назовите его основные атрибуты.
- •41. Что такое макетирование программ, каковы его основные достоинства и где этот метод нашел широкое применение?
- •42. Перечислите критерии качества по и приведите их определения. Какие из них являются обязательными для по?
- •43. Перечислите особенности динамических структур данных.
- •44. Назовите последовательность работ при тестировании по. Какой или какие этапы являются наиболее ответственными и почему?
- •46. В чем отличие каскадной и спиральной моделей жизненного цикла по?
- •49.Перечислите основные принципы структурного программирования.
- •55.Дайте определение и приведите пример нотации.
- •61. Какие подходы применяют при тестировании модульных программ? в чем их отличие?
- •64. В каком случае представление разреженной матрицы в виде нелинейного списка выгоднее представления в памяти эвм всех элементов матрицы?
- •67.Приведите компактную структуру в памяти эвм для хранения приведенной ниже матрицы:
- •69. Приведите более быстрый вариант вычисления и мотивируйте его преимущества:
- •70. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •71. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •72. Укажите обратную логическую последовательность содержательных частей двусвязного списка, физическая последовательность записей которых является следующей:
- •73. Укажите логическую последовательность содержательных частей односвязного списка, физическая последовательность записей которых является следующей:
- •74. Приведите компактную структуру в памяти эвм для хранения приведенной ниже матрицы:
- •75. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •76. Укажите обратную логическую последовательность содержательных частей двусвязного списка, физическая последовательность записей которых является следующей:
- •83.Отметьте правильные утверждения относительно массива и таблицы:
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. Поясните определение качества ПО и такого критерия качества, как эффективность. Приведите пример повышения эффективности реализации алгоритма в программе. Качество ПП – это совокупность его черт и характеристик, которые влияют на способность ПП удовлетворять заданные потребности пользователя. Как и в случае технических устройств, показатели качества являются противоречивыми, что означает: улучшение одних показателей качества может быть достигнуто за счет ухудшения других. Качество ПП является удовлетворительным, если количественные показатели свойств гарантируют успешное его использование. Критериями качества ПП являются: функциональность; надежность; легкость применения; эффективность; сопровождаемость; мобильность. Эффективность – это отношение уровня услуг, предоставляемых ПП к объему используемых вычислительных ресурсов. Объем используемых вычислительных ресурсов количественно определяется затратами машинного времени и оперативной памяти на выполнение заданных функций.