- •Вопросы трпп экз
- •1Основные понятия и определения программных продуктов.
- •2Классификация программных продуктов.
- •3Особенности создания программного продукта.
- •4Понятие и основные модели жизненного цикла программного продукта. Понятие модели жизненного цикла разработки программного продукта.
- •1.3.4. Обзор существующих моделей Модели жизненного цикла разработки программного продукта
- •5Процессы жизненного цикла программного продукта.
- •6Каскадная модель жизненного цикла программного продукта. Ее достоинство и недостатки. Каскадная модель жизненного цикла разработки по
- •7. Модель быстрой разработки приложений (rao-модель), область применения, достоинства и недостатки.
- •8Спиральная модель жизненного цикла программного продукта, ее достоинства и недостатки. Спиральная модель жизненного цикла разработки по
- •9Модель зрелости компании cmm.
- •10. Система стандартов iso 9001.
- •11Роль метрик в процессе разработки программного продукта
- •12Размерно-ориентированные метрики
- •13Функционально-ориентированные метрики
- •14Планирование работ по созданию программного продукта
- •Другие задачи проектирования
- •Составление временного графика выполнения пп
- •15Основные принципы структурного подхода к программированию
- •16Основные принципы объектно-ориентированного проектирования программных продуктов.
- •17Этап разработки программного продукта. Модульное тестирование.
- •1.1. Основные этапы технологического процесса разработки программ.
- •18Модульное программирование. Сущность. Основные характеристики.
- •19 Разработка справочной системы программного продукта.
- •20. Разработка дистрибутивов и управление версиями программного продукта. Разработка дистрибутивов и управление версиями программного продукта
- •Управление созданием версий и поставками пп.
- •Идентификация версий.
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •21Общая характеристика этапа тестирования программного продукта. Цикл тестирования.
- •Модульное тестирование
- •22Программные ошибки. Категории программных ошибок.
- •23Методы борьбы с ошибками по.
- •24Основные принципы разработки тестов для программных продуктов
- •25Сопровождение программных продуктов.
- •26Управление поставками программных продуктов. Общие сведения об управлении поставками
- •Классификация поставляемых программных продуктов
- •Классификация доставляемых программных продуктов
- •Действия, выполняемые при поставке программного продукта
- •27Основные понятия о надежности программного продукта и методах ее обеспечения.
- •28Инструментальные средства разработки программных продуктов.
- •29Защита программных продуктов от несанкционированного использования.
- •30Правовые методы защиты пп.
- •31Криптографические методы защиты информации.
- •32Аппаратная защита программного обеспечения.
- •1. Драйвер ключа.
- •2. Встраиваемый модуль.
- •3. Реализация.
- •34Принципы, виды и методы отладки программных продуктов.
- •Комплексная отладка программного средства.
- •Программные ошибки. Категории программных ошибок
- •Наиболее распространенные категории программных ошибок:
- •35Эффективность и оптимизация программ.
- •Обеспечение качества программного продукта
- •36Коллективная разработка программных средств.
- •Ролевой состав коллектива разработчиков, взаимодействие между ролями в различных технологических процессах
16Основные принципы объектно-ориентированного проектирования программных продуктов.
Основными понятиями объектно-ориентированного подхода являются объект и класс.
Объект – предмет или явление, имеющие четко определяемое поведение. Объект характеризуется состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими (динамическими) значениями каждого из этих свойств. Поведение объекта характеризуется его воздействием на другие объекты и, наоборот, с точки зрения изменения состояния этих объектов и передачи сообщений. Поведение объекта полностью определяется его действиями. Индивидуальность — это свойства объекта, отличающие его от всех других объектов.
Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией.
Класс — это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов — одна из самых сложных задач объектно-ориентированного проектирования.
Следующую группу важных понятий объектно-ориентированного подхода составляют наследование и полиморфизм.
Полиморфизм можно интерпретировать, как способность класса принадлежать более чем одному типу.
Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.
Объектно-ориентированная система изначально строится с учетом ее эволюции. Наследование и полиморфизм обеспечивают возможность определения новой функциональности классов с помощью создания производных классов — потомков базовых классов. Потомки наследуют характеристики родительских классов без изменения их первоначального описания и добавляют при необходимости собственные структуры данных и методы. Определение производных классов, при котором задаются только различия или уточнения, в огромной степени экономит время и усилия при производстве и использовании спецификаций и программного кода.
Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Концептуальной основой объектно-ориентированного подхода служит объектная модель. Основными ее элементами являются абстрагирование (abstraction), инкапсуляция (encapsulation), модульность (modularity), иерархия (hierarchy).
Кроме основных имеются еще три дополнительных элемента — типизация (typing), параллелизм (concurrency), устойчивость (persistence), не являющихся в отличие от основных строго обязательными.
Абстрагирование — это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы для дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
Инкапсуляция — это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды.
Модульность — это свойство системы, обусловленное возможностью ее декомпозиции на ряд внутренне связанных, но слабо объединенных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия — это ранжированная, или упорядоченная, система абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один классиспользует структурную или функциональную часть соответственно одного или нескольких других классов), а примером иерархии объектов — агрегация.
Типизация — это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо другого или, по крайней мере, управлять таким использованием.
Параллелизм — это свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость — это свойство объекта существовать во времени (независимо от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Важным качеством объектно-ориентированного подхода является согласованность моделей деятельности организации и моделей проектируемой системы, начиная со стадии формирования требований и до стадии реализации. Требование согласованности моделей выполняется благодаря возможности применения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации.
Большинство существующих методов объектно-ориентированного анализа и проектирования (ООАП) включают в себя как язык моделирования, так и описание процесса моделирования. Язык моделирования — это нотация (в основном графическая), которая используется методом для описания проектов. Графическая нотация представляет собой совокупность графических объектов, которые используются в моделях; она является синтаксисом языка моделирования. Процесс — это описание шагов, которые необходимо выполнить при разработке проекта.
