`
gdpglc
  • 浏览: 90801 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

软件中,问题空间和解空间是环环相扣的,一个问题的解空间会导致新的问题空间出现,找不到源头的问题和解可能包含错误,且难以理解

阅读更多

软件的开发过程是一系列的问题和问题的解的发现过程。

 

最初的问题来自动于用户的业务目标(痛点)。软件的功能设计即为此问题的解。

而功能设计本身又构成了软件实现设计的问题空间,软件的实现设计即为对应的解空间。

 

软件内部是由模块构成的,我这里的模块是范指,一个模块是一个独立的功能块,可大可小,大的比如:软件的某个界面功能部份、某个WebService提供者、业务逻辑组件等;小的可是一个类。一个模块对外提供的服务是某个问题需要的解;而这服务的解对其它的模块所产生的需要又构成了其它模块的问题空间。

 

问题空间代表的就是需求,解空间代表的就是设计。从上面的论述可以看出,需求和设计是个相对的概念,存在于软件开发的各个阶段。

 

处于不同位置的需求和设计本质上是相同的。因此,用于需求分析的手段和概念也是通用的。比如:领域模型可以用来描述用户的业务领域;也可以用来描述界面上的相关概念。用例可以用来描述用户的功能需求,也可以用来描述一个模块对另一个模块的功能需求。

 

然而,在软件开发的整体过程中,对于功能设计以下的实现设计工作,通常不再进行需求和设计的区分。这是因为,功能需求和业务及用户有直接的关系,但又不是直接可以得出的,因此需要把软件的功能本身作为研究对象。(这里注意:应该由用户提供的是业务目标和领域知识,功能设计要由工程师把握,常常用户凭直觉说出的设计方案,会对工程师带来误导。比如有一个用户要我读windows补丁信息,让我直接从填加删除窗口抓取;而后来发现直接从注册表是可以获得的。但是用户所想到的解决方案并不是没有用处,一方面这个也可能是一个解决方案,另一方面它反应了问题本身的细节。)

 

当软件的功能需求确定后(包括功能的界面),功能就成了软件实现的问题域了。而恰当的解是比较容易导出的。在设计过程中用UML顺序图来刻划模块间的环环相扣的关系是非常恰当的。

 

通过以上论述,可以得出以下结论:

软件可以认为是从用户的业务目标一步步推导出来的。

 

软件的开发过程常常出现如下问题:

问题域的认知常常需要一个过程。因此软件做出来后,可能对用户的问题域还有未知的部份,这时将导致软件的改进。要做到对用户的问题域有充分的认识,行业经验是一个关键因素。

 

 对于较复杂的解的认知也需要一个过程,因此实现的方法,可能和最初的设计有很大的偏差。软件设计经验对得出恰当的解有很大帮助。

 

 

 

 

 

 

分享到:
评论

相关推荐

    算法竞赛-回溯与解空间树例子

    回溯法在此问题中非常有效,它会尝试在每一行放置一个皇后,如果发现冲突则回溯到上一行,改变皇后的列位置,直到找到可行的解决方案。 接着是背包问题,这是一个典型的优化问题,通常有0-1背包和完全背包两种类型...

    100个著名初等数学问题.历史和解

    《100个著名初等数学问题:历史和解》是一本数学经典教材,收录了从古至今一百个著名且具有教育意义的数学问题,涵盖了算术、几何、算法和数论等领域。该书不仅给出了这些问题的解答,还介绍了它们的历史背景和数学...

    Lec08-求解 Ax=b :可解性和解的结构1

    在本节课程“Lec08-求解 Ax=b:可解性和解的结构1”中,主要探讨了如何判断线性方程组的可解性以及解的结构,特别关注了矩阵的秩在理解解的空间中的角色。 首先,线性方程组 Ax=b 的可解性是解决此类问题的前提。可...

    回溯法解决八皇后问题

    八皇后问题的解空间可以被构造成一棵树,其中每个节点代表一种可能的布局。 3. **搜索解空间**:按照深度优先搜索(DFS)策略,从根节点开始探索解空间树。每当遇到一个节点时,先判断该节点是否能产生有效的解,若不...

    castor 问题 无法解组

    Castor 是一个开源Java库,主要用于XML到Java对象的映射和反映射,它使得在Java应用程序中处理XML数据变得更加便捷。当你遇到“castor无法解组”的问题时,可能涉及以下几个方面: 1. **配置问题**:Castor 需要...

    Huffman编码对英文文本的压缩和解压缩

    3. **合并操作**:每次从森林中选取两个频率最小的节点,并将它们作为子节点合并成一个新的节点,这个新节点的频率等于两个子节点频率之和。然后将这个新节点放回森林中,继续进行下一轮的选择和合并,直到最后只...

    连续空间二元粒子群算法理论研究综述.pdf

    该算法中,每个粒子代表解空间中的一个潜在解,它们通过跟踪个体经验和群体经验来调整自己的飞行方向和速度,最终收敛到最优解。 在连续空间优化问题中,粒子群算法需要处理解空间的连续性,而离散域优化问题则涉及...

    算法分析与设计:05 第五讲_回溯法.pdf

    解空间可以通过一个二进制向量表示,每个元素表示物品是否被选中,从而构建出一个解空间树,算法通过回溯法在树中搜索最优解。 解空间是问题所有可能解的集合,确定正确的解空间至关重要,因为它直接影响搜索的效率...

    基于改进蚁群算法的机器人三维空间路径规划.pdf

    该问题是机器人技术和自动化领域中的一个重要课题,涉及到机器人的运动规划、避障技术和搜索算法等多个方面。 蚁群算法是一种常用的搜索算法,通过模拟蚂蚁搜索食物的行为来寻找最优解。然而,传统的蚁群算法存在...

    使用遗传算法解决MTSP问题的一种新的染色体设计

    综上所述,针对MTSP问题,本文提出的新染色体设计方法通过减少解空间和增强路径协调机制,有效提升了遗传算法的搜索效率和解的质量。这一成果对于解决实际应用中的大规模MTSP问题具有重要意义。

    基于空间划分树的多目标粒子群优化算法.pdf

    在MOPSO中,空间划分树被用来对解空间进行分割,将多目标问题的解空间划分为多个子区域,每个子区域对应一个网格。每个粒子被分配到相应的网格中,这样可以更好地管理和分析粒子的分布。 算法的核心策略是结合网格...

    8.MATLAB优化与控制模型代码 改进蚁群算法求解连续空间优化问题代码.rar

    综上所述,这个MATLAB代码库提供了改进蚁群算法解决连续空间优化问题的实例,对于学习和研究优化算法,尤其是MATLAB编程者来说,是一个宝贵的资源。通过深入理解并实践这些代码,可以提升在优化问题解决方面的能力。

    解压软件7 zip 安装包

    描述中提到的问题“提取存档提取操作没有完成出现意外错误,导致无法提取存档 错误Ox8007000E:内存资源不足,无法完成此操作”,这是一个常见的错误代码,表示在尝试解压缩文件时遇到了内存不足的问题。错误代码0x...

    单片空间后方交会

    "单片空间后方交会"是摄影测量领域中的一个重要概念,它涉及到图像处理、几何建模和计算几何等多个IT技术领域。在这个过程中,我们通常利用一个或多个图像来确定相机的位置以及图像上像素对应的三维空间点。这个实习...

    2022届高考数学一轮复习精品学案第36讲空间向量及其应用.pdf

    高考对空间向量的考察多以客观题和解答题的形式出现,特别是通过向量法解决几何问题,如找夹角、找距离等。2022年的高考可能会更加重视向量的应用,考生需要加强这方面的练习。 复习时,重点应该放在向量的运算规则...

    单像空间后方交会C#

    单像空间后方交会是摄影测量中的一个关键技术,主要用于通过一张或多张航空或卫星影像来确定地面点的位置。在C#编程环境下实现这一算法,可以为GIS(地理信息系统)和遥感应用提供强大的数据处理能力。本文将深入...

    asp空间在线解压工具

    总的来说,ASP空间在线解压工具是服务器管理员和Web开发者的一个实用工具,特别是在FSO不可用的情况下,它可以提供文件解压缩的功能,增强服务器的文件管理能力。通过合理利用这类工具,可以提高工作效率,同时减少...

    背包问题的遗传算法求解

    1. **种群空间与染色体设计**:在背包问题中,每个物体是否被选择可以用染色体的二进制编码表示,其中1表示选择,0表示不选择。此外,物体的尺寸可以通过染色体的其余部分来表示,以适应特定的约束条件。 2. **...

Global site tag (gtag.js) - Google Analytics