- •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.
17. Понятие объектной модели. Базовые принципы.
Объектное ориентированные разработки руководствуются принципам объектной модели, кроме самих принципов понятие объектной модели включает также способы описания результатов разработки в виде отдельных моделей. Объектная модель. ОМ: принципы, модели(статичные динамичные, логические, физические). Если в модели не учитв. Время они статические. Если учитывать динамические. Как правило логические модели – статические. Динамические, физические применяются на конечных этапах разработки. Логические описывают структуры объектов и классов, виды деятельности. Физические учитывают особенности реализации программы. Указанные модели могут описываться при помощи различных средств. В настоящие время роль стд. описания – объектов, выполняет язык UML. Принципы, общая идея объектно-ориентированной разработки, которая базируется на: 1 – выявление объектов предметной области, отнесение к тем или иным классам. Классы образуют иерархию в частности. Принципы : 1 – абстрагирование и инкапсуляции, и ограничение доступа. 3- модульность, 4 – иерархичность.
18. Принцип абстрагирования, объектная декомпозиция. Абстрагирование - это роль, которые выполняют классы как обобщённые объекты. Абстрагирование выполняется на основе объектной декомпозиции. Результат выявленные объекты и классы.
Абстрагирование
Абстрагирование — это мысленное выделение, вычленение некоторых элементов конкретного множества и отвлечение их от прочих элементов данного множества. Это один из основных процессов умственной деятельности человека, опирающийся на знаковое опосредствование и позволяющий превратить в объект рассмотрения разные свойства предметов. Это теоретическое обобщение позволяет отразить основные закономерности исследуемых объектов или явлений, изучать их, а так же прогнозировать новые, неизвестные закономерности. В качестве абстрактных объектов выступают целостные образования, составляющие непосредственное содержание человеческого мышления — понятия, суждения, умозаключения, законы, математические структуры и др.
19. Инкапсуляция.
Инкапсуляция — это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса долж++ен видеть и использовать только интерфейсную часть класса (т. е. список декларируемых свойств и методов класса) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов.
Сокрытие данных
Сокрытие данных — неотделимая часть ООП, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта.
Инкапсуля́ция — свойство языка программирования, позволяющее объединить и защитить данные и код в объектe и скрыть реализацию объекта от пользователя (прикладного программиста). При этом пользователю предоставляется только спецификация (интерфейс) объекта.
* Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public.
* Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal.
Инкапсуляция — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).
Сокрытие реализации целесообразно применять в следующих случаях:
* предельная локализация изменений при необходимости таких изменений,
* прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
