Вопросы и ответы (старое, есть ошибки), страница 3
Описание файла
Документ из архива "Вопросы и ответы (старое, есть ошибки)", который расположен в категории "". Всё это находится в предмете "проектирование программных систем" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "проектирование программных систем" в общих файлах.
Онлайн просмотр документа "Вопросы и ответы (старое, есть ошибки)"
Текст 3 страницы из документа "Вопросы и ответы (старое, есть ошибки)"
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество методов».
Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).
Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение. Внешне общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (типами аргументов и результатов). Внутренняя общность есть одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (функций, операций).
Примеры
Класс геометрических фигур (эллипс, многоугольник) может иметь методы для геометрических трансформаций (cмещение, поворот, масштабирование).
К ласс потоков имеет методы для последовательной передачи данных. Потоком может быть информация, вводимая пользователем с терминала, обмен данными по компьютерной сети, файл (если требуется последовательная обработка данных, например, при разборе исходных текстов программ).
-
Одно и то же имя может означать объекты разных ТИПОВ
-
Полиморфизм реализует адаптивное поведение класса
-
Полиморфизм реализует динамическое связывание объектов
6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации.
-
Типизация - точная характеристика свойств, включая структуру и поведение, относящаяся к некоторой совокупности объектов
-
Типизация позволяет в программных системах проводить целый ряд проверок и согласований
-
Строгая типизация предотвращает смешивание абстракций
Стати́ческая типиза́ция — приём, широко используемый в языках программирования, при котором переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция будет возвращать значения только этого типа
Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов
7. Назначение и основные свойства языка UML.
UML (сокр. от англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем.
Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
UML позволяет разработчикам ПО достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение) и больше сконцентрироваться на проектировании и архитектуре.
ЯЗЫК МОДЕЛИРОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ СИСТЕМ
-
Визуализация
-
Специфицирование
-
Конструирование
-
Документирование
ВИЗУАЛИЗАЦИЯ.
-
Результаты обсуждения проекта и принятые решения воплощаются в виде понятных для всех схем
-
Улучшается понимание всеми участниками проекта поставленной задачи
-
При смене разработчиков принятые решения в виде модели не меняются
СПЕЦИФИЦИРОВАННИЕ.
-
Специфицируются важнейшие характеристики системы
-
Спецификации охватывают различные точки зрения на систему
-
Спецификации согласуются между собой
КОНСТРУИРОВАНИЕ.
-
Модели могут быть переведены на различные языки программирования (С++, JAVA, VISUAL BASIC, ORACLE) – прямое проектирование
-
Программы на языках программирования могут быть реконструированы в модель – обратное проектирование
ДОКУМЕНТИРОВАНИЕ.
Требования к системе; Архитектура; Проект; Исходный код; Проектный план; Тест; Прототип; Версия; И др.
8. Язык UML. Понятия сущности, отношения, диаграммы.
Сущности - это абстракции, являющиеся основными элементами модели.
Отношения связывают различные сущности; диаграммы группируют представляющие интерес совокупности сущностей.
Диаграмма в UML - это графическое представление набора элементов, изображаемое чаще всего в виде связанного графа с вершинами (сущностями) и ребрами (отношениями). Диаграммы рисуют для визуализации системы с разных точек зрения. Диаграмма - в некотором смысле одна из проекций системы. Как правило, за исключением наиболее тривиальных случаев, диаграммы дают свернутое представление элементов, из которых составлена система. Один и тот же элемент может присутствовать во всех диаграммах, или только в нескольких (самый распространенный вариант), или не присутствовать ни в одной (очень редко). Теоретически диаграммы могут содержать любые комбинации сущностей и отношений. На практике, однако, применяется сравнительно небольшое количество типовых комбинаций, соответствующих пяти наиболее употребительным видам, которые составляют архитектуру программной системы.
9. Язык UML. Типы сущностей.
-
структурные;
-
поведенческие;
-
группирующие;
-
аннотационные.
СТРУКТУРНЫЕ.
С труктурные сущности - это имена существительные в моделях на языке UML. Как правило, они представляют собой статические части модели, соответствующие концептуальным или физическим элементам системы. Существует несколько разновидностей структурных сущностей.
Класс – описание совокупности объектов с общими атрибутами, отношениями и семантикой. Класс реализует один или несколько интерфейсов. Графически класс изображается в виде прямоугольника, в котором обычно записаны его имя, атрибуты и операции, как показано на рисунке.
И нтерфейс – совокупность операций (только их сигнатуры!), которые определяют набор действий (услуг класса). Таким образом, интерфейс описывает видимое извне поведение элемента. Интерфейс может представлять поведение класса или компонента полностью или частично; он определяет только спецификации операций (сигнатуры), но никогда - их реализации. Графически интерфейс изображается в виде круга, под которым пишется его имя, как показано на рисунке. Интерфейс редко существует сам по себе - обычно он присоединяется к реализующему его классу или компоненту.
К ооперация – определяет взаимодействие и является совокупностью других элементов и ролей, которые производят коллективное действие. Кооперация, следовательно, имеет как структурный, так и поведенческий аспект. Один и тот же класс может принимать участие в нескольких кооперациях; таким образом, они являются реализацией образцов поведения, формирующих систему. Графически кооперация изображается в виде эллипса, ограниченного пунктирной линией, в который обычно заключено только имя, как показано на рисунке.
П рецедент – описание последовательности действий системы, приводящих к наблюдаемому результату в интересах определенного актера. Прецедент применяется для структурирования поведенческих сущностей модели. Прецеденты реализуются посредством кооперации. Графически прецедент изображается в виде ограниченного непрерывной линией эллипса, обычно содержащего только его имя, как показано на рисунке.
Актер (действующее лицо) – любая внешняя по отношению к системе сущность.
Активный класс – класс, объекты которого имеют один или несколько процессов инициирующих управляющие воздействия (ограничивается жирной линией).
К омпонент – физическая заменяемая часть системы, обеспечивающая реализацию набора интерфейсов. В системе можно встретить различные виды устанавливаемых компонентов, такие как СОМ+ или Java Beans, а также компоненты, являющиеся артефактами процесса разработки, например файлы исходного кода. Компонент, как правило, представляет собой физическую упаковку логических элементов, таких как классы, интерфейсы и кооперации. Графически компонент изображается в виде прямоугольника с вкладками, содержащего обычно только имя, как показано на рисунке. Компонент подобен классу: он описывает совокупность объектов с общими атрибутами, операциями, отношениями и семантикой.
Узел – элемент реальной физической системы, как правило вычислительный ресурс.
Базовые структурные сущности могут иметь разновидности.
ПОВЕДЕНЧЕСКИЕ.
Поведенческие сущности (Behavioral things) являются динамическими составляющими модели UML. Это глаголы языка: они описывают поведение модели во времени и пространстве. Существует всего два основных типа поведенческих сущностей.
Взаимодействие – поведение, связанное с обменом сообщениями между объектами в рамках конкретного контекста для достижения определенной цели. С помощью взаимодействия можно описать как отдельную операцию, так и поведение совокупности объектов. Взаимодействие предполагает ряд других элементов, таких как сообщения, последовательности действий (поведение, инициированное сообщением) и связи (между объектами). Графически сообщения изображаются в виде стрелки, над которой почти всегда пишется имя соответствующей операции, как показано на рисунке.
А втомат – алгоритм поведения, выраженный в последовательности состояний, через которые объект или взаимодействие проходят на протяжении своего жизненного цикла в ответ на различные события, а также реакции на эти события. С помощью автомата можно описать поведение отдельного класса или кооперации классов. С автоматом связан ряд других элементов: состояния, переходы (из одного состояния в другое), события (сущности, инициирующие переходы) и виды действий (реакция на переход). Графически состояние изображается в виде прямоугольника с закругленными углами, содержащего имя и, возможно, подсостояния.
ГРУППИРУЮЩИЕ.
Группирующие сущности являются организующими частями модели UML. Это блоки, на которые можно разложить модель. Есть только одна первичная группирующая сущность, а именно пакет.
Пакет – универсальный механизм организации элементов в группы. В пакет можно поместить структурные и поведенческие сущности, а также другие группирующие сущности.