Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры вычтех.docx
Скачиваний:
7
Добавлен:
22.09.2019
Размер:
889.22 Кб
Скачать
  1. Классификация языков программирования (универсальные, специализированные, низкого уровня). Языки можно разделить на универсальные или высокого уровня, специализированные (языки БД, создания сетевых приложений, искусственного интеллекта) и низкого уровня (задачи на уровне машинных программ).

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

  3. Тестирование программных продуктов. Принципы повышения качества тестирования. Тестирование – процесс выполнения программы, целью которого является выявление ошибок. Зависимость вероятности правильного исправления и его стоимости зависит от этапа разработки. Этапы тестирования: автономное тестирование компонентов ПО, комплексное тестирование разрабатываемого ПО, системное или оценочное тестирование на соответствие основным критериям качества. Принципы повышения качества: предполагаемые результаты должны быть известны до начала тестирования, избегать тестирования автором программы, досконально изучать результаты каждого теста, проверять действие программы на неверных данных, проверять программу на побочные действия неверных данных.

  4. Тестирование программных продуктов. Ручной контроль программного обеспечения. Инспекция исходного текста – набор процедур и приемов обнаружения ошибок при изучении программы группой специалистов (автор программы, проектировщик, специалист по тестированию и координатор). Участникам выдается листинг, программист рассказывает о программе, программа анализируется по списку вопросов. Сквозные просмотры – листинг раздается заранее, предлагается несколько тестов, участники мысленно выполняют тесты в соответствии с логикой программы и задают вопросы о логике проектирования. Проверка за столом. Оценка программы не связана с тестированием, но позволяет улучшить качество программы.

  5. Тестирование программных продуктов. Структурное тестирование. Функциональное тестирование. Структурное тестирование – это тестирование маршрутами. Маршрут - это последовательность операторов программы, которые выполняются при конкретном варианте исходных данных. Недостатки: не обнаруживает пропущенных маршрутов, не обнаруживает ошибок, зависящих от обрабатываемых данных, не дают гарантии правильности программы. Тестовые наборы формируются: покрытие операторов, покрытие решений (результат проверки каждого решения принимает истина/ложь хоть раз), покрытие условий (все возможные рез-ты каждого условия выполняются в решении хоть раз), покрытие решений/условий, комбинаторное покрытие условий. При функциональном тестировании программа рассматривается как черный ящик, целью тестирования является выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Методы формирования тестовых наборов: эквивалентное разбиение, анализ граничных значений, анализ причинно-следственных связей, предположение об ошибке.

  6. Тестирование программных продуктов. Тестирование модулей и комплексное тестирование. Оценочное тестирование. Применяется восходящее (каждый модуль тестируется отдельно, затем модули собираются в модули более высокой степени интеграции и тестируются) и нисходящее (автономно тестируется основной модуль, а вызываемые модули имитируются заглушками). Комплексное тестирование – тесты по методам эквивалентных классов, граничных условий и предположений об ошибке. Оценочное тестирование включает в себя: тестирование удобства использования, эксплуатации, тестирование на предельных объемах, нагрузках, тестирование защиты, производительности.

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

  8. Отладка программного обеспечения. Методы отладки программного обеспечения. Метод ручного тестирования – при обнаружении ошибки необходимо выполнить тестирующую программу вручную, используя тестовый набор, при работе с которым была обнаружена ошибка. Метод индукции (от частного к общему) основан на анализе симптомов ошибки. В первую очередь выдвигаются гипотезы об ошибках, каждую из которых проверяют, если гипотеза верна, то детализируют информацию об ошибке, иначе выдвигают другую гипотезу. Метод дедукции, сначала формируется множество причин, которые могли бы вызвать данное проявление ошибки, затем, анализируя причины исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае выдвинутую гипотезу пытаются доказать, если гипотеза объясняет полученные признаки ошибки, то ошибка найдена. Метод обратного прослеживания начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могли привести к получению имеющегося результата. Далее, исходя из этой гипотезы, делают предположение о значениях переменных в предыдущей точке. И так продолжается, пока не будет найдена ошибка.

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

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

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

  12. Проектирование программного обеспечения. Функциональное программирование. В функциональном программировании программа представляет собой не набор команд и инструкций для компьютера, а совокупность функций, вызывающих друг друга, часто опосредственно самих себя. Каждый вызов возвращает некоторое значение вызвавшей его функции. Вычисление продолжается до тех пор, пока не произойдет возвращение в функцию, которая вызвала и запустила всю программу. Эта функция возвращает результат пользователю. Свойства функциональных языков: краткость и простота, строгая типизация, модульность, функции являются значениями, чистота (отсутствие побочных эффектов), отложенные вычисления. Минусы: нелинейная структура программы, невысокая эффективность реализации. Классический язык: LISP.

  13. Проектирование программного обеспечения. Логическое программирование. Логическое программирование – это программирование в терминах фактов и правил вывода с использованием языка основанного на исчислениях, основывается на том, что не человека надо обучать компьютерному мышлению, а наоборот. Согласно логическому подходу к программированию, программа представляет собой совокупность правил или логических высказываний, кроме этого в программе присутствуют логические причинно-следственные связи. Преимущество такого программирования – высокий уровень машинной независимости. Язык PROLOG. Недостатки: специфичность класса решаемых задач, сложность эффективной реализации для принятия решений а реальном времени.

  14. Структуры данных. Массив, множество.

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

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

Вообще, массив – однородный, упорядоченный структурированный тип данных с прямым доступом к элементам.

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

Множество — одно из ключевых понятий математики, в частности, теории множеств и логики.

Понятие множества обычно принимается за одно из исходных (аксиоматических) понятий, то есть не сводимое к другим понятиям, а значит, и не имеющее определения. Множество может быть замкнутым и незамкнутым, полным и пустым, упорядоченным и неупорядоченным, счётным и несчётным, конечным и бесконечным. Объекты, из которых состоит множество, называют элементами множества или точками множества. Множества чаще всего обозначают заглавными буквами латинского алфавита, его элементы — строчными. Если а — элемент множества А, то записывают а ∈ А (а принадлежит А). Если а не является элементом множества А, то записывают а ∉ А (а не принадлежит А). В отличие от мультимножества каждый элемент множества уникален, и в множестве не может быть двух идентичных элементов.

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

  2. Структуры данных. Деревья. Деревом называется конечное множество, состоящее из одного или более элементов, называемых узлами, таких, что: между узлами имеет место отношение типа "исходный-порожденный"; есть только один узел, не имеющий исходного(корень); все узлы за исключением корня имеют только один исходный; каждый узел может иметь несколько порожденных; отношение "исходный-порожденный" действует только в одном направлении, т.е. ни один потомок некоторого узла не может стать для него предком. Число порожденных отдельного узла (число поддеревьев данного корня) называется его степенью. Узел с нулевой степенью называют листом или концевым узлом. Максимальное значение степени всех узлов данного дерева называется степенью дерева.

  3. Алгоритмы сортировки. Метод «Пузырька». Сортировка вставками. Сортировка разделением. Метод «пузырька»: состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При сортировке вставками на каждом шаге алгоритма выбирается один из элементов входных данных и вставляется на нужную позицию в уже отсортированном списке, до тех пор пока набор входных данных не будет исчерпан.

Сортировка разделением (Быстрая сортировка):1) выбрать элемент, называемый опорным; 2) сравнить все остальные элементы с опорным, на основании сравнения разбить множество на два — «меньшие опорного», и «равные и большие», расположить их в порядке меньшие - равные – большие; 3)повторить рекурсивно для «меньших» и «больших».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]