
- •Вопрос 1. Понятие технологии программирования.
- •Вопрос 2. Жизненный цикл программы.
- •Реализация
- •Вопрос 3. Постановка задачи. Оценка осуществимости.
- •Вопрос 4. Планирование.
- •Вопрос 5. Управление.
- •Вопрос 6. Тестирование и обеспечение качества.
- •Вопрос 7. Групповая разработка, управление версиями.
- •Вопрос 8. Организация коллектива разработчиков.
- •Вопрос 9. Документирование.
- •Вопрос 10. Сопровождение.
- •Вопрос 11. Управление качеством. Стандарты iso 9000, cmm, spice.
- •Вопрос 12. Case-средства.
- •Use case (описание словами всех интерфейсов – случаев использования). Диаграмма функций
- •Диаграмма объектов.
- •Диаграмма классов.
- •Конвертер из sdl в объектный программный код
- •Вопрос 13. Реинжиниринг программных систем.
- •Часть II. Технология программирования встроенных систем реального времени
- •Вопрос 14(1). Понятие встроенной системы реального времени.
- •Вопрос 15(2). Инструментальная и целевая эвм.
- •Вопрос 16(3). Комплекс вычислительных средств, сбои и отказы.
- •Вопрос 17(4). Работы с временными интервалами.
- •Вопрос 18(5). Организация вычислительного процесса.
- •Вопрос 19(6). Технология rtst.
- •Вопрос 20(7). Технология Real. Статическая модель.
- •Вопрос 21(8). Технология Real. Динамическая модель.
Конвертер из sdl в объектный программный код
Почему сложно: посылка-приём сообщения ~ 300 команд.
Удалось найти сужение, основываясь на ограничениях (переходы короткие, есть только 20% критичных объектов, можно локализовать данные), т.е. учитываем специфику предметной области. Применяется не свёртка-развёртка. Есть только один объект – ФПО (функциональное ПО), остальные объекты – вызов процедуры (~ 30 команд).
Вопрос 13. Реинжиниринг программных систем.
Есть работающая программа, но как она работает, никто не знает.
Реинжиниринг – преобразование.
Реинжиниринг – существенно более общее понятие, чем программирование.
Реинжиниринг похож на трансляцию. Но в отличие от трансляции занимается инфраструктурными преобразованиями:
ввод-вывод (раньше перфокарты, магнитные ленты)
диалог с человеком
работа с базами данных
Бывает, что просто один фрагмент заменяется другим. Но чаще приходится обращаться к инфраструктурным особенностям программы (приходится менять что-то до, что-то после текущей позиции).
Реинжиниринг программного обеспечения – процесс преобразования старых программ на старых языках со старых платформ в эквивалентные на новых языках на новые платформы.
Иногда реинжиниринг подразумевает извлечение только необходимой функциональности.
Пример автоматизированных средств реинж. – «Modernization WorkBench» и «RescueWare».
Часть II. Технология программирования встроенных систем реального времени
Вопрос 14(1). Понятие встроенной системы реального времени.
Встроенная система реального времени – программно-аппаратная система, в которой компьютер управляет оборудованием в режиме реального времени.
Встроенные системы: мобильные телефоны, ракеты, различная бытовая техника.
Масштаб времени может быть разным: телефония ~ 10 мс, ядерный взрыв ~ мкс, нс.
Особенности встроенных систем реального времени:
система должна быть надёжной
гарантия по времени обслуживания
распределенное управление
эффективность (оптимизация)
человеко-машинный интерфейс (психология, эргономика)
работа с базами данных
Время обслуживания: система должна работать очень быстро, требования жесткие.
Пример: телефонная станция. Можно ввести прерывания – при смене состояния каждого абонента (поднял трубку, положил…), а лучше сделать сканирование: делаем два битовых массива для состояния поднятия трубки и каждые 10 мс проходим по одному из них (второй содержит результаты предыдущего сканирования) – если состояние изменилось, то выполняем соответствующие действия.
Надежность: можно достигнуть путем дублирования. Теорема Котельникова: можно сделать сколь угодно надёжную систему из сколь угодно ненадёжных элементов.
Пример: Проц1, проц2, проц3- память1,память2,память3. Если в какую-то память один из процессоров хочет записать не тот результат, который хотят двух других, и так, к примеру, 3 раза, то очевидно, что он сломался и его надо заменить.
Пример встроенной системы реального времени – станция правительственной связи «ФОБОС К» (но основе троированного Самсона):
"Самсон"
– троированный. Является устройством,
имеющим больший уровень надёжности,
чем все остальные.
Если что-то не работает (аппаратная синхронизация):
проверить, не сломалась ли сеть (для этого послать групповое сообщение)
обнаружив неисправный узел, протестировать его
ремонт
вернуть узел на место (постепенное выравнивание памяти)
Постепенное выравнивание памяти
Все приходящие заказы помещаются в список. С другого конца списка эти заказы исполняются. Когда происходит подключение второй половины, запоминается последний пришедший заказ. С этого момента вторая половина только принимает заказы, но не исполняет их. Дождавшись, когда первая половина исполнит запомненный заказ, обе половины начинают работать вместе (теперь у них одинаковые списки заказов).
Если падают РМО (программная синхронизация):
УВК всегда посылает данные на два РМО (основной и резервный). Таким образом, гарантируем, что пользователь потеряет не более одной команды. Единственный плохой случай, когда упало во время работы с базой данных.