Состояние объекта
Объектно-ориентированный подход к системному анализу и проектированию систем подразумевает, что любая система состоит из независимых объектов, которые содержат и процессы, и данные.
Как вы помните, объект (Object) — это экземпляр определённого класса (Class). Например, все больные, поступающие в приёмное отделение, могут быть представлены классом «пациент». Каждый поступивший больной — это объект.
Класс определяет атрибуты (Attributes), которые позволяют описать любой его объект. Например, каждого больного можно описать с помощью атрибутов «имя», «СНИЛС», «контактный номер телефона», «жалобы и симптомы», «диагноз» и других. Атрибуты объекта хранят данные, которые нужны для выполнения действий и процессов.
Объекты одного класса отличаются друг от друга значениями одного или нескольких атрибутов. Например, у каждого больного уникальный номер СНИЛС. При этом разные объекты одного класса могут находиться в одном и том же состоянии.
Состояние (State) — это набор значений атрибутов, описывающих объект в определённый момент времени. Состояние фиксирует момент, в котором объект удовлетворяет конкретным условиям, выполняет действие или ожидает, что что-то произойдёт. Объект может находиться только в одном состоянии в конкретный момент времени.
Например: любой больной, поступивший в приёмное отделение, может находиться в состояниях «ожидает осмотра», «на осмотре», «под наблюдением врача» или «выписан».
Жизненный цикл объекта
Объект может неоднократно менять состояния. Все возможные состояния, которые он может принимать, называются жизненным циклом объекта (Object’s Life Cycle).
Жизненный цикл описывает переходы между состояниями во время использования объекта в определённом контексте. Объект может существовать до начала жизненного цикла и после его окончания. Например, больной может находиться в состояниях, которые не будут значимыми в контексте приёмного отделения: «голоден», «спит», «проходит физиотерапию».
В зависимости от контекста, один и тот же объект может иметь разный жизненный цикл. Задача системного аналитика — определить состояния, которые значимы в контексте системы или её отдельного процесса.
Например, для работы приёмного отделения значимыми состояниями пациентов могут быть «ожидает осмотра», «на осмотре», «под наблюдением врача» или «выписан». Если системный аналитик участвует в разработке CRM-системы для сайта, значимым состояниями для неё будут — «новый клиент», «текущий клиент» и «бывший клиент».