西安交通大学现代远程教育课程 软件工程概论 4、全局资源管理 全局资源包括物理资源(磁盘驱动器、处理器、通 信线路)或逻辑资源(数据库、对象)。不但有访问权 限的问题,还有访问冲突的问题。所以,应该标识全局 资源,并制定访问它们的策略。一般的情况下,如果资 源是物理对象,则通过建立协议实现并发系统的访问; 如果资源是逻辑对象, Rumbaugh建议对每个资源可创 建一个“保护者”对象,控制对该资源的访问(鉴别身 份、协调冲突)。 主讲教师:刘海岩副教授
21 4、全局资源管理 全局资源包括物理资源(磁盘驱动器、处理器、通 信线路)或逻辑资源(数据库、对象)。不但有访问权 限的问题,还有访问冲突的问题。所以,应该标识全局 资源,并制定访问它们的策略。一般的情况下,如果资 源是物理对象,则通过建立协议实现并发系统的访问; 如果资源是逻辑对象, Rumbaugh建议对每个资源可创 建一个“保护者”对象,控制对该资源的访问(鉴别身 份、协调冲突)
西安交通大学现代远程教育课程 软件工程概论 5、选择全局控制流机制 控制流是一个在处理机上顺序执行的动作序列。在分 析过程中,一般不考虑控制流问题,因为假定所有的对象 都能同时运行并在任何需要的时候就能执行它们的操作 系统设计的时候,就要考虑不是每个对象都能奢侈到在自 己的处理器上运行。有3种可能的控制流机制 过程驱动控制ε控制来自程序代码中,如程序等待 输入。这种控制流大多用于遗留系统并且使用过程化语言 编写。当使用面向对象语言,操作的先后顺序分散在许多 对象中,通过观察代码来决定输入的顺序将很困难 事件驱动控制:主循环等待外部事件,一旦事件到 达就把与事件相关的信息分配给适当的对象。缺陷是错误 过程会阻塞整个应用。 主讲教师:刘海岩副教授
22 5、选择全局控制流机制 控制流是一个在处理机上顺序执行的动作序列。在分 析过程中,一般不考虑控制流问题,因为假定所有的对象 都能同时运行并在任何需要的时候就能执行它们的操作。 系统设计的时候,就要考虑不是每个对象都能奢侈到在自 己的处理器上运行。有3种可能的控制流机制: • 过程驱动控制: 控制来自程序代码中,如程序等待 输入。这种控制流大多用于遗留系统并且使用过程化语言 编写。当使用面向对象语言,操作的先后顺序分散在许多 对象中,通过观察代码来决定输入的顺序将很困难。 • 事件驱动控制: 主循环等待外部事件,一旦事件到 达就把与事件相关的信息分配给适当的对象。缺陷是错误 过程会阻塞整个应用
西安交通大学现代远程教育课程 软件工程概论 线程:系统可以创建任意数量个线程,每个线程 对应于不同的事件。如果某个线程需要更多的数据,就 等待来自操作者的输入。这种控制流机制最直接,但需 要比较成熟的支持线程的开发工具,特别是调试和测试 工具 日选定了控制流机制,就可用一组控制对象来实 现它。控制对象的职责就是记录外部事件,存储它们的 临时状态,并给出与外部事件相关的边界对象和实体对 象的正确的操作次序 6、数据管理设计 如何存储那些连续的、需要经常重新计算的对象? 选择什么样的存储管理模式? 主讲教师:刘海岩副教授
23 • 线程: 系统可以创建任意数量个线程,每个线程 对应于不同的事件。如果某个线程需要更多的数据,就 等待来自操作者的输入。这种控制流机制最直接,但需 要比较成熟的支持线程的开发工具,特别是调试和测试 工具。 一旦选定了控制流机制,就可用一组控制对象来实 现它。控制对象的职责就是记录外部事件,存储它们的 临时状态,并给出与外部事件相关的边界对象和实体对 象的正确的操作次序。 6、数据管理设计 如何存储那些连续的、需要经常重新计算的对象? 选择什么样的存储管理模式?
西安交通大学现代远程教育课程 软件工程概论 3种存储管理机制 (1)普通文件 由操作系统提供的存储机制,数据按字节流存储,数 据操纵功能简单,适合于存储大容量的图形、图像、视频 音频等多媒体数据。数据存储时,每个类对应于一个文件, 每个对象实例对应文件的一个纪录 应用系统 文件 对对 象象 对象 记录1 记录2 数据接口 记录n 用文件存储对象 主讲教师:刘海岩副教授
24 3种存储管理机制: (1)普通文件 由操作系统提供的存储机制,数据按字节流存储,数 据操纵功能简单,适合于存储大容量的图形、图像、视频、 音频等多媒体数据。数据存储时,每个类对应于一个文件, 每个对象实例对应文件的一个纪录。 对 象 对 象 … 对 象 应用系统 数据接口 文件 用文件存储对象 记录1 记录2 … 记录n
西安交通大学现代远程教育课程 软件工程概论 数据接口部分如何设计?主要设计为其他对象提供基 本保存与恢复功能的对象类 对象存取器 从关键字换 类文件对照表 以某种快速 用于某些类的 算出记录位 对象保存 算法查找与 对象实例不便 置再保存或 对象恢复() 关键字相符 于按关键字的 存取 的记录 值排序 换算型对象查找型对象索引型对象 索引表 存取器 存取器 存取器 文件记录索引 对象保存0*对象保存0*对象保存0查找记录指针0 对象恢复0 对象恢复0对象恢复0 文件系统数据接口的设计 主讲教师:刘海岩副教授
25 数据接口部分如何设计?主要设计为其他对象提供基 本保存与恢复功能的对象类。 对象存取器 类-文件对照表 对象保存() 对象恢复() 换算型对象 存取器 *对象保存() *对象恢复() 索引表 文件记录索引 查找记录指针() 查找型对象 存取器 *对象保存() *对象恢复() 索引型对象 存取器 *对象保存() *对象恢复() 文件系统数据接口的设计 从关键字换 算出记录位 置再保存或 存取 以某种快速 算法查找与 关键字相符 的记录 用于某些类的 对象实例不便 于按关键字的 值排序