- •1. Методы создания программных средств. Основные направления.
- •2. Различия программирования и разработки.
- •3. Виды программ, программной и эксплуатационной документации по еспд.
- •4. Понятие о классификации технологий разработки программного обеспечения.
- •5. Постановка задачи.
- •6. Выбор и обоснование метода решения.
- •7. Понятие и основные модели жизненного цикла программного продукта.
- •Спиральная модель жизненного цикла программного продукта, ее достоинства и недостатки.
- •9. Перечень, содержание и приемы выполнения работ на этапе разработки программного продукта.
- •10. Определение основных понятий программирования: алгоритм, программа, абстракция, операторная схема, оператор языка программирования, оператор перехода, цикл, программный модуль.
- •11. Технологии программирования. Основные понятия.
- •12. Основные этапы развития программирования как науки.
- •13. Понятие case – технологии и ее фундаментальные принципы. Основные составляющие case-технологии.
- •14. Система стандартов iso 9001.
- •15. Управление конфигурацией. Case-системы.
- •16. Понятие технологии программирования
- •17. Этапы решения задачи на эвм
- •18. Основные положения решения задач на эвм
- •19. Разработка технического проекта
- •20. Виды языков программирования (по поколениям используемого исходного кода, по проблемной ориентации языка)
- •21. Структурное программирование
- •22. Нисходящее проектирование
- •23. Восходящее проектирование
- •24. Проектирование, разработка и сопровождение информационных систем
- •25. Системный анализ предметной области
- •26. Подготовка документации на программные средства в соответствии с госТами
- •27. Модульное программирование
- •Прочность по совпадению.
- •28. Организация связей между модулями
- •29. Коллективная работа по созданию программного обеспечения
- •30. Программная инженерия: назначение, основные принципы и понятия
- •31. Метод программной инженерии
- •32. Введение в объектно-ориентированное программирование(ооп).
- •33. Ооп. Структуры
- •35. Основные этапы проектирования программы
- •36. Основные направления в программировании
- •38. Основные этапы технологического процесса разработки программ
- •39. Разработка технического задания на программную систему. Функциональные требования
- •40. Пояснительная записка
- •41. Качество программного изделия
- •42. Стиль программирования
- •43. Тестирование программного обеспечения. Основные принципы разработки тестов для программных продуктов. Особенности тестирования объектно - ориентированных программ.
- •44. Основные понятия и определения теории тестирования. Подходы к тестированию. Стратегии тестирования. Критерии тестирования.
- •45. Способы тестирования программ, состоящих из модулей (блоков).
- •46. Два критерия полноты тестирования. Причины появления второго критерия.
- •47. Отладка программы. Программные ошибки. Категории программных ошибок.
- •48. Методы отладки программного обеспечения
- •49. Критерии черного ящика.
- •Методы стратегии чёрного ящика:
- •50. Критерии белого ящика
- •51. Минимально грубое тестирование
- •52. Модели надежности программных систем
- •53. Измерения и оценка качества программного обеспечения
- •54. Динамическая модель Шумана
- •56. Статические модели надежности
- •57. Модель Миллса
- •58. Простая интуитивная модель
- •59. Модель Коркорэна
- •60. Типы пользовательских интерфейсов и этапы их разработки
- •61. Пользовательская и программная модели интерфейсов
- •62. Пользовательские интерфейсы прямого манипулирования и их проектирование
- •63. Классификации диалогов и общие принципы их разработки
- •64. Каскадная модель жизненного цикла программного продукта. Ее достоинства и недостатки.
- •72. Построение концептуальной модели предметной области
25. Системный анализ предметной области
Системный анализ - научный метод познания (этап проектирования), представляющий собой последовательность действий по установлению структурных связей между элементами исследуемой системы (технической, математической, экономической...). Он проводится для последующего управления этой системой: планирования, настройки, выявления неэффективных связей... Эффективность этого зависит от структуры решаемых проблем, которые бывают количественно хорошо сформулированными, качественно выраженными или смешанными.
26. Подготовка документации на программные средства в соответствии с госТами
27. Модульное программирование
Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемых модулях.
Модуль обладает тремя основными атрибутами:
выполняет одну или несколько функций;
реализует некоторую логику;
может использоваться в одном или нескольких контекстах.
Функция – то, что делает модуль; логика – как используется эта функция.
Принципы модульного программирования позволяют получать программные комплексы минимальной сложности. Эти принципы следующие:
усиление внутренних связей в каждом модуле (повышение прочности модуля);
ослабление взаимосвязи между модулями (ослабление сцепления модулей).
Для качественной характеристики модулей введены семь классов прочности и пять видов сцепления модулей.
Класс прочности является мерой связи предложений внутри модулей.
Прочность по совпадению.
Прочность по логике. При каждом вызове выполняется некоторая функция из набора функций модуля. Требуемая в конкретный момент функция вызывается соответствующим модулем. Модули, связанные по логике, вынуждены использовать один и тот же интерфейс.
Временная связность. Модуль выполняет несколько функций, отнесённых разработчиком к одному классу потому, что они необходимы в один и тот же период работы системы.
Процедурно прочный модуль (процедурная связность). Такой модуль состоит из элементов, реализующих независимые действия, для которых задан порядок передачи управления. Зависимости по данным между модулями нет.
Коммуникативная связность – процедурно прочный модуль, в котором все функции модуля связаны по данным.
Информационная прочность. Модуль выполняет несколько функций над одной и той же структурой данных. Результаты одного обработчика служат исходными данными для другого обработчика. Информационно прочные модули обладают хорошей сопровождаемостью, но объединение действий с одной структурой данных в не всегда оправдано.
Функциональная прочность. Модуль выполняет одну функцию – то, к чему следует стремиться при проектировании модульной структуры.
Сцепление модулей является мерой зависимости модулей по данным и определяется как способом передачи данных между модулями, так и свойствами передаваемых данных.
Виды сцепления:
Сцепление по содержимому. Модуль ссылается на данные другого модуля и вызывающий модуль, обращаясь к внутренним компонентам вызываемого модуля, не только передаёт управление, но и изменяет внутренние данные вызываемого модуля (содержание вызываемого модуля должно учитываться при разработке вызывающего).
Сцепление по общей области. Модули ссылаются на одну и ту же глобальную структуру данных.
Сцепление по управлению. Один модуль управляет работой другого модуля. При этом в вызываемый модуль передаётся значение управляющей переменной. Предполагается, что вызывающий модуль знает логику работы вызываемого модуля.
Сцепление по формату (образцу). Модули ссылаются на одну и ту же структуру данных.
Сцепление по данным. Передаются параметры из одной программы в другую.
При разработке модульной структуры ПО следует стремиться к усилению связей в модулях и ослаблению их взаимодействия. Оценка приемлемости программного модуля осуществляется по следующим параметрам:
размер модуля (от нескольких десятков до нескольких сотен операторов);
прочность модуля и сцепление с другими модулями;
рутинность модуля.