|||
我于1980年在目前一般程序员纷纷离开编码工作的年岁时开始学习软件技术,开始学习编码。这以后,软件方面的项目逐渐多于硬件,而软件方面做得最多的是管理信息系统方面的项目。
1987年研制成功“微机配棉系统”,获襄樊市科技进步二等奖。同年被评为襄樊市劳动模范。89年研制用于襄樊棉纺织印染厂的“棉纺织企业微机管理系统”获襄樊市科技进步一等奖。90年研制“多用户微机网络管理系统”获湖北省科技进步二等奖。1991年被评为襄樊市科教兴市先进个人。1992年被评为纺织部有特殊贡献中青年专家。1996年被评为享受国务院政府特殊津贴专家。2002年主持完成“湖北省大中专学校毕业生就业管理与省毕办办公自动化集成系统”,获2003湖北省科技进步三等奖。参加这些项目的还有:徐从龙、王诗怀、耿明星、潘贵敦、朱福新、王建农、夏星、王春枝、刘伟、程传庆、曾立平等。
除上述获奖项目外,97年研制成功卷烟材料厂智能仪表同步并行数据采集与质量管理系统,99年研制成功武汉市政设计院文档辅助生成及管理信息系统,00年研制成功红桃K公司销售统计系统,03年研制成功柳州市人事局管理系统,04年研制成功湖北省商贸学院排课与成绩管理信息系统,同年还研制成功科星汽车零配件企业ERP系统,05年研制成功四川经贸委企业竞争情报服务系统,06年研制成功一冶公司党务管理系统。参加这些系统研究的有楚惟善、李振立、龚晓明、邹文蕙、周金森、王嘉、鲁瑛、谌章恒、熊晓菁、饶昆、李珺、刘玲玲、张军、赵普、高霞、祝苏薇、钱涛、雷勇、张俊、刘宙、高亮、黄峰、赵文一、张重齐、徐宏云。
这一系列管理信息系统开发的经验让我们发现,管理信息系统结构存在相似性,代码存在较大可复用性。我们认为,可以研制数量不多的通用软件,就能满足一般管理信息系统大多数的程序需要。2001年,我们设计了一套基于VFP的管理信息系统通用程序模块,随由中国水利水电出版社出版的《数据库原理与技术》一书发行,参加研究的有林姗、张明武、曾玲、程传慧、雷飞宇、陈永辉、杨晓艳、李江平、江南等。
2003年我们写了自然基金申请书:说明“软部件是为完成某个任务而由一到多个小粒度构件有机集合而成的程序模块。”提出“通过分析信息系统领域部件的结构共性与人机界面的种类与特点,研讨一个不同系统普遍适用的具有即插即用特性的软部件的发现与设计方法”。
之后于2004年、2005年、2006年、2007年持续申请5年。其中2005年的申请要求:“以具有高度数据独立性、高度通用性的软部件作为模型,解决从建模到代码的完全转换问题。基本思想是:1、研究各类模型的内容、要求、结构与组成。2、研究各模型间相互转换方法与有关语义表示方法。3、针对管理信息系统的软件开发设计实验工具,实现从建模到代码的完全转换。”
2007年的申请要求:“研究跨系统业务流程模型分类与业务流程建模理论与实现的有关问题,”研究基于部件实际系列地设计“建立业务流程模型、任务分析、任务安排、角色安排与权限定义、驱动任务执行、任务转换、模型管理、业务流程管理等理论与实际问题”。
2005年完成教育厅项目:《管理信息系统部件技术研究》,经省教育厅组织鉴定认为研究达到世界先进水平。证明上述申请都是可以实现的。参加这一项目的有:程传慧、王春枝、邵雄凯、姜明华、夏星、程传庆、龚晓明、王富强、王莉、曾玲、欧阳勇、史函、陈义、叶品菊等。特别是龚晓明、王富强为具有自动适应任意数据表的任选字段建立数据维护表单程序的布局难题做出了颇具特色的设计。湖北省内计算机权威专家李腊元、卢炎生、陈传波、何炎祥、黄求根、周迪勋、贲可荣等给予本项目以极大支持与指导。
2008年退休之后,科研环境变差,研究进度极慢,直到14年大体完成部件库设计,15年设计了系统建模程序,研究软件生产线初步成功,17年设计了一套应用时序图设计具有工作流控制的实验系统。基本实现了我们之前有关申请书中的设想目标。在这一阶段,特别感谢何艾兵、李振立、曾玲、杨晓艳、童亚拉、沈华、张慧萍、顾梦霞、贺红艳、罗宏芳、陈小娟等领导、老师和齐赛、聂志恒、王玉民、龚文义、杨帅、张卫东等同学。还要感谢省、市采购办和一些招投标代理公司,给了我不断了解社会需求与软件方面科技进步的情况。还要感谢水利水电出版社与清华大学出版社一贯的支持与鼓励。他们对学术的认真和对科技的点滴发展的重视让我们感动。
综合本次设计,我们更清晰地认识到类是方法与数据的集成,部件是程序模块、构件、组件、类的集成。面向对象的秘诀或创新是"冗余",在每次应用时都不一定用到其全部的方法和数据,可以通过选择方法与数据使用于某一种界面和某一种应用。例如“文本框”类,将数据显示、录入、修改等操作方法与有关数据都集成到同一个类中。在实际使用时往往只根据录入或显示的需求选用其部分方法和数据。这样的冗余设计使其复用粒度加大,复用范围拓广,开创了软件设计的面向对象时代。
软部件的设计思想也是冗余,将用于某一类界面和完成某一类具体的工作的程序模块、构件、组件、中间件、类等集成到一个封装体中,在应用时常常只选择其部分功能投入使用。这样的冗余设计目的是提高软件复用粒度,扩大软件复用范围,在每次调用时通过选择数据表、选择布局、选择字段与按钮及其他参数使其用作某种模块或构件,完成一种应用。就能用较少的软部件覆盖或满足更多的应用,只有这样的设计才能成为软件生产线的设计基础,才有可能更好地实现软件设计自动化。
需要说明的是,软件复用有利于提高编码效率,有利于实现软件生产自动化,可以降低软件设计难度,减少直接的代码量,降低软件成本,降低软件维保费用等。但它是以降低软件运行效率、缩小软件应用范围为代价的,因此需要根据应用需要恰当地选取软件复用度。不要一味追求高复用,要根据需求权衡利弊,对于对时间要求高的软件和一些有特殊要求的软件,只能用复用度低的软件,例如使用用C语言甚至汇编语言编写的程序。
我们的设计只是一个初步设计,本次公布全部源码,目的是希望能有数据库、JAVA语言的高手能关注该项目,修正设计中的错误,扩展其内容,使更符合社会应用的需要,推进软件设计技术不断进步。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-24 15:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社