软件需求实践的艺术.PPT

使功能需求保持分离 2 应用用例设计 ?识别设计元素:从分析模型中标识设计元素,根据实现需要引入新的设计元素 ?识别组件和接口:将分析为中的一部分演化为设计组件 ?完善设计元素 使功能需求在设计模型中保持独立 ?使类扩展保持分离:ReserveRoom类需要updateAvailability()和retrieveDetails()两个方法。前者是“预订房间”特用,后者是公用。其处理方法有四种: 现行选择 编程困难 使功能需求保持分离 3 使功能需求在设计模型中保持独立 ?使操作扩展保持独立 1)总和:两个用例切片需要从相同操作得到不同的输出,并且操作的职责是提供两种输出的合并 2)选择:当用例切片需要从同一个操作得到不同的输出,并且要求组合结果只有一种输出 操作扩展声明包括 1)结构上下文:说明哪个操作是要增加的 2)行为上下文:说明扩展何时执行 3)说明附加行为 使扩展的功能需求保持分离 1 面向方面技术能够使我们更好地在原有系统上进行扩展 ?该扩展流程应该在pointcut UpdatingRoomAvailability返回没有空闲房时 ?系统建立一个针对选定房间类型的带唯一标识符的待处理订单,然后将其放到等候列表中,再将此唯一标识符返回给客户,用例结束。 识别类: 使扩展的功能需求保持分离 2 识别Pointcut,并将用例行为分配给类 ?标识结构上下文:确定在何处运行这些操作扩展来调用扩展用例 ?标识行为上下文:定义职责中的何处需要调用 使扩展的功能需求保持分离 3 因此,得到了一个独立的用例切片完成该扩展用例 使非功能需求保持分离 1 分离非功能需求最有效的工具是基础结构应用 ?识别类 ?标识Pointcut ?将用例行为分配给类 使非功能需求保持分离 2 使基础结构用例保持分离 ?细化元素结构 ?在用例切片中使基础结构保持分离 使平台特性保持分离 最小设计视角 合并了平台特性 Agenda 面向对象开发技术与开发范型变迁 横切关注点 横切关注点的建模与分离 弹性体系结构演变 AOSD的应用 CSAI华东区首席顾问 徐 锋 面向方面的软件开发方法 Agenda 面向对象开发技术与开发范型变迁 横切关注点 横切关注点的建模与分离 弹性体系结构演变 AOSD的应用 软件开发范型的变迁 Code-Fix模型 --最原始的开发方式 程序越来越大,难以掌握—软件危机 结构化开发:SA、SD、SP --自顶向下,逐层分解 数据与方法分离,内聚性不够—与现实世界模型不一致 面向对象开发:OOA、OOD、OOP –现实世界真实反映 其它:数据流理论 1970 1980 1990 结构化方法 数据流方法 面向对象 面向对象开发技术的核心特点 结构化理论:将应用分解为功能模块、子功能模块、功能接口;与现实问题域的东西没有直接联系! 面向对象理论:系统模型是对问题域的直接映射,即从现实世界中直接抽象出一个模型,然后在计算机中实现出来。 面向对象开发技术的历史变迁 面向对象程序设计 面向对象设计 面向对象分析 面向对象程序语言 1980 1960 1970 1990 Lisp Simula67 SmallTalk72 SmallTalk80 C Objective-C C++ Java 1970年 1990年 年 面向对象编程开启了面向对象发展之门。 而面向对象分析、设计方法才是OO思想的真正标志。 面向对象开发技术的今天—核心基础 核心基础:组件技术、UML建模技术 组件技术:大型项目与系统的必由之路 ?需要支持多平台:SOA、ESB—连接组件 ?拥有大量组件:重用、MDA—快速、廉价集成组件 ?响应日益复杂的业务操作:EA(连通软件与业务的鸿沟)、PLE(处理产品线可变性)、反向工程(重用遗留系统) ?框架:J2EE、.NET等 独立与厂商的组件描述语言-

文档评论(0)

1亿VIP精品文档

相关文档