软件开发中的数据驱动设计思想

作者:李为民 刊名:电脑编程技巧与维护 上传者:谢亚辉

【摘要】主要阐述了数据驱动的设计思想和结构化编程、面向对象编程。通过一个简单的示例程序,介绍了数据驱动的概念,数据驱动在测控领域软件设计中的应用,指出了数据驱动设计思想在软件开发中的意义。

全文阅读

电脑编程技巧与维护 2012. 24 1 引言 计算机软件是用来刻画现实世界,解决现实世界中的问题的。编程语言是实现的工具。算法是解决方案。数据结构是现实世界的数据模型。数据结构和算法是计算机软件开发的基础。不管是采用结构化、模块化编程,还是面向对象编程,良好的数据结构设计决定了算法的复杂程度,也决定了程序代码的复杂程度。 2 数据驱动设计思想 软件开发中的数据驱动就是尽可能的将设计的复杂度从程序代码转移至数据。也就是相对于用程序逻辑解决问题,采用的是很好地设计数据结构,而程序只是简单地表达、解释数据的内容。反过来也可以说,是数据驱动了程序的运行。它不是一个全新的编程模型:而只是一种设计思路,它既可以应用到结构化编程模型中去,也可以应用到面向对象编程模型中去。 通过一个示例来解释数据驱动设计思想。假设有一个程序,需求就是简单地根据错误代码输出相应的错误信息。 很可能会这样处理: void err_proc (const int err) { switch ( err ) { case 0x21: log (" 板卡初始化错误 \n") ; break; case 0x22: log (" 板卡发送错误 \n ") ; break; … default: log (" 未识别的错误代码%d\n" , err) ; break; } } 这样的处理方式是首先想到的,通过 switch...case 语句,根据错误代码输出相应的错误信息。也就是用程序逻辑解决问题。错误信息常常有几十个,甚至更多。可想程序会很长。 如果错误信息的代码或内容发生更改,将不得不更改程序。 下面换一种思考的方式,采用数据驱动的方法解决问题。 如果错误代码是连续的,那么程序将是这样: char msgErr [] [80] = { " 板卡初始化错误 \n " , " 板卡发送错误 \n " , " 板卡接收错误 \n " , … } void msg_proc (const int err) { int type_num = sizeof (msgErr) / 80; if ( (err – 0x21) >= 0 && ( err – 0x21) < type_num) log (msgErr [err – 0x21]) ; else log (" 未识别的错误信息 \n") ; } 也就是事先把错误信息排好顺序放进数组中,这样程序就变得非常简单。也就是在软件开发中通过数据结构设计,降低了程序的复杂度。 即使错误代码不是连续的,也可以采用数据驱动的设计思想: 软件开发中的数据驱动设计思想 李为民 (中国空空导弹研究院,河南 洛阳 471009) 摘 要:主要阐述了数据驱动的设计思想和结构化编程、面向对象编程。通过一个简单的示例程序,介绍了数据驱动的概念,数据驱动在测控领域软件设计中的应用,指出了数据驱动设计思想在软件开发中的意义。关键词:数据驱动; 软件; 编程 Data-drivenProgramminginSoftwareDevelopment LI Wei-min (China Airborne Missile Academy , He'nan Luoyang 471009 , China) Abstract:elaboratedadata-drivendesignideaandstructuredprogrammingandobjectorientedprogramming.First, throughasimpleexampleoftheproceduresdescr

参考文献

引证文献

问答

我要提问