
- •2.1. Сложность программного обеспечения
- •2. Перечислите основные причины сложности программного обеспечения.
- •3. Перечислите пять признаков сложной системы.
- •4. Объясните следующие понятия: «декомпозиция», «абстракция», «иерархия» (виды иерархий).
- •5. Объясните понятие «каноническая форма системы».
- •2.2. Введение в объектно-ориентированный анализ и проектирование
- •1. Объясните следующие понятия: «объектно-ориентированный анализ (ооа)», «объектно-ориентированное проектирование (ood)», «объектно-ориентированное программирование (оор)».
- •2. Дайте краткую характеристику основным принципам объектной модели: абстрагирование, инкапсуляция, модульность, иерархия, типизация, параллелизм, сохраняемость.
- •3. Объясните понятие «объект».
- •4. Опишите основные категории объектов.
- •5. Объясните следующие понятия: «состояние», «поведение», «идентичность» и «время жизни» объекта.
- •6. Объясните следующие понятия: «операция», «метод класса», «свободная подпрограмма».
- •7. Опишите назначения следующих операций: модификатор, селектор, итератор, конструктор, деструктор.
- •8. Объясните следующие понятия: «протокол», «роль» и «ответственность» объекта.
- •9. Объясните понятие «класс». Как соотносятся понятия «класс» и «объект»? Описание класса.
- •10. Опишите основные типы классов: параметризованный класс, класс-наполнитель, утилита параметризованного класса, утилита класса-наполнителя, метакласс, абстрактный класс.
- •11. Объясните понятие «стереотип класса». Опишите основные стереотипы классов: «пограничные классы», «классы-сущности», «управляющие классы».
- •12. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы, основанному на использовании uml.
- •13. Дайте краткую характеристику классическим подходам к выявлению ключевых абстракций системы.
- •14. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ поведения».
- •15. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ предметной области».
- •16. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ вариантов».
- •17. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «crc- карточки».
- •18. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Использование неформального описания задачи».
- •19. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Использование структурного анализа».
- •20. Объясните понятие «атрибут класса».
- •21. Опишите основные типы атрибутов (класса).
- •22. Опишите способы выявления атрибутов. В каком случае информация относится к классу, а в каком - к атрибуту.
- •23. Опишите основные типы операций. Опишите основные стереотипы операций.
- •24. Опишите общие этапы выявления операций.
- •25. Объясните понятие «видимость» атрибута и операции класса. Перечислите допустимые значения видимости.
- •26. Опишите основные типы связей между классами (ассоциация, зависимость, агрегация, наследование, полиморфизм). Объясните понятие «дружественный класс».
- •27. Объясните следующие понятия: «стереотип связи», «имя связи» и «элемент связи».
- •28. Выявление связей.
- •29. Опишите основные критерии, используемые для оценки качества классов и объектов.
- •5. Назначение диаграммы Вариантов Использования и краткое описание ее элементов (типы действующих лиц и связей).
- •6. Процесс выявления вариантов использования. Описать этапы создания диаграмм Вариантов Использования (можно на примере своей задачи).
- •7. Связь Диаграмм Вариантов Использования и «Технического задания».
- •8. Назначение потока событий и краткая характеристика его составных частей (краткое описание, предусловие, постусловие, основной поток, альтернативный поток и поток ошибок).
- •9. Привести пример потока событий (можно из своей задачи).
- •10. Назначение и типы Диаграмм Взаимодействия.
- •11. Перечислите основные элементы Диаграммы Последовательности. Назначение синхронизации и скриптов.
- •12. Перечислите основные элементы Кооперативной диаграммы.
- •13. Этапы составления Диаграмм Взаимодействия.
- •14. Двухэтапный подход при составлении Диаграмм Взаимодействия.
- •15. Назначение Диаграммы Классов и этапы ее составления.
- •16. Назначение Диаграммы Состояний и краткое описание ее элементов (состояния (виды состояний), деятельность, входные действия, выходные действия, переходы, события, ограждающие условия, действия).
- •18. Назначение Диаграммы Размещения и краткое описание ее элементов.
- •19. С какой целью на диаграммах uml используются примечания и пакеты.
- •20. Модели и ракурсы. Логическая и физическая модели. Статическая и динамическая модели.
- •4. Процесс объектно-ориентированной разработки по
1. Жизненный цикл программного обеспечения
1. Какие два важных аспекта имеет понятие программной инженерии?
Программная инженерия – это совокупность инженерных методов, применяемых на протяжении жизненного цикла ПС;
Программная инженерия – это инженерная дисциплина, охватывающая все аспекты жизненного цикла ПС от начальной стадии разработки до завершения использования ПС.
2. Дайте определение понятия «жизненный цикл программного средства».
Жизненный цикл – период, который начинается с момента принятия решения о необходимости создания программного средства и заканчивается в момент его полного изъятия из эксплуатации.
3. Укажите основные отличительные особенности жизненного цикла ПС по сравнению с жизненным циклом технических объектов.
- в начале не удается четко определить неизменный набор требований к ПС;
- этап серийного производства не требует серьезный материальных затрат;
- физического износа ПС не происходит.
4. Каковы существенные особенности разработки «больших» и «малых» ПС?
Малые ПС
создаются для получения результатов автоматизации исследований или анализа процессов самим разработчиком;
не предназначены для массового тиражирования;
не имеют заказчика, осуществляющего финансирование и определяющего требования;
не ограничены стоимость, сроками создания, трудоемкостью, требованиями качества и документации;
не подлежит независимому тестированию, гарантированию качества и сертификации.
Большие ПС
большой объем, высокая трудоемкость и стоимость создания определяют необходимость тщательного анализа эконом. Эффективности всего ЖЦ и конкурентно способности (при необход.);
необходимость получать от заказчика конкретные требования к функциям и хак-кам ПС;
для координации деятельности проекта необходимы менеджеры проектов;
участие специалистов разной квалификации и специализации, от который требуется высокая ответственность за качество результатов;
от разработчиков требуется гарантии высокого качества, надежности функционирования и безопасности применения;
необходимость применять регламентированные стандартами процессы, этапы и документы, методы комплексы средств автоматизации и технологии обеспечения ЖЦ комплексов ПС.
5. Дайте определения следующих понятий, относящихся к элементам деятельности: субъект-исполнитель, цель деятельности, ресурсы и материалы, средства и инструменты, методы, результат деятельности, окружение системы деятельностей.
6. Дайте определение понятия «модель жизненного цикла программного средства». Перечислите известные Вам модели жизненного цикла ПС.
7. Объясните в чем разница между иллюстративными и инструментальными моделями жизненного цикла ПС?
8. Опишите основные свойства и возможности инструментальных моделей жизненного цикла ПС.
9. Каковы принципиальные особенности обобщенной модели жизненного цикла ПС? В каких случаях она применима?
10. Каковы принципиальные особенности каскадной модели жизненного цикла ПС? В чем состоят преимущества и недостатки данной модели?
11. Каковы принципиальные особенности модели жизненного цикла ПС Гантера? В чем состоят преимущества и недостатки данной модели?
12. Каковы принципиальные особенности спиральной модели жизненного цикла ПС? В чем состоят преимущества и недостатки данной модели?
13. Каковы принципиальные особенности модели жизненного цикла ПС RUP?
14. Каковы принципиальные особенности модели процессов MSF?
15. Каковы особенности представления о жизненном цикле ПС в методологиях быстрого развития проектов?
16. Дайте краткую характеристику моделям жизненного цикла ПС экстремального программирования.
17. Каковы принципиальные особенности адаптивной разработки по Хайсмиту?
18. Составьте две сводные таблицы, в одной из них отразите особенности моделей жизненного цикла ПС, которые вам известны, в другой – область применения этих моделей.
2.1. Сложность программного обеспечения
1. Приведите примеры сложных и простых программных систем, разница в подходах к их созданию (кратко).
2. Перечислите основные причины сложности программного обеспечения.
Сложность реальной предметной области, из которой исходит заказ на разработку;
Трудность управления процессом разработки;
Необходимость обеспечения достаточной гибкости системы;
Неудовлетворительные способы описания поведения больших систем.
3. Перечислите пять признаков сложной системы.
Сложные системы являются иерархические и состоят из взаимных подсистем, которые тоже могут быть разделены на подсистемы.
Выбор компонентов, считающихся элементарными произволен, и зависит от исследователя.
Внутрикомпонентная связь в системе сильнее, чем связь между компонентами.
Иерархические системы состоят из немногих типов подсистем, по-разному скомбинированных и организованных.
Любая работающая сложная система – результат развития работавшей ранее более простой системы. Сложная система, спроектированная с нуля, никогда не заработает, следует начинать с работающей простой системы.
4. Объясните следующие понятия: «декомпозиция», «абстракция», «иерархия» (виды иерархий).
Декомпозиция – способ управления сложной системой, заключающийся в разделении на подсистемы.
Абстракция – выделение существенных, с точки зрения наблюдателя, особенностей объекта и игнорирование несущественных, один из принципов объектно-ориентированного подхода.
Иерархия - упорядочение абстракций, разложение их по уровням.
Алгоритмическая декомпозиция – основное внимание заостряется на порядке происходящих событий (процессов).
Объектно-ориентированная декомпозиция – придает значение объектам, которые в процессе взаимодействия друг с другом определяют значение системы.
Иерархия «обобщение-специализация» («общее и частное, «is-a») – подкласс представляет собой специализированный частный случай своего суперкласса. Также называется структура классов. (роза – цветок, цветок - растение)
Иерархия «быть часть» («целое-часть», «part-of») – элемент является часть другого. Также называется структура объектов. (лепестки - часть цветов)
5. Объясните понятие «каноническая форма системы».
Каноническая форма системы – объединение понятий структура классов, структура объектов и пять признаков сложной системы.
2.2. Введение в объектно-ориентированный анализ и проектирование
1. Объясните следующие понятия: «объектно-ориентированный анализ (ооа)», «объектно-ориентированное проектирование (ood)», «объектно-ориентированное программирование (оор)».
Объектно-ориентированный анализ (ООА) – методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
Объектно-ориентированное проектирование (OOD) – методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
Объектно-ориентированное программирование (ООР) – методология программирования, основанная на представлении программ в совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.