论坛首页 Java企业应用论坛

转载:软件设计与哲学,做人

浏览 2654 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (15)
作者 正文
   发表时间:2008-01-31  
    企业软件设计的方法论是每一个软件设计人员都必须学习、掌握、应用的,在实践中必须有方法论的指导才能取得良好的效果,才能设计出优秀的企业软件。那么,到底什么是企业软件设计的方法论呢?它有哪些要素呢?我们从哪几个层面来把握它呢?要弄清这些问题,我想还是先了解一下这里面涉及到的几个概念。

    企业软件是一个信息系统,信息、系统、信息系统的概念我在以前的帖子中也有说过(http: //www.jdon.com/jivejdon/thread/32743.html),但是说得不够深入,这里再补充一点,到底什么是信息呢?我们之前说信息是经过加工处理的数据,数据是信息的载体,这只   能说是信息的一般意义,并没有道出信息的本质。那么信息的本质是什么呢,信息的本质是关于事物的运动的状态和规律的表征,是为了消除我们对事物认识的某种不确定性的东西。系统的概念这里也补充一点,系统的基本特征是什么呢?一是整体性,二是综合性,但还有非常重要的一点,那就是整体最优化,确定最佳目标,寻求最佳设计,在运动中达到一种有序的状态,即在运动中求平衡,求稳定,达到最佳控制。了解了信息系统,我们再来了解一下设计。什么是设计?我们都知道分析是解决“是什么”的问题,设计是解决“怎么做”的问题,但是,何为设?何为计?我觉得这个设有两层含义,一是假设,就是要预测未发生的事情,二是设法,就是想办法解决问题。“计”是为什么着想的意思,所以我们的设计有很重要的一层含义就是要为没有发生的事情着想,预测未来,做事留有扩展和退却的余地,这和做人是一个道理。

     方法论是关于方法的理论,方法的概念我在“用科学的思维方法指导软件的设计开发”   中有讲过,但现在看来感觉还是不够全面。这里我引用李志才方法论全书中的关于方法的定义:方法是关于认识世界和改造世界的目的方向,途径,策略手段,工具及其操作程序的选择系统。我们可以这样来理解,目的方向的选择就是战略问题,途径的选择就是路线问题,策略手段的选择就是政策和策略问题,工具及其操作程序的选择就是战术问题。这是方法的四大要素,也可以说是四个层次,从上到下层层相扣,缺一不可。从另一个角度来说,方是方向,法是法则,规律,万物皆规律,有法天下和,方法的选择其实也就是要遵循事物的规律,就是循道,循道是最科学的方法论。

     理解了这些概念后,我们再来寻找企业软件设计方法论,还是从概念出发吧,就从方法的四个要素出发,找到企业软件设计的目的方向,途径,策略手段,工具及其操作程序,这就是企业软件设计的方法论。

一、 目的方向
     目的方向是方法的最高层次问题,是战略问题,直接决定了方法的正确与否,目的方向错了,就算你后面的路线、策略手段得当,最终做出来的软件还是低质量的。也许你会觉得目的方向的选择很简单,做软件嘛,不就是要能满足客户的需求吗?这句话本身并没有错,关键是对需求的理解,普通的理解客户的需求是指业务功能需求,但是,时代在变,需求的定义也在变,软件的灵活扩展性,可维护性也越来越突出为客户的需求了,而功能需求虽然也重要,但从我们的软件实现上来说要比灵活扩展性和可维护性容易实现得多,作为软件设计人员,怎么保证软件的灵活扩展性和可维护性才是真正的难点。所以,目前来说,正确的目的方向应该是软件的高灵活扩展性,高可维护性,也就是软件的质,这才是软件的生命力所在。
二、 途径
    途径问题也就是路线问题,对企业软件来说,现在有两条典型的路线,一是走面向数据库的路线,另一条是走面向对象的路线。这是两条决然不同的路线,说得严重点是水火不融,但我感到疑惑的是为什么还是有很多人分不清楚这两条路。目前大部分公司和个人都是走的面向数据库路线,面向对象的道路上真可以说是“路上行人欲断魂”!但是,新生事物总是要战胜旧事物的,我相信面向对象的路上会有越来越多的同路人。
三、 策略手段
    选定了途径后我们就该选择合适的策略手段了,可以说架构分层,框架的运用,领域建模,设计模式都是我们所采用的策略手段了。从狭义上说这也是我们通常所说的方法了,在这一层面上,是软件设计人员最具有发挥和创造空间的。这几个策略手段具体的讨论在论坛里面已经有很多这样的帖子了,我在这里就不多说了。
四、 工具及其操作程序
工具及其操作程序的选择是在上一环节的基础上进行的,包括编程语言及编程工具的选择,其他的还有建模工具、具体框架的选择。选定了工具后要熟悉这些工具的操作程序,运用工具时要遵循一定的操作程序,这样才能真正发挥工具的作用。

    从以上的分析我们可以看出,正确地选择企业软件设计方法需要很多方面的知识,我们首先需要构造我们的知识体系,这个我在“关于构建自己的知识体系架构”中也提到过,但是我们还要知道的是有了这些知识还并不等于你就有科学的方法了,方法系统是知识系统的升华,是理论与实践的桥梁。而且我们还必须知道,方法要素的选择在很多时候也是一个子方法系统,同样包含方法的四大要素。

本文是我的一点愚见,只是概略地叙述了一下方法论的要素,可能大家会觉得很虚,还望不要猛拍砖,呵呵。希望能与大家共同讨论更具体的方法论。本文定有不足之处,恳请各位网友批评指正!
   发表时间:2008-01-31  
  这里强调一下主要矛盾与次要矛盾的关系吧,众所周知,世界万物皆存在矛盾,矛盾无处不在。依次推至:软件开发的过程中不可避免矛盾。现在的问题是 我们怎么去解决矛盾,这也是我们的工作。
  首先,我们应该抓住主要矛盾,根据客户的需求,我们应该提炼出一个软件参品的主要矛盾,也就是核心主要功能需求,如果我们没有抓住这个,只是一味的追求其他次要矛盾,最后发现根本没有起到作用。
  其次,我们在软件开发的过程中,应该根据开发的主要矛盾,制定开发计划,针对主要矛盾 制定关键路径。要确保主要矛盾的解决。只有在这个前提下,才能顺利完成整个开发流程,才能解决其他次要矛盾。具体可以采用RUP方法。
  最后,所有这些,就是抓住主要矛盾,抓住主要方向,然后解决其他次要矛盾,让矛盾降低最小,最少。不要强求矛盾完全解决,这也是不可能的,大家要遵守客观哲学真理。不然也不用软件维护了,呵呵。

   欢迎大家接下来 拍砖哦。
0 请登录后投票
   发表时间:2008-02-01  
不同的观点可以呈现出来,但请注意用词。

引用
空话屁话,外加一点错话。


0 请登录后投票
   发表时间:2008-02-01  
lz研究生吧
你快该写毕业论文了吧
0 请登录后投票
   发表时间:2008-02-13  
引用

hocus 12 天前
lz研究生吧
你快该写毕业论文了吧


呵呵,本人不是研究生,毕业已经几年了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics