- •Алгоритмические основы программной инженерии
- •1 Семестр вопросы и ответы
- •1 Вопрос. Кризисная история развития программного обеспечения: необходимость повторного использования кода, рост сложности по, модификация по.
- •Необходимость повторного использования кода
- •Функциональное программирование. Достоинства и недостатки
- •2 Вопрос. Этапы разработки программного обеспечения. Состав технического задания.
- •Модели процесса разработки программного обеспечения
- •Каскадная модель
- •Итеративная модель rup
- •Гибкий цикл agile
- •Итеративная модель xp
- •Спиральная модель
- •3 Вопрос. Проектирование и алгоритмизация программы. Свойства алгоритма.
- •4 Вопрос. Понятие и определение сложности алгоритма.
- •5 Вопрос. Кодирование, тестирование и отладка программы.
- •Концепция xp: программирование в паре.
- •Тестирование и отладка.
- •6 Вопрос. Доработка и сопровождение программного продукта.
- •7 Вопрос. Модели жизненного цикла по. Экстремальное программирование (xp).
- •Концепция xp
- •11. Взаимодействие с заказчиком.
- •Если требования проекта могут быть сформулированы достаточно исчерпывающим образом, то имеет смысл прибегать к более надежной стратегии разработки.
- •8 Вопрос. Унифицированная концепция (rup) разработки по: фазы, операции. Определение требований в uml-формате.
- •9 Вопрос. Унифицированная концепция (rup) разработки по: анализ и проектирование. Понятие класса, типы и примеры классов, uml-диаграммы.
- •Стратегия rup Rational Unified Process
- •1. Определение требований.
- •3. Реализация.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы компонентов
- •4. Внедрение.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы развертывания
- •10 Вопрос. Состав и функционал системного программного обеспечения.
- •Операционная система (ос)
- •Система управления файлами (суф)
- •Интерфейсная оболочка для взаимодействия пользователя с ос и операционными средами
- •Системы программирования
- •Трансляторы
- •Утилиты
- •11 Вопрос. Классификация языков программирования.
- •Не существует общепринятой систематичной таксономии языков программирования. Поколения языков
- •Функциональная классификация языков программирования
- •12 Вопрос. Определение ядра операционной системы.
- •13 Вопрос. Классификация операционных систем по функциональности.
- •Системы пакетной обработки
- •Системы разделения времени
- •Системы реального времени
- •14 Вопрос. Определение задачи. Преимущества и недостатки процессов и потоков.
- •15 Вопрос. Свойства задач.
- •16 Вопрос. Механизмы диспетчеризации (планирования) задач.
5 Вопрос. Кодирование, тестирование и отладка программы.
——————————————————————————
Структурированная программа (разбитая на фрагменты) с соответствующим набором технических заданий передается на стадию кодирования (т. е. на стадию реализации алгоритмов на языках программирования).
Кодирование — процесс написания программного кода, скриптов, с целью реализации определённого алгоритма на определённом языке программирования.
Концепция xp: программирование в паре.
Программная реализация каждого фрагмента выполняется кодерами. Один занимается кодированием, другой анализирует работу первого, оценивая выборные алгоритмы и их реализацию, предлагая более эффективные решения, отслеживая качество кода и т. д.
Тестирование и отладка.
После переложения алгоритмов на языки программирования, наступает этап тестирования.
Тестирование — этап, на котором программа (фрагмент) посредством запуска и анализа её (его) работы проходит проверку на корректность выполнения возложенных на неё (него) функций. Для этого предварительно составляются тесты, включающие в себя входные и выходные данные, которые должны им соответствовать.
Если программа по каким-либо причинам не выдает определенный в тесте результат, то фиксируется ошибка. При наличии ошибки выполняется отладка, детализация ошибки и её исправление. Если тестируемый фрагмент обращается к другим, ещё не проверенным фрагментам, то вместо них ставятся заглушки.
Заглушка. Алгоритм прохождения заменяется установкой фиксированных входных и выходных данных, что позволяет имитировать его работоспособность.
Процесс тестирования считается одним из наиболее трудоемких этапов разработки ПО и может составлять от 30 до 50% общего времени разработки продукта.
Для сокращения затрат (для тестирования и отладки) в настоящее время широко применяются специальные программные средства. Например, генераторы тестовых данных, специальные приемы отладки (методы трассировки, т. е. выполнение программы по шагам), позволяющие определять, все ли фрагменты были задействованы при решении задачи с исходным набором данных; применяются методы профилирования, позволяющие оценить время выполнения всех интересующих методов, реализованных в коде.
——————————————————————————
6 Вопрос. Доработка и сопровождение программного продукта.
——————————————————————————
При реализации сложных и ответственных программных комплексов этап эксплуатации программы по согласованию с заказчиком (пользователем) может быть разбит на два этапа:
1. Экспериментальная (опытная) эксплуатация. Смысл во внедрении разрабатываемых программных средств на объект заказчика с целью проверки их работоспособности и удобства использования пользователями при решении реальных задач в течении достаточно длительного периода времени.
2. Промышленная эксплуатация. По своей инициативе разработчики повышают качество своего продукта, в том числе исправляя обнаруженные дефекты или недочеты, о которых становится известно из общения с пользователями. Кроме того, возможно обновление программного продукта в связи с расширением его функциональных возможностей. Такого типа работы называют доработкой и сопровождением программ.
Сопровождение (поддержка) программного обеспечения — процесс улучшения, оптимизации и устранения дефектов программного обеспечения (ПО) после передачи в эксплуатацию.
——————————————————————————