首页 > 编程知识 正文

用ldlt分解法分解方程组例题,分块矩阵及其应用开题报告

时间:2023-05-05 22:49:18 阅读:113282 作者:1413

这一部分在实用上很重要,当然考试也作为重点内容进行考察。 详细设计的定义详细设计以概要设计说明书为基础,进行各模块的算法设计、用户界面设计以及数据结构设计的细分等。 对开发人员来说,详细设计的主要工作是补充对应每类方法的业务实现。 类内方法的设计使用状态图对类的行为OCL对类的实现细节进行3358www.Sina.com/。 详细设计的主要活动是每个模块用详细的准确定义某种图形、表格、语言等工具描述各模块处理过程的详细算法。 为模块中的算法设计设计。 正确定义需求分析、概要设计规定的概念性数据类型。 物理设计数据结构,即确定数据结构。 物理结构主要是数据库的存储记录格式、存储记录调度和存储方法,它们取决于所使用的数据库系统。数据库的物理结构:根据软件系统的类型,可能会进行以下设计: 输入输出格式设计; 交互设计; 在实时系统中,用户经常与计算机交互,因此要进行交互方式、内容、格式的具体设计等。 http://www.Sina.com/http://www.Sina.com /审查处理过程的算法和数据库的物理结构等。 对于类方法的高级设计/结构化程序,如果程序的代码块仅由顺序、选择和循环三种控制结构连接,并且每个代码块只有一个条目和一个出口,则该程序称为结构化程序目的是简化设计过程,只需有限的可预测操作即可完成相应的算法过程

平面设计工具(* )1.程序流程图) )流程图)简单、直观、易于学习的其他设计特点,http://www.Sina.com/gottion

2 .箱体图(NS ) 3358www.Sina.com/的图形描述工具详细设计说明书组合嵌套方式构成更大“箱体”的复杂逻辑绘制很繁琐

3 .问题分析图(PAD )用二维树形结构图表示程序控制流程,结构清晰,便于代码翻译

表工具:判定表(* )判定表是进行详细设计的表工具,也称为决策表。 判定表适用于判定条件多、各条件相互组合、有多个决策方案的情况。 判定表被正确且简洁地记述,能够使复杂的条件的组合与对应的执行动作相对应。 例如:某厂机械维修方式:对电力超过50马力或已运行10年以上的机械,必须送专业维修单位处理; 否则,功率低于20马力,有维修记录的,在工厂维修; 否则,送到本公司的维修中心维修。

1 .判定表构成判定表为评审; 各条件对应一个变量、关系或预测,以上例机器的功率、运行时间、维护记录; 条件组合是各条件可取值的所有组合。 在每个条件下有真伪2种取值的情况下,n个条件的取值组合的数量为2n个。 行为是要执行的流程或操作的列表,如上例中的维修或发送到我们维修中心的操作条目是指与某个条件组合中的操作的对应,与条件组合一起构成判定表列,也称为规则。 2 .判定表化简用“―”表示对该条件不感兴趣,或任意两个条件组合之间不能交叉化简的方案不是唯一的。

3 .决策树又称决策树,是应用于数据分类的树结构。 其中,每个内部节点(internal node )表示属性的测试,每个边表示测试结果,叶节点(leaf )表示类(class )或类的分布),而顶部节点是根节点。 判定树提供了显示在什么条件下得到什么样的值的规则的方法。 搜索最优决策树是一个NP困难问题,经典算法有ID3算法,即决策树归纳诊断树。 判定树是判定表的变种,也可以清楚地表示复杂条件的组合与应该动作的对应关系。 (电力等数据要素的值为2个以上时,判定表的简洁性会降低。 )

语言工具PDL编程语言(Programming Design Language,PDL )是一种用于进行详细设计的语言类工具,也称为结构化语言或伪代码。 与自然语言相比,PDL借用一种编程语言的语法构建逻辑流程; 与编程语言相比,其中使用了自然语言的词汇(如英语)。 PDL不能编译或解释运行。 主要由开发人员使用。 PDL的特点PDL采用关键字固定语法,提供了结构化控制结构、数据说明和模块化的特点。 PDL程序包含指示程序结构的关键字。 PDL语言只是简单的语法规则少,而是大量使用人们习惯的自然语言。 使用PDL语言时,经常会逐步详细编写程序。 PDL程序的注释行起到解释语句和提高可读性的作用。

类的动作:状态图(! )某些方法的返回值对实例变量的值没有任何影响。 这些类的实例对象称为无内存或无状态。 相反,一些对象的功能需要取决于其内部状态,这种对象被称为有存储的对象或者有状态的对象。 对象的状态和状态变化可利用状态图或贫穷状态机(Fi )

nite State Machine)进行描述。 1.状态图的基本结构

