Posted on 2016-01-12 15:26
morcble的blog 阅读(289)
评论(0) 编辑 收藏 所属分类:
Java
问题:
在我们的软件立项阶段,我们通常会预估软件开发周期,成本预算,人员配置,版本迭代时间节点.
但是大量的软件研发在实际的操作上都不可能按我们计划顺利实施。
因为有很多综合的因素是人为不可控的,
1,不断变更的需求
最有可能导致软件研发失败的因素。客户本身不一定是软件专业人士,大多是用一堆可能互不相干的松散的功能点来讲诉他们所设想的软件。他们
需要什么样的软件和他们所能描述的可能差距很大。在研发的过程中,甚至交付阶段,客户也会不断的提出新需求和变更需求。
2,业务模型设计有误
需求调研不明确或者涉及到需求大的变更都会影响业务模型,直接导致数据库大幅度增删数据表及字段
3,系统编程结构繁琐
多模块及分布式远程调用系统与研发环境紧耦合。在研发中需要调用多个远程服务(不包括第三方系统),测试一个子功能设计到库打包到maven库再远程包含,极大增加了编程测试的步骤与难度。
4,前端和后端研发的时间差
后端研发比前端慢,前端需要的模拟数据需要等待后端的服务,或者前端根据业务写模拟数据
5,研发人员差异
人员的素质参差不齐,编程风格不统一,逻辑思维不够严密常常引发很多BUG。
改变:
文档驱动的模板系统设计
顾名思义,以需求文档为驱动,模板为材料,以架构为核心,通过模式映射软件组装我们的软件系统,M-SYS。
M-SYS的必须包含的模块:
前端页面,前端JS框架,后端服务模块,后端数据库操作模块,缓存模块,日志模块,权限系统,Session子系统。
针对移动服务,需要增加后端数据加密系统,后端服务系统。
针对分布式系统,需要增加分布式远程调用模块,服务发现子系统,分布式消息子系统,分布式缓存系统。
M-SYS的几个必要特征:
1,简单逻辑的代码自动化:根据文档生成增删查改看的前端和后端代码。当需求导致文档变更时,也可简单的重新生成代码。
2,功能模块插件模式:根据需求自由搭配不同需求文档组装成新的系统。
3,简化研发和测试:把系统设计,细节,容易犯错的地方与研发人员高度隔离,软件开发人员仅仅专注于业务逻辑的实现,便捷的测试环境和步骤。
模板,模块,特征及子系统的设计此篇文章不做详述。以下以简单的实现做为说明,
需求文档以Excel为载体
利用模式映射软件在几十毫秒生成以下所有的模块
在M-SYSTEM体系下,一个不会编程的人都能非常方便的编写出一个庞大的软件及分布式系统。M-SYSTEM强调每个独立的轻服务模块,在名空间管理下,利用已有的各种服务可以像搭积木一样组成一个复杂的界面,