协同开发框架与离散仿真引擎

发布时间:2016-06-21 打印[ ]

实验室的协同开发框架的灵感来自于汽车制造业,采用工厂化装配思维,致力于打造信息化系统的软件生产平台,从而将自由化的软件开发活动变为标准化的软件制造活动,实现平台型号细分化(类似汽车平台PQ35、PL45等)、模块零件化、生产流程化、管理过程化,极大提高了软件研发效率,降低了软件产品的交付周期。


1-1.png

      

   

协同开发框架强调


标准化与规范化

2-2.png

轻量化

我们遵循席克定律,提供最少的API给程序员,类似汽车一样,不管内部的机械设计如何复杂,只有方向盘、刹车、油门、离合、变速档杆等几个必备接口。目前,我们提供了8个RESTFUL服务和4个扩展接口,可满足信息化管理系统的常规开发需求。


4.png

Restful API

5-2.png


实战化

开发框架并非简单的功能堆砌,而是根据10多年的软件开发经验进行的涉及团队管理、软件开发、用户体验的最优化解决方案,我们遵循奥卡姆剃刀原理,用最简单的解决方法解决最复杂的问题,杜绝导致增加决策时间和运维成本的简单问题复杂化做法。


7-1.png


专注化

开发框架专注解决信息化系统中的软件开发问题,后端开发框架专注提供数据存储、消息传递、业务模块可视化配置、权限管理、组织机构、身份认证等服务,前端UI组件,采用纯JavaScript实现各种用户交互功能,包括数据的临时存储、GIS地图操作、手写签名、打印、拖拽、上传附件、富文本编辑、表单的所见即所得化(WYSIWYG)等,使得客户关注于业务处理,而非将精力分散在为浏览器安装各种控件或者浏览器兼容性上。


8-1.png


非模式化和微服务

我们强调软件业是一个服务行业,为客户提供服务、促进客户生产力和生产效率的提升是我们开发软件的原动力。这种理念体现在我们交互的软件产品上,主要表现为提醒服务、业务流程处理服务和数据可视化展现服务;这种理念也同时灌输在我们的软件开发代码中,软件代码分为两类:(1)服务类代码,包括业务处理插件、数据处理插件以及服务聚类化和API化;(2)消息响应代码,主要用于响应用户操作,提供良好的用户体验。这里没有MVC,没有分布式,没有MapReduce,只有一个又一个体贴入微的细致服务,这些服务各司其职,只专注办好自己的事,汇聚起来,就可以成就一个了不起的软件系统。



框架核心思想与特色


核心思想:共性功能零件化,个性功能插件化


框架特色:变化与不变分离

将共性模块从个性化的业务系统中抽离,分隔变化与不变的模块,从一体化生产的手工作坊向包括零部件生产及组装的工厂化模式转变,从而更有利于团队分工及协作。


系统架构师、业务分析师与程序员分离

● 系统架构师职责:系统框架的优化与完善、系统预研及原型系统、系统级数据结构及数据库设计

● 业务分析师职责:使用可视化装配模块,配置生成个性化的产品型号,并对个性化开发的工作量作出评估、业务级数据库设计

● 程序员职责:根据实验室软件制造标准化要求,将框架提供的零件装配成组件,再将组件组合成软件产品,并根据客户要求进行软件外观和操作的定制化服务。


系统框架轻量化

● 框架不过分强调技术化,这样会导致较高的学习成本

● 框架开发在应用环节应足够简单,不能卖弄技术和思想,更不能变为技术和思想的试验场

● 框架应为产品生产提供便利,提高产品产出率和质量,而不能成为产品生产的桎梏


框架思想的泛化性

● 框架体现了微服务原则,强调每个工具和每个组件做自己最擅长的事情,强调没有万能钥匙;

● 框架思想可以用Java、.NET、C++等不同语言实现,并可整合Windows、Linux、Android、IOS等主流PC和移动平台


框架的知识库性

● 框架不但是一个技术性开发框架,也是一个知识库

● 共性的开发实现,不管是前端、后端、移动端,均可在框架知识库中找到答案

● 框架的知识库经验有所有开发和使用框架的程序员共同沉淀,其中既有成功案例,更重要的是,有失败案例

11-1.png

   


实验室拥有自主高性能并行离散仿真引擎,作为支撑技术可广泛的应用于机器人仿真、军事仿真、智能交通管控/仿真平台、虚拟数字博物馆等行业领域。

blob.png


blob.png