Процессы в компьютерных программах с точки зрения системного подхода
Данный пост написан по материалам практикума системного мышления от “Школы системного менеджмента”
Системный подход разделяет понятия описания и воплощения системы. Описания существуют в абстрактном мире и используются как инструмент мышления и переноса опыта между разными проектами. Воплощения систем должны находиться в физическом мире, представлять собой конкретный объект, занимающий конкретное место в пространстве и выполняющий конкретную функцию.
Программы как воплощения систем также работают в физическом мире и представлены не их исходным кодом, а компьютерами, на которых они работают в момент выполнения своей функции, где хранятся и передаются данные, которые используются в момент работы программы, и т.д.
Аналогичный “физический” подход используется и для описания процессов, происходящих в системах. Процесс происходит не сам по себе, а с участием каких-то физических объектов, которые взаимодействуют друг с другом. Вот эти объекты во время своего взаимодействия при выполнении процесса и станут физическим воплощением этого процесса.
Возьмём заказ билета на самолет через сайт авиакомпании в качестве примера. В этом процессе будут задействованы:
- покупатель, который заказывает билет;
- ноутбук, с которого покупатель заполняет форму заказа;
- сервера авиакомпании, которые генерируют веб-страницу с формой заказа и обрабатывают введенные в неё данные;
- сервера платёжной системы, которые показывают форму оплаты и обрабатывают данные карты;
- сервера мобильного оператора, которые отправляют SMS с кодом подтверждения платежа;
- телефон покупателя, на который приходит SMS с кодом подтверждения платежа;
- почтовые сервера, на которые приходит письмо с купленным билетом.
При желании этот список можно продолжать как “вширь” (добавляя новые шаги покупки билета), так и вглубь (детальнее прорабатывая каждый шаг). Важно помнить, что процесс ограничен не только в пространстве, но и во времени - поэтому учитывайте только те объекты, которые участвуют в рассматриваемом процессе во время его выполнения.
См. также:
- Учебник “Системное мышление 2019”, глава №2 (“Воплощение и описание системы”) — отдельно рекомендую прочитать раздел “компьютерные программы” в конце главы.