软件工程:如何做好软件产品
1、什么是产品
产品:满足行业共性需求的标准产品。即要能够做到配置化的开发,用同一款产品最大限度地满足不同客户的需求,同时让产品具有可以快速响应客户需求变化的能力。
好的产品一定吸收了多个项目的共性,一定是多个项目经验的集大成者。
2、产品化的理论支撑
(1)组合原理:三元素=功能、逻辑、模型,表达的是业务的功能、业务逻辑和模型(将要素和逻辑整合在一起的形式)。
(2)基干原理:三元素=组件、机制、系统,表达的是系统的要素、运行机理和系统(将图16-15中的A、B、C、D整合在一起的形式)。
在系统设计时要将业务元素(要素、逻辑、模型)换成系统元素(组件、机制、系统),基干原理是组合原理在应用设计阶段的不同表达形式。
所有系统的运行都是由基干原理三元素按照基干模型给出的规律进行反复的循环,这样就找到了系统中业务的运行机理。业务的内容、架构的形态可以有无数种,但是在系统中的运行机理都是一样的,即组件+机制。
将稳定的内容和易变的内容分离开,不易变化的内容归集到组件中,易变的内容归集到机制中。在产品的设计和实现时,将易变的功能做成可配置的,如通过改动参数适应需求变化,这样就达到了产品的应变效果。
机制是“设置于组件之间的一种关联作用,可以使组件或业务处理按照某种规律反复进行”,机制是通过功能和规则实现的。
3、如何实现产品化
1、构件化
构件化思路:将传统上用编码直接编写程序的方式改为用编码开发制作小的控件,再由小控件组装成大的构件的方式来开发软件
采用4层的实现方式。
第一层:首先用编码的方式开发最小的控件:窗体、按钮、输入框等。
第二层:用“控件+规则”的方式形成组件。
第三层:用“组件+机制”的方式形成模块/系统。
第四层:用“系统+机制”的方式形成产品。
2、平台化
通过制造最小的控件和规则,由这两者不断地组合“形成”上一级的构件。即建立装配式平台。
3、配置化
〇 构件:比组件更小的零件,由构件(按钮、树表等)可以装配出软件的界面。
〇 规则:机制是用规则来表达的,系统执行的是规则,因此规则就等于机制。
将构成软件(组件)的内容进行拆分,形成一个一个的单独构件,然后逐一完成单独构件的制作,这就是软件工业化开发的基本思路。
4、设计文档生成自动化
在对各类界面上的控件、控制规则等进行拖曳时,可以同时记录这些活动,并产生对应的文字,从而自动形成设计文档。
4、软件开发智能化:设计工程化、开发工业化、产品构件化
软件设计工程化:按照工程化的要求,将软件设计过程的各项工作进行量化和标准化,并在实施工程中实现各阶段成果的传递与继承。
软件开发工业化:按照工业生产的方式,利用少码、无码的软件开发技术,从构件形成组件,再由组件形成模块和系统。
设计工程化、开发工业化、产品构件化,才能最终实现软件开发智能化。