Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем
Реферат, 15 Ноября 2013, автор: пользователь скрыл имя
Описание работы
Моделирование программных систем позволяет:
визуализировать систему в ее текущем или желательном для нас состоянии;
определить структуру или поведение системы;
получить шаблон, позволяющий затем сконструировать систему;
документировать принимаемые решения, используя полученные модели.
Файлы: 1 файл
Ekzamen2.doc
— 1.48 Мб (Скачать файл)
1. Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем.
Моделирование программных систем позволяет:
- визуализировать систему в ее текущем или желательном для нас состоянии;
- определить структуру или поведение системы;
- получить шаблон, позволяющий затем сконструировать систему;
- документировать принимаемые решения, используя полученные модели.
Логичность и формализованность компьютерных моделей позволяет выявить основные факторы, определяющие свойства изучаемого объекта-оргинала (или целого класса объектов), в частности, исследовать отклик моделируемой физической системы на изменения ее параметров и начальных условий.
Различают аналитическое и имитационное моделирование. При аналитическом моделировании изучаются абстрактные модели реального объекта в виде математических уравнений, а также предусматривающих осуществление однозначной вычислительной процедуры, приводящей к их точному решению. При имитационном моделировании исследуются математические модели в виде алгоритма(ов), воспроизводящего функционирование исследуемой системы путем последовательного выполнения большого количества элементарных операций.
Система моделей включает описание процессов, функций, потоков, данных и других статических и динамических аспектов функционирования системы.
Моделируемые аспекты
- Вид с точки зрения прецедентов (Use case view) охватывает прецеденты, которые описывают поведение системы, наблюдаемое конечными пользователями, аналитиками и тестировщиками. В языке UML статические аспекты этого вида передаются диаграммами прецедентов, а динамические - диаграммами взаимодействия, состояний и действий.
- Вид с точки зрения проектирования (Design view) охватывает классы, интерфейсы и кооперации, формирующие словарь задачи и ее решения. Этот вид поддерживает прежде всего функциональные требования, предъявляемые к системе, то есть те услуги, которые она должна предоставлять конечным пользователям. Статические аспекты этого вида можно передавать диаграммами классов и объектов, а динамические - диаграммами взаимодействия, состояний и действий.
- Вид с точки зрения процессов (Process view) охватывает нити и процессы, формирующие механизмы параллелизма и синхронизации в системе. Этот вид описывает производительность и пропускную способность системы. Статические и динамические аспекты визуализируются теми же диаграммами, что и для вида с точки зрения проектирования, но особое внимание уделяется активным классам, которые представляют нити и процессы.
- Вид с точки зрения реализации (Implementation view) охватывает компоненты и файлы, используемые для сборки и выпуска конечного программного продукта. Этот вид предназначен для управления конфигурацией системы, составляемой из независимых компонентов и файлов. Статические аспекты передают с помощью диаграмм компонентов, а динамические - с помощью диаграмм взаимодействия, состояний и действий.
- Вид с точки зрения развертывания (Deployment view) охватывает узлы, формирующие топологию аппаратных средств системы, на которой она выполняется. В первую очередь он связан с распределением, поставкой и установкой частей, составляющих физическую систему. Его статические аспекты описываются диаграммами развертывания, а динамические - диаграммами взаимодействия, состояний и действий.
2. Основные понятия объектно-ориентированного подхода к проектированию программ. Абстрагирование. Ограничение доступа. Модульность. Иерархия.
Преимущества объектной модели:
- В полной мере используются возможности языков программирования
- Повышается уровень унификации разработки и пригодность для повторного использования
- Система строится на основе стабильных промежуточных описаний, что упрощает внесение изменений
- Уменьшается риск разработки
- Единственная методология позволяющая справиться со сложностью очень больших систем
Абстракция:
- Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
- Абстракция разделяет смысл и реализацию объекта
Инкапсуляция:
- Инкапсуляция реализует абстракцию, скрывая внутреннюю структуру объекта и предоставляя вовне только внешнее поведение – интерфейс, соответствующий принятому уровню абстракции
- Абстракция и инкапсуляция дополняют друг друга: абстрагирование направлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутренним устройством
- Данные и методы могут иметь модификаторы public, private и protected определяющие степень доступности.
Модульность:
- Это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули
- Модули выполняют роль физических контейнеров, в которые помещаются определения классов и объектов
- Принципы абстрагирования, инкапсуляции и модульности являются взаимодополняющими
Иерархия:
- Это упорядочение абстракций, расположение их по уровням.
- Значительное упрощение в понимании сложных задач достигается за счет образования из абстракций иерархической структуры
- Один из видов иерархии – концепция наследования «обобщение-специализация» (is-a)
- Другой вид иерархии – агрегация (part-of)
3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Класс представляет набор объектов, которые обладают общей структурой и одинаковым поведением. Поведение выражается в терминах состояния объекта (изменения состояний) и в передаче сообщений.
Типы объектов:
- Актер (действующее лицо) – объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов
- Сервер – объект может только подвергаться воздействию со стороны других объектов
- Агент – Может выступать как в активной, так и пассивной роли
Связи объектов:
- Связи по информационному взаимодействию (по данным)
- Связи по управлению (вызываются методы другого объекта)
- Связи по иерархии наследования
Отношения между классами:
- Ассоциация - семантическая (смысловая) связь без объяснения ее реализации; фиксируются участники ассоциации, их роли в ассоциации, мощность отношения; возможны три мощности ассоциации – один-к-одному, один-ко-многим, многие-ко-многим
- Наследование
- Агрегация: либо физическое включение одного класса в другой (внутренний класс), либо концептуальное вхождение одного класса в другой (контейнер)
- Использование данных одного объекта для работы другого и методов одного объекта для реализации поведения другого
- Инстанцирование - построение параметризированного класса (шаблона), который может параметризироваться другими классами, объектами или методами
- Метакласс - это класс, экземпляры которого есть классы
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя. Данные и методы могут иметь модификаторы public, private и protected определяющие степень доступности.
4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ООП.
Наследование:
- При наследовании один класс заимствует структурную или функциональную часть одного или нескольких других классов
- Наследование основано на иерархии классов
- Наследование упрощает выражение абстракций, делает проект более выразительным
- Дочерние классы наследуют свойства одного или нескольких родителей
Одиночное наследование:
При одиночном наследовании один или несколько классов наследуют свойства ТОЛЬКО ОДНОГО родительского класса.
Множественное наследование:
Абстрактные классы – обязательно должны иметь наследников и не имеют экземпляров.
5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма.
Полиморфизм – возможность объектов с одинаковой спецификацией иметь различную реализацию. Он позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему - класс. Общность имеет внешнее и внутреннее выражение:
- внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именами методов, типами аргументов и их количеством);
- внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу называется перегрузкой метода.
Полиморфизм:
- Одно и то же имя может означать объекты разных ТИПОВ
- Полиморфизм реализует адаптивное поведение класса
- Полиморфизм реализует динамическое связывание объектов
6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации.
Типизация:
- Это точная характеристика свойств, включая структуру и поведение, относящаяся к некоторой совокупности объектов
- Позволяет в программных системах проводить целый ряд проверок и согласований
- Строгая типизация предотвращает смешивание абстракций
Процесс проверки и накладывания ограничений типов — контроля типов, может выполняться во время компилирования (статическая проверка) или во время выполнения (динамическая проверка).
- Статическая типизация — контроль типов осуществляется при компиляции.
- Динамическая типизация — контроль типов осуществляется во время выполнения.
Контроль типов также может быть строгим и слабым.
- Строгая типизация — совместимость типов автоматически контролируется транслятором:
- Номинативная типизация — совместимость должна быть явно указана (наследована) при определении типа.
- Структурная типизация — совместимость определяется структурой самого типа (типами элементов, из которых построен составной тип).
- Слабая типизация — совместимость типов никак транслятором не контролируется. В языках со слабой типизацией обычно используется подход под названием «утиная типизация» — когда совместимость определяется и реализуется общим интерфейсом доступа к данным типа.
7. Назначение и основные свойства языка UML
UML – это язык для визуализации, специфицирования, конструирования и документирования артефактов программных систем.
Артефакт — это любой
1. Визуализация:
- Результаты обсуждения проекта и принятые решения воплощаются в виде понятных для всех схем
- Улучшается понимание всеми участниками проекта поставленной задачи
- При смене разработчиков принятые решения в виде модели не меняются
2. Специфицирование:
- Специфицируются важнейшие характеристики системы
- Спецификации охватывают различные точки зрения на систему
- Спецификации согласуются между собой
3. Конструирование:
- Модели могут быть переведены на различные языки программирования – прямое проектирование
- Программы на языках программирования могут быть реконструированы в модель – обратное проектирование
4. Документирование:
- Требования к системе;
- Архитектура;
- Проект;
- Исходный код;
- Проектный план;
- Тест;
- Прототип;
- Версия;
- И др.
Язык UML предназначен для решения следующих задач:
- Предоставить легко воспринимаемый и выразительный язык визуального моделирования.
- Предоставить возможность расширения и специализации для более точного представления моделей систем в конкретной предметной области.
- Поддержка спецификации моделей, не зависящей от конкретных языков программирования и инструментальных средств проектирования программных систем.
- Семантический базис для понимания общих особенностей ООАП (объектно-ориентированнного анализа и проектирования).
- Поощрение развития рынка объектных инструментальных средств.
- Распространение объектных технологий и соответствующих понятий ООАП.
- Интеграция в себя новейших достижений практики ООАП.
8. Язык UML. Понятия сущности, отношения, диаграммы.
Словарь UML включает три вида строительных блоков: