OO课程目前已经进行了三次的作业,容我在本文中做一点微小的工作. 第一次作业 第一次作业由于难度不大,所以笔者程序实际上写的也比较随意一些.(点击就送指导书~) 类图 程序的大致结构如下: 代码分析 可以看出,整体的功能还是相对零散的,耦合状况也基本还可以.然而类似Main.main.Polynomial.Polynomial两个函数的复杂度仍有点高.笔者后来查阅了阿里Java开发规范手册,发现两个问题: 单个方法的长度不宜过长,入口点方法(Main.main)也是一样 不宜在构造函数中携带过多…
嘛..不知不觉这门课程要结束了,那么就再说点啥以示庆祝呗. 测试vs正确性论证 说到这个,相比很多人对此其实很有疑惑,请让我慢慢分析. 逻辑概览 首先我们来看看两种方式各自的做法和流程是什么样的: 单元测试 在测试中,我们是这样的一个流程 此外,为了保证测试能覆盖到工程代码的每一个区域,需要保证测试的覆盖率. 正确性证明 在证明中,我们是这样的一个流程 在这一过程中 基于行为分析的repOk永真性证明依赖于JSF中的modifies项 方法正确性将基于JSF中所描述的effects和requir…
准备工作(10分) 1.在博客园申请个人博客. 2.加入班级博客(2班班级博客链接地址)(1班班级博客链接地址) 3.关注邹欣老师博客.关注任课老师博客. 4.加入讨论小组,学习过程中遇到问题不要随意在聊天群里提出,小组里提问的好处是所有人可见.永久可查.所以提问时请认真思考,具体提问技巧请参考提问的智慧.提问和回答问题的同学会给与一定程度的加分. 5.安装并使用git[可参考冉华同学的简易帮助)管理你的代码,希望整个大学四年你编写的所有代码都有记录可查,具体托管平台可github.码云.码市任…
OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一单元进行总体性的反思总结,请各位助教和同学们批评指正! 一.程序结构分析 1. 代码规模度量 第一次作业 类 类总代码规模 类属性个数 类方法个数 "MainClass" 8 0 1 "Polynomial" 150 10 4 "Term" 36 2…
概述 和前三次作业相比,这几次作业最大的不同是难度的飞跃.遗憾的是在这难度的变化面前,我自己却没有做好充分的准备,错误的低估了作业难度导致给自己带来了很多不必要麻烦和损失.接下来我将对它们进行说明(度量图工具出了故障一直无法生成请原谅). 设计简介 第五次作业 这是oo课程第一次多线程作业,我自己也体会到了它的难度.我的设计思路是首先够早一个调度器类(以上类图的scheduler类),负责管理各种实时输入的指令,然后是有三部电梯在各自独立的运行着,每当有新的指令输入时,首先判断是否是同质指令,然…
概述 经历了三次oo作业的洗礼,让我对java语言的强大以及面向对象编程有了初步的理解(当然,我是小白).本文接下来就将对自己这三次作业的代码进行分析以及分享自己的心路历程. 基础知识点考核 针对前三次作业,我列出了这其中涉及到的主要的知识点: java基础语法 java正则表达式(注意不要爆栈) 对java封装.继承.多态.接口的理解 程序的构思能力 当然,还有最重要的还是阅读和理解指导书的能力,能够在较短的时间内准确无误的理解指导书的意图也是必需的能力之一. 程序结构分析 作业一:多项式计算…
一.问题:     如何设置可以使得活动监视器中的可见作业数能显示更长范围之内的作业(即NBU软件不要自动删除活动监视器中短时间内(如8天)内的作业记录)? 二.解决方法:      默认情况下在Active Monitor中观察到的备份历史记录是78小时内的记录,因此会出现上述情况.      可以通过如下方法设置:      如果Master Server是Unix/Linux平台,在/usr/openv/netbackup/bp.conf 文件最后增加两行:                …
作业十一——LL(1)文法的判断,递归下降分析程序 判断是否为LL(1)文法 选取有多个产生式的求select,只有一条产生式的无需求select 同一个非终结符之间求交集,全部判断为空后则为LL(1)文法 求FIRST集 是每条产生式右边所出现的首个终结符的集合 求FOLLOW集 是针对非终结符,找到产生式右边跟在非终结符后的终结符,#为输入串的结束符 求SELECT集 当产生式不推导出ε时,就为FIRST 当产生式推到出ε时,就为(FIRST(A->ε)-{ε})∪FOLLOW{A} 2.法…
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第一章:Web Analytics 2.0的新奇世界 多年以来,我们很清楚的知道,网站分析能够真正的改革网络上业务的完成方式.那么为什么不呢?你可以追踪你的网站上每个人的每次点击.这难道不是可行动的吗?遗憾的是,改革还没彻底成功.根本原因是分析师和营销人员他们对网络上的数据的看法非常局限,而且仅仅限于点击流的数据.在本章中,我使用了一个案例来说明为什么我们需要彻底地重新思考网站上数据的意义.网站分析2.0策略适应了网站的发展…
作业五 作业五是当前最后一次电梯作业,也是我们第一次接触到多线程编程,输入方式也由之前的一次性输入变为了实时输入,其中涉及到大量的同步和冲突,其中学习多线程的使用也花了大量的时间,但总的来说为以后的作业打下了基础. 类图 代码分析 从上述分析来看,此次作业仍然存在God类,究其原因主要是因为第一次接触多线程,使用不熟练,导致对电梯使用多线程时不敢将太多逻辑置于电梯类中,从而导致了大量逻辑代码都留在了调度类中,但调度类中的方法较之于之前已经更加详细具体了,方法之间已经尽量做到了高内聚低耦合. 总结…
测试与正确性论证 测试是通过构造一系列测试数据,通过对比程序的实际运行结果和预期输出结果来判断程序是否有bug的一种手段.同时,在测试的时候是默认看不到程序的具体实现的,即进行黑盒测试,例如每次OO作业的互测阶段.测试的具体方法是将输入进行划分,通过构造一个错误分支树,然后每个分支构造一个或多个测试样例来对程序进行测试.其手段简单,易于实现,通常情况下可以覆盖大多数情况.但也可以看到通过测试的话是需要大量的测试数据的,如果在输入很麻烦的情况下,需要花费大量的时间.同时,就算所有的测试输入都是正确…
oo第一次博客 以前从未真正的写过Java代码,接触Java也只是寒假的时候简单的看了看语法,不懂该如何面向对象,但没事,心里不惧,想着什么都是可以学的(直到真正开始写工程的时候,才发现自己还是太天真了),就这样开始了OO学习这条不归路. 一.三次作业的实现过程分析 第一次作业 第一次作业是多项式加减运算,首先我用c语言写了一遍,基本熟悉题目的具体要求,当用Java去写时,我遇到了下面一系列的问题(具有难度等级): 1. 该如何划分类,如何面向对象编程: 2.正则表达式是什么: 3.该如何用Ja…
前言 在经过了三次艰辛的oo作业后,oo课程的第一单元告一段落,这一单元,我作为一个oo小白,开始了解oo的编程思想,也有了自己的一点心得体会.把笔粗成字,不当之处,还请各位大佬多多指教. 一.分析程序结构 第一次作业: 在第一次作业中,由于刚刚开始接触oo的思想,我还不是很了解面向对象的编程方法,还是按照c语言的思路,将deriviation作为main函数,在deriviation中调用number类,完成运算. 具体的操作思路,则是使用正则表达式构造出因子与项,通过正则式匹配来得到每一个项…
1.总结本单元两次作业的架构设计 在我动手开始总结我的设计之前,我看了其他同学已经提交在班级群里的博客,不禁汗颜,我是真的偷懒.其他同学大多使用了新建一个类,用以储存每一个UMLelemet元素的具体信息(当然这个类的形式可能是结构.map等等,但核心思路大体一致).在设计这个类的时候,大多数同学都遇到了困难,耗费了大量的时间精力. 下面我来讲一下,我的第一次作业的架构设计: 最开始,我查看方法描述,考虑如何实现方法的时候,惊喜的发现,UMLelemet数据类型的对象是可以实行操作的!这样一来,…
目录 一.第四单元作业架构设计 1.第一次UML作业架构设计 2.第二次UML作业架构设计 二.架构设计和OO方法理解演进 三.测试理解与实践的演进 四.课程收获总结 五.三个具体改进建议 一.第四单元作业架构设计 1.第一次UML作业架构设计…
这个作业属于哪个课程 C语言程序设计1 这作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在这个课程的目标是 学习C语言编程设计程序 这个作业在那个具体方面帮助我实现目标 让我了解并使用C语言编译器 参考文献 <智慧提问> 1.阅读作业 1.请仔细阅读<提问的智慧>,用自己的话描述你的收获,并举例子说明应该如何提问. 1首先上网搜索以找到答案,尝试阅读常见问题文件(FAQ)以找到答案. 2提…
不知不觉又做了三次作业,容我在本文胡言乱语几句2333. 第五次作业 第五次作业是前面的电梯作业的多线程版本,难度也有了一些提升.(点击就送指导书) 类图 程序的类图结构如下: UML时序图 程序的逻辑时序图结构如下: 代码分析报告 可以看出,这次的程序依然存在部分类或方法代码较为集中的情况,这样的情况在类Lift.LiftController,甚至笔者自己的第三方库DebugLogger中较为明显.甚至在Lift和LiftController类中可以发现其实业务逻辑已经非常的密集. 公测 我方…
转眼间第三次作业了,似乎需要说点啥,那就说点. 规格&工业 说到这个,不得不提一下软件开发的发展史. 历史的进程 早在上世纪50年代,就已经有早期的编程语言出现,也开始有一些程序编写者出现(多为资深电子工程师,和半路出家的数学家). 然而那个时代,软件开发基本局限于自己或自己部门内部的使用,需求并没有很多,也并不复杂(或者说人们并没有意识到有那么多事情可以通过软件解决).所以基本都是靠早期的程序猿们的自由开发,也并没有现代代码规范的概念. 然而等到了60到70年代,随着硬件技术和工业界思想的进步…
211606320刘佳&211506332熊哲琛 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 300 180 • Estimate • 估计这个任务需要多少时间 300 180 Development 开发 120 90 • Analysis • 需求分析 (包括学习新技术) 120 70 • Design Spec • 生成设计文档 100 30 • Design Review •…
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 经过一周C语言的正式课堂学习,不同于暑期时扒视频囫囵吞枣式学习,林丽老师的讲解详细异常,尽管已经学习了一部分内容,但还是发现自己对于细小知识点和一些基本概念掌握不是非常透彻,且存在遗忘.尤其在命名方面,规范对于变量和常量的书写,摒弃直接使用字母的恶习,规范格式,明白对于题目,应该先思考数据如何表达,再关注运算符,最后考虑是顺序还是分支或是循环.逐渐越来越觉得码代码是一件充满乐趣的事! 不懂的地方:对于浮点精…
最理想的师生关系是健身教练和学员的关系,在这种师生关系中你期望获得来自老师的哪些帮助? 最理想的的师生关系是健身教练和学员的关系,其实我个人感觉不太认同,我觉得老师和学生之间更多的是一种共生关系,像植物和土壤一样,学生总是在像老师索取,但每个人即是学生也是老师.没有老师也就没有学生,反过来也是一样,而且老师也没有义务和责任来无条件的帮助学生,老师负责把学生领进专业的门内,而方向始终把握在学生的手里.而且我认为老师和学生之间没有所谓的上下级关系,是平等的,只是老师更像是一个前辈,因为出生的早,所以…
MathExam233 211614269 林凯 211601233张康凌 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 • Estimate • 估计这个任务需要多少时间 20 30 Development 开发 • Analysis • 需求分析 (包括学习新技术) 60 240 • Design Spec • 生成设计文档 20 40 • Design Review • 设计复审…
c++第一次课堂作业点这里 题目要求:输入半径,计算圆的面积,在调用外部函数,无需使用类.…
题目 团队作业10--项目复审与事后分析(Beta版本) 团队作业10成绩 --团队作业10-1 Beta事后诸葛亮  团队/分值 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色.管理.合作 总结 全组讨论的照片 团队成员在Beta阶段的角色和具体贡献 合计 1 1 1 1 1 1 1 1.5 0.5 1 10 六个核桃 1 1 1 1 1 1 1 1 0.5 1 9.5 NO.NE 1 1 1 1 1 1 1 1 0.5 1 9.5 六指神功 1 1 1 1 1 1 1…
第十三次作业——回归模型与房价预测 1. 导入boston房价数据集 2. 一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示. 3. 多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果. 4.  一元多项式回归模型,建立一个变量与房价之间的预测模型,并图形化显示. 代码: #导入boston房价数据集 from sklearn.datasets import load_boston import pandas as pd boston =…
I used to be enamored of object-oriented programming. I'm now finding myself leaning toward believing that it is a plot designed to destroy joy. Eric Allman 一.基于度量来分析程序结构 总体: 第一次作业:在两个类中处理了所有多项式的求导,一个主函数控制输入并且处理字符串,格式不正确时报错:另外一个处理多项式并且求导. 第二次作业:在第一次作…
(1)从多线程的协同和同步控制方面,分析和总结自己三次作业来的设计策略及其变化. 第五次作业 第五次作业是对多线程的初步探索,所以对于多线程的基本书写机制的认识比较多.本次作业难点在于了解多线程的运作机制,努力构建线程安全的操作方式,合理构造电梯之间.电梯与请求之间的协作关系.值得注意的是电梯.乘客在问题域中具有并发行为: (1)电梯之间“竞争”响应请求:也即电梯共用一个请求队列,电梯之间对请求的处理不得重复.也不得有遗漏,这对于线程安全的要求是很高的 (2)乘客之间“竞争”使用电梯:满足捎带策…
作业十二 规格化设计简介 规格化设计的发展历史 1950年代,第一次分离,主程序与子程序的分离结构是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过程:分析-设计-编码-测试,使大型软件系统的开发成为可能. 1975-1980年代,第二次分离,规格说明(Spec)和体(body)的分离说明是类型定义和操作描述,体是操作的具体实现.(具体的例子就是C++,Java等面向对象语言的类说明与类实现的分离.)解决方案设计只关注说明,实现时引用或者设计体…
任务1:实施团队项目软件用户调研活动. (1)用户调研对象:我们的项目软件是基于安卓系统的音乐播放器,以设计出操作简单的音乐播放器为目的,所以本次用户调研的对象主要以身边的老人为主,对他们听音乐,听戏曲的情况进行了解,看他们对于音乐播放器有何需求,有何期待:并将我们设计出的项目模型对他们进行介绍,听取他们的意见和建议.另外考虑到为了获取更加全面的需求其他年龄阶段的人为辅助调研对象(例如:身边的同学.家长.朋友等). (2)调研方式:对于老人这个用户对象我们采取了面对面采访的方式进行调研,而对于其…
基于度量的程序结构分析 由于平时使用了NetBrains出品的IDEA作为IDE,在分析程序的时候我使用了IDEA的插件Metrics Reloaded.然而在使用时发现不懂得很多分析项目的含义,因此花费了一些时间了解,并在这里总结. Complexity Metrics(复杂度分析) 这部分我们需要使用的主要是方法和类的复杂度分析. 方法的复杂度分析主要基于循环复杂度的计算.循环复杂度是一种表示程序复杂度的软件度量,由程序流程图中的"基础路径"数量得来. ev(G):即Essenta…