软件的开发过程是一系列的问题和问题的解的发现过程。
最初的问题来自动于用户的业务目标(痛点)。软件的功能设计即为此问题的解。
而功能设计本身又构成了软件实现设计的问题空间,软件的实现设计即为对应的解空间。
软件内部是由模块构成的,我这里的模块是范指,一个模块是一个独立的功能块,可大可小,大的比如:软件的某个界面功能部份、某个WebService提供者、业务逻辑组件等;小的可是一个类。一个模块对外提供的服务是某个问题需要的解;而这服务的解对其它的模块所产生的需要又构成了其它模块的问题空间。
问题空间代表的就是需求,解空间代表的就是设计。从上面的论述可以看出,需求和设计是个相对的概念,存在于软件开发的各个阶段。
处于不同位置的需求和设计本质上是相同的。因此,用于需求分析的手段和概念也是通用的。比如:领域模型可以用来描述用户的业务领域;也可以用来描述界面上的相关概念。用例可以用来描述用户的功能需求,也可以用来描述一个模块对另一个模块的功能需求。
然而,在软件开发的整体过程中,对于功能设计以下的实现设计工作,通常不再进行需求和设计的区分。这是因为,功能需求和业务及用户有直接的关系,但又不是直接可以得出的,因此需要把软件的功能本身作为研究对象。(这里注意:应该由用户提供的是业务目标和领域知识,功能设计要由工程师把握,常常用户凭直觉说出的设计方案,会对工程师带来误导。比如有一个用户要我读windows补丁信息,让我直接从填加删除窗口抓取;而后来发现直接从注册表是可以获得的。但是用户所想到的解决方案并不是没有用处,一方面这个也可能是一个解决方案,另一方面它反应了问题本身的细节。)
当软件的功能需求确定后(包括功能的界面),功能就成了软件实现的问题域了。而恰当的解是比较容易导出的。在设计过程中用UML顺序图来刻划模块间的环环相扣的关系是非常恰当的。
通过以上论述,可以得出以下结论:
软件可以认为是从用户的业务目标一步步推导出来的。
软件的开发过程常常出现如下问题:
问题域的认知常常需要一个过程。因此软件做出来后,可能对用户的问题域还有未知的部份,这时将导致软件的改进。要做到对用户的问题域有充分的认识,行业经验是一个关键因素。
对于较复杂的解的认知也需要一个过程,因此实现的方法,可能和最初的设计有很大的偏差。软件设计经验对得出恰当的解有很大帮助。
分享到:
相关推荐
该问题是机器人技术和自动化领域中的一个重要课题,涉及到机器人的运动规划、避障技术和搜索算法等多个方面。 蚁群算法是一种常用的搜索算法,通过模拟蚂蚁搜索食物的行为来寻找最优解。然而,传统的蚁群算法存在...
100个著名初等数学问题.历史和解 数学家与算法家的经典训练教材
案例知识抽象层存储从案例的问题和解中抽象出的公共问题类及通用的解类,也称问题空间和解空间,可提高检索效率;领域知识主要存储领域知识、领域概念、概念之间关系、案例资源等,可支持基于概念或知识的推理,提高...
compress 命令是 Linux 系统中最早的压缩和解压缩软件之一。其命令格式为:compress [-dfvcVr] [file …]。主要命令选项包括: * -f:如果目标文件已经存在,则强制覆盖 * -r:压缩文件夹中的所有文件 * -d:解压缩...
线性代数是数学和计算机科学领域中的一个重要分支,它研究向量、矩阵、线性变换和向量空间等概念。本文根据MIT公开课的笔记,总结了线性代数的主要知识点。 一、目录方程组的几何解释 线性代数的核心是研究线性...
分析总结了任务调度在云存储和云计算系统中的不同, 指出现有云计算中的PSO调度算法应用在云存储中时会产生对云存储系统来说无意义的解, 即会要求系统节点提供它所不具有的数据。为解决此问题, 改进现有的基于PSO的...
纠纷和解协议书.doc
完美支持中文安卓平台最强专业压缩和解压缩软件
7-Zip ZS 是著名 7-Zip 的分支,它提供了一种简单明了的方法来创建和解压缩档案,验证文件的哈希值以及测试压缩文件中的潜在错误。 开源免费解压缩软件 7-Zip ZS 中文多语免费版开源免费解压缩软件 7-Zip ZS 中文多...
反复压缩、解压缩同一个文件,容易出现“未发现文件”的错误,这个并不是汉化的原因,原版也同样有这样的问题;UPX 在处理文件的时候要更改文件的名称,在出现上述错误时,查看文件所在目录是否有以 .000 或 .UPX 为...
基于pako的gzip 压缩和解压缩,解决中英文乱码问题。可运行demo
c# 压缩和解压缩自己写的一个例子,并非用到SharpZipLib来压缩和解压文件,而是自己引写老外的,然后改写了一个,也没用到.NET自带的压缩与解压缩。 比他们都好的压缩!!!!
针对有人说我是骗子这件事,特别说明:我的标题已经说的很清楚了,这个库本来就是我在Libjpeg库的源码基础上改的,原来的库在压缩和解压缩时必须提供一个文件句柄,也就是必须基于文件操作,当然也可以基于数据流...
如果一个蒙特卡罗算法对于问题的任一实例得到正确解的概率不小于 p,那么称该蒙特卡罗算法是 p 正确的,且称 p-1/2 是该算法的优势。 线性规划的根本定理是,如果线性规划问题有最优解,那么必有一根本可行最优解。...
和解协议书(和解撤诉).pdf
粒子群优化算法在等式约束优化问题中的应用有很多优点,例如可以解决高维优化问题,能够避免局部最优解的出现,并且可以并行计算。但是,粒子群优化算法也存在一些缺点,例如计算时间长、粒子的位置更新需要大量计算...
最新免费咨询债务纠纷和解协议债务金额确定及还债和解契约书范本DOC文档版式.docx
六年级解方程和解比例.doc
例如,在问题 8 中,它问的是一个文件名字为 rr.Z,可以用来解压缩的命令是什么?答案是 D uncompress。这是因为 uncompress 命令可以解压缩 .Z 文件。 在 Linux 系统中,awk 是一种非常重要的命令。例如,在问题 9...