uml面向对象分析与设计内容摘要:
按数字键 显示按键号码 按发送键 连接基站 建立连接 连接成功 显示连接成功 102 协作图 协作图展现了一组对象,这组对象之间的连接以及这组对象收发的消息。 它强调收发消息的对象结构组织,按组织结构对控制流建模。 协作图中的协作不是参与者与系统之间的交互,而是系统内部某一个用例中各个对象之间信息传递的方式。 消息上所附编号指明执行顺序。 移动电话系统的协作图 : 移动用户 1: 按数字键 3: 按发送键 : 移动按键 2: 显示按键号码 : 移动显示 : 移动手机 : 移动基站 4: 连接基站 5: 建立连接 6: 连接成功 7: 显示连接成功 *RUP( Rational Unified Process统一开发过程 )的分析/设计工作流 分析和设计工作流的目的是研究欲采用的实现环境和系统构件的效用, 定义软件的组织结构,把需求获取结果转化为实现规格。 为实现这种转化,必须理解需求,采用最佳实现策略将其翻译为系统设计。 为此,首先是建立健壮的软件体系结构,设计出易于理解、开发和演进的系统,然后调整这个设计,使之适应实现环境。 最后结果是产生一个对象模型,即设计模型。 定义初始体系结构 [早期细化迭代 ] 分析行为 设计 实时构件 设计 数据库 设计构件 细化体系结构 [细化迭代 ] [可选 ] [实时 ] [非实时 ] 1) 定义一个初始的体系结构 建立一个初始的系统体系结构草图。 定义 一组初始的重要体系结构元素。 一组初始分析机制。 系统的初始分层和组织。 在当前迭代过程中处理的用例实现。 从重要的构件用例中确定类。 确定类之间的交互作用,修改用例实现。 2) 细化体系结构 建立从分析到设计的自然转移,并标识: 从分析元素中确定适当的设计元素。 从相关分析机制中确定适当的设计机制。 保持体系结构的一致性和完整性,确保: 将当前迭代中标识的新的设计元素与已有的设计元素集成在一起。 在设计中尽早地、最大限度地复用可获得的构件和设计元素。 描述系统运行的组织和实施体系结构。 组织实现模型以实现设计到实现无缝转移。 3) 分析行为 将用例提供的行为描述转变为一系列可作为设计基础的元素。 在分析行为时,主要注重于如何能够提供要求的功能,较少关心系统的非功能需求。 4) 设计构件 找出设计元素如何实现要求行为的细节,细化设计元素的定义。 根据新的设计元素来细化和更新用例实现。 当设计演进后,进行设计评审。 5) 设计实时构件 在实时的或交互式的上下文中,使用封装制品作为主要的设计元素。 设计实时构件与设计构件有相似的活动,但增加了封装设计活动,定义系统的并发控制线程和它们之间的协议。 6) 设计数据库 在设计中标识永久类并设计适当的数据库结构来存储永久类。 定义一种存储和检索永久数据的机制和策略,以满足系统的性能需求。 分析和设计工作流中的关键制品: 1) 设计模型 由类的协作构成。 这些类的协作可能集成为包或子系统。 包是对类的逻辑分组,是为了减少系统的复杂性。 2) 分析模型 是设计的抽象和泛化,它提供系统的功能描述,忽略了系统如何工作的细节。 3) 软件体系结构文档 涵盖系统不同的体系结构视图。 实现工作流 实现工作流的目的是 建立代码的分层结构; 从构件(源文件、二进制文件、可执行文件或其他文件)角度来实现类和对象; 对开发出来的构件进行单元测试; 将个人和开发团队开发的结果集成到可执行系统中。 单元测试仅对单个构件进行。 集成测试和系统测试在测试工作流中执行。 构造实现模型 集成每个子系统 集成系统 制定集成计划 实现构件 [可用于单元测试的构件 ] [可用于集成的 实现子系统 ] [针对这个 迭代过程 的更多的 系统构造 ] [针对这 个迭代 过程的 更多的 子系统 构造 ] [针对这个 迭代过程 的更多的 要实现的 构件 ] 实现模型是在细化阶段通过不断迭代,不断使用更大规模的集成构造建立起来的。 对于每一次迭代,要求做到: 1) 确定要实现哪一个子系统,以及在当前迭代中子系统的集成顺序。 2) 对于每一个子系统,确定实现每个类的顺序,以及子系统集成的计划。 3) 实现设计模型中的类和对象,包括编写源代码、改写已有构件、编译、链接和执行,及时反馈设计中可能的缺陷。 4) 修改有缺陷的源代码,进行单元测试以验证这些变更。 最后进行代码评审。 5) 指定专人负责将所有新的和已变更的构件集成为一个新的实现子系统版本。 在团队环境,集成将产生一系列构造,对每个构造由集成测试员进行集成测试。 6) 将发布的子系统集成到系统。 最终的构造即为系统。 由系统测试员进行系统测试。 实现工作流的关键制品有: 1) 实现子系统 构件和其他实现子系统的集成。 它是将实现模型细分为更小的部分,并使其构造化。 2) 构件 可以是一块程序代码,或是包含信息的文件。 构件可以由其他构件聚合而成。 3) 集成构造计划 定义构件和子系统的实现顺序,详细描述系统集成时要建立的构造。 实现与设计的关系紧密。 在设计元素和实现元素之间有非常明显的跟踪链接。 创建良好设计的原则 设计原则 1: 分治 软件系统分解为子系统 分布式系统可以分解为客户机和服务器; 系统可以分解为一系列子系统; 子系统可以分解为一个或多个包; 包可以分解为类; 类可以分解为方法。 设计原则 2: 尽可能增加内聚 不同内聚类型:优先级从高到低排序 7) 功能内聚 :模块只执行单一计算并返回结果,没有副作用。 如函数过程。 6) 层内聚 :相关服务放在一起,并有严格的层次结构,高层服务可访问低层服务,反之不可。 如分层结构。 5) 通信内聚 :访问或操作同一数据的过程放在一个类中,这些过程可以互相通信。 如某个类设计。 4) 顺序内聚 :存在一系列过程,其中一个过程向另一个过程提供输入,这些过程放在一起,形成顺序内聚。 如消息序列。 3) 过程内聚 :几个一次调用的过程放在一起,但其中一个过程的输出不一定是另一个过程的输入,形成过程内聚。 如调用结构。 2) 时间内聚 :程序执行过程中同一阶段内完成的操作放在一起,达到时间内聚。 1) 实用程序内聚 :逻辑上不能纳入其他内聚类型的相关实用程序放在一起,形成实用程序内聚。 如可复用的过程或类。 设计原则 3: 尽可能降低耦合 模块间存在相互依赖关系即为耦合。 不同耦合类型从高向低排列有: 9) 内容耦合 :一个构件在不被察觉的情况下修改另一个构件内部的数据,应始终避免。 8) 公共耦合 :一组构件使用了全局数据,就产生公共耦合。 应通过封装降低公共耦合。uml面向对象分析与设计
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。