
- •Вопрос 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. Динамическая модель.
ТЕОРИТИЧЕСКАЯ ЧАСТЬ
Вопрос 1. Понятие технологии программирования.
Технология программирования – это набор правил, методик, инструментов, позволяющих наладить производственный процесс выпуска какого-либо продукта. Разумеется, это определение не является полным. Надо упомянуть процессы планирования, измерения, оценки качества, ответственность исполнителя и многое другое.
В ТП входит:
1. архив с контролируемым доступом (для предотвращения внесения изменений в последний момент (пусть даже и из лучших побуждений), для отчуждения «программы от её автора»)
2. Машинная документация (на машинном носителе) – должна быть актуальна, должны оперативно вноситься исправления
3. Использование инструментальных средств. (в частности программы можно писать и отлаживать на инструментальных ЭВМ, а уже затем транслировать под целевые – тогда возможна параллельная разработка)
4. Соглашение о связях (напр. все рассматривают стек слева направо, возвращают значение через регистр R10 (даже если напр. кто-то вдруг выяснит, что через R7 быстрее), каждая процедура должна сохранять регистры…).
//Нельзя всё сводить только к программному инструментарию.
Вопрос 2. Жизненный цикл программы.
Наша задача, чтобы цикл был конечный.
Первая модель – водопадная (waterfall)(не возвращаемся к предыдущему этапу):
Постановка
Планирование (люди, ресурсы)
Проект (структура, связи)
Реализация
Отладка
Документирование
Сдача
Сопровождение
Коллектив последовательно разрабатывает проект – от исходной концепции до комплексного тестирования. Эта модель требует определить опорные точки, в которых будет оцениваться сделанное и решаться вопрос о том, можно ли двигаться дальше (Так называемая оценка рисков). Такой подход хорош для проектов, в которых требования легко формулируются с самого начала, но не годится для сложных, когда требования могут неоднократно меняться. Кроме того, водопадная модель вынуждает готовить огромную массу документации и требует единообразной процедуры оценки результатов на каждом этапе. Эти две особенности часто приводят к синдрому "аналитического паралича", напряжённым отношениям между разработчиками, заказчиками и пользователями.
Циклическая модель с возвратами (если что-то не устраивает, возвращаемся к предыдущим этапам).
Спиральная модель: разработка приложения выглядит как серия последовательных итераций. На первых этапах уточняются спецификации продукта, на последующих добавляются новые возможности и функции. Цель этой модели – как можно раньше выявить риски и уже в первых версиях продукта устранить связанные с ними проблемы. В силу своей итеративной природы спиральная модель допускает корректировки по ходу работы, что способствует улучшению продукта. При большом числе итераций разработка по этой модели нуждается в глубокой автоматизации всех процессов, иначе она становится неэффективной. На практике у заказчиков и пользователей иногда возникает ощущение нестабильности продукта, так как они не успевают уследить за слишком быстрыми изменениями в нём. Наконец, во многих проектах, управляемых по спиральной модели, нет чётко определённого критерия окончания работы, поэтому разработка может длиться бесконечно, поглощая финансовые ресурсы и не давая желаемой отдачи.
Обычно также используют быстрое прототипирование: создаётся начальный прототип с реализованными основными функциями, и показывается заказчику. Если последнего все устраивает, то потом из прототипа строится продукт. Данная модель позволяет уточнить постановку задачи.