面向对象软件设计原则与建模
更新时间:2023-12-09 12:36:01 阅读量: 教育文库 文档下载
设计类?名词适用于类,动词适用于操作,有些名词和形容词适用于类的属性。?步骤一:找出名词接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交。?步骤二:删除参与者接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交。设计类?步骤三:删除重复的名词接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交。?步骤四:把系统类从问题域中分离出来接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交。?步骤五:把特性从类中分离出来接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交。设计类?步骤六:标识操作接待员从可用的汽车的汽车列表中选择一辆汽车;接待员输入顾客的ID类型和号码;接待员把汽车标记为移交?结果:汽车(移交)、顾客、ID类型(枚举)、ID(ID类型,号码)?个人观点:汽车不应该有移交方法,应该由汽车管理类来完成发现隐藏的类?表示、领域、持久化在一个类中?把领域代码和表示代码分离?把领域代码和持久化代码分离
需求描述?小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计发现类?小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计筛选备选类??“小王”、“人”、“家里”很明显是系统外的概念,无须对其建模;而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,???因此应该作为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。“基本信息”则是书名、作者、类别等描述书籍的基本信息统称,“关键字”则是代表其中之一,因此无需对其建模;“功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;筛选修选类??“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义;?“外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”—借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”;“购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类—书籍列表,也就是执行统计的主体。得到候选类书籍计算机类书籍非计算机类书籍借阅记录借阅记录列表书籍列表?在使用“名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字关联分析,建模,多重性分析,再建模
面向对象软件设计原则(二) —— 软件设计的腐化
我们如何知道软件设计的优劣呢?以下是一些拙劣设计的症状,当软件出现下面任何一种气味时,就表明软件正在腐化。
? 僵化性(Rigidity):很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动。 ? 脆弱性(Fragility):对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 ? 牢固性(Immobility):很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。 ? 粘滞性(Viscosity):做正确的事情比做错误的事情要困难。
正在阅读:
面向对象软件设计原则与建模12-09
期权投教岗考试题目 中和三套题06-18
汇财软件 2013 年报05-12
校学生会QQ群管理新制度终稿07-22
公司宣传专题片解说词02-11
环境科学与工程前沿课程论文06-27
创新型企业财务风险管理探究.doc08-20
《发电厂电气部分》(含答案版)09-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 建模
- 面向
- 对象
- 原则
- 设计
- 软件
- 京建法 2016 10号与808号对比
- 第二组 日本资生堂的市场细分与目标市场策略
- 怀化 - 图文
- 第3章 平面任意力系
- 健康教育练习题(1)
- 国家节能中心“能评问答”
- 目标与时间管理2
- 卓顶精文2019业务尽调报告模板 doc - 图文
- 在中国不应该鼓励超前消费
- Excel大赛题库
- 2016年12月大学英语四级考试真题(第三套)
- 国土资源知识试题A-B -
- 人教版四年级上册语文-四字词语分类
- 阀门制造有限公司压力管道元件制造许可质量手册实用 - 图文
- 浅谈幼儿挑食现象及其教师的指导策略
- 计划重要性与审计风险习题及答案
- 预防与控制伤寒副伤寒等秋冬季传染病应急预案
- 利用OpenGL 绘制基本图元 五角星
- 创业指导课视频答案汇总
- 2018-2019年高中数学新课标人教A版《选修四》《选修4-4》《第一讲 坐标系》三 简单曲线的