- •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. Построение концептуальной модели предметной области
33. Ооп. Структуры
Структура — конструкция большинства языков программирования, позволяющая содержать в себе набор переменных различных типов. В языках семейства Pascal структуры традиционно называют записями.
С внедрением концепции объектно-ориентированного программирования понятие структуры было расширено, в частности была добавлена возможность включения в структуру функций-методов, появились ключевые слова для ограничения доступа к элементам структуры. В результате структура стала очень похожа на классы и интерфейсы, однако в большинстве языков сохранила некоторые отличия от них.
Структуры оказываются полезными при организации сложных данных особенно в больших программах, поскольку во многих ситуациях они позволяют сгруппировать связанные данные таким образом, что с ними можно обращаться, как с одним целым, а не как с отдельными объектами.
35. Основные этапы проектирования программы
Проектирование и последующая поддержка программного обеспечения включает несколько этапов:
Разработка спецификации.
Детально анализируется основная цель разработки программы и составляется подробное описание всех действий, которые она должна выполнять.
Проектирование или конструирование программы.
Построение структуры программы, выбор или разработка всех алгоритмов, которые она будет реализовывать, решение вопросов по организации данных. Здесь эффективным подходом является разделение сложной исходной задачи на некоторые подзадачи.
Доказательство правильности проекта.
При доказательстве правильности проекта в первую очередь необходимо проверить критические части алгоритмов, какими являются циклы и условные переходы. Выявление ошибок на этом этапе позволяет существенно упростить последующие этапы кодирования и отладки программ.
Кодирование.
Описание алгоритмов и данных с помощью инструкций выбранного языка программирования.
Отладка и проверка правильности программ.
Устранение логических ошибок. Основным инструментом здесь являются отладчики, которые позволяют проверить программу в некоторых специальных режимах ее выполнения (пошаговый режим).
Доработка и улучшение программ.
Дорабатываются или изменяются некоторые алгоритмы и модули. Усовершенствование не должно приводить к повторению цикла разработки с самого начала.
Производство окончательного программного продукта.
После завершения программного продукта он передается пользователям.
Поддержка программного продукта в процессе его использования.
Последующая поддержка программного обеспечения сводится к устранению возможных ошибок, выявленных пользователями на этапе эксплуатации. Другая цель поддержки — постепенное улучшение (развитие и модификация) программного продукта.
36. Основные направления в программировании
Императивное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах.
Процедурный язык программирования предоставляет возможность программисту определять каждый шаг в процессе решения задачи. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.
Объектно-ориентированное программирование – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Визуально-событийное программирование – развитие ООП в части работы с особыми классами визуальных объектов.
Функциональное программирование – парадигма программирования, в которой выполнение программы представляет собой вычисление некоторого выражения, описывающего применение функций (в математическом понимании) ко входным данным. В отличие от императивного программирования, где выполнение программы рассматривается как последовательная смена состояний в памяти компьютера (т.е. изменение значений переменных), в функциональном программировании нет понятия переменной и присваивания, функция не имеет явного внутреннего состояния, а оперирует только над входными данными. Из-за этого отсутствуют побочные эффекты, программа становится более простой в отладке, а также допускает более естественное распараллеливание на многоядерных процессорах.
Логическое программирование - парадигма программирования, в которой программы пишутся не в виде последовательности инструкций, а в виде множества фактов и правил, а процесс выполнения программы сводится к выводу нужных результатов из этого множества. Логическое программирование относится к декларативному программированию, поскольку программа на нём скорее описывает свойство задачи, нежели алгоритм её решения.