左侧描述的是状态的一般构成模板,右侧是一个具体的状态。应含有一个唯一的开始状态,可以有多个结束状态,开始状态和结束状态统称伪状态。状态图中的状态变化都是针对确定性行为的描述。 2.状态 每个状态描述中除了状态名字以外,还可以包含以下三个预定义的事件的描述:Entry:给出当刚进入该状态时应该进行的动作(action)。在这里可以表示一个简单的赋值操作,也可以是对一个或多个方法的调用。Do:给出在保持该状态的过程中,对象应执行的活动。这个部分一般对那些受时间控制行为的对象比较适用,因为它们通常要求能够持续的读取信息。Exit:这个部分描述当离开该状态时应进行的动作。这三个部分的内容是可选的,根据需要进行取舍。 3. 状态转换 状态通过状态转换进行过渡(Transition)。事件部分:转换的主要内容,状态图主要是对被动系统的行为描述,对外界的刺激事件进行相应的响应。条件部分:状态间的转换只有在事件被触发并且满足某个特定条件的情况下才会进行,可选。动作:表示当转换发生时执行的一个动作,该动作执行的时机是在转换对应的目标状态的entry事件被执行之前,即还未进入到目标状态前。
4.状态图的拓展 状态图本身如果过于庞大,容易让人陷入局部而丢失整体上的可理解性。一种经常见到的情况是状态图中若干状态在同一事件作用下具有相同的行为,比如对于异常的处理或者运行的停止。状态可以以一种层次化的方法进行组织,每个状态通过多个子状态细化,该状态称为复合状态。复合状态中的所有子状态只需一个转换来描述共同行为,节省了转换的个数,同时使得图形的绘制保持整洁,不会过于杂乱无章。
对象状态也可能是由多个互不依赖的子状态构成的。每种可能的行为变化,可使用独立的状态图分别进行描述。每个子状态图相互独立,组合在一起又构成了一个全局的状态。使用并行的组合方式减轻状态图的描述负担。
5.并行状态的考虑 如果一个事件在两个子状态图中都需要进行处理,为两个子状态图建立一个到各自结果状态的转换。从含有并行组合的状态出发的转换表示只有当其含有的所有子状态图都位于结束状态时,该转换才会被触发。如果某个复合状态中的一个子状态图的分支导致离开了此复合状态,则所有的子状态图都将结束。也就是说如果离开其中的一个子状态,其它所有的都将自动结束。 6.举例

状态用来表示每个独立的图形界面,事件是用户的输入,如某个按键的按下,进而弹出另外一个界面,即到达了一个新的状态。 对象约束语言OCL(*) 以OCL作为约束的构建时,如果有一些编程经验会使其这个构建过程变得简单。OCL是一种条件约束语言,因此并不能直接从OCL翻译到具体的代码实现;又由于OCL是一种描述性语言,因此对于建模来说可视情况进行指定,并不需要强制给出。

学号要求至少五位数字长,并且构成学号的数字要大于或等于10000。若使用OCL进行描述: context Student inv regStudentId:self.stuId >= 10000 关键字context表明此段OCL的描述与哪些UML对象或类相关。关键字inv表示这是不变的(invariant),也就是说所有的Student对象都要遵守这个约束self关键字指的是对context对象的引用,正如在Java中的this或C++中的*this的作用一样。 context s:Student inv:s.stuId >= 10000 将OCL同样以包的形式进行组织,便于使用和管理: package com::myCompany::mySWcontext Student inv:context Student inv:endpackage 除了实例变量的约束外,OCL同样可以对实例的方法进行,描述方法执行的条件,如未休学的学生至少要选择一门课程: context Student::selectedLectures(): Integerpre stustatus: self.freesemester = falsepost selectedLectures: result > 0 当该生选择了一门之前没有学过的课程时,该生选课总数加一: context Student::registerLecture(v: Lecture)pre: notSelected(v)post: self.selectedLectures()@pre = self.selectedLectures() – 1 @pre表示引用的是方法执行之前的状态值。
某门课的授课教授在上课时是不能在国外的: context Lecture inv:self.status = Lecturestatus::runningimpliesnot self.prof.inForeign 关键字implies表示“if-then”的条件说明。对于一个结课的课程成绩要求分数在1-5之间,可以进行如下的描述: context Examination inv:self.selectedLecture.status = Lecturestatus::closed implies(self.note >= 1.0 and self.note <= 5.0) OCL目前只支持一些标准集合类型,如Collection、Set、OrderedSet、Sequence以及Bag。
collection -> method(parameter)一个学生在一个学期内最多可以选择12门课程: context Student inv:Student.selectedLecture-> select (s | s.status = Lecturestatus::running)-> size() <= 12 竖线前的s变量为一个循环变量,用于遍历集合student.selectedLecture中的每一个元素。返回来的集合又进一步使用了size()方法,提供所含元素数量的整型值。如果在已考试的课程中存在“理论”课程,则方法hasTheoryLect()返回真值: context Student::hasTheoryLect():Booleanpost: result = self.examination-> exists( p | p.note >= 60 and p.selectedLecture.title='Theory') 要求方法passedLectures()返回的所有课程必须是已经修过的课程: context Student::passedLectures():Collectionpost: result = self.examination-> select( p | p.note>=60) -> iterate(p:Examination; res: Collection = Collection{} |res->including(p.selectedLecture))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。