Skip to content
GlazunovN edited this page May 22, 2020 · 104 revisions

Методология RUP (Rational Unified Process). Основные части описания прецедентов (Use Case) и их изображение на диаграммах прецедентов.


Rational Unified Process
- это методология создания программного обеспечения, оформленная в виде размещаемой на Web базы знаний, которая снабжена поисковой системой.

Диаграмма вариантов использования (англ. use case diagram) в UML — диаграмма, которая отражает отношения между актёрами и прецедентами и которая является составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.


Прецедент
— часть функциональности моделируемой системы, благодаря которой пользователь может получить конкретный, измеримый и нужный ему результат. Прецедент соответствует отдельному сервису системы, определяет один из вариантов её использования и описывает типичный способ взаимодействия пользователя с системой. Варианты использования обычно применяются для спецификации внешних требований к системе.

Основное назначение диаграммы — описание функциональности и поведения, позволяющее заказчику, конечному пользователю и разработчику совместно обсуждать проектируемую или существующую автоматизированную систему.

  1. Идентификатор прецедента: какое имеет название в контексте.
  2. Название прецедента: какой процесс деятельности прецедента (activity).
  3. Контекст: для какой среды описывается данная деятельность.
  4. Участники (actors) и цели (goals): кто и как взаимодействует с системой.
  5. Предусловия (pre-conditions): какие действия должны быть выполнены для работы.
  6. Постусловия (post-conditions): каких результатов должны добиться.
  7. Основной поток (main flow): какие действия должны привести из предусловия к постусловию.
  8. Исключения (exceptions): какие риски могут возникнуть.
  9. Альтернативы (alternates).
  10. Временные параметры: какие существуют временны рамки для данной деятельности.

В качестве примера приведена лабораторная работа №1.

При моделировании системы с помощью диаграммы прецедентов системный аналитик стремится:

  1. чётко отделить систему от её окружения;
  2. определить действующих лиц (актёров), их взаимодействие с системой и ожидаемую функциональность системы;
  3. определить в предметной области понятия, относящиеся к детальному описанию функциональности системы (то есть прецедентов).

Для отражения модели прецедентов на диаграмме используются:

  1. Рамки системы (англ. system boundary) — прямоугольник с названием в верхней части и эллипсами (прецедентами) внутри. Часто может быть опущен без потери полезной информации
  2. Актёр (англ. actor) — стилизованный человечек, обозначающий набор ролей пользователя (понимается в широком смысле: человек, внешняя сущность, класс, другая система), взаимодействующего с некоторой сущностью (системой, подсистемой, классом). Актёры не могут быть связаны друг с другом (за исключением отношений обобщения/наследования),
  3. Прецедент — эллипс с надписью, обозначающий выполняемые системой действия, приводящие к наблюдаемым актёрами результатам.
  4. Надпись - может быть именем или описанием (с точки зрения актёров) того, «что» делает система (а не «как»).

Пример диаграммы

Понятие очереди в теории массового обслуживания. Виды и способы организации очередей в объектно-ориентированном программировании.


Очередь в теории массового обслуживания
- это множество заявок, поступивших в систему массового обслуживания (СМО), обслуживание которых ещё не началось по причине занятости всех приборов в системе. Любой системе массового обслуживания характерна структура, которая определяется составом элементов и функциональными связями. СМО включает следующие элементы: входящий поток требований, очередь, обслуживающие устройства (каналы обслуживания), выходящий поток требований.

Основные элементы системы следующие:

•Входящий поток требований (интенсивность входящего потока);

•Каналы обслуживания (число каналов, среднее число занятых, производительность);

•Очередь требований (среднее число заявок, среднее время пребывания одной заявки);

•Выходящий поток требований (интенсивность входящего потока);


Очередью в объектно-ориентированном программирование
называется упорядоченный набор элементов, которые могут удаляться с её начала и помещаться в её конец. Существует несколько способов реализации очереди:
• с помощью одномерного массива;
• с помощью связанного списка;
• с помощью реализации на двух стеках.

Пример реализации очередей (класс, метод)

    self.server_thread.start()
    print("Server loop running in thread:", self.server_thread.name)

def stop_server(self):
    self.server.shutdown()
    self.server.server_close()

def add(self, message):
    self.messages.append(message)

def view(self):
    return self.messages

def get(self):
    return self.messages.pop()

def exists(self):
    return len(self.messages)
    while True:
        time.sleep(1)
        while self.queue.exists():
            self.handle(self.queue.get())

def handle(self, message):
    """    Prototype    """
    pass

Первый способ представляет очередь в виде массива и двух целочисленных переменных. Преимущества данного метода: возможна незначительная экономия памяти по сравнению со вторым способом; проще в разработке. Недостатки: максимальное количество элементов в очереди ограничено размером массива. При его переполнении требуется перевыделение памяти и копирование всех элементов в новый массив.

Второй способ основан на работе с динамической памятью. Очередь представляется в качестве линейного списка, в котором добавление/удаление элементов идет строго с соответствующих его концов. Преимущества данного метода: размер очереди ограничен лишь объёмом памяти. Недостатки: сложнее в разработке; требуется больше памяти; при работе с такой очередью память сильнее фрагментируется; работа с очередью несколько медленнее.

Третий способ Методы очереди могут быть реализованы на основе двух стеков. Такой способ реализации наиболее удобен в качестве основы для построения персистентной очереди


Существуют следующие виды очередей

  1. Односторонние (линейный список, в котором все операции вставки и удаления выполняются только на одном из концов списка);
  2. Двухсторонние (структура данных, в которой элементы можно добавлять и удалять как в начало, так и в конец);
  3. Взвешенные настраиваемые очереди (абстрактный тип данных в программировании, поддерживающий две обязательные операции — добавить элемент и извлечь максимум (минимум)).

#Взаимосвязь вопросов

Программы могут быть актерами прецедентов. Моделируемая система, которая определяет и описывает способ взаимодействия пользователя с системой. Очереди нужны для случая, когда ресурсы программы (скорость выполнения) не обеспечивает моментальной обработки запросов. Любая сущность, взаимодействующая с системой извне,или множество логически связанных ролей, исполняемых при взаимодействии с прецедентами (функциями). Стандартным графическим обозначением актера на диаграммах является фигурка.«человечка», однако субъектом может быть не только человек, но и техническое устройство, программа или любая другая система,которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик.

Clone this wiki locally