- •1. Системная и системная программная инженерия.
- •2. Программная инженерия.
- •3. Программная система. Причины сложности программных систем.
- •4. Качество программных систем. Метрики качества.
- •5. Управление качеством. Методы оценки качества процесса и продукта разработки.
- •6. Управление проектом.
- •7. Управление персоналом.
- •9. Понятие технологии разработки пс. Цели проектирования.
- •10. Классический жизненный цикл пс и разработки пс.
- •11-12. Модели жизненного цикла пс.
- •14-16. Парадигмы программирования.
- •15. Понятие объектно-ориентированного проектирования и программирования.
- •17. Понятие объектной модели. Базовые принципы.
- •Абстрагирование
- •19. Инкапсуляция.
- •20. Наследование.
- •21. Полиморфизм. Виды полиморфизма
- •22. Наследование как механизм реализации полиморфизма, создания иерархий классов. Типы наследования.
- •23. Классы. Базовые, производные, полиморфные, абстрактные, виртуаль-ные. Примеры.
- •24. Принципы раннего и позднего связывания.
- •25. Использование языка uml для спецификации
- •26. Описание иерархий классов диаграммами uml.
- •27. Классы-шаблоны. Описание в uml.
14-16. Парадигмы программирования.
Паради́гма программи́рования — это совокупность идей и понятий, определяющая стиль написания программ. Парадигма, в первую очередь, определяется базовой программной единицей и самим принципом достижения модульности программы. В качестве этой единицы выступают определение (декларативное, функциональное программирование), действие (императивное программирование), правило (продукционное программирование), диаграмма переходов (автоматное программирование) и др. сущности. В современной индустрии программирования очень часто парадигма программирования определяется набором инструментов программиста, а именно, языком программирования и используемыми библиотеками.
Процедурное \в, алгоритмы ) – предметная обл., где композируются на отдельные задачи, объектное ориентированные. Предметная область, где композируется которые взаимодействуют. 3. Логика ориентированная (предметная обл., где композируется на цели (исп. В матема. для вычисления предикатов ). Ориентированные на правила. Ориентирована на ограничение ( инвариантные соотношения). Как использование парадигм, так и использование технологий с одной стороны повышает производительность труда, а с 2 стороны явл. Гарантом обеспечение нужных характеристик
15. Понятие объектно-ориентированного проектирования и программирования.
Объе́ктно-ориенти́рованное проектирование (ООП) — это часть объектно-ориентированной методологии, которая предоставляет возможность программистам оперировать понятием «объект», нежели понятием «процедура» при разработке своего кода. Объекты содержат инкапсулированные данные и процедуры, сгруппированные вместе, отображая т.о. сущность объекта. «Интерфейс объекта», описывает взаимодействие с объектом, то, как он определен. Программа, полученная при реализации объектно-ориентированного исходного кода, описывает взаимодействие этих объектов.
Объе́ктно-ориенти́рованное или объектное программи́рование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов).
Структура данных «класс», представляющая собой объектный тип данных, внешне похожа на типы данных процедурно-ориентированных языков, такие как структура в языке Си или запись в Паскале или QuickBasic. При этом элементы такой структуры (члены класса) могут сами быть не только данными, но и методами (то есть процедурами или функциями). Такое объединение называется инкапсуляцией[источник не указан 42 дня].
Наличие инкапсуляции достаточно для объектности языка программирования, но ещё не означает его объектной ориентированности — для этого требуется наличие наследования.
Но даже наличие инкапсуляции и наследования не делает язык программирования в полной мере объектным с точки зрения ООП. Основные преимущества ООП проявляются только в том случае, когда в языке программирования реализован полиморфизм.
Язык Self, соблюдая многие исходные положения объектно-ориентированного программирования, ввёл альтернативное классам понятие прототипа, положив начало прототипному программированию, считающемуся подвидом объектного.
