25-26-2-软件工程-期末

填空题

  1. 软件概要设计的主要目的是确认【暂无答案】并对其【暂无答案】
  2. 衡量程序质量的重要标准是【暂无答案】
  3. 控制器【暂无答案】系统事件和用例之间的关系。

简答题

1.

在软件框架基础确认以后,软件开发应该进行的工作是?

2.

软件开发的基本思想?

答案 / 解析

(答案是自顶向下逐步细化那一块“软件设计基础部分的内容”)

3.

你如何理解:“充分注意测试中的集群现象:经验表明,测试后程序中残存的错误数 目与该程序中已发现的错误数目成正比”?

应用题

1.

程序代码如下:

def calc_discount(member_level,order_total,is_birthday);
    if member_level==1:
        if is_birthday:
            return order_total*0.7
        elif order_total>=200:
            return order_total*0.9
        return order_total
    elif member_level==2:
        return order_total*0.8
    elif order_total>=200:
        return order_total*0.9
    return order_total
  1. 画出程序控制流程图
  2. 基本路径法计算环路复杂度
  3. 给出基本路径集

2.

平面坐标系中存在两个点,分别为a(x1,y1)a(x1,y1)b(x2,y2)b(x2,y2),对其限定如下:

  • aa位于第一象限
  • bb位于xx
  • abab间距离大于3且不超过9

问题:假定测试程序能接受一切符合上述规定的坐标输入,请根据 aabb 两点的规格说明,分别划分等价类。(10 分)

答案 / 解析
输入条件有效等价类无效等价类
a点坐标x1>0,y1>0x1>0,y1>0 (1)x10,y10x1\le0,y1\ge0 (2),
x10,y10x1\le0,y1\le0 (3),
x10,y10x1\ge0,y1\le0(4)
b点坐标y2=0y2=0 (5)y20y2\neq0 (6)
ab间距离3<(x2x1)2+(y2y1)293<\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\le9
(7)
(x2x1)2+(y2y1)23\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\le3
(8)
(x2x1)2+(y2y1)2>9\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}>9
(9)

评分要点

  1. 输入条件1分,有效等价类3分(每个1分),无效等价类6分(每个1分)
  2. 输入条件除上述基本内容外,可有自己定义的条件
  3. 有效等价类中内容缺少一个扣1分,无效等价类中缺少一个扣1分
  4. 有效和无效等价类中如果缺少标号扣1分
  5. 有效和无效等价类中没有以坐标作为输入条件描述的,一律先扣一半的分,再考虑条件描述是否正确。如对于输入条件“a点坐标”,有效等价类描述为“点a位于第一象限”,无效等价类描述为“点a位于第二、三、四象限”,首先扣掉一半的分(每个0.5),再考虑描述是否正确。

综合题

某电商供应在线主流业务系统流程:(电商平台不参与类图和其他小题)

用户创建订单(order)

用户选择商品加入订单(Product)

用户查找并显示优惠卷(coupon)

用户选择并使用优惠卷

用户完成订单支付(Payment)

  1. UML类图

  2. SSD图,要求重点体现出createOrder(), addProduct(product, quantity),updateOrder(), showcoupon(), pickcoupon(couponid), pay()。

  3. 创建订单的操作契约,至少包括,操作,交叉引用及后置条件。

  4. 画一个OOD顺序图交互顺序图,体现控制层的两种聚合/委派模式,对应的GRASP 知识点。