打破传统软件开发思路,打造新型应用程序软件

原创 2004年08月17日 15:45:00

打破传统软件开发思路,打造新型应用程序软件

――从易学易用的角度学习OO

大雨点     2004816

读者:

       本文适用于具有一年以上工龄的可执行应用程序类开发人员。

       MIS的朋友就不用看本文了,因为本文介绍的内容,基本上你已经都做到了!

声明:

       常在网上转悠,学习了不少知识,网络是我们互相学习、共同提高的一个非常不错的平台,总是学习别人的东西,多少有点内疚,所以今天本人也硬着头皮瞎写了几句,让大家见笑了。本文涉及到的内容,纯属个人观点,可能会在那些高人面前献丑,不过我也非常有信心提高我的设计能力,所以我虚心接受大家的宝贵意见。总比那些不写文章,只看文章的强点吧:)

前言:

       软件开发这个行业虽然已有相当长的一段时间了,但是和传统工业比较起来,软件业还是婴儿,处在快速成长期;同时,软件是以人为本的行业,我们的产品是我们思想的体现,这一点和传统工业是截然不同的,所以我们的思想直接关系到软件的诞生、成长、成熟、衰老直至死亡的整个生命周期,但是更为重要的一个阶段就是在软件诞生之前的系统设计阶段,由于每人的性格、学历、经验的因素的影响,我们在设计软件的思路上也会有很大的差异,本文向大家推荐了一种通用的开发思路,为您开发的软件的健康成长提供了基础。

正文:

       我们在以前开发软件时,通常是新建标准Form->拖放控件->编写代码->美化界面->测试发布,这种方法尤其在2000年前被大部分人采用,当然也包括我,如果不包括你的话,可能你比我早接触OO吧,敬仰!还有一种可能就是你在坐在课桌前,写作业、写情书,哈哈;但是在后来,系统进入维护阶段后,这种开发带来的问题被逐一暴露出来,1、维护困难,修改一个BUG,引起新BUG的可能性非常大;2、由于同行们跳槽频繁,加大了程序的维护难度,代码不易读懂;3、有时客户提出,修改界面上某个标签的内容等此类没有办法再小的修改,都需要重新编译程序;那么如何解决诸如此类的问题呢?“听”我慢慢到来!

       最近几年里UML在国内迅速普及,大部分公司都改善了上面遇到的情况,但是同时我发现真正将OO思想的作用发挥好的公司并不是很多,这个原因就有很多了,比如,1、公司的设计人员对OO思想理解的非常透彻,但是公司舍不得投资开发一个还没有客户的软件类库;2、设计人员对OO只理解了一半,公司就由该设计人员进行类库的设计,此时,公司的产品虽然有一定程度的进步,但OO思想的先进性却不能完全的发挥出来。

       由于OO思想比较庞大,且不是本文的讨论重点,所以本文不在详细阐述,这里我们只从实用的角度介绍关于界面进行OO封装的知识;

系统需求:由于软件界面层直接和用户交互的特点,所以改动也是非常频繁的,现在用户提出界面内容(即用户通过计算机屏幕看到的内容)可以由用户修改、定制、甚至添加、删除(当然是在一定条件内的);

系统分析:首先我们分析一下用户都可以在屏幕上看到什么?对于应用程序来讲都是由一个个的窗口构成的,窗口上又放置的若干个控件:编辑框、按钮、单选、复选、列表框、树型结构、表格等,其中尤以表格的内容最复杂;要实现以上内容的用户定制,必须将上述信息保存起来,才能实现定制功能;所以我们将其分为三大类:1、窗口;2、普通控件;3、复杂控件;其中复杂控件又分为1、树型控件;2、表格控件;3、预留扩充接口;

系统实现:

数据的存放方式有若干种,1、保存到服务器数据库(访问速度慢,且增加了额外的网络流量,但程序编写简单);2、保存到服务器数据库(可以结合硬盘缓冲),程序启动时读入内存(访问速度快,但占用大量内存,程序编写相对麻烦);3、保存到本地库文件(访问速度适中、不占用额外内存,程序编写相对麻烦);在这里,由于系统每显示一个界面都需要对这些数据进行访问,所以使用本地数据文件比较合理一些,节约内存,速度中等,虽然有点降低系统效率,但是由于每个界面都是在手工操作的情况下进行显示的,所以与自动系统相比次数要少得多,故降低的系统效率用户是可以承受的,但同时出现的问题时,如果在客户端A修改的数据如何更新到客户端B,这个吗。。。还是给您一个思考的机会吧,哈哈。OK,数据存放方式确定了,下面我们考虑一下软件结构实现,我们采用面向对象的设计观点,由标准窗口派生出我们自己的,用户可以修改窗口内容(不包括界面控件)的类BasForm,该类提供给用户可以定制窗口样式的功能,包括:大小、标题、样式等;在窗口创建时从数据文件种读取,界面显示后通过一定方式提供给用户一个设置该窗口内容的界面,在用户修改界面内容后保存到数据文件中,OK,一个可以由用户最终用户定制界面的基础类就出来了;同理我们从BasForm中在派生出BasFormControl,提供用户定制界面标准控件的功能,常用的比如标签、按钮等;之后在派生出BasFormControlSupper,提供对复杂界面控件的定制功能,包括树型控件、表格控件等;提供对树型控件的添加、修改、删除;提供对表格控件的列标题、列是否显示、显示格式等;由此一个最最基本的类库就建立成功了;下面根据我们的需要可以对其进行扩充了。

