软件工程 张秋余等著 第十一章课后习题部分答案

第十一章 设计和模式

1、什么是设计?(10.0分)
正确答案
面向对象(OO)的设计(即OOD)是对系统对象的详细描述,这些对象通过相互协作(静态结构、动态行为)来满足系统需求。设计所描述的仍然是解决方案,只不过在更细的层面上,描述了实例变量、方法参数、返回类型以及各种技术的细节。

2、简述设计在软件生命周期中的作用。(10.0分)
正确答案:
设计工作集中在细化阶段的末期到构造阶段的初期,将产生合理且稳定的构架,并创建实现模型的蓝图。
设计模型非常接近实际的系统,在整个软件生命周期里很自然地要保持并维护好设计模型,尤其在双向工程中,设计模型可以用来可视化地刻画系统实现并支持图形化编程技术。

3、什么是设计模式?有什么好处?(10.0分)
正确答案:
设计模式是对软件设计中普遍出现的一类问题的解决方案,这种解决方案定义明确、文档充分,经历时间考验。
设计模式在两个方面帮助开发人员设计出更好的软件。
1)设计模式为协作和文档提供了公用语言
2)设计模式深化了面向对象的理论

4、如何规划设计工作?10.0分)
正确答案:
下面的步骤就是设计过程。
1)建立整个设计目标
2)建立设计准则
3)找出独立的设计任务

5、如何设计包或子系统?
正确答案:
每个设计方面的工作都必须遵守下面的步骤:
1)确立工作目标和优先级。虽然整个系统的设计目标已经确定,但不是每个设计工作都会影响到目标。每项设计工作都必须确定要达到的目标和优先级,以及它无法实现的任务。从涉及到的技术和包或子系统的目标来看,问题就比较清晰。例如,TimeCardDomain包和TimeCardWorkflow包的设计工作无疑对性能有极大的作用,因为它们控制着持久存储和数据流;而HTMLProduction框架以及TimeCardUI包的设计工作对系统的可扩展性有极大的影响,因为用户界面在需求变更面前是非常脆弱的,极易受到需求变更的影响。
2)对前一步工作进行评审。前面的步骤产生了分析模型,选择了技术,而且建立了考勤系统的结构约束。每部分的设计工作都必须经过评审,然后以此为基础,遵循各种约束进行设计。分析模型从开发人员的角度对问题进行了描述,是设计包和子系统时最好的资源。在许多情况下,类或包的职责能够直接从分析类的职责演化出来。
3)针对目标进行设计。在某些情况下,高层设计方案几乎完全由所采用的技术决定,例如,采用EJB进行开发将决定设计方案中很大的一部分。要想实现每个用例的目标,必须做出一系列决定,实际上在各种限制条件下,开发人员无需也没有机会做出大量决定,在某些情况下,完全由开发人员来设计包或子系统,以最终实现系统目标。对这种需要高度创造性和反复迭代的设计工作,设计模式绝对是一个非常有价值的技术。
4)将设计应用于用例。将高层设计应用到用例上,不但能够验证设计方案,而且会改进设计。在这个过程中,逐步将前一步建立起来的高层设计方案应用到各个用例上,直到充实整个设计方案的细节,而且满足所有可应用的用例,或证明是失败的。

6、设计目标对设计起什么作用?如何达成这些目标?(10.0分)
正确答案:
在开始设计之前,必须要给出对应于前面定义的目标的具体例子以及非常明确的标准,清晰的、可量化的目标能够驱动设计并提供一个有价值的度量标准。定义得模模糊糊的目标不仅不能为设计提供一个正确的方向,还会挫败开发人员的积极性。
一旦定义好了具体的目标,下一步就是要进行高层设计。要想同时满足所有的目标通常很难做到,因此,可以分步设计,一次只瞄准一个目标,然后定期检查以确保没有出现偏差。

7、根据下面的描述,找出所有的对象(为名词的都是),手工画出该描述的设计类类图(必须标注类间关系和重数。属性和方法可以省略)某公司销售多种物品,物品具有特征、类别等详细信息;物品存放到及格仓库中;客户可以同时下订单购买一种或多种物品。(20.0分)
在这里插入图片描述

8、下面是一个客户在ATM机上取款的处理过程:
1)客户选择取款功能选项;
2)系统提示插入IC卡;
3)客户插入IC卡后,系统提示用户输入密码;
4)客户输入自己的密码;
5)系统检查客户密码是否正确;
6)如果密码正确,则系统显示客户账户上的剩余金额,并提示客户输入想要提取的金额;
7)用户输入提取金额后,系统检查输入金额数据的合法性;
8)在获取客户输入的正确金额后,系统开始一个事务处理,减少账户上的余额,并输出相应的金额。
从该处理过程中分析找出所涉及的所有对象,并手工用顺序图描述这个处理过程。(20.0分)

在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值