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

原创 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

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

 

版权声明:本文为博主原创文章,未经博主允许请随意转载。 https://blog.csdn.net/hryyx/article/details/77133

“打造新型产业链”话题求索

 一般来说,企业围绕某种服务或商品进行的一系列互为基础、相互依存的上下游链条关系就构成了产业链。 例如,电信产业链即是以电信运营商为核心,由网络设备制造商、电信运营商、内容提供商(SP)、系统集成商、...
  • marksnow
  • marksnow
  • 2007-12-01 17:00:00
  • 989

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

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

如何从传统软件开发顺利过渡到互联网技术开发

今天来说一个比较普适性的问题:如何从传统软件开发转到互联网技术开发,这也是不少朋友问过我的问题,特整理一篇文章出来分享给大家。软件无所谓传统与新兴,只不过面向市场的不同,导致大家心里有个对比。何谓传统...
  • hero272285642
  • hero272285642
  • 2018-02-23 10:27:19
  • 373

软件开发思路:整合,复用,分享

昨天表了一篇文章《软件开发关键字:整合和复用》。关于整合和复用,是有一些交集的。今天继续这个话题。不过题目变了一下。  以复用的思路指导开发:1、构建系统的时候,把多个子系统系统的交集部分抽象出来,作...
  • chgaowei
  • chgaowei
  • 2009-09-23 18:05:00
  • 2844

关于程序组团队建设的几点想法

团队就是我们的第二产品,把这个产品做好。
  • unknowm
  • unknowm
  • 2016-11-01 18:45:09
  • 722

敏捷软件开发与传统软件工程的比较

敏捷软件开发与传统软件工程的比较
  • u012755393
  • u012755393
  • 2016-10-11 20:34:31
  • 2060

软件项目开发整体思路

第一步:  创建WebProject,进行基本设置的调整第二步:  整合Struts2+Hibernate,涉及引包的问题。          (1)、将事先调试好的*.jar包直接复制到WebRoo...
  • Alex_81D
  • Alex_81D
  • 2018-03-14 16:13:19
  • 75

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

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

从新型软件架构思想看“协同软件”的未来

 2005年,作为新兴应用软件的“协同软件”和作为新型软件架构思想的SOA,在软件应用领域和在软件技术领域,都受到了前所未有的追捧。究竟2005年该不该定义为“协同软件年”或者“SOA年”,这些并不重...
  • rosered2
  • rosered2
  • 2007-12-01 15:34:00
  • 510

拒绝BPM误区,端到端流程打破职能分工壁垒

拒绝BPM误区,端到端流程打破职能分工壁垒 作者:雷霆出处:IT专家网2014-05-08 07:09   流程是公司战略、理念、策略和有效内部控制的载体,流程管理是企业最...
  • wscwsc58888
  • wscwsc58888
  • 2014-05-08 22:10:58
  • 583
收藏助手
不良信息举报
您举报文章:打破传统软件开发思路,打造新型应用程序软件
举报原因:
原因补充:

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