《《高级软件工程》复习测验+答案 (1)》由会员分享,可在线阅读,更多相关《《高级软件工程》复习测验+答案 (1)(11页珍藏版)》请在金锄头文库上搜索。
1、复习测验 2以下的问题会引用到一个假定的“加油站控制系统”(GSCS),它旨在帮助管理美国式的加油或服务站。我们的加油站将提供两种基本的服务: 考试时改成贷款系统、图书馆管理系统包含一个出售汽车配件的小商店,它至少有一台收银机,并由加油站的职员来操作。包含多个加油泵,客户可以在这里停车,用信用卡支付然后加油。客户也可以选择到配件商店的收银机交费或刷卡。因此,GSCS 系统主要有两类使用者:一类是收银员,他们使用GSCS来记录汽车配件的销售情况。收银员可以在GSCS中通过输入配件的类型和数量来计算总售价并完成交易。另一类使用者是购买汽油的用户。他们在加油泵和GSCS交互:指明要加的汽油类型和数量
2、,在加油泵或者收银机结帐,然后自己加油。这个系统也需要和其他自动系统交互来实现它的功能。例如,GSCS需要和信用卡公司的系统交互来处理刷卡支付的事务。信用卡系统负责检查客户的帐户是否正常,能否支付相应的费用,并负责转帐到加油站。虽然GSCS需要知道这些外部系统如何通知他们操作的成功与否,但这些的操作具体细节不在GSCS的考虑范围之内。开发小组决定首先创建GSCS的需求说明文档。1以下哪些描述了开发小组最希望从需求分析中得到的:a. 需求分析可以帮助开发者了解系统内部诸功能的相互关系。b. 需求分析可以帮助开发者在初期确定编程相关的问题,例如决定使用何种算法。c. 需求分析可以防止开发者遗漏必要
3、的功能d. a 和 be. a 和 cf. b 和 cg. a, b, 和 c2. 下列哪些描述了加油站老板最希望得到的好处:a. 需求分析可以帮助加油站老板更清楚的考虑GSCS应该包含的功能。b. 需求分析可以帮助加油站老板和开发团队在讨论该系统时更好的交流。c. 需求分析可以给加油站老板一个明确的关于最终系统功能的声明。d. a 和 be. a 和 cf. b 和 cg. a, b, 和 c3. 开发小组需要选择一种需求分析的表示方法,一下哪个是合理的选择和选择的理由?a. 数据流图,因为系统的主要功能都涉及到硬件(收银机,油泵,信用卡读卡器)间的数据交互。b. 事件表,因为系统需要处理大
4、量并发事件(例如,多个用户使用多个油泵)。c. Z,因为它很容易被加油站老板理解,因此能加强沟通。d. 面向对象的规范,因为这样可以保证系统对每种情况的响应都被确定。标注下列项目,如果它属于GSCS的需求分析,请标“是”,反之标“否”。4. 开发小组需要完成多少文档。5. 收银员需要接受多少培训才能高效的使用这个系统。6. 关于必须保证新客户可以根据油泵上的简单指示来使用这个系统进行付款的限制。7. 系统的最大成本。8. 系统与收银机和油泵交互所必须的硬件限制。9. 从收银机和油泵接受的数据的格式。10. 系统维护应该如何进行。11. 下列哪些摘录可以被看作合理的需求?a. “当付款过程完成时
5、,系统应以一下方式回应:如果用户直接付款给收银员,或者在油泵刷卡但不需要收据,则返回初始状态。否则,打印收据。”b. “每个收银员都需要保留一份记录,包括姓名,员工号。这组记录应该使用一个链表来保存。”c. “用户选定了一种付款方式后,系统将检查输入是否正确(例如,是否是1到3之间的数字)”d. 只有 a 和 be. 只有 a 和 cf. 只有 b 和 cg. a, b, 和 c12. 下列哪些是合理的非功能性需求的例子:a. “用户选定一种付款方式后的三秒钟内必须刷新显示。”b. “某个配件售出后,应该更新相应的库存信息。如果库存量低于某个预设值,则应发出警告。”c. “用户在加好油之后应该
6、把油管放回原处。”d. 只有 a 和 be. 只有 a 和 cf. 只有 b 和 cg. a, b, 和 c为了确保需求分析有效的描述了将要开发的系统,需要对它进行一个评价。请在第13至17题中评价给出的需求分析的节录,并确定它是否是足够有效的需求分析。如果它需要修改,标出相应的理由。13.“付款结束后,相关信息应该被加入到日志文件中。”a. 这个需求分析需要重写;它不正确。b. 这个需求分析需要重写;它模棱两可,不一致。c. 这个需求分析需要重写;它不现实。d. 这个需求分析需要重写;它无法被验证。e. 这个需求分析是合理的。14. “系统应该被设计成可以方便的在日后添加新功能。”a. 这个
7、需求分析需要重写;它不正确。b. 这个需求分析需要重写;它模棱两可,不一致。c. 这个需求分析需要重写;它不现实。d. 这个需求分析需要重写;它无法被验证。e. 这个需求分析是合理的。15. “用户购买汽油的售价跟据如下计算:该类汽油每加仑的售价购买的加仑数(加仑数精确到小数点后两位)”a. 这个需求分析需要重写;它不正确。b. 这个需求分析需要重写;它模棱两可,不一致。c. 这个需求分析需要重写;它不现实。d. 这个需求分析需要重写;它无法被验证。e. 这个需求分析是合理的。16.“系统应该便于新用户使用。”a. 这个需求分析需要重写;它不正确。b. 这个需求分析需要重写;它模棱两可,不一致
8、。c. 这个需求分析需要重写;它不现实。d. 这个需求分析需要重写;它无法被验证。e. 这个需求分析是合理的。17.“系统需要每天24小时,每周7 天都提供服务。”a. 这个需求分析需要重写;它不正确。b. 这个需求分析需要重写;它模棱两可,不一致。c. 这个需求分析需要重写;它不现实。d. 这个需求分析需要重写;它无法被验证。e. 这个需求分析是合理的。需求分析评审结束后,经过23处修改,得到了新版本的需求分析。新版本再次被评审并提出了9 处修改建议。在这些修改完成之后,最新的版本被提交给客户,客户提出了5处修改意见。18. 根据上面的叙述,我们可以总结出:a. 需求分析需要继续被修改,因为
9、仍然发现了一些问题。b. 开发小组应该开始根据这个需求分析进行设计,因为每次修改的数目都在减小,需求分析变得越来越稳定。c. 在了解修改的具体类型之前,没法确定需求分析是否应该被再次评审。The development team decides that the next step is to create a conceptual and then a technical design.开发小组决定下一步开始进行概念设计和技术设计。19. 概念设计之所以被认为有价值,是因为它使得加油站老板可以检查:a. 系统的哪个部分负责记录库存的配件数量,以及它如何与系统的其他部分交互。b. 如何向系统输
10、入当前每加仑汽油的售价。c. 用户将会看到怎样的屏幕显示,以及用户可用的选择。d. a 和 be. a 和 cf. b 和 cg. a, b, 和 c20. 下列哪些是创建一个单独的技术设计的原因:a. 概念设计只有助于跟加油站老板沟通,但对系统的实现并没有什么帮助。b. 技术设计应该包括根多关于油泵的信息和它们跟软件的接口。c. 技术设计应该包括更多可能使用的数据结构的细节。d. a 和 be. a 和 cf. b 和 cg. a, b, 和 c21.团队必须确定一种通用的方法来建立设计。下面哪些不是有效的选择和基本原理?a.模块分解,因为系统可以被分解成相互独立的不同类型的功能块(例如,收
11、银员的操作和加油泵的操作)。b.外部输入设计,因为用户的输入集合相当容易理解。c.面向对象设计,因为重点在通过系统的数据流上(例如,中央系统如何跟踪在各个加油泵上发生的购买行为)。d. a和 be. a和 cf. b和 cg. a,b,和c22.团队的领导认为,合乎逻辑的下一步工作是为该系统确定一个构架方式,下面哪些不是有效的选择和基本原理?a.面向对象,因为问题可以被分解成为几个不同的实体,每一个都负责它自己的数据访问和处理例程。b.管道和过滤器,因为大部分需要的功能都以预先安排好的方式包括了子系统之间”piping”数据。c.隐式的调用,因为该系统是事件驱动的,并且依赖于子模块的可靠性。d
12、. a和 be. a和 cf. b和 cg. a,b和c23.回答 TRUE(对)或 FALSE(错):已经确定了一个构架以后,团队领导认为构架在整个项目的生命周期中应该被冻结。也就是说,一旦代码设计开始之后,构架就不允许被改变以便不产生冲突。这是一个合理的策略。团队决定使用面向对象的方法来建立设计。上图显示了在高层设计(概念设计)中建立的加油站系统的第一个用例图表的草案,使用它回答问题24到26。24每一个椭圆表示该系统的一个特殊的高层功能,并且a.它们之间的连线代表它们典型的执行顺序。b.每个椭圆都应该另建一个视图,用来说明系统支持该功能的细节。c.每个椭圆都应该有一个指定的开始条件。d.
13、只有a和be.只有b和cf.a,b和 c25 ”Parking”和”Billing Services”之间连线上的三角符号表示:a.”Parking”描述的功能发生在”Billing Services”描述的功能之前。b.实体”Customer” 和”Credit Card System”为”billing services”提供输入,但是不在”Parking”时干预系统。c.”Parking”的功能是”billing service”的一个特定类型。d.只有a和be.只有b和cf.a,b和 c26.为了检查用例中的问题,团队应该:a.审查用户对”Credit Card System”的描述,
14、看是否它可以以一种合适的方式加入到”billing services”描述的功能中去。b.确保每一个用例需要的开始条件容易理解。c.将 ”Cashier”和”Customer”合并到一个实体中,因为它们是关于同一组用例的。d.只有a和be.只有b和cf.a,b和 c上图显示了在加油站系统的高层(概念)设计中建立的第一个类图的草案。使用它回答问题27到29。类图 考几个简单的画类图27.类”Message”和”Registered customer”的关系是:a.一个registered customer可以没有相关的message 。b.多个message可以关联一个registered cu
15、stomer。c.一个message可能存在,但是并未关联到任何registered customer 。d.只有a和be.只有b和cf.a,b和 c28.对于这个类图的描述来说,下面哪些关于GSCS的说法是正确的?a.任何”Service”的子类必须关联至少一个”Purchase”的实例。b.一个”Bill” 包含恰好一个”Purchase”c.一个”Inventory”的实例只能包含一个”Part”。d.只有a和be.只有b和cf.a,b和 c29.当第一个类图的草案完成之后,团队进行了一个内部的评审。下面哪些是合理的评价和基本原理?a.类 ”Parking”和”Car maintenan
16、ce”应该合并到一个类中去,因为他们有相同的属性,并且继承自同一个超类。b.类 ”Hash table”为模型引入了太多的细节,由于那是一个实现细节,所以不应该在概念设计中确定。c.方法”Price”不需要在类”Refuel”中被定义,因为一个同名、同接口的方法可以被继承自超类”Services” 。d. a和 be. b和 cf. a,b和c。下图不考。考状态图上图显示了加油站系统的序列图的第一个草案。使用它来回答问题30和31 。30下面哪些描述是对序列图的一个合理的解释?a. 一个类型为”Gas Station”的对象试图发送一个”IsClientRegistered”方法到一个”Bill”对象中,但是没有成功。b.只有当”information is Ok”的时候,方法”update_bill”才会被发出。c.当一个”Gas Station”类发出”update_bill”方法时,一个类型为”Bill” 的对象被建立。d.a和be.b和cf.a,b和 cnts