октябрь 10 Вопросы по курсу СК7 Задачи программной инженерии. 1. Программный продукт, признаки качества. 2. Методы инженерии в разработке ПС. 3. Основные принципы построения моделей сложных систем. 4. Назначение языка UML. 5. Семантические сети. Диаграммы UML как виды семантических сетей. 6. Структурный и объектно-ориентированный подход к построению моделей ПС. 7. Объект, его состояние, поведение, индивидуальность, контекст использования. 8. Класс, атрибут, операция, метод. Основные абстракции ОО языков программирования высокого уровня. 1. Абстракции параметризации, спецификации. Процедурная абстракция. 2. Рекомендации по разработке процедурной абстракции. 3. АТД, его спецификация. Основные виды операций. 4. Рекомендации по разработке АТД. Операции присваивания, сравнения, копирования. 5. Реализация АТД: тип представления, функция абстракции, инвариант представления. 6. Классы в C#: объявление, реализация, работа с объектами. 7. Абстракции управления. Исключительные ситуации. 8. Исключительные ситуации в C#. Механизмы реализации отношений между объектами и классами в ООЯП. 1. Отношения между классами. Виды полиморфизма. 2. Наследование, полиморфизм, преобразование типов, связанных иерархически. 3. Проблемы множественного наследования. 4. Виртуальные функции. Механизм реализации. Абстрактные классы. 5. Методы в C#. 6. Отношения использования и включения. 7. Параметризованные АТД, их спецификация. 8. Реализация параметризованных классов в C#. ----------------------------------------------------------------------------------------------------------------------------Основы объектно-ориентированной методологии. Основные модели. 1. Модель классов. Описание классов, ограничения на диаграмме классов. 2. Отношения между классами на диаграмме классов. 3. Ассоциация, ограничения, снижение кратности ассоциации. 4. Процесс построения объектной модели. 5. Конечный автомат, объект как конечный автомат. 6. Описание конечного автомата таблицей, диаграммой. Полнота описания. 7. Диаграммы состояний, их элементы. 8. Диаграммы деятельности. Синхронизация на диаграммах деятельности. 9. Сценарий, описание сценария диаграммой последовательности. 10. Назначение и основные элементы диаграммы кооперации. 11. Процесс построения динамической модели. 12. Функциональная модель, область применения. Диаграммы потоков данных. Их аналог в UML. 13. Процесс построения функциональной модели. 14. Диаграммы вариантов использования. 15. Физическая модель системы, диаграммы компонентов и развертывания. 16. Диаграммы вариантов использования. Основы объектно-ориентированной методологии. Процесс. 1. Микропроцесс объектно-ориентированной разработки. 2. Концептуализация и анализ. Цели, виды деятельности, результаты. 3. Проектирование. Цели, виды деятельности, результаты. 4. Эволюция, цели, виды деятельности, результаты. Сопровождение, цели, виды деятельности, результаты. 5. Каскадная и итеративная модели ЖЦ. 6. Рациональный унифицированный процесс. Дополнительные вопросы. 1. Что означает полнота диаграмм переходов состояний, и какую роль она играет при написании кода реализации? 2. Как влияет абстракция спецификации на развитие ПО. Почему? 3. Какая конструкция управления позволяет сделать частичную, по существу, процедуру – общей? Как она работает? 4. Почему при моделировании бизнес-процессов используют диаграммы деятельности? 5. Основные принципы борьбы со сложностью, и их отображение в RUP? 6. Чем отличается понятие состояния при определении объекта, от понятия состояния в контексте конечного автомата? 7. Что такое полиморфизм и как он реализуется в ОО языках? 8. Один из основных принципов ОО подхода – иерархичность. Что это значит для разработчика? 9. Что такое отношение ассоциации? Пример реализации ассоциации как класса? 10. Какое понятие объектного подхода является базовым при построении специализированного языка ОО приложения? Почему? 11. Чем объектная декомпозиция отличается от процедурной (или функциональной) декомпозиции? 12. Диаграмма переходов состояний является динамической или статической моделью? Почему? 13. Какие диаграммы служат для описания операции или варианта использования? Чем они отличаются? 14. Объектная модель рассказа школьника о летних каникулах? 15. Какой вид диаграмм помогает качественно реализовать операцию класса? Почему? 16. Почему в определении класса используют три области видимости: private, protected, public 17. Как реализуются в C# классы, связанные отношением обобщение – специализация. 18. Что такое полиморфизм? Привести пример полиморфной операции? 19. В каком случае и почему на фактический тип данных в параметризованном АТД накладывают ограничения? 20. Реализация в C# параметризованных АТД? 21. Опишите жизнь студента как конечный автомат. 22. На какой стадии ЖЦ ПО строят объектную модель? Что она дает разработчику? 23. Чем являются диаграммы UML в Rational Rose? Трудно ли сгенерировать код для отношения ассоциации? 24. Как роли и кратности ассоциации на диаграмме влияют на код? Пример. 25. Реализация отношения использования для звездного неба и небесных тел в случае а) звездного неба – класса; б) звездное небо всегда одно – объект. 26. В чем сходство и различие диаграмм кооперации и последовательности. 27. Особенности использования при реализации модели объекта базового класса как объекта подкласса, и, наоборот. 28. Как реализовать множественное наследование в C#? 29. Преобразование типов для иерархически связанных классов. 30. Связь понятий класс и АТД. 31. Цель введения механизма обработки исключительных ситуаций? 32. Зачем нужны итераторы для контейнеров? 33. Виды вершин и дуг семантической сети для диаграммы классов ( вариантов использования).