
- •Цель и задача курса. Характеристики качества по.
- •1.2. Эволюция технологий программирования.
- •1.3. Структурный подход к программированию
- •1.4. Основания и история объектно-ориентированного подхода к программированию
- •1.5. Сложность по
- •1.6. Пути ограничения сложности
- •1.7. Основные положения объектной модели
- •1) Абстрагирование является одним из главных способов, используемых для решения сложных задач.
- •2) Ограничение доступа (инкапсуляция).
- •3) Модульность.
- •4)Иерархия.
- •Варианты использования (прецеденты)
- •2.3. Диаграммы вариантов использования
- •Пример диаграммы ви для финансовой торговой системы:
- •Связи типа «расширение» и «использование». Кроме связей между действующими лицами и ви на диаграмме существуют 2 других типа связей. Это связи типа «расширение» и «использование».
- •2.4. Диаграммы классов. Общая характеристика
- •2.4.1 Ассоциации
Связи типа «расширение» и «использование». Кроме связей между действующими лицами и ви на диаграмме существуют 2 других типа связей. Это связи типа «расширение» и «использование».
Связь «расширение» используется в тех случаях, когда один ВИ подобен другому, но несет несколько большую нагрузку. В нашем примере основным ВИ является «Заключить сделку» – он предполагает нормальный ход процесса. Однако м.б. какие-либо отклонения от нормального хода, например, превышение лимита максимальной суммы торговой сделки, установленного для конкретного клиента. В этом случае процесс, связанный с данным ВИ должен измениться. Способ учесть эти изменения – поместить нормальный процесс в рамки одного ВИ, а отклонения от него – в другое место.
Образование связи типа «расширение» заключается в следующем:
сначала фиксируется нормальный ВИ;
анализируется каждый шаг в этом ВИ для выяснения возможных отклонений;
все отклонения определяются как расширения основного ВИ. Количество таких расширений м.б. довольно большим, однако их отделение от основного варианта способствует лучшему пониманию проблемы.
Связь «использование» используется в тех ситуациях, когда имеется какой-либо фрагмент поведения системы, который повторяется более чем в одном ВИ и не нужно копировать его описание в каждом из этих ВИ. Например, ВИ «Проанализировать риск» и «Договориться о цене» требуют оценки стоимости сделки. Поэтому создается отдельный ВИ «Оценка стоимости» и предыдущие 2 ВИ на него ссылаются.
Сходства и различия между связями «расширение» и «использование».
Обе связи предусматривают выделение общих фрагментов поведения из нескольких ВИ в один вариант, который «используется» или «расширяется» другими ВИ. 2 типа связей подразумевают различный смысл взаимоотношений с действующими лицами. В случае «расширения» у действующих лиц имеется связь с основным ВИ. При этом д. лицо может реализовывать как основной ВИ, так и его расширения. В случае «использования» обычно нет действующих лиц, связанных с общим ВИ.
Правила применения «расширения» и «использования».
1. Связь «расширение» используется, когда описываются изменения в нормальном поведении системы.
2. Связь «использование» применяется, когда нужно избежать повторов в двух или более ВИ.
2.4. Диаграммы классов. Общая характеристика
Класс – это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Классы используются для составления словаря разрабатываемой системы. Это м.б. абстракции, являющиеся частью предметной области, или классы, на которые опирается реализация. Класс реализует один или несколько интерфейсов. Интерфейс – это совокупность операций, которые определяют набор услуг, предоставляемый классом. Интерфейс описывает видимое извне поведение элемента. Интерфейс определяет только спецификации операций, но никогда – их реализации.
Диаграмма классов – это диаграмма, на которой показано множество классов и статических связей между ними.
Существует 2 основных вида статических связей: ассоциации и обобщения. Ассоциации представляют собой структурные отношения между объектами. Обобщения связывают обобщенные классы со специализированными.
На диаграммах классов (ДК) изображаются также атрибуты классов, операции классов и ограничения, накладываемые на связи между объектами.
Рисунок 2.2. Диаграмма классов для системы обработки заказав клиентов.
Существуют 3 различные точки зрения на построение диаграмм классов: концептуальная, т.з. спецификации и т.з. реализации.
С концептуальной т.з. диаграммы классов отображают понятия изучаемой предметной области. Эти понятия будут соответствовать реализующим их классам, но прямое соответствие часто отсутствует. Концептуальная модель может не иметь никакого отношения к реализующему её программному обеспечению. Поэтому её можно рассматривать, как независимую от языка программирования.
При построении ДК с т.з. спецификации учитывается ПО, но рассматриваются только интерфейсы, а не реализация. Здесь используются скорее типы, чем классы. (Объектно-ориентированная разработка подчеркивает различия между интерфейсами и реализацией, а в объектно-ориентированных языках категория класса объединяет интерфейс и реализацию.) Тип представляет интерфейс, который может иметь множество реализаций, отличающихся друг от друга (например, из-за среды реализации)
При построении ДК с т.з. реализации разработчики работают с уровнем реализации и диаграммы действительно отображают классы.
Различия между т.з. не слишком очевидны и часто разработчики смешивают разные т.з. На практике понимание т.з. очень важно для построения и чтения диаграмм, т.к. каждый элемент диаграммы зависит от т.з. При построении ДК т.з. должна быть ясной и единственной. При чтении ДК необходимо выяснить, с какой т.з. она строилась.
Пример диаграммы классов для системы обработки заказов клиентов приведен на рисунке 2.2.