- •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. Построение концептуальной модели предметной области
12. Основные этапы развития программирования как науки.
I этап. Стихийное программирование (от начала появления ЭВМ до середины 60-х гг ХХ века).
С появлением языков программирования стало возможным использовать подпрограммы. Появились библиотеки расчётных и служебных подпрограмм, которые можно было вызывать из любой разрабатываемой подпрограммы. Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм.
Недостаток: с увеличением количества подпрограмм возможно искажение данных в основной программе. Появление локальных и глобальных данных в подпрограммах.
II этап. Структурное (модульное) программирование
Структурный подход к программированию (60 гг) представляет собой совокупность рекомендованных технологических приёмов, охватывающих выполнение всех этапов разработки ПО. В основе структурного подхода лежит разбиение сложной системы на небольшие подпрограммы. В 60-70 гг развивалось структурное программирование, основанное на программировании сверху вниз. Эта задача стала возможной в связи с появлением структурных языков.
Дальнейший рост сложности и размеров ПО потребовал развития структурированных данных.
Для того, чтобы уменьшить доступ к глобальным данным и организовать работу с локальными переменными, стало развиваться модульное программирование.
Модульное программирование предполагает выделение группы подпрограмм, которые используют одни и те же данные в отдельно компилируемые модули. Технологию модульного программирования поддерживают все современные языки программирования.
III этап. Объектный подход к программированию (середина 70-х гг – конец 90-х гг).
Объектно-ориентированное программирование определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств и методов. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.
Основной идеей ООП является инкапсуляция - вынесение данных и обрабатывающего их кода в отдельную сущность, называемую объектом.
Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является«более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку.
Недостаток: отсутствие стандартов компоновки двоичных результатов компиляции объектов в единое целое.
IV этап. Компонентный подход и case-технологии (середина 90-х гг – настоящее время).
Компонентный подход предполагает построение ПО из отдельных компонентов, взаимодействующих между собой через стандартизированные двоичные интерфейсы. Компонентный подход лежит в основе технологий, разработанных на базе COM.
13. Понятие case – технологии и ее фундаментальные принципы. Основные составляющие case-технологии.
CASE – технологии – программный комплекс, автоматизирующий весь процесс анализа, проектирования разработки, сопровождения сложных программных систем.
CASE-технология представляет собой методологию проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех этапах разработки и сопровождения ИС и разрабатывать приложения в соответствии с потребностями пользователей. Большая часть CASE-средств использует методологию структурного (в основном) или ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств.
Преимущества CASE-технологии по сравнению с традиционной технологией оригинального проектирования сводятся к следующему:
• улучшение качества разрабатываемого программного приложения за счет средств автоматического контроля и генерации;
• возможность повторного использования компонентов разработки;
• поддержание адаптивности и сопровождения ЭИС;
• снижение времени создания системы, что позволяет на ранних стадиях проектирования получить прототип будущей системы и оценить его;
• освобождение разработчиков от рутинной работы по документированию проекта, так как при этом используется встроенный документатор;
• возможность коллективной разработки ЭИС в режиме реального времени.
CASE-средства не обязательно дают немедленный эффект; он может быть получен только спустя какое-то время; реальные затраты на внедрение CASE-средств обычно намного превышают затраты на их приобретение; CASE-средства обеспечивают возможности для получения существенной выгоды только после успешного завершения процесса их внедрения.
Обычно к CASE-средствам относят любое программное средство, автоматизирующее ту или иную совокупность процессов жизненного цикла ПО и обладающее следующими особенностями:
• мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;
• интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки информационной системы;
• использование специальным образом организованного хранилища проектных метаданных (репозитория).
Интегрированное CASE-средство (или комплекс средств, поддерживающих полный жизненный цикл ПО) содержит следующие компоненты:
репозиторий, являющийся основой CASE-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость;
графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели информационной системы;
средства разработки приложений, включая языки 4GL (4GL – четвёртого поколения) и генераторы кодов;
средства конфигурационного управления;
средства документирования;
средства тестирования;
средства управления проектом;
средства реинжиниринга.