-9

Конструкция, поведение, функция и сервис

Конструкция, поведение, функция и сервис Длиннопост, Инженерия, Терминология, Видео

Представьте, что у вас есть продуктовый бизнес, допустим, вы разрабатываете, производите и продаете автомобили, телефоны или компьютерные программы. Если вы производите автомобиль, то все детали должны подходить друг-другу, а каждый последующий автомобиль, который вы делаете на производственной линии должен как можно больше походить на другой, в этом смысл серийного производства. Тем более программы, они вообще идентичны до последнего бита. Чтобы производство могло собрать идентичные единицы продукции, разработчики должны передать им комплект документации, который описывает единственно верный вариант конструкции. Такой единственно верный вариант конструкции называется в английском языке point design, а на русском - "конструкция, отвечающая заданным требованиям".


Хотя point design и описывает автомобили с размерами, в идеале абсолютно идентичными от одной машины к другой, нас как пользователей автомобиля интересует изменения этого размера. Действительно, что в кресло можно было удобно сесть, оно должно деформироваться под нами, а не быть строго того размера, которого его выпустили на заводе. Чтобы колеса ехали по дороге и мы не чувствовали неровностей, они должны менять свою форму, поглощать удары.


Даже микропроцессор в автомобиле, хотя мы этого не видим, при работе постоянно меняется физически:

Конструкция, поведение, функция и сервис Длиннопост, Инженерия, Терминология, Видео

Посмотреть как физически меняется микропроцессор во время своей работы можно в симуляции

Другими словами, у конструкции есть набор каких-то фиксированных состояний, которые она занимает, и именно эти состояния и образуют полезное поведение продукта. Даже пол в здании, где вы сейчас находитесь, немного прогибается под вашим весом, это и есть его полезное поведение. А автомобиль при столкновении должен правильно разрушаться, так, чтобы направить энергию движения автомобиля, которая равна энергии стегозавра, который падает с третьего этажа, в безопасном для пассажиров и водителя направлении:

В конструкции нас интересует не какое-то ее одно фиксированное состояние, а набор состояний, поведение.

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


Так мы пришли к простой мысли - у каждой конструкции есть свое поведение. И именно поведение какой-то конструкции нам интересно и полезно. Отличие подвески МакФерсон от многорычажной нас интересует ровно потому, что они просто по-разному ведут себя.


Теперь разберемся в том, что такое функция и чем она отличается от поведения. Представьте, что вы положили на кресло автомобиля мешок со свинцовыми чушками весом 500 кг. Оно прогнется так, что подушки сиденья лопнут, а может и пружины порвутся. Если в обычной квартире устроить бассейн на 5 кубометров, то пол провалится. Если телефон унести далеко от станции базовой станции, то он потеряет сигнал и по нему нельзя будет позвонить. То, что кресло ломается, пол дома проваливается, а телефон перестает обеспечивать связь - это тоже поведение. Но это поведение за рамками контекста эксплуатации. У каждой конструкции есть какие-то рамки контекста, в которых его поведение будет полезным и его можно будет использовать по назначению. Чтобы отделить полезное поведение продукта от поведения конструкции вообще, есть понятие функции.


Функция - полезное поведение конструкции в рамках контекста эксплуатации.


У нас появилось слово "контекст", что это означает с практической точки зрения? Это означает, что функцию мы моделируем совсем по-другому. У функции есть входы и выходы, функция преобразует входы в выходы. Допустим, есть автомобиль, у него есть конструкция, у этой конструкции в рамках контекста дорожных дорог и заправок есть полезное поведение - он перевозит людей и грузы. На вход функции автомобиля поступают люди и груз в одном месте, а на выходе - люди и груз в другом месте, куда автомобиль их привез. При проектировании функцию автомобиля разбивают на составные подфункции, например, есть кресло автомобиля, у кресла есть конструкция, у конструкции есть поведение - деформироваться под тяжестью и придавать форму гнущимся предметам:

Конструкция, поведение, функция и сервис Длиннопост, Инженерия, Терминология, Видео

На входе функции кресла человек, на выходе человек в эргономичной позе. Аналогично багажник, у багажника есть конструкция, у конструкции есть поведение - ограничивать объем, и есть функция - обеспечивать хранение предметов при перевозке. На входе функции багажника предметы и грузы, а на выходе защищенные от дождя и ветра предметы и грузы.


Функция моделируется поведением, которые одни объекты контекста эксплуатации преобразует в другие объекты контекста эксплуатации. А сам контекст определяется набором этих объектов и их взаимодействием - дождь падает на грузы и людей, колеса едут по дорожному покрытию и т.п.


