如何理解一个系统的架构(转载)

一、任务划分

要将业务流程转为软件中的执行实体,那就是任务,有可能是进程,有可能是线程。系统设计中任务的划分有一些原则,比如功能汇聚,资源统一任务调度等等原则进行划分就可以。任务中不用有重复,如功能实现在多个任务中都设计,没有必要。尽量单一任务执行单一流程功能,不交叉。

二、数据传递方式选择

软件系统中很大程度上是数据传递,不同的任务,模块之间的数据传递是系统的必须。所以系统设计人员应该在这方面多下些功能,避免将此工作转嫁给程序员,程序员面临数据传递方式选择的困难,同时也容易导致使用不同的方法,增加软件的复杂度,导致软件工程质量下降。

常用的多任务系统下,使用消息队列来进行流程的异步处理,保证时序性。使用消息进行状态的迁移和状态变化的告知。系统设计过程中主要使用时序图来进行设计。使用时序图可以很方便地转换成代码。其中的消息和调用关系也比较容易梳理清楚,哪些是需要传递消息的,哪些是直接调用,哪些是状态回发。

系统设计人员需要定义基本的消息体结构和关键消息序列,代码满足可以实现业务状态流转即可,不需要完整实现,相当于有个程序模板;具体的程序员可根据模板和流程补充完整消息体结构和所有要使用的消息序列。

在业务流程中,有些是关键数据和状态,数据共享区的设计,需要系统设计人员将此转化为相关数据结构和存储结构,这部分程序员一般对全局的系统设计了解不多,很难考虑全面。比如业务流程节点数据设计,相关处理状态,前后都有关联,有的数据比较大,内存使用多,都需要统一考虑。

最后是接口部分的设计,系统设计人员需要把握设计的颗粒度,既不能太粗,也不能太细,这里有个经验,设计到层次间的接口即可,如果有时间精力关键模块接口也可以设计出来,这样方便程序员。模块接口的设计可以参考:https://blog.csdn.net/DQWKLC/article/details/91491972
 

三、代码工程的建立

在代码开发的过程中,代码最终是软件代码目录文件。有的公司按照开发的人力部门组织来进行代码工程的目录组织,认为这样是人员进行代码管理方便,同时进行代码权限的管理,这种做法在软件工程中危害很大,不符合软件工程的理念。部门人员变化,组织结构一旦变化,导致代码后期维护要花费很多时间,容易交叉维护代码。开发和维护效率低,软件工程质量容易走下坡路。

通常的做法是按软件层次,从高到低进行代码目录的组织。一般层次依次是: UI界面表现层, 业务流程逻辑层,业主支撑层,基础模块组件层,设备驱动层,操作系统适配层,最后是OS层

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值