在实际应用中,很多算法都体现了深度优先搜索的思想。图3-2 有向图的邻接表表示2.拓扑排序深度优先搜索的另一个经典应用是对有向无环图进行拓扑排序。这两次深度优先搜索一次运行在图G上,一次运行在转置图GT上。算法计算的结果是深度优先森林,每一个强连通分量对应一棵深度优先树。...
2023-10-26 理论教育
在实际应用中,很多算法都体现了深度优先搜索的思想。图3-2 有向图的邻接表表示2.拓扑排序深度优先搜索的另一个经典应用是对有向无环图进行拓扑排序。这两次深度优先搜索一次运行在图G上,一次运行在转置图GT上。算法计算的结果是深度优先森林,每一个强连通分量对应一棵深度优先树。...
2023-10-26 理论教育
1981年,Neighous在其论文中首次提出领域分析这一概念,他指出领域分析是“对某个特定的领域中一些具有通用特性的信息进行分析、提取以及组织”。领域分析的目的其实就是为了支持系统化的软件复用。并且,领域分析也为系统在生命周期中做出修改提供了可能性。其次,在确定的领域范围内,分离提取系统的共同特征和不同特性以获得一组复用性高的领域需求。一般来说,领域分析不是一个简单的工作。...
2023-10-26 理论教育
生成式程序设计包括两个开发周期——领域工程和应用工程。应用工程与领域工程不同,开发人员是根据用户的需求开发特定的系统,没有对领域的对象进行抽象。领域工程和应用工程并不存在先后顺序,而是两个并行的过程。生成式程序设计目标集中于特定领域,因此必须要对“领域”这个概念先有一个理解。在领域模型的基础上,设计、开发和组装可复用资源。下面详细地介绍领域工程中的三个不同阶段——领域分析、领域设计以及领域实现。...
2023-10-26 理论教育
变换的开始、中间到结束,产物是一符号串,这种形式化方法称为完全形式化方法。目前在各类数学和程序设计方法学专著和教材中使用的方法就是属于部分形式化方法。总体上,形式化软件开发方法大致可分为以下五类:1.基于模型的方法。...
2023-10-26 理论教育
图论问题应用于工程科学的标志是1847年在电路网络中的分析应用。正是由于图论问题在理论和实践中所占有的重要地位,它越来越受到许多学者及实际工作者的欢迎。由于图论问题已渗透整个计算机科学,因此,图论在计算机领域也得到了高度重视。在运用图论理论对问题进行求解时,采用的问题划分方法不同可能会得到形式完全不同的策略。...
2023-10-26 理论教育
在图领域,广度优先搜索常被用于求解图的最短路径问题中。松弛操作的伪代码如下:2.Floyd算法Floyd算法是一个经典的全源最短路径算法,适用于不包括负环的图,可以应用于计算所有城市之间的交通道路距离问题。Floyd算法利用了上述两个假设之间的关系,该关系依赖于节点k是否是路径p上的一个中间节点。k=0则表示这两个节点是直接相连的,没有中间节点。...
2023-10-26 理论教育
由于本书的研究是PAR方法的一个重要组成部分,故在此,将对PAR方法做较为详细的阐述。图1-1 PAR方法开发过程略图PAR方法是一种基于分划和递推的部分形式化算法程序设计方法,支持算法程序开发的全过程。它包括四个组成部分:算法程序设计方法、基于递推关系的算法设计语言Radl、抽象程序设计语言Apla及一系列转换系统。由PAR方法的理论及上述对算法的推导,我们可以看出,PAR方法在克服软件危机方面将大有作为。...
2023-10-26 理论教育
20世纪80年代以来,形式化软件开发方法的研究及应用为解决上述问题找到了一条有效的途径,使用形式化方法开发软件可以提高软件的可读性、可靠性和可维护性以及软件的开发效率,并为实现软件开发的自动化奠定基础。软件开发的形式化方法是以一般形式化方法为基础的。尤其适宜高安全性系统的开发,这也是形式化方法目前最主要的应用领域。另外,某些形式化方法缺乏描述软件结构的强有力机制,对大型软件的开发不太理想。...
2023-10-26 理论教育