OO第三次阶段总结
(1)调研,规格化设计的大致发展和为什么得到人类重视
结构化程序设计(英语:Structured programming),一种编程范型。它采用子程序(函数就是一种子程序)、代码区块、for循环以及while循环等结构,来替换传统的goto。希望借此来改善计算机程序的明晰性、质量以及开发时间,并且避免写出面条式代码。Edsger Dijkstra 于 1968 发表了著名的《GOTO 有害论》的论文,引起了长达数年的论战,并由此产生了结构化程序设计方 法。同时,第一个结构化的程序语言 Pascal 也在此时诞生,并迅速流行起来。
在我看来,程序规格化设计是为之后更大规模程序的设计打基础,随着以后需求的增加,要进一步提高程序的抽象化程度,规格化设计能让人清晰的辨别各个方法的功能,以较简便的方式解决客户需求,降低程序的复杂度。
(2)分析自己的规格bug
第九次作业:无效
第十次作业:

第十一次作业:无
(3)分析自己规格bug产生的原因
对指导书的研读不够,存在偏差。对jsf的理解不够深刻。在之前的编程中,不够清晰的层次设计,导致后来jsf的表达十分困难,所以要想不被报bug需要更多研读课上所讲的jsf。
(4)分别列举5个前置条件和5个后置条件的不好写法,并给出改进写法
前置条件的不好的写法有,随意使用null,none等,使用自然语言时有可能一时疏忽导致产生二义性。
五个不好的后置条件写法:
1.简单函数的的功能,即便很短也要写。
this.state ==> this.state = i
2.自然语言 ==> 改成用数据变现的对应关系
3.写方法内涵的算法 ==> 只关注最后需要获得的数据的限制
4.对于多线程需要加入多线程的后置条件
更改前
/**
@ EFFECTS:randomly driving refer to flowmap
@ */
更改后
/**
@ EFFECTS:randomly driving refer to flowmap
@ THREAD_EFFECTS:\locked(guigv.flowmap) ;\locked(guigv.m.graph)
@ */ (5)按照作业分析被报的功能bug与规格bug在方法上的聚集关系
无 (6)归纳自己在设计规格和撰写规格的基本思路和体会
方法的编程应在规格的撰写后,而不是写完方法在回来改写规格,这样可以很好的限制方法的长度也降低了方法的复杂度。规格不仅是写给自己看,更是为后团队工作时便于交流,而且要以指导书为准,不然会被挂很多bug。
OO第三次阶段总结的更多相关文章
- OO前三次作业思考(第一次OO——Blog)
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...
- OO第三次课程总结分析
OO第三次课程总结分析 规格化设计发展历史 在网上找了好久也没找到合适的信息,稍稍参考了同学的博客.大致如下:最初的的软件并没有形式化方法,随着软件工程的兴起,为了便于工程间的协调管理,人们提出采用工 ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- [BUAA OO]第三次博客作业
OO第三次博客作业 1. 规格化设计的发展 我认为,规格化设计主要源自于软件设计的两次危机.第一次是由于大量存在的goto语句,让当时被广泛应用的面向过程式的编程语言臃肿不堪,在逻辑性上与工程规模上鱼 ...
- OO第三次博客作业——规格
OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...
- OO第三单元作业总结
OO第三单元作业总结--JML 第三单元的主题是JML规格的学习,其中的三次作业也是围绕JML规格的实现所展开的(虽然感觉作业中最难的还是如何正确适用数据结构以及如何正确地对于时间复杂度进行优化). ...
- 规格化设计——OO第三单元总结
规格化设计--OO第三单元总结 一.JML语言理论基础.应用工具链 1.1 JML语言 JML(java modeling language)是一种描述代码行为的语言,包括前置条件.副作用等等.J ...
- 【OO学习】OO第三单元作业总结
[OO学习]OO第三单元作业总结 第三单元,我们学习了JML语言,用来进行形式化设计.本单元包括三次作业,通过给定的JML来实行了一个对路径的管理系统,最后完成了一个地铁系统,来管理不同的线路,求得关 ...
- OO第三单元(地铁,JML)单元总结
OO第三单元(地铁,JML)单元总结 这是我们OO课程的第二个单元,这个单元的主要目的是让我们熟悉并了解JML来是我们具有规格化编程架构的思想.这个单元的主题一开始并不明了,从第一次作业的路径到第二次 ...
随机推荐
- 修改Ubuntu从文本界面登录
1, 编辑grup文件 #sudo vim /etc/default/grup //找到这行 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" / ...
- IOPS、带宽(band width)、吞吐量 (throughput)
SAN和NAS存储一般都具备2个评价指标:IOPS和带宽(throughput),两个指标互相独立又相互关联.体现存储系统性能的最主要指标是IOPS. IOPS (Input/Output Per ...
- C++成员函数指针的应用
C++中,成员指针是最为复杂的语法结构.但在事件驱动和多线程应用中被广泛用于调用回叫函数.在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数.在这样的应用中,如果不用成员指针,编程是非常困 ...
- 解决IOS9 下在App中无法打开其他应用的问题
打开 info.plist 文件 ,在根节点下添加下面代码即可,这是由于IOS9新的权限管理机制的问题 <key>LSApplicationQueriesSchemes</key&g ...
- Linux磁盘与文件系统管理(一)
fdisk 常用的磁盘分区工具,受mbr分区表的限制,只能给小于2TB的磁盘划分分区,如果使用fdisk对大于2TB的磁盘进行分区,虽然可以分区,但只能识别2T的空间,一般使用parted分区工具 - ...
- 【10.14】Bug Bounty Write-up总结
我很喜欢今天的看到的write-up,因为作者是针对他对一个网站整体进行漏洞挖掘的过程写的,内容包括几个不同的漏洞,从中能够学习到怎样系统性的挖掘漏洞. write-up地址:[Bug bounty ...
- 浏览器与go语言的websocket通信
简介WebSocket是HTML5一种新的协议.顾名思义,它在服务器和浏览器之间建立了全双工通信. 需求背景区块链测试系统web前端平台需要动态接收后端发送的状态信息改变一次测试session过程的状 ...
- 在Visual Studio 2012中使用ASP.NET MVC5
去年11月,.NET团队发布了用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 您可以从下面提供的链接下载该更新: 下载用于 Visual Studio ...
- UWP 播放直播流 3MU8
UWP 播放直播流 3MU8 参考:http://www.c-sharpcorner.com/UploadFile/2b876a/http-live-streaming-in-windows-10-u ...
- 20155211课下测试ch10补交
20155211课下测试ch10补交 1.假设下面代码中的foobar.txt中有6个ASCII字母,程序的输出是() A.c = f B.c = o C.c = b D.c = 随机数 答案:A 解 ...