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的更多相关文章

  1. [BUAA OO]第三次博客作业

    OO第三次博客作业 1. 规格化设计的发展 我认为,规格化设计主要源自于软件设计的两次危机.第一次是由于大量存在的goto语句,让当时被广泛应用的面向过程式的编程语言臃肿不堪,在逻辑性上与工程规模上鱼 ...

  2. OO第三次博客作业——规格

    OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...

  3. [2017BUAA软工]第三次博客作业:案例分析

    第三次博客作业:案例分析 1. 调研和评测 1.1 BUG及设计缺陷描述 主要测试博客园在手机端上的使用情况. [BUG 01] 不能后退到上一界面(IOS) 重现步骤:打开博客首页中任意博文,点击博 ...

  4. 北航OO(2020)第三单元博客作业

    一.JML理论基础及相关工具链 1.JML理论基础 该部分梳理本单元作业中涉及到的JML知识. 1.1注释结构 JML采用javadoc注释的方式来表示规格,且每行以@开头.通过使用//@annota ...

  5. 第三周博客作业<西北师范大学|李晓婷>

    1.助教博客链接:https://www.cnblogs.com/lxt-/MyComments.html 2.学生作业打分要求:   https://www.cnblogs.com/nwnu-dai ...

  6. 规格化设计-----JSF(第三次博客作业)

    从20世纪60年代开始,就存在着许多不同的形式规格说明语言和软件开发方法.在形式规格说明领域一些最主要的发展过程列举如下: 1969-1972 C.A.R Hoare撰写了"计算机编程的公理 ...

  7. OO第三次博客作业---透过代码看设计

    不得不说的JSF 经过前几次作业的煎熬.出租车的代码量不断地增多.而出租车问题在不断的完善,这也就牵涉到一个问题,那就是最初出租车程序的设计问题,如果一开始设计的就有问题的话,那么在后来的过程中就会遇 ...

  8. C语言第三次博客作业---单层循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...

  9. C语言第三次博客作业—循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数 char sex; //sex表示性别 double High; //Hight表示身高 scanf("%d&qu ...

随机推荐

  1. [图解tensorflow源码] TF系统概述篇

    Rendezvous 1. 定义在core/framework/rendezvous.h 2. A Rendezvous is an abstraction for passing a Tensor  ...

  2. 聊聊并发——深入分析ConcurrentHashMap

    术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值. 哈希表 hash table 根据设定的哈希函数H(key ...

  3. 2019年北航OO第1单元(表达式求导)总结

    2019年北航OO第1单元(表达式求导)总结 1 基于度量的程序结构分析 量化指标及分析 以下是三次作业的量化指标统计: 关于图中指标在这里简要介绍一下: ev(G):基本复杂度,用来衡量程序非结构化 ...

  4. rails 中http请求发生access-control-allow-origin错误

    在api项目中 本地项目无法访问服务器api 百度了下,查出原因 接着找到rails项目的解决方法,安装rack-cors这个gem包 具体方法如下: Gemfile中加入 gem 'rack-cor ...

  5. lua协程实现

    协程是个很好的东西,它能做的事情与线程相似,区别在于:协程是使用者可控的,有API给使用者来暂停和继续执行,而线程由操作系统内核控制:另外,协程也更加轻量级.这样,在遇到某些可能阻塞的操作时,可以使用 ...

  6. 20155207王雪纯 Exp2 后门原理与实践

    20155207王雪纯 Exp2 后门原理与实践 实验步骤 一.windows获取Linux shell Windows:使用 ipconfig 命令查看当前机器IP地址. 进入ncat所在文件地址, ...

  7. Linux下开发python django程序(Form表单对象创建和使用)

    1.在setting.py文件中修改节点,注释掉其中一行 MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'dj ...

  8. 02-web框架

    1 while True: print('server is waiting...') conn, addr = server.accept() data = conn.recv(1024) prin ...

  9. 1、算法介绍,lowB三人组,快速排序

    1.什么是算法 2.递归 # 一直递归,递归完成再打印 def func4(x): if x > 0: func4(x - 1) print(x) func4(5) 3.时间 复杂度 (1)引入 ...

  10. AGC 018 F - Two Trees

    F - Two Trees 链接 题意: 给定两棵都是N个节点的有根树,节点均从1~N标号.给每个标号定一个权值(类似一号点的权值是x,那么两棵树中1号点的权值都是x),使在两棵树满足以任意节点为根的 ...