Category: производство

Category was added automatically. Read all entries about "производство".

Проектирование программы для бизнес-ситуации

Задание к проекту (упражнению) 3 главы 16 «Разработка объектно-ориентированного ПО» из учебника Лафоре:

Create a use case diagram and a class diagram for a business situation you’re familiar with, whether it’s horse trading, software consulting, or dealing in rare comic books.

Мой перевод:

Создайте диаграмму прецедентов и диаграмму классов для бизнес-ситуации, с которой вы знакомы, будь то торговля лошадьми, консультирование в создании программ и пользовании ими или оборот редких комиксов.


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

Например, при торговле лошадьми, думаю, нужен будет список имеющихся на продажу лошадей. При обороте (кроме купли-продажи тут, вероятно, еще может быть обмен) редких комиксов понадобится список имеющихся на продажу (или обмен) редких комиксов.

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

В любом бизнесе может понадобиться список контрагентов (контрагент — это противоположная сторона в договоре). Контрагентами можно считать покупателей и поставщиков, заказчиков услуг, перевозчиков, подрядчиков и так далее. Также в любом бизнесе нужен список работников.

В-общем, богатая это тема, по которой написаны тысячи книг, а для облегчения создания программ для учета есть множество «движков» вроде семейства программ фирмы «1С». Чтобы не углубляться в эту бесконечную тему, я решил кратко описать совсем небольшой кусочек «бизнес-ситуации», с которой я немного знаком.

Бизнес-ситуация: склад каменных блоков

Камень — популярный строительный материал. Гранитные набережные, вымощенные каменными плитами или брусчаткой площади, бордюры, каменные фигуры и статуи — всё это выглядит великолепно. Однотипные изделия из камня вроде бордюров, плитки и брусчатки производятся станками на заводах строительных материалов. Штучные фигуры и статуи изготавливают скульпторы.

Но заводы и скульпторы не работают напрямую с каменной скалой, а получают на вход заготовки — каменные блоки. Это куски камня, имеющие форму, близкую к прямоугольному параллелепипеду (в идеале). Камнедобытчики разрабатывают карьер камня, на котором разными способами (например, взрывным способом или отпиливая алмазным канатом) получают из скалы каменные блоки. Готовые каменные блоки складируются в разных местах неподалеку от карьера и в самом карьере. После этого каменные блоки доставляются автомобильным транспортом или по железной дороге на склад около завода или около мастерской скульптора.

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

Внешние размеры нужны для перевозки, так как только по ним можно судить, влезет ли блок в кузов машины или в железнодорожный вагон. Еще для перевозки нужно знать массу блока. Состоятельные предприятия могут себе позволить приобрести весы, на которых взвешивается грузовик с блоками целиком. Если весов нет, то масса блока определяется умножением плотности камня на его усредненный объем (усредненный в том смысле, что берется среднее арифметическое между объемом, исчисленным по внутренним размерам блока и объемом, исчисленным по внешним размерам блока).

Камнедобытчики маркируют каменные блоки краской. Маркировка включает номер блока и его размеры. Еще среди характеристик каменного блока можно выделить вид камня (например, гранит или мрамор разных цветов) и месторождение, на котором этот блок был добыт. У самого камня есть много разных геологических и химических характеристик, но я не буду в это углубляться.

Возможности станков на заводах строительных материалов ограничены, то есть эти станки не могут принять на вход каменные блоки с размерами, превышающими некие максимальные размеры. Сами эти станки бывают разных размеров, поэтому и максимальные размеры каменных блоков для них тоже разные. Камнедобытчики работают по государственному стандарту, учитывающему ограничения станков. Этот государственный стандарт делит добытые блоки на группы по их размерам и объемам. Слишком большие каменные блоки делят на более мелкие. Стандарт не допускает в каменном блоке трещин (они мешают работе станков на заводах), это одна из причин, почему блоки из группы с более крупными размерами и объемом оцениваются в денежном выражении более дорого, чем блоки из группы с меньшими размерами и объемом (большой каменный блок без трещин сложнее получить, чем маленький каменный блок без трещин).

Камнедобытчики могут добыть каменный блок (или несколько) с нестандартными размерами на заказ. Например, это бывает нужно скульпторам. Такие блоки оцениваются в денежном выражении дороже стандартных.