基于构件技术的复用与传统复用的区别
有人问我构件技术也是一种软件复用,它跟我们所说的传统意义上的复用有什么区别呢?应用软件行业的发展至今,软件复用一直在进行着,我们可以看到有以下的软件复用的发展史:
1.汇编语言的产生,使得程序可以模块化;
2.clib库,基于C语言,使得有更多的可复用的函数,提供了操作系统、文件处理、数学运算、图形处理;
3.STL库,基于C++语言,提供更丰富的数据结构操作,支持泛型;
4.J2EE平台及.NET平台,提供更为庞大及全面的类库调用,如操作系统、数据存储、消息传递、图形/图像、Web服务、XML解析等等;
以上我把它们定义成为基于技术的复用,更多的是代码的复用(包括二进制代码和源代码),而应用软件行业的构件技术则是更全面的复用,包括以下内容:
1.需求的复用,如果有类似项目已经做过需求,则该需求是可以复用的;
2.架构的复用,该行业的业务领域已经被建模,形成架构,则基于该架构进行新构件扩展;
3.设计的复用,如果有类似的构件设计,则参考;
4.测试的复用,自动化测试用例及人工测试用例可用于回归测试;
……………….
构件在进行复用的时候需要注意以下几点:
1.构件复用是依赖于业务架构,业务架构定义了客户的业务模型以及构件的接口方式;
2.构件复用是以项目实践为原则的,不一定是将构件A越完善越好,越完善/越灵活的构件不一定适合小型用户,所以正确的做法是合理判断是从构件A进行扩展好,还是基于构件A编写一个构件B,从而适合不同层次的用户使用。
3.构件复用不一定是IDE开发环境进行编译成相互引用的二进制代码,可以通过相对简单的部署方式进行复用;
4.构件不仅仅是包括人机交互接口,还包括程序交互接口,每一个构件不仅可以通过界面进行操作,还可以通过类库调用进行操作;
5.做好构件的设计和归档工作,使得构件更好复用;