
- •Вопрос 1. Внешнее проектирование по: разработка требований, определение целей по, внешние спецификации проекта.
- •Вопрос 2. Процесс разработки.
- •Вопрос 3. Структура сложных систем. Существует пять признаков сложных систем
- •Вопрос 4 Составные части объектного подхода
- •Вопрос 5. Объектная модель предметной области
- •Вопрос 6. Природа объекта.
- •Вопрос 7. Отношение между объектами. Типы отношений.
- •Вопрос 8. Диаграммы вариантов использования, диагр. Потоков данных.
- •Вопрос 9. Диаграммы классов, отношения между классами
- •Вопрос 10. Диаграммы взаимодействия
- •Вопрос 12. Отношение между классами. Типы отношений.
Вопрос 4 Составные части объектного подхода
Абстрагирование упрощенное описание где один важные свойства указываются, а другие опускаются т.е. характеристики, которые отличаются от других видов объектов, здесь описываются концептуальные границы объектов
На этом этапе описание минимума связей объекта, его поведения, не привносит свойств и побочных эффектов вне сферы его применимости
Абстракция сущности -> Объект является моделью сущности в предметной области
Абстракция поведения -> Объект состоит из обобщенного множества операций
Абстракция виртуальной машины -> Объект группирует операции которые используются более высоким уровнем управления либо сами используют набор операций более низкого уровня
Произвольная абстракция -> Объект включает набор операций не имеющих Друг с другом ничего общего
Все абстракции обладают как статическими так и динамическими свойствами
Инкапсуляция
Любая часть системы не должна зависеть от внутреннего устройства какой-либо другой части
Абстракция помогает думать о том. что делать Инкапсуляция позволяет легко перестраивать программы занимается внутренним устройством выполняется посредством скрытия информации, (внутренняя структура объекта и реализация его методов) На практике - это наличие двух частей интерфейс и реализация
Интерфейс отражает внешнее поведение объекта Реализация - представление абстракции, механизмы достижения поведения объекта, здесь все что не имеет отношения к процессу взаимодействия объектов
Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение, чтобы изолировать контрактные обязательства абстракции от их реализации
Модули выполняют роль физических контейнеров, в которые помешены определения классов и объектов при логическом проектировании (группы логически связанных классов пли программы использующие друг друга или изменяемые вместе)
Модульность - это свойство системы, которая была разделена на внутренне связанные между собой модули Принципы абстрагирования, инкапсуляции и модульности являются взаимодополняющими Объект логически определяет границы абстракции, а инкапсуляция и модульность делает их физически незыблемыми
Более опытные программисты должны заниматься интерфейсом модуля, менее опытные - реализацией Интерфейс не должен меняться (консервативен)
Иерархия.
Число абстракций в системе намного больше умственных способностей Упрощение добавляет еще при создании иерархии из абстракций Иерархия - это упорядочение абстракций, расположение их по уровням
Основными уровнями иерархии в системах являются структура классов (иерархия "is а'') и структура объектов (иерархия "part of)
Пример иерархии: одиночное наследование. Наследование означает такое отношение между классами (отношение родитель/потомок) заимствование одним классом структурную и функциональную часть одного или нескольких классов (одиночное и множественное наследование) ''обобщение -> специализация частный случай суперкласса
Вопрос 5. Объектная модель предметной области
Типизация
Понятие типа взято из теории абстрактных типов данных Тип -это точная характеристика свойств включая структуру и поведение относящееся к объектам Класс реализует понятие типа
Типизация - это способ защитится от использования объектов одного класса вместо другого, или управлять таким использованием
Типизация заставляет выражать абстракции так чтобы язык программирования поддерживал принятые проектные решения Примеры сильной и слабой типизации
В сильно типизированных языках (Eiffel), нарушение согласования типов обнаруживается при трансляции В Smalltalk типов нет любое сообщение можно послать любому объекту В С + + больше сильной типизации но правила типизации можно подавить
Пример типизации статическое и динамически связывание
Статистическая типизация (т.е. ранее связывание) определяет время, когда имена связываются с типами, что типы всех переменных и выражении известны во время компиляции
Динамическое связывание (позднее) означает что типы не известны до моменты выполнения программы
Параллелизм.
Существуют задачи когда автоматические системы должны обрабатывать много событий одновременно Здесь одного процессора мало надо несколько компьютеров или задействовать многозадачность на мультипроцессорном компьютере
Процесс (поток управления) - эта фундаментальная единица действия в системе Любая программа имеет хотя бы один поток управления Реальная параллельность, возможна только на много процессорном персональном компьютере а другие имитируют параллельность за счет алгоритмов разделения времени ( аппаратная параллельность ) Параллелизм это свойство, отличающее активные объекты от пассивных
Сохраняемость
Любой программный объект живет в памяти и во времени Существуют объекты, которые живут лишь во время вычислений, есть другие - базы данных, которые существуют независимо от программы
Сохраняемость охватывает :
Промежуточные результаты вычислений
Локальные переменные при вызове процедур
Собственные переменные, глобальные переменные и динамически создаваемые данные
Данные, сохраняемые между сеансами работы
Данные, сохраняемые при переходе на новую версию
Данные, которые переживают программу
Первые три пункта обслуживаются языками программирования, а последние три - базами данных
Сохраняемость- это способность объекта существовать во времени, переживая породивший его промесс, (и) или в пространстве, перемещаясь из своего первоначального адресного пространства.