西安交通大学现代远程教育课程 软件工程概论 确定层的数量。太多使系统复杂,太少降低子系统的功 能独立性 命名层并将子系统分配到某个层。确信同层的子系统间 的通信以及和其他层的子系统间的通信遵循软件体系结 构设计思想 定义每个层的接口。 精化子系统以建立每个层的类结构 定义层间通信的消息模型 评审层设计以保证层间的耦合度最小。 迭代以精化分层设计 16 主讲教师:刘海岩副教授
16 • 确定层的数量。太多使系统复杂,太少降低子系统的功 能独立性。 • 命名层并将子系统分配到某个层。确信同层的子系统间 的通信以及和其他层的子系统间的通信遵循软件体系结 构设计思想。 • 定义每个层的接口。 • 精化子系统以建立每个层的类结构。 • 定义层间通信的消息模型。 • 评审层设计以保证层间的耦合度最小。 • 迭代以精化分层设计
西安交通大学现代远程教育课程 软件工程概论 2、并发性与基于体系结构风格的子系统分配 当系统有许多并发行为时,要划分任务,简化并发 行为的设计与编码。一个任务指系统中的一个过程,有 时就是进程的同义词。并发任务可通过检查每个对象的 状态图而定义,如果事件和变换流指明在任意时刻只有 单个对象是活跃的,则是一个控制线程。即使一个对象 向另一个对象发送消息,只要第一个对象等待响应,控 制线程就继续。如果第一个对象不等待,则控制线程分 叉 OO系统中的任务是通过孤立控制线程而设计的 例如当 SafeHome系统正在监控其传感器时,它也可以 拨号到监控站以检验连接。涉及这两个行为的对象(传 感器、监控站)是同时活跃的,每个对象参与一个独立 的控制线程并被定义为独立的任务。如果监控和拨号活 动顺序地发生,则只设计单个任务。 主讲教师:刘海岩副教授
17 2、并发性与基于体系结构风格的子系统分配 当系统有许多并发行为时,要划分任务,简化并发 行为的设计与编码。一个任务指系统中的一个过程,有 时就是进程的同义词。并发任务可通过检查每个对象的 状态图而定义,如果事件和变换流指明在任意时刻只有 单个对象是活跃的,则是一个控制线程。即使一个对象 向另一个对象发送消息,只要第一个对象等待响应,控 制线程就继续。如果第一个对象不等待,则控制线程分 叉。 OO系统中的任务是通过孤立控制线程而设计的。 例如当SafeHome系统正在监控其传感器时,它也可以 拨号到监控站以检验连接。涉及这两个行为的对象(传 感器、监控站)是同时活跃的,每个对象参与一个独立 的控制线程并被定义为独立的任务。如果监控和拨号活 动顺序地发生,则只设计单个任务
西安交通大学现代远程教育课程 软件工程概论 对象-行为模型对分析类间或子系统间的并发性提 供了支持。如果类和子系统不是同时活动的,则不需 要并发处理,它们可以实现在同一个处理器硬件上 如果类和子系统必须异步地或同时作用于事件,则被 视为并发的。这时有两种选择:分配每个子系统到各 自独立的处理器;分配子系统到同一处理器并通过操 作系统特性提供并发支持。 分布式系统中,软件体系结构风格对系统分布方 案具有决定性的影响。选择体系结构风格应考虑以下 因素: 18 主讲教师:刘海岩副教授
18 对象-行为模型对分析类间或子系统间的并发性提 供了支持。如果类和子系统不是同时活动的,则不需 要并发处理,它们可以实现在同一个处理器硬件上; 如果类和子系统必须异步地或同时作用于事件,则被 视为并发的。这时有两种选择:分配每个子系统到各 自独立的处理器;分配子系统到同一处理器并通过操 作系统特性提供并发支持。 分布式系统中, 软件体系结构风格对系统分布方 案具有决定性的影响。选择体系结构风格应考虑以下 因素:
西安交通大学现代远程教育课程 软件工程概论 根据被开发系统的特点:如系统类型、用户需求、 系统规模、使用方式等; ·网络协议:不同的网络协议支持不同的体系结构风 格 可用的软件产品:包括网络软件、OS、DBMS、现 有的数据服务器等; 成本及其他:购置硬件及软件成本、新开发软件成 本、系统的安装与维护成本。此外,如开发人员对所选 择体系结构风格下实现技术的熟练程度及开发期限等。 根据以上因素选择合适的体系结构,然后将子系统 分配到体系结构的节点上。 19 主讲教师:刘海岩副教授
19 • 根据被开发系统的特点:如系统类型、用户需求、 系统规模、使用方式等; • 网络协议:不同的网络协议支持不同的体系结构风 格; • 可用的软件产品:包括网络软件、OS、DBMS、现 有的数据服务器等; • 成本及其他:购置硬件及软件成本、新开发软件成 本、系统的安装与维护成本。此外,如开发人员对所选 择体系结构风格下实现技术的熟练程度及开发期限等。 根据以上因素选择合适的体系结构,然后将子系统 分配到体系结构的节点上
西安交通大学现代远程教育课程 软件工程概论 3、任务管理设计 当一个节点上有多个控制流存在时,需要设计一个对 这些控制流进行协调和管理的控制流(即进程或任务) 如设计一个进程,由它负责系统的启动和初始化、其他进 程的创建与撤销、资源的分配、优先级的授予等工作。 用以下几步完成任务管理的设计: 确定要执行的任务并识别它的特征 确定任务的优先级。 创建协调任务来协调所有其他任务。 为每个任务设计对象,并定义它们之间的关系 任务应该用模版详细描述,包括任务名、描述、优先 级、服务、由谁管理、如何通信以及在层次中的位置,便 于编程人员实现。 主讲教师:刘海岩副教授
20 3、任务管理设计 当一个节点上有多个控制流存在时,需要设计一个对 这些控制流进行协调和管理的控制流(即进程或任务)。 如设计一个进程,由它负责系统的启动和初始化、其他进 程的创建与撤销、资源的分配、优先级的授予等工作。 用以下几步完成任务管理的设计: • 确定要执行的任务并识别它的特征。 • 确定任务的优先级。 • 创建协调任务来协调所有其他任务。 • 为每个任务设计对象,并定义它们之间的关系。 任务应该用模版详细描述,包括任务名、描述、优先 级、服务、由谁管理、如何通信以及在层次中的位置,便 于编程人员实现