200 likes | 442 Views
中译本即将出版. OOAD 和彩色 UML. 王海鹏. Booch. 多年耕耘 朋友厉害 博学多闻. 《OOAD》. 第三版 半本理论,半本例子 极具理论深度. 复杂系统. 层次结构(宇宙组成) 相对基础性(天体物理学家和量子物理学家) 分离考虑(地面物体的运动) 共同的模式(万有引力、距离平方反比反比模式、统一场论) 稳定的进化中间态(病毒、细菌、单细胞、软体动物、脊椎动物、爬行动物、鸟类、哺乳动物、人类). 对象模型. 程序员所面对的概念演进 对象模型 — 道法自然 要素 — 抽象、封装、模块化、层次结构. 类和对象.
E N D
中译本即将出版 OOAD和彩色UML 王海鹏
Booch • 多年耕耘 • 朋友厉害 • 博学多闻
《OOAD》 • 第三版 • 半本理论,半本例子 • 极具理论深度
复杂系统 • 层次结构(宇宙组成) • 相对基础性(天体物理学家和量子物理学家) • 分离考虑(地面物体的运动) • 共同的模式(万有引力、距离平方反比反比模式、统一场论) • 稳定的进化中间态(病毒、细菌、单细胞、软体动物、脊椎动物、爬行动物、鸟类、哺乳动物、人类)
对象模型 • 程序员所面对的概念演进 • 对象模型—道法自然 • 要素—抽象、封装、模块化、层次结构
类和对象 • 人类在认识现实世界的过程中普遍运用着三个构造法则 • 区分对象及其属性。如区分一棵树和树的大小,或它与其他对象的空间关系。 • 区分整体对象及其组成部分。如区分一棵树和树枝。 • 形成并区分不同对象的类。例如,形成所有树的类和石头的类。并区分它们。
类和对象 • 对象本质:状态、行为、标识符 • 对象关系:链接、聚合 • 类的本质:接口和实现(从服务的观点看) • 类的关系:关联(语义上的依赖),继承、聚合、依赖 • 软件系统:一群不同类的对象在交互
分类 • 难度(动植物分类) • 主观性(出于不同目的,有不同分法) • 经典分类(属性,如婚否) • 概念聚集(爱情歌曲) • 原型(游戏,棋类游戏)
方法 • 表示法 • 过程 • 实务
Peter Coad • 思考者和创造者 • 只写心得,从不抄袭 • 引退了
《Color UML》 • 彩色UML建模方法 • 一个企业的完整分析实例 • 特征驱动开发(FDD)
时刻-时段(粉红色) • 业务事件,特别是我们关注其时间的那些事件 • 可以有明细项 • 可以有计划的时间和实际的时间 • 例:提交开户申请
角色 • 参与业务事件(时刻-时段)时,参与方-地点-物品所扮演的角色 • 角色与权限控制 • 例:为业务员计算销售提成
参与方-地点-物品(绿色) • 现实世界具体对象 • 例:计算美国西海岸各港口作为目的地港的货物总金额 • 例:计算XX基金的年化收益率
分类(蓝色) • 产品目录(汽车型号、颜色) • 分级分组(客户分组) • 例:计算亚太地区客户今年的销售总额
操作 • 识别方法和交互 • 特征 • <action> the <result> <by|for|of|to> a(n) <object> • 例子 • 提交开户申请 • 为业务员计算销售提成 • 例:计算美国西海岸各港口作为目的地港的货物总金额 • 例:计算XX基金的年化收益率 • 计算亚太地区客户今年的销售总额
模型的伸缩性和扩展 • 时刻-时段和明细项 • 算法扩展点
小练习 • 为银行按揭贷款业务建模,请考虑不同还贷策略和利率的变更
成功软件项目的共同特点 • 良好的架构愿景 • 架构:组件及其交互 • 业务架构:源自功能需求 • 技术架构:源自非功能需求 • 迭代增量式开发 • 分而治之 • 演进 • 持续集成 • 设计没做好,过程没贯彻(joke)
Q&A • 谢谢大家!