OO第四单元&课程总结】的更多相关文章

一.本单元架构设计 第一次作业 本次作业要求解析UML类图. 首先,将UML中的各个元素(比如UmlClass.UmlInterface等)转化成自己定义的类(MyClass.MyInterface),目的是为了进行更好的管理,将UML中分散的元素和结构变成人能够理解的形式.此时,每个MyClass中包含属于自己的方法,每个方法都有属于自己的参数,这样在进行查找的时候简明易懂.对于数据的管理,我首先建立了一个Container类,负责管理各种List和Map.对于一些常用的元素,我采取了Hash…
[OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类.每个子类存储相应的UmlElement,以及需要保存的信息.比如,Class类里保存着这个类的属性.方法以及关系.父类.实现的接口等信息. Element抽象类有一个put方法,用来建立“关系”.比如,将属性.方法放到对应的Class里. 建立每个类的时候使用工厂模式,这样在做第十四次作业的时候只…
OO第四单元总结及课程总结 一.前言 紧张刺激的OO“昆仑课程”接近尾声,经过一个学期的学习,我的收获和感触颇多,借此博客作业的机会,对自己OO这门课程做一个总结.本博客主要有以下五个方面,一是第UML单元的作业总结,二是课程期间架构设计及OO方法理解的演进,三是测试理解与实践的演进,四是自己的课程收获,五是给课程的三个具体改进建议. 二.第四单元作业总结 (一)第十三次作业 1.任务摘要 实现一个UML类图解析器,可以通过输入各种指令来进行类图有关信息的查询. 2.要点分析 理解UML类图的几…
OO第四单元--基于UML的UML解析器总结&OO课程总结 前言:一学期愉快(痛苦)的OO课程学习结束了,OO几个单元作业都各有特色,实验也各有特色,仔细回味起来,不再是单纯的敲代码(但自己还是有几次没用成功提交实验),也不乏有许多有趣的知识.整个作业中测--强测--互测--BUG修复的模式也将整个课程变得充实完善了起来,总的来说,收获很多,遗憾也很多.同时也感谢那些不厌其烦帮助我构思帮我debug的py们. Part1:OO第四单元--基于UML的UML解析器总结 架构分析 本单元主要理解UM…
oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅需补充查询指令相关实现.本单元的三次作业是彻底的增量开发,没有对先前的作业做任何改动,因此仅分析第三次作业的架构设计. 由于本单元作业数据量较小,性能要求较低,因此并没有采取按照元素的属性和归属进行建树或建图的方法,而仅暴力存储了每一元素的相关信息并在查询时不断遍历,架构较为简单,类图如下(仅选取自…
OO第四单元总结与课程总结 第四单元作业架构设计 总体分析:本单元作业的需求集中于对UML类图进行查询.对于查询操作来说自然的想法是提前预见到需要查询的内容,在一开始就采用适当的数据结构将必要的信息进行存储,以空间换取时间.在本单元的作业中我也是完全依据这样的想法来进行设计的. 第一次作业 本次作业只涉及类图,主要的需求是对类的内外信息进行查询,类内的信息包括属性.方法等:类外的信息包括父类.接口实现等.在课程给出的源码中,一个类只包含UML中定义的ID.name等信息,并不包含属性.方法.父类…
OO第四单元与全课程总结 一.作业代码架构设计 1.第一次作业 作业类图如下: 具体架构设计: 第一次作业的全部查询工作都是和类图有关,需要解决的主要问题就是如何解析原有UML类图数据的结构,并形成自己便于查询的结构.所以,可以看到,我在这次作业中的MyUmlInteraction类中,设定了包括UML类.UML亲属关系.UML继承关系.UML关联关系.UML实现关系等共6个HashMap容器,这些容器将原UML类图具有的这些关系分类存储,并且都是以UmlElement的id作为key,这样也能…
OO第四次课程总结分析 测试与正确性论证的效果差异及优缺点 测试,即使用测试样例来验证我们的程序是否能完成相应功能的过程.测试数据的产生基于前置条件和后置条件,通过执行测试数据检查方法输出是否满足需求.由此,测试的优缺点显而易见.优点是易于实施,可以针对特定的功能构造相应的测试数据去加以检验,好的测试数据能有效及时地发现错误:缺点是我们构造的测试数据并不能完全保证覆盖到了所有的情况,即我们无法保证程序的正确性,程序可能还存在我们未发现的bug. 正确性论证,就是针对规格化的代码,通过对代码逻辑进…
OO第四单元(UML)单元总结 这是OO课程的第四个单元,也是最后一个单元.这个单元只有两次作业,相比前三个单元少一次作业.而且从内容上讲这个单元的作业目的以了解UML为主,所以相对前三个单元比较简单. 一.作业分析 1.第一次作业 第一次作业的目的是实现一个UML类图解析器,这个解析器需要接受由UML图生成的类图信息并根据要求返回相应的结果,是以了解UML类图为目的的作业. 由于UML解析器的输入是按照starUML中存储类图信息的方法来存储的,所以这次作业的目的其实是了解类图的存储方法,即s…
OO第四单元博客作业 BUAA_1706_HugeGun 目录 第四单元作业架构设计 四个单元架构设计及OO方法理解 四个单元测试理解与实践演进 课程收获 一点建议 第四单元作业架构设计 ### 第十三次作业: 用HashMap嵌套HashSet.ArrayList建抽象图 查询在容器里找就行了 共440行 第十四次作业: 复制上一次作业代码来解决类图查询 新建check类并复制上次作业建的图,然后完成三种check: 001: 用String(id)建容器,\(O(n^2)\)查询重复name…
目录 OO第四单元总结及学期总结 第四单元三次作业架构设计 第十三次作业 第十四次作业 第十五次作业 四个单元中架构设计及OO方法理解的演进 第一单元 第二单元 第三单元 第四单元 四个单元中测试理解与实践的演进 第一单元 第二单元 第三单元 第四单元 小结 课程收获 改进意见 线上OO学习体会 OO第四单元总结及学期总结 第四单元三次作业架构设计 第十三次作业 需求分析 ​ 本次作业需要实现一个UML类图分析器,根据传入的UML类图元素UmlElement建立模型.重建关系,并对询问指令作出应…
OO第四单元总结暨期末总结 目录 OO第四单元总结暨期末总结 第四单元三次作业架构与迭代 整体感受 HW1 HW2 HW3 四个单元架构设计与方法演进 Unit1 Unit2 Unit3 Unit4 四个单元测试理解与实践的演进 课程收获 课程建议 线上学习体会 第四单元三次作业架构与迭代 整体感受 第四单元主要学习的是UML相关的知识,大体包括类图,顺序图与状态图.在理论课掌握了所有知识点的前提下,代码实践部分的难点则集中在初期阅读大量官方代码(yysy,第一次作业开始写代码前我至少花了3h+…
title: 2020 OO 第四单元总结 date: 2020-06-14 19:10:06 tags: OO categories: 学习 1. 本单元三次作业的架构设计 本单元的代码编写与第三单元有相似之处,课程组已经提供了相应的接口,我们只需要满足具体的实现.在架构设计上我选择了建立MyUmlClass等类,采用适配器模式以管理UML对象,并配置相应的方法的方式,更加符合面向对象的设计思维. 1.1 第一次作业 在第一次作业其实还没有考虑好迭代开发,在UML对象的存储方式上比较混乱,有的…
2020北航OO第四单元总结 一.本单元架构设计 本单元作业是实现一个UML图解析器,其中实现接口及主要框架课程组已经提供,只需要我们完成特定功能. 在第一次作业时,感到十分迷茫,不知道如何下手,最后在重新学习了类图的mdj文件的各项含义及内在关系后,我选择设置一个umlTree类进行UML的解析,然后存入自己写的MyUmlClass和MyUmlInterface中,使其根据原有的UmlClass和UmlInterface构造,在其中实现operations.attributes.associa…
北航OO第四单元--UML图解析 作业要求简析 刚接触本次作业可能需要花上一会才能搞清楚到底是要我们写个啥,在这里简单说一下: UML图的保存格式.mdj文件是以json文件的形式存储的,将每一个UmlElement作为其parent的属性挂载到其中.可以自己随便用starUML画一个,然后看看源文件内容 课程组将这一个个UmlElement单独拿出来逐条输入,以此在我们的程序中建立起UML类图 然后输入查询指令,查询有关于UML图的各种信息并输出 作业思路及架构 由于许多大作业.考试全部堆在这…
OO第四单元总结 第四单元架构设计 第一次作业 uml类图 这次作业我采取的基本思路就是根据指令来建造一个简易的类图,用于查询,其中umlclass中包含了umlAttraibute,umlOperation等.整个架构分为四层,首先是main函数,然后是交互类intreation,交互类每获得一个元素,就将其送入ananlyze进行分析,analyze通过分析来将其添加到适合的位置以建造类图.最终当所有的元素都被分析完了,我们就得到了一个简易的类图,接下来交互类中的各种查询就非常简单了,仅仅就…
OO第四单元及学期总结 第四单元两次作业的架构设计 第一次作业 类图: 树形结构:使用Operation类管理UMLOperation以及parent为该UMLOperation的参数(UMLparameter):使用Class.Interface两个类分别管理UMLClass/UMLInterface以及parent为该UMLClass/UMLInterface的属性UMLAttribute.操作(Operation)以及其拥有的类间关系(关联/继承/实现)等:用顶层的myUmlInterac…
一.本单元两次作业的架构设计总结 作业一.UML类图查询 1. 统计信息图 2. 复杂度分析 基本复杂度(Essential Complexity (ev(G)).模块设计复杂度(Module Design Complexity (iv(G))).Cyclomatic Complexity (v(G))圈复杂度 OCavg为平均循环复杂度;WMC为总循环复杂度 3. 结构信息图 4. 分析架构设计 本次没有架构设计,本次只用了两个类,一个main类,用于启动,一个MyUmlInteraction…
一.第四单元作业总结 第四单元有两次作业,第十三次作业是实现一个UML类图解析器,可以通过输入一些查询指令来查询一些类图的信息.程序的主干部分已经提供,我们的任务就是实现给出的接口,过程并不繁琐.第十四次作业在十三次作业的基础上增加了对UML状态图和UML顺序图的解析以及UML模型合法性判断. 1. 第十三次作业 架构思路: 对于需要存储相关信息和参数的UML对象各开一个专门的类来实现,例如UMLClass,UMLInterface,UMLOperation.同时在第一步识别UMLElement…
前言 在学习过JML规格描述语言之后,本单元进行了UML(Unified Modeling Language)的学习.和JML单纯用语言描述的形式不同,UML通过可视化的图形形式,对一系列有关类的元素进行抽象化建模,帮助开发者更高效地理解大规模.复杂系统的模型,这对于理清对象之间的关系.设计对象的架构具有重要的意义. 在本单元的学习中,主要包括StartUML工具的使用以及对UML文件的解析,主要目的都是让我们更深入地了解各种元素的结构和组织方式,以及检验模型有效性的原则.StartUML是一款…
第四单元架构设计总结 第一次作业 单独写了MyUmlClass.MyUmlInterface.MyUmlOperation三个类对应UML中相应元素,在UML图中这几个元素包含一些下级元素,如Class包含Operation.Attribute,Operation包含Parameter等,所以就单独设立了新类,将下级元素当作新类的属性存储.所以如果要找一个类的某个方法的参数,就可以找到对应的MyUmlClass,然后根据其属性依次向下级查找即可.另外在MyUmlInteraction的构造方法中…
一.第四单元作业总结 本单元的主要任务是对 Uml 图元素进行管理和查询,测试一开始会输入一个静态图,之后会对图中相关内容进行查询. 第13,14次作业 第14次作业新增内容很少,故与第13次作业放在一起讨论 13次作业架构图 14次作业架构图 13次作业为类图的查询,14次作业新增了状态图和顺序图的查询. 第13次作业中,我最初的想法是将每个元素都建立一个类进行管理,每次查询通过类之间的连接进行查询,但是类图元素每次查询的密度很高,而且查询内容比较单一,所以如果每个元素建类,在查询的时间复杂度…
Part1 本单元三次作业架构设计总结 1.组织结构 由于官方代码中已经给我们提供了许多零散的类元素,如UmlClass``UmlAssociation``UmlParameter等,因此我首先将某些类按照我们平常的理解去进行组装,如UmlAttribute``UmlOperation等封装在MyClass内部,然后再将组装的类进行分级,层层调用.组装结果如下: 这样进行组装后可以将这些不便于直接使用的零散元素进行抽象,然后内部提供我们所需要的方法,从而更加便捷的去进行访问. 最外层的类MyUm…
第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element)之间的关系之后,我采用了如下设计架构.类似于课程组所给的源代码的架构,但将class与interface一同继承于一个合并类.新建立operation和association类让自己能够更多的操作空间(能够更好地获取相关数据).其实第一次作业很大部分时间都在完成架构的设计,这个框架设计好了之后完成…
一.第四单元架构设计 1.第一次作业 第一次作业要求实现的只有对类图的分析.为了直观地搭建出一个类图,我新建了Manager类来处理UmlElement以及搭建树.但由于未能做好时间管理,因此第一次作业未能通过中测. 2.第二次作业 在听过一些同学分享的第一次作业的思路与架构的讨论课后,我直接进行了重构,全部采用Hashmap以及Hashset的方式存储数据.设计架构为每一个类单独实现一个作业要求需要实现的接口,各自完成自己所需要的数据处理以及方法实现,最后再由MyUmlGeneralInter…
目录 目录一.第四单元UML两次作业架构设计第一次作业第二次作业二.架构设计总结与OO方法理解演进三.测试理解与实践演进四.课程收获总结五.课程改进建议六.尾声 一.第四单元UML两次作业架构设计 第一次作业 第一次UML作业的文件树如下: 本次作业采用的是分离需求的设计思路,每一类需求整合到对应的类中单独存储,并配置修改和访问方法. 在顶层,实现课程组提供的UmlInteraction接口的类MyUmlInteraction只负责将UmlElement传入parser解析,并对外提供查询接口,…
一.本单元作业架构设计 1.第一次作业 本单元首次接触到UML以及相关概念,在面对第一次作业时首先花了很大功夫去阅读官方接口中各种UmlElement的代码,才理解了输入的模型元素中各属性的含义.总的来说,就是将原本UML图中的层次结构,通过使用id和parent_id的形式平面化,变成各类型的UmlElement依次输入,需要我们通过这些UML元素的相关属性再反向建立起原图中的层次结构,从而实现作业的各项查询要求.由于每个UML元素的id都是唯一的,故使用elementsMap建立起id与Um…
一.总结本单元两次作业的框架设计 1.1. 需求分析 通过分析mdj文件可知,两次作业如果对于时间复杂度没有要求,可以不涉及任何数据结构,直接根据读入的UML_ELEMENT逐个分析得到各个函数的结果. 由此观之,两次设计的目标其实都是缩短数据查询与访问速度(不在需要通过id去全文遍历),以类间关联关系增加数据的关联程度. 1.2.1 第一次作业 本次作业围绕类图展开,因此设计了MyClassAndInterface类,类中持有了除其自身信息外:属性.方法.关联.实现.继承这五种关系相关信息.…
单元架构设计 本单元OO作业主要涉及两个过程,即先根据输入的elements数组建立UML存储模型,而后基于这个模型实现一系列查询判断功能.汲取上单元的经验,建模过程中模型数据容器的选择依据要求实现的查询判断功能而定,选择有利于加快查询判断速度的存储结构,总结归纳如下: 我所设计的建模算法只需对输入的elements数组进行一次遍历,速度较快.但所需解决的问题是,有些时候并不能根据输入的element确定UmlElement的类型,这时就需要诸多暂存的数据类型进行中间态存储(第一次作业中的Bas…
第四单元博客 这个单元的作业,emmmm助教们做的工作还是一如既往的多,我们只负责添一添代码,最后一次作业了,感谢各位助教和老师,同时也希望我能顺利通过这最后一关. 架构设计 第一次作业架构展示 第一次作业需要实现10个命令,需要熟悉staruml的文件格式,同时还需要区分类与接口,理解继承与实现的不同. 本次作业的实现用了5个类: MyUml类,用于实现类和接口的相同行为 MyUmlClass类,用于实现类相关命令,是MyUml的子类 MyUmlInterface类,用于实现接口相关的命令,也…