西安交通大学现代远程教育课程 软件工程概论 例如出现下列情况: °操作与数据结构大小有关。 操作与外部设备特性有关。 实现算法将来可能会改进 为了克服与表示方法、数据结构或硬件特点相关的操 作给复用带来的困难,可以设计一个基类把与上述操作有 关的服务定义为纯虚函数,然后在复用时先派生出一个新 类,在新类中重新定义上述操作的算法。 设计一个可复用的软件比设计一个普通软件的代价要 高,但随着这些软件被复用的次数的次数的增加,分摊到 它的设计和实现成本就会降低 主讲教师:刘海岩副教授
11 例如出现下列情况: • 操作与数据结构大小有关。 • 操作与外部设备特性有关。 • 实现算法将来可能会改进。 为了克服与表示方法、数据结构或硬件特点相关的操 作给复用带来的困难,可以设计一个基类把与上述操作有 关的服务定义为纯虚函数,然后在复用时先派生出一个新 类,在新类中重新定义上述操作的算法。 设计一个可复用的软件比设计一个普通软件的代价要 高,但随着这些软件被复用的次数的次数的增加,分摊到 它的设计和实现成本就会降低
西安交通大学现代远程教育课程 软件工程概论 (7)简洁化设计 个软件60%的工作量是维护工作。为了便于维护 现代软件工程越来越重视软件的简洁和易于理解。做好 以下几点: ·设计简单的类。避免定义太多的属性和服务。一个 类的职责要清晰,易于理解也有助于复用。 使用简单的协议。对象之间的关联是通过消息触发 的,消息过于复杂,说明对象之间的耦合程度太紧,不 利于维护 设计结果简洁明了。设计结果(如文档)描述用词 准确、清晰、容易理解。 主讲教师:刘海岩副教授
12 (7)简洁化设计 一个软件60%的工作量是维护工作。为了便于维护, 现代软件工程越来越重视软件的简洁和易于理解。做好 以下几点: • 设计简单的类。避免定义太多的属性和服务。一个 类的职责要清晰,易于理解也有助于复用。 • 使用简单的协议。对象之间的关联是通过消息触发 的,消息过于复杂,说明对象之间的耦合程度太紧,不 利于维护。 • 设计结果简洁明了。设计结果(如文档)描述用词 准确、清晰、容易理解
西安交通大学现代远程教育课程 软件工程概论 92系统设计 和传统设计的目的相同,是为实现系统需求而对软 件体系结构进行的设计。系统设计过程包括以下活动 划分分析模型为子系统。 标识问题的并发性。 选择软件体系结构的风格并分配子系统到处理器 设计用户界面 选择实现数据管理的基本策略 标识全局资源及访问它们所需的控制机制。 为系统定义合适的控制流机制。 考虑边界条件 评审并考虑权衡 13 主讲教师:刘海岩副教授
13 9.2 系统设计 和传统设计的目的相同,是为实现系统需求而对软 件体系结构进行的设计。系统设计过程包括以下活动: • 划分分析模型为子系统。 • 标识问题的并发性。 • 选择软件体系结构的风格并分配子系统到处理器。 • 设计用户界面。 • 选择实现数据管理的基本策略。 • 标识全局资源及访问它们所需的控制机制。 • 为系统定义合适的控制流机制。 • 考虑边界条件。 • 评审并考虑权衡
西安交通大学现代远程教育课程 软件工程概论 1、划分分析模型 以定义类、关系和行为的内聚集合,将这些设计元 素包装为子系统 定义子系统时应该遵循以下标准: 子系统应该具有定义良好的接口,通过接口和系统 的其余部分通信。 除了少数的“通信类”,在子系统中的类只和该子 系统中的其他类协作 子系统的数量不应太多。 子系统可以内部划分以降低复杂性。 主讲教师:刘海岩副教授
14 1、划分分析模型 以定义类、关系和行为的内聚集合,将这些设计元 素包装为子系统。 定义子系统时应该遵循以下标准: • 子系统应该具有定义良好的接口,通过接口和系统 的其余部分通信。 • 除了少数的“通信类”,在子系统中的类只和该子 系统中的其他类协作。 • 子系统的数量不应太多。 • 子系统可以内部划分以降低复杂性
西安交通大学现代远程教育课程 软件工程概论 当两个子系统互相通信时,可建立客户/服务器(C/S) 结构或对等结构(P2P。在C/S结构中,每个子系统只承 担一个由客户端或服务器端隐含的角色,服务只是单向地 从服务器端流向客户端;在P2P结构中,服务可以双向流 动。 在划分子系统时,往往进行分层设计。系统的每一层 包含一个或多个子系统,表示了完成系统功能所需的功能 性的不同抽象层次。抽象级别由与其相关的处理对用户的 可见程度来确定。(如PPt第6页应用程序的典型层次结 构) Buschmann及其同事提出以下分层设计方法: 建立分层的标准。即决定子系统将如何被组合成层 次的体系结构。 15 主讲教师:刘海岩副教授
15 当两个子系统互相通信时,可建立客户/服务器(C/S) 结构或对等结构(P2P)。在C/S结构中,每个子系统只承 担一个由客户端或服务器端隐含的角色,服务只是单向地 从服务器端流向客户端;在P2P结构中,服务可以双向流 动。 在划分子系统时,往往进行分层设计。系统的每一层 包含一个或多个子系统,表示了完成系统功能所需的功能 性的不同抽象层次。抽象级别由与其相关的处理对用户的 可见程度来确定。(如PPt第6页应用程序的典型层次结 构)。 Buschmann及其同事提出以下分层设计方法: • 建立分层的标准。即决定子系统将如何被组合成层 次的体系结构