- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OOAD 第7章问题域部分的设计 CUMT
面向对象分析与设计Object-Oriented Analysis and Design 张 磊 博士 副教授 zhanglei@cumt.edu.cn OOA的模型直接放到OOD的问题域部, OOD阶段对OOA结果进行改动和增补。 根据需求变化,对OOA产生模型的类与对象、结构、属性、操作进行组合与分解,增加必要的类、属性和关系。 OOD中,OOA的结果恰好就是OOD的问题域部分。这也正是面向对象的设计和分析方法的一个最优良的特点。但是可能要作些改动,这种改动不是否定OOA的分析结果,而是完善。 这些改动基于以下几个原因: (1)由于需求的变化; (2)分析员对问题域的理解可能有误解或欠缺,需要对此加以修正; (3)分析与设计毕竟是性质不同的两类开发工作,分析可以而且应该与具体实现无关,而设计在很大程度上受具体实现环境的约束。 一般来说,基于问题域的总体组织框架是长时间保持稳定的(当然,细节是会变的,这里加一个类说明,那里加一个属性或服务)。 例如银行储蓄系统中分行、终端、储户这个组织结构会长期保持稳定,虽然如储户的属性可能会发生变化。正是基于这种稳定,面向对象的分析和设计模型按问题域本身的样子来组织系统,也能从容适应变化的需求,能保持稳定性。 问题论域部分包括与应用问题直接有关的所有类和对象。 识别和定义这些类和对象的工作在OOA中已经开始,在OOA阶段得到的有关应用的概念模型描述了要解决的问题。 在OOD阶段,应当继续OOA阶段的工作,对在OOA中得到的结果进行改进和增补。 在OOA阶段得到的概念模型描述了要解决的问题。 在OOD阶段,继续OOA阶段的工作,对在OOA中得到的结果进行改进和增补。 对OOA模型中的某些类与对象、结构、属性、操作进行组合与分解。 要考虑对时间与空间的折衷、内存管理、开发人员的变更、以及类的调整等。 对关联进行调整后,要考虑关联的实现方式。 (1)聚合 决定在整体类中指出部分类时,是用部分类直接作为整体类中的属性的数据类型,还是把部分类用作指针或对象标识的基类型,再用这样的指针或对象标示定义整体类的属性。 如果是组合,最好用第1种方式,否则就需要在程序中保证整体对象与部分对象的生命周期的一致性。 (2)关联 通常,通过在对象中设立指针或对象标识以指向或记录另一端的对象的方法,来实现关联。 如果是单向关联,就在源端的类中设立属性,用来标记另一端的类将来创建的对象 如果是双向关联,就在两端类中各设立属性,用来标记对方将来创建的对象。 如果关联中对方类的多重性是1,那么可在本方设立一个指向对方对象的指针,或设立一个记录对方对象引用的属性。 如果对方类的多重性大于1,那么可在本方设立一个指向对方对象的指针集合或引用集合。 若关联的某端有角色名,最好把其作为另一端类的属性名,以访问与角色名相邻的类。 (6)调整与完善属性 按照语法:[可见性] 属性名[‘:’类型][‘=’ 初始值] 对属性的定义进行完善。 每一个属性或者包含单个值,或者包含作为一个整体的密切相关的一组值。 若要给出对属性的性质的约束,如“工龄60”或“0≤英语成绩≤100”等,也要看语言是否对其直接支持,否则要在算法上考虑如何实现。 为了维护数据的完整性,必须要考虑需要一起更新的多个相关联的数据值。特别是,当基本的数据发生变化时,必须更新导出的属性。通过下列方法可以做到这一点: 1)显式的代码 因为每一个导出属性是根据一个或多个基本对象属性定义的,更新导出属性的一种方法是,在更新基本对象属性的操作中插入更新导出属性的代码。这种附加的代码将明确地更新依赖基本对象属性的导出属性,使得基本属性与导出属性的值同步。 2)批处理性的重计算 当基本数据以批处理的方式改变时,可能在所有的基本数值改变之后,再重新计算所有的导出属性的值。 3)触发器 凡是依赖基本属性的属性,都必须将它自己向基本属性注册。当基本属性的值被更新时,由专门设置的触发器更新导出属性的值。 (7)构造和优化算法 对于需要设计的操作,要从如下几方面进行详细地定义: (1) 按照定义操作的格式: [可见性] 操作名[‘(’参数列表‘)’][‘:’返回类型] 完善操作的定义。 (2)从问题域的角度,根据其责任,考虑实现操作的算法,即对象是怎样提供操作的。
您可能关注的文档
- 四年级下学期家长会班主任发言稿PPT.ppt555556概要.ppt
- NORTH NOVA锂离子电池发热服装——1105.pptx
- 四年级下语文教案概要.doc
- 四年级下册鱼游到了纸上概要.ppt
- 四年级下学期经典诵读概要.doc
- 四年级下语文园地三概要.ppt
- 四年级下册语文园地一(超完美版)概要.ppt
- n第二节_燃烧热__能源.ppt
- odoo与企业微信.pptx
- NXT Head保养SOP-110322.ppt
- 加速政府投资基金的规范化及市场化运营 ——基于城投视角解读《关于促进政府投资基金高质量发展的指导意见》 202501 -新世纪.pdf
- 超常规调节与全面扩内需 经济增速将迎阶段性企稳——2024年中国宏观经济分析与2025年展望 -新世纪.pdf
- 食品饮料行业2024年信用回顾与2025年展望 -新世纪.pdf
- 企业竞争图谱:2024年工业电机 头豹词条报告系列.pdf
- EqualOcean -中国企业出海日本月度研究报告 202406.pdf
- 中国地方AMC行业展望2025年1月.pdf
- 中国酒类行业展望,2025年1月.pdf
- DB33 T 2416—2021 城市绿化碳汇计量与监测技术规程.pdf
- 解析CES 2025: 开启终端运算产品的全新时代_方觉民分析师.pdf
- 2024年国际工程企业碳管理研究报告.pdf
文档评论(0)