- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程第8章面向对象设计
* * * * * * * * * * * * * * * * * * * * * * * 2.设计数据管理部件 (1)设计数据格式(将类映射到数据文件或表结构) : l文件系统的数据格式设计: ①列表给出每个类的属性 (既包括类本身定义的 属性又包括继承下来的类属性) ②将所有属性规范为第一范式(1NF) ③为每个类属性表定义一个文件 ④分析性能和存储容量需求,改进上述文件的设计 以满足需求 l关系数据库管理系统的数据格式设计: ①分别列出相应类的属性; ②为相应类属性分别定义数据库表; ③将所有数据库表规范为第三范式(3NF)。 ④分析性能和存储容量需求,修改数据库表设计以满足需求 ◆基于RDBMS的对象存储方案的设计: 对每个要在数据库中存储的对象类,都建立一个数据库表; 类的每个属性(包括从所有父类继承来的属性)都对应表 的一个属性(列);类的每个对象将对应表的一个元组(行)。 (2)设计相应的服务: ? ◆问题域部分的对象通过请求数据管理部分提供的 操作实现对象的保存。为了实现这种请求,这些 对象类需要增加一些属性和操作。 ①在相应类中增加属性:表示需打开的文件或表 ②在相应类中增加服务: 创建对象,查找、读、保存数据 ?l将动态模型中对象的行为、功能模型中的处理,转换 成由适当的类所提供的服务 1.设计实现服务的算法 2.设计算法的数据结构 3.定义内部类和内部操作(存放执行算法时产生的中间 结果;将高层操作分解、引入新的低层操作。) ??l两个对象之间关联的实现: 1.单向关联: 在连接符一端的对象中设立一个可以指明另一端对象的 属性(指针、引用) ◆对于一对多关联:在多方一端设指针(唯一、易实现) ??l两个对象之间关联的实现: 2.双向关联: 用独立的关联对象实现双向关联。关联对象不属于相互 关联的任何一个类,它是独立的关联类的实例。 l在整体对象中定义一个作为部分对象的属性(嵌套对象) l在整体对象中定义指向部分对象的属性;或在部分对象 中定义指向整体对象的属性 ◆第7、8章思考题: 1、简述面向对象分析的主要工作过程。 2、面向对象设计模型的四个组成部分各起什么作用? 3、面向对象方法与结构化方法相比有什么优势?通过 一个项目实例谈谈自己的看法。 ◆ATM系统正常情况脚本1的事件跟踪图 17 印帐单 储户 ATM 总行 4 请求验证帐户 请求分行验证帐户 分行 帐户有效 5 帐户有效 1 插卡 2 要求密码 3 输入密码 6 要求事务类型 7 输入类型 8 要求输入取款额 9 输入取款额 10 请求处理事务 请求处理分行事务 分行事务成功 11 事务成功 13 请求拿走现金 12 吐出现金 14 拿走现金 15 请求继续此事务 16 结束 21 显示主屏幕 18 退卡 19请求拿走卡 20 拿走卡 ◆例:为“账户”类定义姓名、账号、密码及账户余额等属性。 class Account // Account类 { // 定义属性成员 string name; // 姓名 string ID; // 账号 string PWD; // 密码 real money; //账户余额 } ------------------------------------------------------------------------ 在上述“账户”类中,可以将“取款”和“存款”操作定义成方法: real getMoney(real deposit) { return money= money - deposit; } void saveMoney(real deposit) { money = money + deposit; } * * * * * * * * * * * * * * * * * * * * 软件工程概论教程 常州大学信息科学与工程学院 卢 莹 第8章
文档评论(0)