软件工程 科学出版社 郑逢斌主编 第10章 面向对象的设计 课后习题答案

软件工程 科学出版社 郑逢斌主编 第10章 面向对象的设计 课后习题答案

1.简述面向对象设计阶段要做的工作。

主要考虑“如何实现”的问题,将面向对象分析创建的分析模型,转变为作为软件构造蓝图的设计模型。
不仅要说明为实现需要必须引入的类、对象及它们之间是如何关联的,描述对象间如何传递消息和对象的行为如何实现还必须从提高软件设计质量和效率方面考虑如何改进类结构和可复用类库中的类
OOD 主要包括3个方面的工作:系统体系结构设计、用例实现方案设计和用户界面设计。
在这里插入图片描述

2.简述单一职责原则的含义。

单一职责原则:要求系统中的一个具体设计元素(类)只完成某一类功能(职责)。
尽可能避免出现一个“复合”功能的类——在同一个类中完成多个不同的功能。

3.依赖倒置原则中高层模块与低层模块之间是如何实现依赖关系的倒置的?

依赖倒置原则
面向过程一一自顶向下,逐步求精,形成上对下依赖
依赖倒置原则:应用系统中的高层模块不应依赖于底层模块抽象不应该依赖于细节实现,实现细节应该依赖于抽象。
优点:复用、灵活性、易维护
上层调用接口中方法,下层实现接口
如何满足依赖倒置原则–面向接口编程(结合使用接口和抽象类)
传统的依赖层次:高层使用低层的对象及其服务
都依赖于抽象
设计抽象接口,上层类使用接口,下层类实现接口
这样Button类也可以得到重用,也许是开关灯,也许是开关电视,根据创建具体对象完成多态的行为

4.如何设计系统体系结构,包括哪些工作?

所谓的软件系统设计其实就是通过某种特定的平台,而达到完成软件系统项目的整体软件的功能和性能。从软件工程管理的角度来看,软件系统项目的设计过程主要分为两步完成。

(1)概要设计

将软件系统项目的需求转化为系统的数据结构和软件的系统总体结构——此设计阶段的工作重点在于软件系统项目的静态结构设计,并设计出构成软件系统项目的各个物理组成元素——程序模块、数据库表结构、测试用例、各种设计文档文件等。

当然,在软件系统项目的系统概要设计中所需要的各种信息主要来自于软件系统项目的需求分析的结果。

(2)详细设计

在前面的系统概要设计中的软件系统项目总体结构设计完成的基础上,通过对软件系统项目结构中的各个物理组成元素进一步设计细化和完善,最终得到软件系统项目的更加详细的数据结构和算法、用户界面设计、关键性技术问题(包括开发环境和工具、运行环境和平台等)的解决方案和对应的实现技术等。

5.简述面向对象分析中的分类转化为面向对象设计中的设计元的方法?

如果一个“分析类”比较简单,代表着单一的逻辑抽象,那么可以将其映射为“设计类”。通常,主动参与者对应的边界类、控制类和一般的实体类都可以直接映射成设计类。如果“分析类”的职责比较复杂,很难由单个“设计类”承担,则应该将其映射成“子系统接口”。通常,被动参与者对应的边界类被映射成子系统接口。

6.如何进行数据存储设计,设计类与数据库表之间有什么关系?

针对关系数据库的存储设计
1)对持久类的存储设计
持久对象就是指生存期可以超越程序的任意一次执行时间而长期存在的对象。
比如新建了一名读者对象,程序结束后该读者的基本信息将转化为持久保存的读者数据,这个过程也是通常所说的“物化”。
反过来,持久后的数据需要取出并重新生成对象,这个过程称为“反物化”。
通常实体对象都会成为持久对象,实体类也称为持久类。
2) 对关系的存储设计——关联关系的映射
两个持久对象间的关联关系在OOAD中通常表现为一个对象存放了另一个对象的对象引用(也称为关联属性),而在表中则表现为外键。
对于每个1:1关联,可在其中的一个类对应的表中用外键隐含关联。
对于每个1:n关联,通常在n端类对应的表中用外键隐含关联。
对于n:n的关联,最好把它转化为1:n关联,然后再按照上面的方法进行转换。

7.什么是设计评审,有什么评审指标?

设计评审:
对所设计的系统和系统设计规格说明报告逐一进行严格审查,检查是否达到系统设计功能要求。
在这里插入图片描述

8.分析各设计模式的特点,述其适用合?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值