比如用户需要在界面上添加一个按钮,当然这个比较简单的就能实现,问题是加这个按钮干吗?当然要有执行代码支撑才行,所以我们要扩充一个代码解析的功能,就是让最终用户可以和我们一样编写语句,当然这个工作如果让用户做的话,用户肯定不愿意,因为这个对用户的要求太高了,所以这个工作应该交给我们的技术支持来做,不要说技术支持不会哟!还有我们还没有提供打印支持哟,不要忘了,打印功能是最常见的;所以我们还可以在最后派生打印功能;

结尾:

       本文只是抛砖引玉,根据读者的实际需要,可以更深度的挖掘该设计思想,应用到您的开发中去,提高。。。。。。

作者简介:

澳门回归的那一年石门毕业。。。。。。

中关村进入低谷的那一年到北京混。。。。。。

到现在还一直和师弟师妹们挣饭吃。。。。。。

郁闷中。。。。。。

熟练使用DELPHICBuilderJBuilderVC6 热衷电信业软件开发

       Email:hryyx@163.com

----------------------------------------------------全文完--------------------------------------------------------

 

版权声明:本文为博主原创文章,未经博主允许请随意转载。

软件开发模式对比(瀑布、迭代、螺旋、敏捷)

软件开发模式对比(瀑布、迭代、螺旋、敏捷) 1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。 瀑布模型式是最典型的预见性的方法...
  • crcr
  • crcr
  • 2015年11月17日 11:11
  • 3660

互联网软件开发和传统软件开发的不同(转型互联网开发需要适应的那些事)

最近,也做了一段时间的互联网开发,感觉转型,不仅仅是技术上的,同时也是工作方式的,工作节奏的改变。我把对公司的一些理解整理在这边网上,我看到很好的 文章里,当然文章是以测试人员的视角,来写的,但大致把...
  • jacky_zh
  • jacky_zh
  • 2015年02月16日 17:06
  • 7660

云时代下,传统和新型存储的博弈已经开始

在云计算和大数据时代下,人们都把目光聚焦在分布式存储系统、融合架构、大数据云存储SDS技术和开源存储架构上,感觉传统存储架构和技术将被颠覆或新型存储架构所取代。在这种趋势的推动下,大多数企业和客户都尝...
  • swingwang
  • swingwang
  • 2016年08月22日 22:07
  • 1619

IT传统组织结构及新型扁平化组织

如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛;行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速开发,快速上线,快速反馈...
  • darkjune
  • darkjune
  • 2015年03月03日 20:42
  • 488

常用软件开发模型比较分析(五)

13   XP方法 敏捷方法是近几年兴起的一种轻量级的开发方法,它强调适应性而非预测性、强调以人为中心,而不以流程为中心,以及对变化的适应和对人性的关注,其特点是轻载、基于时间、Just Eno...
  • fen0707
  • fen0707
  • 2013年04月17日 17:49
  • 735

SOA与传统软件架构、开发、部署和实施的区别

“在当前的2000家跨国公司中,很多企业的体系架构已经妨碍了业务的改变能力。比如,最近企业行为管理机构(Business Performance Management Institute)的一项调...
  • lvjin110
  • lvjin110
  • 2013年08月17日 03:34
  • 2345

软件项目开发环境构建之一:整体流程

通常情况下,一个大的项目,很难一个人完成,需要一个团队共同协作,大家彼此分工,共同完成不同或相同的模块,这时要求所使用的工具软件要具有分布式协同功能、处理冲突及持续交付功能,一般软件项目的整体流程如下...
  • jamenew
  • jamenew
  • 2017年02月04日 16:58
  • 1146

传统企业软件商必死

传统企业软件必死我们过去竞争,总是盯着用友金蝶、SAPOracle。但现在情况不同了。我们的客户是一个个行业中的企业,为企业做软件。但门口来了野蛮人,你看出租车行业、你看餐饮行业,你看看互联网企业在怎...
  • david_lv
  • david_lv
  • 2014年02月28日 11:37
  • 9628

关于桌面软件的开发语言和开发框架的思考

在未来的桌面软件的开发,我会这样考虑:windows系统下,C#编写界面,C#编写对效率要求不高的算法,C/C++编写对效率要求高的算法。需要跨平台时,如果C#现在的跨平台做得足够好,即mono项目足...
  • clever101
  • clever101
  • 2015年09月25日 23:44
  • 15574

关于嵌入式软件开发的一些思考

今天是第一次开始写技术博客, a dear dairy moment. 首先感谢这个论坛上那些已经进入计算机软件开发自由王国的前辈高手们,正是他们在网络上不求回报地留下一篇篇精辟文章,如一盏盏指路明灯...
  • ipmux
  • ipmux
  • 2013年12月07日 23:03
  • 1753
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打破传统软件开发思路,打造新型应用程序软件
举报原因:
原因补充:

(最多只允许输入30个字)