第三次博客作业JSF
JSF规格化设计发展史以及为什么得到人们重视
查阅了n多资料但是仍然没找到。

就说一些jsf的优势吧。
优势: (1)UI组件
(2)事件驱动模式
(3)用户界面到业务逻辑的直接映射
(4)程序员和网页设计的人员分工
(5)请求处理生命周期的多阶段划分
(6)伴随工具而生存
(7)全面的用户自定义支持
(8)Web开发的官方标准之一
参考链接:JSF的优势及未来发展趋势
被报告的规格bug
| JSF bug | 原因 |
| REQUIRES:1 |
没有判断参数条件 |
| MODIFIES:0 |
无 |
| EFFECTS:3 |
没有使用布尔表达式 不完整 判断“==”写成“=” |
第十次作业中无论方法代码长短(即代码行数无参考价值),都出现了这些bug,长代码仍然难以改正
第十一次作业修正了除了run方法以外的其余短方法,但是任然漏了==号
规格bug产生原因
短方法开始并没有重视,长方法由于代码上百行(例如整个taxi的状态转移算法都实现在了run里面),jsf无从下手,只好写个描述了出租车运行状态转移变化。
jsf参考文档并未理解精髓,总想着使用自然语言水过去,但是测试者不放过。
列举前置后置条件不好的写法
(1)自然语言,虽然开始算对但是用自然语言确实不太好(但是分高啊)
(2)对于多种可以合并的判断条件没有合并,条件过长
(3)表示模糊,泛泛带过
(4)格式不一致
(5)对于带锁多线程额外规格未处理
修改方案:一定要使用布尔表达式,不要再笼统盖过,方法写短,判断条件可合并简化则简化。清楚自己实现的到底是什么功能,仔细写规格。对于带锁多线程加上新规格。
分析
| 方法 | 功能bug | 规格bug |
| main | 3 | 1 |
| scanftxt | 4 | 1 |
| 一些短方法 | 0 | 2 |
个人认为规格bug和功能bug并没有直接的联系,长方法实现功能多,规格就一个,短方法往往功能不出错反而被扣规格。
体会
能认真改的地方就改一改,虽然改了也可能会被扣,但不改更可能。
多次继承的作业一定要仔细修订先前错误,否则越后期越难改。
希望能把代码写的越来越优秀,不被测试者喷格式垃圾(又没办法反驳毕竟他说的没啥不对)。
第三次博客作业JSF的更多相关文章
- [BUAA OO]第三次博客作业
OO第三次博客作业 1. 规格化设计的发展 我认为,规格化设计主要源自于软件设计的两次危机.第一次是由于大量存在的goto语句,让当时被广泛应用的面向过程式的编程语言臃肿不堪,在逻辑性上与工程规模上鱼 ...
- OO第三次博客作业——规格
OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...
- [2017BUAA软工]第三次博客作业:案例分析
第三次博客作业:案例分析 1. 调研和评测 1.1 BUG及设计缺陷描述 主要测试博客园在手机端上的使用情况. [BUG 01] 不能后退到上一界面(IOS) 重现步骤:打开博客首页中任意博文,点击博 ...
- 北航OO(2020)第三单元博客作业
一.JML理论基础及相关工具链 1.JML理论基础 该部分梳理本单元作业中涉及到的JML知识. 1.1注释结构 JML采用javadoc注释的方式来表示规格,且每行以@开头.通过使用//@annota ...
- 第三周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://www.cnblogs.com/lxt-/MyComments.html 2.学生作业打分要求: https://www.cnblogs.com/nwnu-dai ...
- 规格化设计-----JSF(第三次博客作业)
从20世纪60年代开始,就存在着许多不同的形式规格说明语言和软件开发方法.在形式规格说明领域一些最主要的发展过程列举如下: 1969-1972 C.A.R Hoare撰写了"计算机编程的公理 ...
- OO第三次博客作业---透过代码看设计
不得不说的JSF 经过前几次作业的煎熬.出租车的代码量不断地增多.而出租车问题在不断的完善,这也就牵涉到一个问题,那就是最初出租车程序的设计问题,如果一开始设计的就有问题的话,那么在后来的过程中就会遇 ...
- C语言第三次博客作业---单层循环结构
一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...
- C语言第三次博客作业—循环结构
一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数 char sex; //sex表示性别 double High; //Hight表示身高 scanf("%d&qu ...
随机推荐
- jlink RTT 打印 BUG , FreeRTOS 在开启 tickless 模式下 无法使用的问题
一开始我以为是 jlink 的问题,后面发现是 tickless 模式搞鬼 tickless 模式下 ,内核 会 根据任务需求,会停止工作,这个时候 jlink rtt 打印就会失效!!! 不过 NR ...
- 图片在线处理 webp!
之前处理图片的方式是,小图标通过gulp配置的spritesmith雪碧图方式,.png会先用ps工具转成.jpg,然后jpg太大则用在线压缩工具来进行压缩(另外gulp系列的gulp-imagemi ...
- 深入理解PHP 数组之count 函数
count()PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数.语法:int count( mixed var [, int mode] ) ...
- 在centos6.5下用nginx无法连接zabbix与mysql的解决办法
一般情况下默认的webserver是apache.zabbix也不例外,官方文档全都是推荐用apache. 如果执意用nginx来做webserver的话,php引导需要再安装一个php-fpm.而且 ...
- [转]Kafka 设计与原理详解
一.Kafka简介 本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料. 1 2 1 2 转载请注明出处 : 本文链接 1.1 背景历史 当今社会各种应用系统诸如商 ...
- codevs 2639 约会计划
codevs 2639 约会计划 题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的 ...
- Python day2 ---python基础2
本节内容 列表. 元组操作 购物车程序 字符串操作 字典操作 3级菜单 作业(购物车优化) 1. 列表操作 1.定义列表names = ['Alex',"Tenglan",'Eri ...
- while、for循环控制之if、else
if # score=99 # if score>90: # print('优秀') # elif score<60: # print('不及格') # else: # print('良好 ...
- iframe的简单使用方法
1.父页面调用子页面的元素(a代表iframe的id或者class,b代表子页面) $('a').contents().find("b") 2.子页面调用父页面的元素(c代表父页面 ...
- [C++]linux下实现ls()函数遍历目录
转载请注明原创:http://www.cnblogs.com/StartoverX/p/4600794.html 需求:在linux下遍历目录,输出目录中各文件名. 在linux下遍历目录的相关函数有 ...