Object-Oriented Technology: Review and Conclusion Remarks 复习和总结 Institute of Computer Software Nanjing University 2019/4/21
Review Part 1: OO基础 Part 2: OO设计原则和设计模式 OO基本原理 Design by Contract 异常处理;并发对象;持久对象 Part 2: OO设计原则和设计模式 OOA & OOD 敏捷软件开发方法 OO设计原则 OO设计模式 应用框架技术 AOP Institute of Computer Software Nanjing University 2019/4/21
Review Part 3: 构件技术 构件化软件 分布对象 Institute of Computer Software Nanjing University 2019/4/21
Background 软件质量 应对软件复杂性的”元”方法 软件模块 软件复用 外部质量因素(正确性,鲁棒性,完整性…) decomposition, abstraction, hierarchy 软件模块 模块化目标(5个),规则(5条),原则(5点) 软件复用 传统技术,OO技术 Institute of Computer Software Nanjing University 2019/4/21
Abstract Data Type ADT 从ADT到类 Why,What How – 代数方法 类:模块和类型的统一 Institute of Computer Software Nanjing University 2019/4/21
Design by Contract 基本思想 具体措施 一个类(实现)的“正确性”? 应用于继承? DbC和防御性编程的比较 借鉴“契约”原理,界定模块之间的权利义务,规范 软件的开发,提高软件质量。 具体措施 Preconditions, Postconditions, Invariants 一个类(实现)的“正确性”? Hoare Triple 应用于继承? DbC和防御性编程的比较 Institute of Computer Software Nanjing University 2019/4/21
Exception Handling 对“异常”的理解 异常处理设施 异常处理设施的正确使用 依据DbC,对Java异常的分类的理解 不当使用 高效使用 Institute of Computer Software Nanjing University 2019/4/21
Concurrent Objects 并发概念 When OO meets Concurrency Safety vs. Liveness Java approach? Safety vs. Liveness Concurrency support in Java Thread Model Communication? Synchronization? Built-in Monitor (synchronized, wait, notify, notifyall ) Semaphore? Read/Write Lock? Barrier? Institute of Computer Software Nanjing University 2019/4/21
Serialization and Persistence Transient objects vs. Persistent objects Java serialization mechanism Serializable vs. Externalizable interfaces The difficulties of object storing/retrieving Object references – closure with exclusions Scheme evolution – detect, notify, and correct Object – Relation Mapping The mismatching 为什么需要对象持久化框架? Institute of Computer Software Nanjing University 2019/4/21
OOA & OOD How to find classes? How to design classes? 用例的识别:基于参与者,基于事件 领域模型 三种类:分析类,设计类,实现类 How to design classes? Institute of Computer Software Nanjing University 2019/4/21
Agile Software Development 概念 敏捷软件开发 敏捷开发是一种面临迅速变化的需求快速开发软件的 能力。 敏捷过程 极限编程 强调:交流,简单,反馈,勇气 Institute of Computer Software Nanjing University 2019/4/21
OO Design Principles 各个原则的含义 应用 类设计原则:SRP,OCP,LSP,DIP,ISP 包设计原则 违反原则 包的内聚性原则:REP,CRP,CCP 包的耦合性原则:ADP,SDP,SAP 应用 违反原则 改正 Institute of Computer Software Nanjing University 2019/4/21
OO Design Patterns GoF设计模式 名,目的 问题-解决方案 与其它模式的关系 考虑例子! Institute of Computer Software Nanjing University 2019/4/21
Application Framework 什么是框架? 设计优秀框架的方法 IoC and DI approaches 框架和设计模式的比较 Institute of Computer Software Nanjing University 2019/4/21
AOP AOP AspectJ的概念(术语) AOP和OOP的关系 Why, What, How Institute of Computer Software Nanjing University 2019/4/21
Component Software Component Component is for composition 概念,特性,与相关概念的比较 要素 Component is for composition Composition mechanisms Institute of Computer Software Nanjing University 2019/4/21
Distributed Objects General framework of DOC The ORB mechanisms RMI EJB Institute of Computer Software Nanjing University 2019/4/21
考试安排 时间:2011年1月4日 9:00-11:00 地点:馆1-104 方式:闭卷 Institute of Computer Software Nanjing University 2019/4/21
Merry Christmas Institute of Computer Software 2019/4/21 Nanjing University 2019/4/21
Thank You Institute of Computer Software Nanjing University 2019/4/21