И хотя это именно у конструкции есть какая-то функция, разработка и проектирование начинаются именно с размышлений о том, как продукт будет работать, о его функционировании. В целом разработчику проще подумать так: "Вот есть человек, вот есть машина, вот есть дорога, по дороге будут встречаться заправки. Вначале человек должен сесть в машину, значит, у машины должна быть функция посадки людей, на входе которой будет стоящий перед ней человек, а на выходе человек в салоне автомобиля. Какая конструкция могла бы обеспечить такую функцию? Заходим мы в машину через дверь, давайте посмотрим какая конструкция дверей подходит больше? Теперь у нас есть человек в салоне автомобиля, он не может всю дорогу стоять, ему нужно сесть, значит выход предыдущей функции - человек в салоне автомобиля будет входом следующей функции, посадки в сидячее положение. На входе этой функции человек в салоне автомобиля, а на выходе человек в эргономичной позе. Эту функцию может выполнить вот такая конструкция кресла". Функции связаны между собой входами и выходами и они позволяют рассматривать комплексное поведение продукта, планировать его использование, для того, чтобы создать оптимальную конструкцию, которая будет наилучшим образом вести себя в данном контексте использования.


Инженеры разделяют рассмотрение конструкции и функции. Функциональное рассмотрение позволяет обсуждать логику поведения и использования системы, а конструктивное рассмотрение позволяет принимать такие проектные решения, которые наилучшим образом реализуют согласованные командой проектировщиков функции. И вот конструкция, отвечающая заданным требования (point design) и есть такое конструктивное исполнение, которое обеспечивает такое наилучшее поведение.


При проектировании инженеры разбивают автомобиль на части целого - он состоит из кузова, шасси, электрики с электроникой, отделки салона, стекол; и функционально - автомобиль должен ездить вперед и назад, разгоняться и тормозить, поворачивать вправо и влево, защищать от погоды и столкновений. Такие разбиения называются конструктивными, или PBS, plant breakdown structure, и функциональными, или FBS, functional breakdown structure.


Теперь "склеим" конструкцию и функцию. Вот есть автомобиль в контексте использования - есть дорога, заправки, водитель, пассажиры и грузы. Функция автомобиля - перемещение пассажиров и грузов. Эта функция одинакова для Феррари и Газика, они оба перемещают пассажиров и грузы. Но вот сервис эти двух автомобилей разный, это очевидно. Сервис - это выполнение функции с каким-то уровнем (уровнем сервиса, service level) на каких-то условиях (соглашение об уровне обслуживания, service level agreement). И сервис, конечно, является поведением продукта, но мы фиксируем как уровень сервиса так и контракт на выполнение сервиса только для определенной точки пространства и времени. Эта точка называется "интерфейсом". Вы не можете получить обслуживание в МакДональдс, если сядете на скамеечке рядом, вам надо будет подойти к стойке и сделать заказ по определенным правилам. Вы не можете уехать с вокзала или улететь на самолете, сидя у себя дома, вам надо прибыть на вокзал или в аэропорт и занять свое место по строгим правилам. Вы не можете отправлять сообщения в WhatsApp силой мысли и в зоне плохого приема.


Сервис - это функция с определенным уровнем исполнения этой функции, у которой есть контракт на ее исполнение, и которая оказывается в определенной точке пространства и времени.

Найдены возможные дубликаты

0

С этим согласен безоговорочно. Но разве сервис = поведение?

раскрыть ветку 2
-1

В классике системного моделирования да, возьмите хотя бы спецификацию ArchiMate:

Иллюстрация к комментарию
раскрыть ветку 1
0

Во, то есть, тут немаловажен контекст. В целом, весьма занимательно!

0

Круто. Плюс за вечерний мозголом.

Но хочется подробных пояснений и дискуссий на тему «сервис = поведение продукта», т.к. в корне не согласен с этим. Сервис - это неотъемлемая часть продукта. Как Вы правильно заметили - это функция с определенным уровнем исполнения этой функции, но разве это отождествляется с поведением продукта?

раскрыть ветку 1
-1

Есть сервис доставки срочных сообщений. Александру Макенскому этот сервис оказывался конными курьерами, Петру Великому - почтовой службой, Николаю 2 - телеграфом, Сталину - телефоном и телетайпом, потом были электронная почта и СМС, сейчас мессенджеры. Сервис по сути один и тот же, роль его в жизни все та же, а продукты, которые оказывают этот сервис, совсем разные.
Чем отличаются эти сервисы? Уровнем сервиса, уровнем обслуживания, SLA. Лошадь имеет другие ограничения на поведение по сравнению с радиоголовой 4G вышки, сервис другой, привязан к конструкции.

-1

Эх, минусят пост, а ведь любопытно(

Вообще, размышления и там, где надо думать - тут минусят, как я понимаю. Тяжело даётся. Зато котики и всякая непотребщина - заходит на ура)))

Похожие посты
Похожие посты не найдены. Возможно, вас заинтересуют другие посты по тегам: