软件架构设计(二)

来源:互联网 发布:军大衣品牌 知乎 编辑:程序博客网 时间:2024/05/27 14:12


                                                                  二  系统构成图

        有人说现在没有脱离网络的程序,我想现在也不会有单一模块的系统。一个开始看似简单的产品,却发现需要很多个技术组相互配合完成。这里愤青一把,聊点闲话。中国的龙芯CPU到现在似乎没有达到国人的预期,被很多人诟病。不过我觉得龙芯走到今天这一步,并不一定是某一个人的过错(我觉得这点投入一点也不算多),而是当初没有认识到CPU这个产品不是单纯的EDA技术能搞定的,它涉及了计算机体系架构、指令系统、EDA等等一系列技术,如果当初能再多几个像胡伟武博士这样专家,搞定其他技术,相互配合,可能中国人的龙芯会顺畅一些,所以我觉得那些骂胡博士的人多少有些过分。(这完全是我门外汉的认知,请笑笑了之!)

        话归正题,现在的系统由于业务复杂,且又要榨取数据的最后一点剩余价值,所以用到的技术五花八门。大流量的数据采集,高并发的数据响应,实时大数据处理,云存储,大数据的智能提取等等,一系列的技术,我想这不是一个人能完全掌握的。不过了解什么技术适用于解决什么问题倒是很有必要,这样可以避免概念性的错误。

        呵呵,我发现我越聊越远了,还是谈谈确定系统组成大概的几个步骤吧:

        1)根据系统功能职责,确定几个子系统的组成;

       2)根据功能特点,选择合适的开发工具,比如没有压力的数据交互,使用javaMySql就可以了,而没必要使用C++/C了;

        3)根据系统功能,确定系统间的接口,包括外部系统与内部子系统间的接口,当然这些接口尽量通用一些,可以免去很多接口变更的沟通成本;有时候别人已经运行多年的系统,这时你的系统应该能满足对方提供的系统接口;

       4)为保证系统系统有一定的扩展性,需要预留一些外部接口,也许在敏捷开发模式下,你根本不知道将来会有哪些接口,我的经验是,尽量保证数据的独立性,这样能降低系统的耦合度。

     当系统构成图出来后,系统的基本轮廓就很清晰了,下面就由各个技术小组设计各自的核心模块就ok了。



0 0