企业软件设计的方法论是每一个软件设计人员都必须学习、掌握、应用的,在实践中必须有方法论的指导才能取得良好的效果,才能设计出优秀的企业软件。那么,到底什么是企业软件设计的方法论呢?它有哪些要素呢?我们从哪几个层面来把握它呢?要弄清这些问题,我想还是先了解一下这里面涉及到的几个概念。
企业软件是一个信息系统,信息、系统、信息系统的概念我在以前的帖子中也有说过(http: //www.jdon.com/jivejdon/thread/32743.html),但是说得不够深入,这里再补充一点,到底什么是信息呢?我们之前说信息是经过加工处理的数据,数据是信息的载体,这只 能说是信息的一般意义,并没有道出信息的本质。那么信息的本质是什么呢,信息的本质是关于事物的运动的状态和规律的表征,是为了消除我们对事物认识的某种不确定性的东西。系统的概念这里也补充一点,系统的基本特征是什么呢?一是整体性,二是综合性,但还有非常重要的一点,那就是整体最优化,确定最佳目标,寻求最佳设计,在运动中达到一种有序的状态,即在运动中求平衡,求稳定,达到最佳控制。了解了信息系统,我们再来了解一下设计。什么是设计?我们都知道分析是解决“是什么”的问题,设计是解决“怎么做”的问题,但是,何为设?何为计?我觉得这个设有两层含义,一是假设,就是要预测未发生的事情,二是设法,就是想办法解决问题。“计”是为什么着想的意思,所以我们的设计有很重要的一层含义就是要为没有发生的事情着想,预测未来,做事留有扩展和退却的余地,这和做人是一个道理。
方法论是关于方法的理论,方法的概念我在“用科学的思维方法指导软件的设计开发” 中有讲过,但现在看来感觉还是不够全面。这里我引用李志才方法论全书中的关于方法的定义:方法是关于认识世界和改造世界的目的方向,途径,策略手段,工具及其操作程序的选择系统。我们可以这样来理解,目的方向的选择就是战略问题,途径的选择就是路线问题,策略手段的选择就是政策和策略问题,工具及其操作程序的选择就是战术问题。这是方法的四大要素,也可以说是四个层次,从上到下层层相扣,缺一不可。从另一个角度来说,方是方向,法是法则,规律,万物皆规律,有法天下和,方法的选择其实也就是要遵循事物的规律,就是循道,循道是最科学的方法论。
理解了这些概念后,我们再来寻找企业软件设计方法论,还是从概念出发吧,就从方法的四个要素出发,找到企业软件设计的目的方向,途径,策略手段,工具及其操作程序,这就是企业软件设计的方法论。
一、 目的方向
目的方向是方法的最高层次问题,是战略问题,直接决定了方法的正确与否,目的方向错了,就算你后面的路线、策略手段得当,最终做出来的软件还是低质量的。也许你会觉得目的方向的选择很简单,做软件嘛,不就是要能满足客户的需求吗?这句话本身并没有错,关键是对需求的理解,普通的理解客户的需求是指业务功能需求,但是,时代在变,需求的定义也在变,软件的灵活扩展性,可维护性也越来越突出为客户的需求了,而功能需求虽然也重要,但从我们的软件实现上来说要比灵活扩展性和可维护性容易实现得多,作为软件设计人员,怎么保证软件的灵活扩展性和可维护性才是真正的难点。所以,目前来说,正确的目的方向应该是软件的高灵活扩展性,高可维护性,也就是软件的质,这才是软件的生命力所在。
二、 途径
途径问题也就是路线问题,对企业软件来说,现在有两条典型的路线,一是走面向数据库的路线,另一条是走面向对象的路线。这是两条决然不同的路线,说得严重点是水火不融,但我感到疑惑的是为什么还是有很多人分不清楚这两条路。目前大部分公司和个人都是走的面向数据库路线,面向对象的道路上真可以说是“路上行人欲断魂”!但是,新生事物总是要战胜旧事物的,我相信面向对象的路上会有越来越多的同路人。
三、 策略手段
选定了途径后我们就该选择合适的策略手段了,可以说架构分层,框架的运用,领域建模,设计模式都是我们所采用的策略手段了。从狭义上说这也是我们通常所说的方法了,在这一层面上,是软件设计人员最具有发挥和创造空间的。这几个策略手段具体的讨论在论坛里面已经有很多这样的帖子了,我在这里就不多说了。
四、 工具及其操作程序
工具及其操作程序的选择是在上一环节的基础上进行的,包括编程语言及编程工具的选择,其他的还有建模工具、具体框架的选择。选定了工具后要熟悉这些工具的操作程序,运用工具时要遵循一定的操作程序,这样才能真正发挥工具的作用。
从以上的分析我们可以看出,正确地选择企业软件设计方法需要很多方面的知识,我们首先需要构造我们的知识体系,这个我在“关于构建自己的知识体系架构”中也提到过,但是我们还要知道的是有了这些知识还并不等于你就有科学的方法了,方法系统是知识系统的升华,是理论与实践的桥梁。而且我们还必须知道,方法要素的选择在很多时候也是一个子方法系统,同样包含方法的四大要素。
本文是我的一点愚见,只是概略地叙述了一下方法论的要素,可能大家会觉得很虚,还望不要猛拍砖,呵呵。希望能与大家共同讨论更具体的方法论。本文定有不足之处,恳请各位网友批评指正!
分享到:
相关推荐
软件设计的哲学: 软件设计是计算机科学中的核心领域,它关注如何创造高效、可靠、易于维护和扩展的软件系统。软件设计的哲学涉及对软件工程最佳实践的理解,包括软件的设计原则、架构、方法论和模式。TCL语言的...
ARM嵌入式系统开发是一项涉及硬件、软件以及系统集成的复杂工作,其核心在于通过ARM架构的处理器实现特定功能的嵌入式系统设计与优化。在软件设计方面,ARM处理器提供了强大的性能和灵活的编程接口,为了充分利用...
这种依赖有时会演变成一种“上瘾”,这背后体现了软件设计与用户体验的重要性。 #### 四、软件与人性 1. **软件与心理学**:软件开发与心理学之间存在着紧密的联系。软件不仅需要满足功能需求,还需要考虑到用户的...
高中三年级基础知识复习:《生活与哲学》.doc
只要用户想表达,App就可以成为乐器,让任何人尽兴地表达,这就是Smule的设计哲学。在本次演讲中,王戈分享了他们的移动社交类音乐App的设计思维,并从开发者的经验和视角出发,为大家讲述如何在开发应用的过程中...
A-Philosophy-Of-Software-Design架构设计哲学电子译本简单的几句话:经历了疫情,断断续续的持续了大约1年半的时间,阅读+翻译了本书,本书完美诠释了软件设计的本质--如何解决复杂性?围绕这个核心不断的抽丝剥茧...
华尔街交易员干货:扑克与投资哲学,活着最重要.doc
计算机及其运行的软件都是人类智慧的产物,因此软件开发不可避免地会面临哲学与心理学中固有的问题。软件不仅仅是技术层面的产品,更是人类智力活动的体现。正如心理学旨在探索人类难以捉摸的灵魂,软件开发也是对...
标题“哲学与软件”可能指的是将哲学思想应用于软件开发的过程,以及这种结合如何影响软件设计、工程实践和团队协作。哲学通常关注人类思维、存在、知识、道德等基本问题,而将其引入软件领域,可以深化我们对编程...
在探讨人工智能时代的设计哲学思考时,我们可以从以下几个核心知识点来展开...设计师的工作将不仅仅是创造实用和美观的产品,更是需要在哲学层面上探索设计与人类社会、文化的深刻联系,以及设计在新时代的角色和意义。
在当今信息化时代,无论是构建复杂的软件系统还是设计简单的日常用品,设计哲学都扮演着至关重要的角色。本文旨在探讨设计哲学的核心理念及其在系统设计中的应用。我们将从经济角度出发,结合实现简单性和一致性原则...
哲学家进餐问题是一个经典的多线程同步问题,由计算机科学家Edsger W. Dijkstra在1965年提出,旨在模拟五个哲学家在共享餐桌上的行为。在这个问题中,每个哲学家有两种状态:思考和吃饭。他们坐在一张圆桌旁,每人有...
操作系统课程设计中的“哲学家就餐问题”是一个经典的多线程同步问题,源于计算机科学之父Edsger Dijkstra提出的思考示例。这个问题旨在模拟五个哲学家围坐在一张圆桌旁,每人面前有一支筷子。当哲学家想吃饭时,...
操作系统课程设计中的“哲学家进餐问题”是一个经典的并发控制问题,旨在模拟多个进程竞争共享资源的情景。在这个问题中,哲学家们坐在一张圆桌旁,每人在思考间隙需要拿起左右两边的刀叉来进餐。为了防止死锁,即...
《感悟设计:电子设计的经验与哲理》这本书向读者展示了在电子设计领域中,经验积累与思考实践的重要性。作者结合具体的案例,揭示了设计过程中可能遇到的问题及其解决方法,强调了记录和分享信息的重要性,并通过...
例如,一个成功的软件系统不仅需要整体架构的合理设计,还需要每个模块的功能完善。 最后,PPT提出了一系列哲学思考,如"我是谁"、"我从哪里来"、"我要去哪里",这些关乎存在和意义的疑问,提醒我们在技术的快速...
【高中政治】必修四第三课“时代精神的精华”主要探讨了哲学与时代的关系,以及哲学在社会变革中的作用。以下是对这部分内容的详细解释: 一、哲学与时代的关系 1. **哲学与经济、政治和文化的关系**:哲学是一定...
2021高考政治全国版一轮习题:第72练 哲学的基本问题与基本派别 含解析.docx