На этом шаге рассмотрим типичные приемы моделирования программного интерфейса API в UML.
Если вы разрабатываете систему, состоящую из частей-компонентов, вам часто требуется видеть интерфейсы прикладного программирования (application programming interfaces, API), посредством которых эти части связываются друг с другом. API представляют программные соединения в системе, которые можно смоделировать, используя интерфейсы и компоненты.
По сути, API – это интерфейс, который реализуется одним или несколькими компонентами. Как разработчик, вы на самом деле заботитесь только о самом интерфейсе – какие именно компоненты реализуют операции интерфейса, неважно до тех пор, пока какой-нибудь компонент реализует их. С точки зрения управления конфигурацией системы, однако, эти реализации важны, потому что вам необходимо быть уверенным в том, что когда вы опубликуете API, то будет доступна некая соответствующая ему реализация. С помощью UML можно смоделировать оба представления.
Операции, ассоциированные с любым семантически насыщенным API, будут встречаться достаточно часто, потому в большинстве случаев вам не понадобится визуализировать все их сразу. Напротив, вы будете стремиться к тому, чтобы оставлять операции на периферии ваших моделей и использовать интерфейсы в качестве дескрипторов, посредством которых можно будет найти все эти наборы операций. Если вы хотите конструировать исполнимые системы на основе таких API, то вам понадобится детализировать модели настолько, чтобы инструменты разработки были способны производить компиляцию в соответствии со свойствами интерфейсов. Наряду с сигнатурой каждой операции вы, возможно, захотите отобразить варианты использования, объясняющие, как нужно применять каждый интерфейс.
Чтобы смоделировать API, необходимо:
На рис. 1 представлен API компонента анимации.
Рис.1. Моделирование API
Вы видите здесь четыре интерфейса, составляющие API: IApplication (IПриложение), IModels (IМодели), IRendering (IВизуализация) и IScripts (IСценарии). Другие компоненты могут использовать один или несколько таких интерфейсов по необходимости.
На следующем шаге рассмотрим базовые понятия взаимосдействия объектов в UML.