关于动态编程的方法其实是一种编程思想。在不同的地方使用的方法不同。我最早见到这种方法是在读clink(unix连接器的源代码)的时候,刚开始不是很了解。现在有一些了解。说一说自己的理解。我是做OA
或MIS系统的,在我的开发经历中发现用户的需求虽然有很大的不同,但在实现的时候原理基本相同。举我们开发的14个人月的哪个项目为例。虽然是给好几个司局开发,但基本上都是对数据进行查询、增加、删除、修改、汇总、显示等几个基本操作,所以可以把他们的共同特征提取出来。我哪次是将模块分成了几个基本的部分。比如动态生成SQL语言(根据用户的信息可以生成访问数据的SQL语言),动态界面的生成(可以根据系统信息生成显示的界面)等几个模块。我的数据可分成两部分数据,一部分是用户数据。另外一部分是系统控制信息。所谓的系统控制信息有一点象oracle系统表,保存该系统自动生成所需要的信息。如果系统设计的比较好,我可以很容易通过对系统控制信息表内数据的修改完成对界面等方面的修改
这么做的效果比较好,我的工作从单纯的编码变成了系统参数设置。而且这种工作比较容易。可以由开发辅助人员完成(没有编程经验的开发人员),而我的开发人员主要完善功能的添加和完善开发工作(编程工作)。而且系统维护起来比较容易。那个课题后来用户添加了30多个表,我们只派了两个人去干了一周的时间就满足了用户的要求,用户比较满意。关于动态开发的方法有几个方面要注意一下。
1动态开发比静态开发难度要大,采取这种方法的时候要对工作时间和开发人员的工作能力进行衡量。一般来说动态开发比静态开发的考虑的方面要多,最后是有一定的相类似的软件开发经验后对此类软件的特点进行总结之后在采用动态开发。
2对开发工具要有比较深刻的了解,比如象C,C++,java这些开发工具一般来说不会有问题,但有一些二次开发平台会存在问题,有时候基本上不可能采用动态开发的方法。(我遇见过)
3动态开发的优点主要体现系统的灵活性上,比较容易进行系统的维护和扩展。难度主要体现在对公共特性的提取以及参数的设置上。只有对需要系统进行充分的分析才能获得比较好的开发效果
4动态开发是一种设计思想,在开发的各种软件过程中都可以使用。
5在刚开始使用的时候可以采用静态和动态相结合的方法,然后通过迭代开发的方法逐步提高动态的比例来获得开发经验