Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.07.2012, 10:45
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
Рассмотрим на примере реализации учетной системы для розничной торговли. Возьмем небольшой магазинчик по типу минимаркет с тремя кассами. В таком магазине обычно имеется система управления кассами, где на сервере имеется список товаров с ценами. Количество товаров там обычно не учитывается. Учитывается количество проданных за смену товаров и полученная выручка. Нужна система, которая позволит отслеживать остатки товаров и заказывать их своевременно. Действующие лица: 1. Товаровед, который формирует заказы для поставщиков 2. Оператор, который вводит приходные накладные. Само приложение есть процесс синглетон. Процесс имеет два состояния 1. New 2. Registered В состоянии New процесс имеет операцию Login (Залогиниться) и Exit (Выйти) В состоянии Registered процесс имеет операцию Logout (Разлогиниться), Exit(Выйти), OrderWare(Сформировать заказ, собственно это уже процесс), AcceptWare(Принять товар, это тоже процесс) Процессы и операции реализованы классами. Процесс наследуется от операции. Приложение, абстрагированное от предметной области уже есть. И у него уже есть операции Login, Logout, Exit Значит для реализации конкретной прикладной задачи (розничная торговля) нужно создать два процесса. OrderWare и AcceptWare Попытаемся спроектировать процесс OrderWare. Примем как должное, что в системе уже есть следующий набор классов 1. Ордер 2. Продукт (Товар) 3. Регистр учета Состояние New есть у каждого процесса по-умолчанию. К этому состоянию нужно привязать операцию формирования заказа, которая должна создать объект Ордер, проверить наличие минимальных запасов товара и выбрать те, где остатки меньше, чем дневной запас. В системе уже должно быть настроено для каждого продукта его минимальный запас в разрезе периодов (например хлеб и молоко заказывается ежедневно, а туалетная бумага еженедельно). Кроме того для каждого товара должен быть прописан один или несколько поставщиков. Вот система и должна сформировать список со следующими полями: 1. Поставщик 2. Товар 3. Единица изм. 4. Количество Получаем документ Ордер, где в шапке номер, дата и в многострочной части список товаров с количеством в разрезе поставщиков. Этот процесс OrderWare запускает товаровед. Поскольку это новый экземпляр процесса, то у него будет состояние New, к которому привязана операция PickupWare (Подобрать товар) и она указана по дефолту для данного состояния. Соответственно при запуске процесса OrderWare выполнение сразу перейдет к операции PickupWare. Операция сформирует документ Order и выдаст окно товароведу. Товаровед может вручную подправить строки документа. Например, подправить количество или добавить новые позиции. Тут на ум приходят следующие мысли. Обычно изменения в документе товаровед не будет делать с бухты барахты, а по какой-то внешней причине. Но это мы рассмотрим позже. И вот товаровед начинает заказывать товар. Он может сделать это либо по телефону, либо отправить Емайл поставщикам, либо через вебсервис. Рассмотрим ситуацию, когда товаровед это делает по телефону. Если несколько разных товаров заказывается у одного и того же поставщика, то логично группировать строки в документе по поставщикам, чтобы товаровед не звонил несколько раз одному и тому же поставщику. В таком случае товаровед начинает по списку звонить и заказывать. Если удалось дозвониться и заказать требуемое количество. то товаровед ставит галочку, если не удалось заказать требуемое количество, то правит количество. Если вообще не удалось дозвониться, то выбирает другого поставщика (если такой предусмотрен для товара) или удаляет позицию. По окончании процедуры заказа товаровед сохраняет документ - фиксирует заказ. В плановый регистр учета вносятся записи о предполагаемом приходе. Теперь на сцену выходит новый актер - оператор. Когда приходит товар, он запускает свой процесс AcceptWare, который доступен только когда был сформирован заказ. То есть основанием для запуска процесса AcceptWare является наличие процесса OrderWare в состоянии Ordered Процесс выполняет дефолтную операцию, которая запрашивает у оператора ввести поставщика, который привез товар. Так как поставщиков у нас может быть несколько, то привозить товар они будут не одновременно, и одному процессу OrderWare будет соответствовать несколько процессов AcceptWare. которые будут создаваться по мере поступления товара. Указав поставщика оператор получает на экран форму с сформированным документом M-15 приходный ордер, в котором указан номер, дата и поставщик. А в многострочной части указана номенклатура из заказа для данного поставщика и с количествами из заказа. Оператор должен проверить соответствие состава и количества и подтвердить документ. После этого в регистр учета факта попадают строки товара с количеством. Я намеренно не стал здесь описывать ситуации, когда приходит брак или не то количество или когда нужно с поставщиком расторгнуть договор и заключить новый договор с новым поставщиком. Я просто описал как проектируется система и как она реализуется. У меня есть две платформы. Одна Delphi/MSSQL, вторая WinForms/WebMethod/MSSQL. Эти платформы позволяют создавать объекты процессов и операций один в один в соответствии с проектом. Жду откликов. Спасибо за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 11:01
|
|||
---|---|---|---|
|
|||
Пример использования моей технологии проектирования и реализации |
|||
#18+
Old NickЖду откликов. Спасибо за внимание. Откликов на что? Ты описал стандартный бизнес-процесс покупки. Какие ты там абстракции применишь для его реализации - вообще не важно. Здесь все настолько просто и типично, что такие вещи нужно делать "на автомате". Важно как раз то, что не попало в твой пример: нестандартные ситуации. Пересортица, брак, возвраты. Все это ломает красивый бизнес-процесс, и качество проектирование как раз и определяется тем, как ты разруливаеь такие случаи, а не когда все идет по плану. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 11:04
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
ДжекНепотрошитель, Да, я не стал описывать это. Но это описывается и реализуется теми же процессами и операциями. Точно так же стандартно. Мне интересно, кто еще так делает и какие при этом используются системы. Есть ли системы позволяющие описанные процессы реализовывать без преобразования? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 11:06
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
Old Nick, ябычный воруфло ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 11:21
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
ViPRos, Да, верно, WorkFlow. Ищу применение для своих систем. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 12:36
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
Old NickViPRos, Да, верно, WorkFlow. Ищу применение для своих систем. Сам же написал - торговые системы для розничной торговли. Там и применяй. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2012, 18:37
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
Old Nick, Много воды, а главное авторплатформы позволяют создавать объекты процессов и операций один в один в соответствии с проектом опущено. Потому что вдруг - один в один, но в турбовижн и текстовом режиме? Очень важны юзабилити и тому подобное. Тут многие приводят свои фреймворки и платформы. Надо показать тупо как это выглядит на дисплее. А то вдруг окажется что у вас как система "Дракон" - вроде бы все логично, но интерфейс просто неподъемный, или трудно интегрировать, или трудно разрабатывать. Ну и всякие фичи типа распределенная структура с возможностью офлайн-работы (узлы, репликация транзакций, синхронизация метаданных), коллективная разработка, отчеты, прозрачность структуры бд для доступа к данным в обход приложения, должны быть, век информационных технологий чай. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2012, 10:25
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2012, 15:40
|
|||
---|---|---|---|
Пример использования моей технологии проектирования и реализации |
|||
#18+
Old NickРассмотрим на примере реализации учетной системы для розничной торговли.... 1) не раскрыта тема офф-лайн работы касс(обычное требование для этих систем) 2) интеграция авторизации пластика и иных систем скидок-оплаты, вплоть до своего процессингового центра на серваке. 3) работа с весовым товаром (в плане оперативного апдэйта цен в точках взвешивания). 4) автоматизация с применением штрих кода (вертикаль - от приёма товара до кассы и контроля). так же не забываем в разрезе самой механизации - т.е. технических средств и взаимодействия с ними. 5) не раскрыта тема номенклаторов(справочников). подход в образовании(европейский, советский), кол-во уровней, тип реализации - выражженый или смешанный. технология наполнения его в сжатые сроки. 6) и т.д... удачи вам (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=33&mobile=1&tid=1547815]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 147ms |
0 / 0 |