- •1. Проблемы разработки по и пути их решения.
- •2. Характеристики качества по, важные для пользователя. Факторы, влияющие на качество по.
- •3. Временной и «пространственный» аспекты системного подхода к разработке по.
- •5. Конструирование по и внутренние критерии качества по, важные для разработчика.
- •6. Стандарты по разработке по. Два вида стандартов, их значения, требования стандартов.
- •7. Три группы процессов создания по.
- •8. Жизненный цикл по и процессы верификации.
- •9. Тестирование, верификация, валидация и V-образная модель жизненного цикла по.
- •11. «Тяжёлые и быстрые» технологии разработки по. Экстремальное (xp) программирование.
- •12. Три вида программных разработок с точки зрения конструирования, технологии создания и эксплуатации. Сравнение методов планирования, конструирования, отладки и т. П.
- •13. Виды документов, выпускаемых на по, по этапам разработки системы.
- •16. Case технологии разработки по. Проблемно ориентированные технологии разработки по. Пакеты scada.
- •18. Структура системы, иерархия управления и структура по.
- •19. Цикличность (периодичность) во времени решения задач управления и работы.
- •20. Временная диаграмма работы системы и по.
- •1. Кризис программного обеспечения (по). Проблемы и цели программной инженерии. Определение инженерии по.
- •2. Что такое по. Типы программных продуктов, их отличие друг от друга.
- •3. Характеристики качественного по.
- •5. Профессиональные и этические требования к специалистам по программному обеспечению.
- •2. Функциональная схема типового процессора.
- •4. Состав, устройство и принцип действия основной памяти.
- •5. Конструкция устройств ввода-вывода информации.
- •6. Принцип действия цифровых комбинационных устройств.
- •8. Многомашинные и многопроцессорные вс. Классификация Флинна.
- •10. Прямой, обратный и дополнительный коды двоичных чисел.
11. «Тяжёлые и быстрые» технологии разработки по. Экстремальное (xp) программирование.
«Быстрые технологии» или Agile Software Development – это такой подход к разработке ПО, который предназначен для создания проектов, которые заранее плохо определены, либо находятся в быстро изменяющихся условиях. Agile технологии базируются на четырёх основных идеях:
взаимодействие индивидуумов важнее формальных процедур и инструментов;
работающее ПО важнее наличия документации к нему;
сотрудничество с заказчиком важнее формальных договоров с ним;
быстрое реагирование на внешние изменения важнее строгого следования намеченным планам.
Применение Agile уменьшает количество бумаг, которые сопровождают разработку в классическом строгом варианте, но это приводит к невысокой надёжности программного продукта, из-за снятия части юридической ответственности за разработку. В связи с этим, быстрые технологии не подойдут для разработки критических систем, где важна максимальная надёжность и полная прогнозируемость. Такие технологии, обеспечивающие структурированную, последовательную, поэтапную разработку, называются «Тяжёлыми». Классическим примером тяжёлой технологии будет каскадная модель ЖЦ. Ещё одной отличительной особенностью тяжёлой технологии будет возможность найма разработчиков среднего уровня экспертизы, так как в строгой последовательности разработки с чёткой документацией и определённой дисциплине они будут способны разрабатывать ПО требуемого качества.
Примером быстрой agile технологии является «Экстремальное программирование» (XP). Оно заключается в выполнении очень короткий итераций, которые состоят из четырёх самых базовых стадий: выслушивание заказчика, проектирование, кодирование, тестирование. Принципы XP трактуют простоту создания продукта, короткие циклы разработки, тесные взаимодействия разработчиков, частые оперативные совещания с заказчиком. Эта и другие «облегчённые» технологии очень распространены и действительно часто приводят к успеху, максимально используя особенности работы небольших коллективов, которые состоят из ответственных и опытных разработчиков.
12. Три вида программных разработок с точки зрения конструирования, технологии создания и эксплуатации. Сравнение методов планирования, конструирования, отладки и т. П.
Программные разработки можно разделить на три вида:
Индивидуально создаваемые программы для решения частных задач: бизнес системы, интернет-сайты, системы управления материально-техническим снабжением и так далее. Они работают вне реального времени, в интерактивном режиме.
Сложные программы типа информационно поисковых систем и СУБД. Отличаются масштабностью по сравнению с простыми индивидуальными программами.
Сложные программы, обеспечивающие работу сложных технических систем (СТС) в реальном времени, исполняемые в автоматическом режиме из встроенной в систему ЦВМ, либо сети ЦВМ.
Технологии создания этих видов ПО сильно отличаются друг от друга. В первую очередь это касается распределения времени на отдельные этапы работы. Если для сложных программ реального времени требуется большой выделенный этап проектирования и небольшой этап (<10%) непосредственно программирования, то для простых программ кодирование составляет 60–80% разработки, перемешанной с проектированием.
Соответственно меняется характер отладки программ. Простые программы могут отлаживаться неудовлетворительно, так как их ошибки не носят катастрофического характера. Для сложных систем вводится отдельный контроль отладки с чётким его планом и документацией, используются моделирующие систему среды.
Программы второго типа являются большими системами, которые требуют структурного разбиения при проектировании и большой организованной команды. Их продукт зачастую покупают и используют обычные пользователи. Появляется план отладки, так как ошибки могут повлечь к коммерческим потерям.
Технология создания программ третьего типа наиболее сложна, требует моделирования системы и её ПО, а также особые инструментальные средства. Стоимость одной строки такого ПО для космического аппарата Шаттл составляет около 1000$, тогда как стоимость одной строки для ПО первого вида может составлять 5$.
|
Небольшие программы для частных проблем |
Сложные информационно-справочные системы и системы обработки информации |
Встроенное ПО для критических систем, как правило работающее в реальном времени |
Модели ЖЦ |
Спиральная модели, XP, методология SCRUM |
Спиральная или каскадная модель |
Каскадная модель |
Планирование и управление разработкой |
По мере надобности |
Базовое заблаговременное планирование, контроль над изменениями |
Исчерпывающее планирование и контроль над изменениями |
Требования к ПО |
Неформальная спецификация требований |
Полуформальная спецификация требований |
Формальная спецификация требований |
Методы и характер проектирования |
Совместно с кодированием |
Проектирование архитектуры. Неформальное детальное проектирование структурных элементов |
Проектирование архитектуры, формальное документирование всех процессов, формальные инспекции проекта |
Конструирование |
Парное или индивидуальное программирование |
Командное программирование, код ревью |
Ко всему прочему процедуры регистрации кода |
Тестирование и отладка |
Разработчики тестируют свой код. Предварительная разработка тестов |
Тестируют код разработчики и отдельная группа тестировщиков |
Ко всему прочему использование динамической модели внешней среды при тестировании |