如何规划系统的架构

在规划一个信息系统时,常常有很多人一开始就画原型并且做一些主菜单子菜单的划分,这样的方法是存在很大问题的,对系统逻辑的理解只停留在表面。
没错,在设计系统时最开始确实是要定义好模块结构的划分,但是划分的方法不应该按照功能模块而是按照业务逻辑进行划分。信息系统只有两个作用,一个是解决问题,另一个是业务提升。首先在规划系统时要思考这个系统的作用到底是解决了什么问题或者对企业带来了怎么样的提升。在这个大的环境下确定了之后,需求分析的阶段,应该按照业务的职责区块来划分子系统。


加群957734884免费领取java架构资料

这张图应该是很普遍而且典型的后台管理系统,但是这样的系统无论是在开发还是使用我认为都是达不到出色的。图中的板块划分采用"业务名词+管理"来进行命名,实际上也就是以"物"为线索贯穿整个系统。但是在实际操作中物与物之间的传递都是交错在一起的,例如图中的项目管理板块中包含了"合同管理",在合同管理板块中又包含了"合同管理"那么究竟是哪个进行管理呢,项目管理中是否又包含权限的区分呢,这样的划分明显是有问题的。我在另一个回答上提到过"穷尽不重复"的划分方法,其实在这里就可以体现出作用来。
那么正确的后台划分子系统的方式应该是按照业务流程来划分,以"事"为线索贯穿系统。采用业务流程的环节进行划分可以有效的避免重复和混乱的现象,对整个系统的架构都是非常清晰明了的。想要以"事"为线索进行梳理,有一个很好的方法就是使用UML中的构件图的来解决。对于产品人员,只需要理解构件图的思想,画出一个轻量级的框架。


加群957734884免费领取java架构资料

首先在构件图中两个最重要的概念构件和接口对应着事件和流程,接口与接口之间只存在实现(代表这个流程由这个事件提供的)和使用(代表这个事件要使用这个流程)这两个关系。理解了这一概念之后就可以对事与事,事与流程,流程与流程之间进行连接。


加群957734884领取java免费架构资料

画构件图,第一步是识别建模的构建集合,也就是对主题域进行划分。可以按照工作职责范围(部门)划分成不同的主题域,划分的时候也可以根据需要进行多级的嵌套,这样可以更容易理解上下级之间的关联。例如软件开发商可以按照开发人员,产品人员,销售人员职责不同进行第一级区块划分,然后再根据开发人员负责的不同环节进行第二级部门的划分。那么根据区块就可以很容易划分出"销售"和"研发"两个主题域。
在研发这个主题域内主要负责针对软件研发进行管理,经过设计,研发,测试这几个阶段生产出成型的软件。那么这块就可以命名为"研发管理系统子系统"。
在销售这个主题域内主要负责对客户的销售,客户培训,售后服务等,因此这块可以命名为"客户服务管理子系统"。
在一般的系统中往往会加入后勤板块,在这个板块内含有硬件,财政和人员这些基本模板,可以划分成“硬件服务管理子系统”,"财政管理子系统"和"人员管理子系统"。后面两个子系统按照范围界定的原则相对独立,所以在前期设计中暂不考虑。


加群957734884领取java免费架构资料

第二步需要把功能不同的模块划分成构件,同时确定构件与构件之间的接口,也就是开始绘制构件图。首先每一个主题域就是一个构件,这个比较好理解。先分析各个主题域之间的关系,四个系统两两之间有不同的关系。因为人员管理子系统相对比较独立,所以这块可以最后考虑。
"研发管理系统子系统"与"客户服务管理子系统":研发管理需要获取客户服务管理中的订单详情、研发要求、客户资料等;而客户服务管理需要获取研发管理中的项目进展、功能设置等。
"研发管理系统子系统"与"硬件服务管理子系统":研发管理需要知道数据库和服务器的情况,后台资源占用的情况;硬件服务管理需要获取研发团队的项目进度,功能规划和版本维护的情况。
"客户服务管理子系统"与"硬件服务管理子系统": 硬件服务管理需要知道客户的基本信息以便确定投入什么硬件支持;客户服务管理系统一般就不需要从后台服务系统获取信息。


加群957734884领取java免费架构资料

(上图是一个比较简单的原型,实际规划还要考虑主题域之间更多关联)
最后一步进行主题域范围的明确,界定每个主题域内进行的功能以及相关的事件。在一些书籍中也把这个关系成为上下文关系,即主题域与功能之间父级与子级的概念。在这个阶段要考虑到Customer与Worker之间的关系。找到系统中所有的客户,考虑这些客户会引起什么事件的发生,这些事件会引起Worker什么样的工作,讲这些都考虑进来。然后再补充Worker主动发起的动作,那么一个系统的所有事件就能没有遗漏地梳理完整了。这里值得注意的是,对于研发管理子系统而言,其他的客服管理,财政管理都属于是客户关系。他们对于研发关系系统属于消费者的动作。


加群957734884领取java免费资料

通过以上三步可以把一个系统大致的框架搭建起来。这样搭建的好处在于系统的业务流程很清晰,无论是对于研发还是使用者而言都是有好处的,每个人都能清楚地意识到自己在做什么事情。上述分析方法是徐峰老师提出的SERU需求分析法中关于主题域确定,也就是系统框架结构确定的第一步,这也是设计一个系统最根基的地方,然后才是去考虑更细化,更精准的业务流程设计。把根基打好再去做子系统内部的规划就变得比较简单。对于一个系统,在设计时一定要有“自上而下”的思想,从最大的环境去考虑问题,这样才不会在后期规划中因为突然插入的东西变得混乱。(图片有部分来自网络,侵删)。
最后

我分享最近几年的收集的java视频资料,希望可以帮助到大家的技能提升


加群957734884领取java免费资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容