[软件工程导论(第六版)]第5章 总体设计(课后习题详解) 您所在的位置:网站首页 美国工程软件 [软件工程导论(第六版)]第5章 总体设计(课后习题详解)

[软件工程导论(第六版)]第5章 总体设计(课后习题详解)

2024-07-02 07:13| 来源: 网络整理| 查看: 265

文章目录 1. 为每种类型的模块耦合举一个具体例子。2. 为每种类型的模块内聚举一个具体例子。3. 用面向数据流的方法设计下列系统的软件结构。4. 美国某大学共有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变, 年工资少于$26000的教师将增加工资,所增加的工资数按下述方法计 算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此 外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26000。教师的工资档案储存在行政办公室的光盘上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资。要求:5. 下面将给出两个人玩的扑克牌游戏的一种玩法,试设计一个模拟程序,它的基本功能是:

1. 为每种类型的模块耦合举一个具体例子。

答: (1)非直接耦合:例如在实数的运算中,有两个模块分别完成n个实数的求和、求乘积功能,这两个模块之间没有直接联系,只是在主模块调用中有执行的前后顺序而已。 (2)数据耦合:如有两个模块,其中,模块A完成两个数的比较,返回其中的较大值;模块B完成四个数的比较,返回其中的最大值。因此, 为了完成四个数的比较,B模块调用A模块即可,在这种调用关系中, 将模块B的四个参数两两传给模块A,模块A的运算结果作为参数参加B 的运算。这两个模块之间发生数据耦合。 (3)标记耦合:若一组模块通过参数传递记录信息,这就是标记耦合。 (4)控制耦合:遥控器与电器。 (5)外部耦合:C语言中都访问被说明为extern类型的外部变量的各个模块之间发生外部耦合。 (6)公共耦合:几个模块对同一个数据库进行查询就发生公共耦合。 (7)内容耦合:两个模块之间有一部分代码重复(只可能发生在汇编程序中)或一个模块访问另一个模块的内部数据时,模块之间发生内容耦合。

2. 为每种类型的模块内聚举一个具体例子。

答: (1)逻辑内聚 一个子程序将打印季度开支报告、月份开支报告和日开支报告。具体打印哪一个,将由传入的控制标志决定,这个子程序具有逻辑内聚性,因为它的内部逻辑是由输入进去的外部控制标志决定的。 (2)时间内聚 若一个模块包含了需要在同一时间段中执行的多个任务,则称该模块的内聚为时间内聚。例如,将多个变量的初始化放在同一个模块中实现, 或将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内聚的模块。 (3)过程内聚 一个子程序,它产生读取雇员的名字,然后是地址,最后是它的电话号码。这种顺序之所以重要,仅仅是因为它符合用户的要求,用户希望按这种顺序进行屏幕输入。另外一个子程序将读取关于雇员的其他信息。这个子程序是过程内聚性,因为是由一个特定顺序而不是其他任何原 因,把这些操作组合在一起的。 (4)顺序内聚 一个按给出的生日计算雇员年龄、退休时间的子程序,如果它是利用所计算的年龄来确定雇员将要退休的时间,那么它就具有顺序内聚性。而如果它是分别计算年龄和退休时间的,但使用相同生日数据,那它就只具有通信内聚性。 (5)功能内聚 计算雇员年龄并给出生日的子程序就是功能内聚性的,因为它只完成一项工作,而且完成得很好。 (6)偶然内聚 一个函数内调用读取文件函数实现对文件的读取,同时实现打印当前时间的功能,这两个功能之间除了前后执行之外没有什么联系,这就属于偶然内聚。 (7)通信内聚 模块A实现将传入的Date类型数据转换成String类型,以及将Date类型数据插入数据库,这两个操作都是对“Date类型数据”而言的。模块A中就是通信内聚。

3. 用面向数据流的方法设计下列系统的软件结构。

(1)储蓄系统(参见习题2第2题)。 (2)机票预订系统(参见习题2第3题)。 (3)患者监护系统(参见习题2第4题)。 答: (1)储蓄系统 ① 数据流图 在这里插入图片描述 在这里插入图片描述

② 软件结构图 在这里插入图片描述

(2)机票预定系统 ① 数据流图 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

② 软件结构图 在这里插入图片描述

(3)患者监护系统 ① 数据流图 在这里插入图片描述

② 软件结构图 在这里插入图片描述

4. 美国某大学共有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变, 年工资少于$26000的教师将增加工资,所增加的工资数按下述方法计 算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此 外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26000。教师的工资档案储存在行政办公室的光盘上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资。要求:

(1)画出此系统的数据流图。 (2)写出需求说明。 (3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时分别采用下述两种算法,并比较这两种算法的优缺点: (a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,储存新工资,印出新旧工资对照表; (b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过 $26000时即停止排序,计算新工资,校核是否超过限额,储存新工资, 印出结果。 (4)所画出的数据流图适用于哪种算法?

答: (1)数据流程图 在这里插入图片描述

(2)需求说明 ① 任务概述 对于年工资未超过$26000的教师涨工资,即每赡养一人补助$100,每有一年工龄补助$50,涨工资的上限为$26000。 ② 数据描述 采用工资表、VF。 ③ 功能需求 a.档案管理 包括获得教师当前工资、获取赡养人数、获取工龄、更新教师信息。 b.数据计算 包括计算工资、根据限额确定工资。 c.查询管理 包括排序、查询。 d.打印报表 打印工资对照单。 (3)HIPO图 在这里插入图片描述

(4)所画的流程图适合(a)种算法。

5. 下面将给出两个人玩的扑克牌游戏的一种玩法,试设计一个模拟程序,它的基本功能是:

(1)发两手牌(利用随机数产生器)。 (2)确定赢者和赢牌的类型。 (3)模拟N次游戏,计算每种类型牌赢或平局的概率。要求用HIPO图描绘设计结果并且画出高层控制流程图。扑克牌游戏规则如下: (1)有两个人玩,分别称为A和B。 (2)一副扑克牌有52张牌,4种花色(方块、梅花、红桃和黑桃),每种花色的牌的点数按升序排列有2,3,4,…,10,J,Q,K,A等13 种。 (3)给每个人发3张牌,牌面向上(即,亮牌),赢者立即可以确定。 (4)最高等级的一手牌称为同花,即3张牌均为同一种花色,最大的同花牌是同一种花色的Q、K、A。 (5)第二等级的牌称为顺子,即点数连续的3张牌,最大的顺子是花色不同的Q、K、A。 (6)第三等级的牌是同点,即点数相同的3张牌,最大的同点是A、A、 A。 (7)第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是 A、A、K。 (8)第五等级的牌是杂牌,即除去上列4等之外的任何一手牌,最大的杂牌是不同花色的A、K、J。 (9)若两人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。

答: (1)程序的HIPO图 在这里插入图片描述

(2)高层控制流程图 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有