UML面向对象建模
UML面向对象建模 教程
dabusidede
Github:https://github.com/IceEmblem,
Word文档文章:https://github.com/IceEmblem/LearningDocuments
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
9 面向对象建模 软件工程
迭代开发 将应用分为多个版本,每个版本都增加部分功能,直到所有功能增加完成 迭代与模型 由于开发早期对领域的不熟悉,难免会出现模型设计与实际有偏差,如果与实际有偏差,那么我们可以在下一个迭代中改进 迭代周期 对于小型应用(6个月以内),2-4周迭代一次,对于大型应用,多至3-4个月一次 识别风险 对于有风险的需求应该越早解决越好,包括技术风险,人员风险(关键人员离开后项目难以进行),市场风险等待 遗留系统 对于遗留系统,如果没有采用OO技术,我们应该逆向分析出其设计 ...原创 2020-11-21 10:24:48 · 327 阅读 · 0 评论 -
8 面向对象建模 程序设计风格
我们的程序应该具有可复用性,可扩展性,健壮性,如下 可复用性 方法单一职责 如果一个方法承担了多个职责,那么应该拆分为多个方法 方法要小 一个方法应该控制在30行代码内,多了应该考虑拆分 方法以一致性 相似的方法应具有相同的名称,参数顺序等 策略和实现分离 策略方法执行决策,整理参数,收集全局信息,检查状态和错误等 实现方法就是我们的领域逻辑的实现 规避全局信息 我们的实现方法不应该直接访问全局信息,应该由策略方法外部传入 避免实现带有标志的方法...原创 2020-11-21 10:23:45 · 317 阅读 · 0 评论 -
6 面向对象建模 实现对象
在将我们的类模型实现为代码前,我们还可以稍微调整,如下步骤 微调类 拆分类 如果类模型过大,我们应该考虑是否可以拆分为多个类 合并类 如 Line 只包2个 Point,并且我们并不关心Point,那我们是否靠谱将 Point 的属性移到 Line 中,然后移除Point 属性提升为类/类降低为属性 如地址,我们可以用一个字符串表示地址,也可以用一个类表示地址 微调泛化 如果泛化的子类在行为和属性与父类没有区别,那么我们是否可以使用类型码去替换泛化(当然面向对象不推...原创 2020-11-21 10:21:51 · 241 阅读 · 0 评论 -
5 面向对象建模 类设计
系统设计之后,我们需要对我们的类模型进行细化,具体过程如下 1. 实现用例 根据用例的场景,我们为类添加一些操作,使我们的用例能够通过类运行起来 2. 设计算法 一般来说,20%的操作消耗80%的执行时间,对于可能存在性能问题的操作,我们可以给出一个初步的算法伪代码(例如,每次查找key为“abc”的对象,我们需要都遍历10000个对象,每个对象是有序排序的,这时候我们可以使用折中算法) 在一些复杂的算法中,我们需要为类添加一些行为,让算法更容易理解(如下面的伪代码,我们在word中添..原创 2020-11-21 10:20:37 · 667 阅读 · 0 评论 -
4 面向对象建模 系统分析
系统设计的目标:把系统划分为子系统,对系统或子系统进行分层,将子系统分配给硬件设备 系统设计步骤如下 1. 估算性能 如我们会大概估算访问我们站点的并发请求数量,并估算我们站点可以接收的并发请求数量,推测我们的站点会不会存在性能问题 2. 定制复用计划 即讨论我们需要使用哪些开源的库,框架,模式等 3. 将系统拆分 我们一般对子系统进行横向和纵向拆分,纵向拆分为子系统,横向拆分为分层 对于领域驱动设计,我们依据边界上下文划分子系统,而领域驱动设计的分层则是4层 4....原创 2020-11-21 10:19:00 · 367 阅读 · 0 评论 -
3 面向对象建模 应用分析
领域分析之后是应用分析,应用分析我们需要考虑系统的实现 应用交互模型 首先我们要画出系统的交互模型,如下步骤 1. 确定系统边界 即我们应该确定系统应该包含哪些功能,忽略哪些功能 2. 寻找参与者 寻找与系统交互的对象,人或外部设备或其他软件等 3. 寻找用例 参与者如何使用系统即我们的用例,用例是参与者的目的而不是过程,如“用户取钱”是一个目的,“输入取款金额”是一个过程 4. 准备普通场景 为每个用例建立一个普通的场景 5. 增加变化和异常场景 例如“登录系统”用例中,密码.原创 2020-11-21 10:17:53 · 504 阅读 · 0 评论 -
2 面向对象建模过程 领域分析
在进行系统构思之后,我们会进行领域分析领域分析的目的是为了构建与业务对应的模型,领域分析步骤如下 领域类模型 1. 寻找类 根据名称和概念,我们可以初步提取一些类 如:销售不同剧院剧目入场券的预定系统,我们提取的暂定类有 剧院,剧目,入场券,预定,系统 不是所有类都符合我们的系统,所以我们需要移除与领域无关的类 移除冗余类:如客户和用户,这两个概念是相同的,所以我们需要移除一个 不相关的类:观看演唱会的人有不同的职业,但我们的演唱会系统不关心他们的职业,所以移除职业 移除属性:如..原创 2020-11-21 10:15:10 · 1124 阅读 · 0 评论 -
1 面向对象建模教程 系统构思
系统构思是再开发一个系统前对系统的理解 系统构思过程需要回答几个问题 1. 应用程序为谁而做 即我们系统的经济担保人(出钱做系统的人)和最终用户,这2类人都是我们系统的风险承担者 2. 应用程序解决了那些问题 应用程序是为了替代人的操作,如计算器解决了手动计算的问题,ATM代替银行操作员的存取操作 3. 应用程序的应用场景 4. 为什么我们需要做这么一个应用程序 如银行操作员的不能24小时上班,所以我们需要做ATM 5. 应用程序如何工作 如人将卡插入ATM,输入取钱数目,ATM吐.原创 2020-11-21 10:12:49 · 354 阅读 · 0 评论 -
UML面向对象建模教程
前言 本系列文档介绍面向对象的开发过程,让你对面向对象的开发过程有一个了解 本系列文档地址:https://blog.youkuaiyun.com/dabusidede/category_10596824.html 如果想要看实践,请关注:https://github.com/IceEmblem/IEManageSystem/tree/master/Docs 如果想下载文档,word文档地址:https://github.com/IceEmblem/-/tree/master/%E5%AD%A6%E4%B9%A原创 2020-11-21 10:10:13 · 484 阅读 · 0 评论
分享