欢迎来到天天文库
浏览记录
ID:38280916
大小:191.21 KB
页数:4页
时间:2019-05-31
《内聚耦合以及uml各图的关系》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、>>uml在软件开发各个阶段的应用:采用面向对象技术设计软件系统时,使用用例图来描述用户需求;使用类图、对象图、包图、构件图和部署图描述系统的静态结构;使用顺序图、合作图、活动图和状态图描述动态行为。抽象得到类、属性、方法;关系来描述;组织成类图。部署图:将来在现场如何实现的设备等。状态图:状态转换过程(状态机)。>>specificdiagramsforeachphase:--需求:用例图描述需求(角色、功能、外部交互)--分析:明确解决问题的细节类图来描述静态结构;顺序图、合作图、活动图、状态图来描述动态结构;--设计:给出解决方
2、案类图、包,对类的接口进行设计--实现:将类用某面向对象语言实现--集成与交付:构件图、包、部署图--测试·单元测试使用类图和类的规格说明书·集成测试使用类图、包、构件图和合作图·系统测试使用用例图来测试系统功能>>内聚类型内聚强度类型[从低到高]:(1)偶然内聚如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。(2)逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各
3、成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。(3)时间内聚如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。(4)通信内聚如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。(5)顺序内聚如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。(6)功能内聚模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。(7)信息内聚模块完成多个功能,各个功能都在同一数
4、据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。>>耦合类型一般模块之间可能的连接方式有七种,构成耦合性的七种类型。它们之间的关系为(由弱到强)非直接耦合(NondirectCoupling)如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。。数据耦合(DataCoupling)如果一个模块访问另一个模块时,彼此之间是通过数据参
5、数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。由于限制了只通过参数表传递数据,按数据耦合开发的程序界面简单、安全可靠。因此,数据耦合是松散的耦合,模块之间的独立性比较强。在软件程序结构中至少必须有这类耦合。印记耦合(StampCoupling)如果一组模块通过参数表传递记录信息,就是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该记录的结构,并按结构要求对此记录进行操作。在设计中应尽量避免这种耦合,它使在数据结构上的操作复杂化了。
6、如果采取“信息隐蔽”的方法,把在数据结构上的操作全部集中在一个模块中,就可以消除这种耦合。控制耦合(controlCoupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。耦合的实质是在单一接口上选择多功能模块中的某项功能。因此,对所控制模块的任何修改,都会影响控制模块。另外,控制耦合也意味着控制模块必须知道所控制模块内部的一些逻辑关系,这些都会降低模块的独立性。外部耦合(ExternalCoupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该
7、全局变量的信息,则称之为外部耦合。例如C语言程序中各个模块都访问被说明为extern类型的外部变量。外部耦合引起的问题类似于公共耦合,区别在于在外部耦合中不存在依赖于一个数据结构内部各项的物理安排。公共耦合(CommonCoupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。这种耦合会引起下列问题:1)所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。2)无法控制各个模块对公共数据的
8、存取,严重影响软件模块的可靠性和适应性。3)公共数据名的使用,明显降低了程序的可读性。[Page]公共耦合的复杂程度随耦合模块的个数增加而显著增加。如图4.14所示,若只是两个模块之间有公共数据环境,则公共耦合有两种情况
此文档下载收益归作者所有