- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程第10讲R0
类 开发流程 类图的角色 外观和机理 步骤 识别类及其属性 审查属性 识别类之间的泛化 审查泛化 识别类之间的聚合/组合 审查聚合/组合 识别类之间的连接 识别类及其属性 ——识别类和属性 回顾需求文档,抽取对应于业务实体或事件的名词 出现遗漏时,返回需求文档进行修改 将名词进行分类、抽取出合适的类 识别类及其属性——从用例文档抽取名词 识别类及其属性 ——分析 ??注意以下几点: 冗余的同义词(同一概念,不同表达) 在系统责任之外的名词 需要重新落实的模糊名词 实质上是操作或属性的名词(问一问:有没有结构,有没有行为?) 识别类及其属性——分析结果 识别类及其属性 类的名字应该: 清楚简单 使用问题域的词汇 识别类及其属性 ——类图(初步) 步骤 识别类及其属性 审查属性 识别类之间的泛化 审查泛化 识别类之间的聚合/组合 审查聚合/组合 识别类之间的连接 审查属性 是否在系统责任之内 是否描述类对象的特征 是否存在冗余 是否有复杂结构的属性 根据对需求的理解进行细化 审查属性 ——属性是否在系统责任之内 审查属性 ——属性是否描述类对象的特征 审查属性 ——属性是否存在冗余 审查属性 ——复杂结构的属性 审查属性 ——复杂结构属性的处理 审查属性 ——是否有复杂结构的属性(2) 审查属性 ——是否有复杂结构的属性(3) 审查属性 ——根据对需求的理解进行细化 步骤 识别类及其属性 审查属性 识别类之间的泛化 审查泛化 识别类之间的聚合/组合 审查聚合/组合 识别类之间的连接 类的关系 识别类之间的泛化 ——泛化 识别类之间的泛化 ——泛化举例 识别类之间的泛化 ——泛化举例 识别类之间的泛化 ——泛化的特征?? #1:Is-A 原则 所有子类的成员必须是超类的成员 这样必须说得通, 子类“是一种” 超类 #2:100% 原则 超类的定义必须100% 适用于所有子类 子类必须100% 符合超类的: 属性 关联 识别类之间的泛化 ——属性和关联 唐僧:我们师徒四人这次取西经可以说是困难重重,原因是我们不同心协力,所以被妖魔得逞。既然是这样,我在这个监狱里跟在外面有什么分别呢?外面对我来说只不过是个大一点的监狱罢了。 识别类之间的泛化 ——泛化的麻烦 波动影响 超类的改动影响到子类 多重继承 命名冲突。。。 识别类之间的泛化 ——从代码角度看泛化 识别类之间的泛化 根据领域知识 自上而下 自下而上 考虑领域内的复用 识别类之间的泛化 很多领域有成熟的分类法则 零件--螺钉--六角螺钉 商品--电器--家用电器--洗衣机 生物--动物--哺乳动物--灵长目 识别类之间的泛化 ——自上而下 识别类之间的泛化 ——自下而上 识别类之间的泛化 ——考虑领域范围内的复用 步骤 识别类及其属性 审查属性 识别类之间的泛化 审查泛化 识别类之间的聚合/组合 审查聚合/组合 识别类之间的连接 审查泛化 是否在系统责任范围之内 是否同处一个领域 是否符合常识 是否在结构上真正构成泛化关系 子类之间的差别能否由超类的属性值改变来实现 子类是否有自己特有的属性和操作 超类下面是否只有一个子类 审查泛化 ——是否在系统责任范围之内 审查泛化 ——是否同处一个领域(1) 审查泛化 ——是否同处一个领域(2) 审查泛化 ——是否同处一个领域(3) 审查泛化 ——是否同处一个领域(4) 审查泛化 ——是否符合常识 审查泛化 ——是否在结构上真正构成泛化 审查泛化 ——子类之间的差别能否由超类的属性值改变来实现 审查泛化 ——子类是否有自己特有的属性和操作 审查泛化 ——超类下面是否只有一个子类 步骤 识别类及其属性 审查属性 识别类之间的泛化 审查泛化 识别类之间的聚合/组合 审查聚合/组合 识别类之间的连接 类之间的关联 ——关联的含义 通过属性来表示一个对象对另一个对象的静态依赖关系(区别于通过操作) 类之间的关联 ——关联的含义 类之间的关联 ——关联的几种表现形式 类之间的关联 ——连接 最弱的关联,只是表示两个类对象之间有导航关系 类之间的关联 ——聚合 具有“has a”语义--对象A是对象B的一个组成部分 类之间的关联 ——组合 强语义的聚合--整体部分消失,部分对象也消失 类之间的关联 ——聚合vs. 组合(UML观点) 类之间的关联 ——连接vs. 聚合 聚合是连接的精化,两端角色被默认为“拥有者”和“被拥有者”。 类之间的关联 在动态建模时帮助进行职责分配 类之间的关联 ——比较:关联的几种表现形式 类之间的关联 ——代码:聚合 类之间的关联 ——代码:组合 类之间的关联 ——代码:双向连接 类之间的关联 ——代码:单向连接 识别类之间的聚合(组合) ——思路 物理上的整体事物和它的组成部分 组织机构和它的下级组织 团队(组织)和成
文档评论(0)