AOSD中文版:基于用例的面向方面软件开发

AOSD中文版:基于用例的面向方面软件开发
作 者: 雅各布森 黄邦伟
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件开发
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  IvarJacobson博士,是许多技术“之父”,这包括组件及基于组件的软件架构,用例,现代业务工程,以及Rational统一过程。他还是统一建模语言(UML)的三位创始之一。同时他也是关于这些方法和技术的五本畅销书籍的作者,以及两本关于UML的引领性书籍的合著者。Ivar博士是JacobsonAB公司的创始人,在该公司他与其女儿、合作者AgnetaJacobson共同开发一套开创性的新产品,它将包括支持软件开发的智能代理。同时他还是IvarJacotsonConsulting公司(IJC)的创始人,其目标是向全世界的开发团队推广优秀的软件开发实践。Pan-WeiNg博士,在IvarJacobsonConsulting公司(IJC)扮演了多个角色。Pan-Wei博士负责针对软件架构、用例、迭代开发、方面技术等相关技术的最佳实践定义、开发相关素材。这些工作通常要基于实践进行,才能够确保归纳的最佳实践切实、实用。Pan-Wei博士还积极地和客户一起工作,以确保这些公司和项目团队能够快速、安全地采用这些最佳实践。

内容简介

本书系统阐述了面向方面软件开发(AOSD)方法,AOSD的目标是通过使系统的功能需求、非功能需求、平台特性等诸多不同的关注点相互独立,实现更好的模块化,来构建出易于理解、易于扩展、高复用性、高质量的软件系统。AOSD将用例技术和面向方面技术有机结合在一起,为软件开发提供了一个切实可行的最佳实践集。本书还系统阐述了用例技术、AOP(面向方面编程)技术的特点和使用方法,以及实现用例与AOP结合使用的用例模块、用例切片等技术。并且通过一个现实世界中常见的“酒店管理系统”来展示了如何在项目实践中高效地应用AOSD方法。作者见解独到、精辟,不仅阐述了理论知识,还详尽说明了如何在项目的不同阶段中应用AOSD技术。这本书对于项目经理、系统分析员、系统设计师及广大开发人员,都具有很高的实用价值。本书前言译者序2000年以前,笔者在软件需求实践中,一直对如何有效地标识、组织、管理用户的需求感到十分的困惑。纷繁复杂而且拖沓冗长的“软件需求规格说明书”似乎一直没有起到它应该起的作用,如何才能够使得用户和开发团队之间建立更好的需求沟通呢?IvarJacobson先生提出的“用例驱动方法”让我找到了解决的方法。它使我们站在“用户的视角”来观察“将要开发的系统”,通过对零散的软件需求进行合并,抽象出参与系统的不同参与者(Actor),将一系列的使用场景进行抽象形成“用例”,从而清晰地勾勒出系统的框架模型。这样总结出来的需求,往往能够与用户产生共鸣,让笔者在实践中也获益匪浅。然而不久,第二个困惑又摆在了眼前,如何在“用例模型”(分析模型)的基础上进行设计呢?在从“用例描述”到“顺序图”、“活动图”的转换中,一直感到力不从心。所幸的是,Ivar先生提出的“Robustness分析方法”又让我走出了这块新的沼泽。通过控制类、边界类,以及简明、随意的Robustness图,使这种转换变得streamline(流线型)起来。遗憾的是,UML对Robustness图的舍弃,不知对多少实践者带来了这种困难。但当我对“用例驱动方法”应用得越来越自如的时候,又遇到了新的困惑。在实际的系统分析和设计实践中,我突然发现类、组件与用例之间的对应关系是交错的。也就是一个用例可能会涉及多个类或组件,而一个类或组件也可能参与了多个用例。这种交错与缠绕一度让我一度感到心力交瘁。我们刚刚通过用例实现的“松耦合”设计,却又在具体到类的层面、实现的环节再次“耦合”在一起...

图书目录

序 xvii

致谢 xxxi

第1篇用例和方面的应用实例

第1章要解决的问题 3

1.1组件现在的用途 3

1.1.1使用组件构建系统 4

1.1.2组件的益处 6

1.2组件的局限性 6

1.2.1无法使对等关注点相互分离 8

1.2.2无法使扩展相互分离 9

1.3寻求解决方案 11

1.3.1对于扩展的早期支持 12

1.3.2UML对扩展的支持 15

1.4使关注点保持分离 16

第2章使用方面技术来解决问题 17

2.1使用方面技术寻求解决方案 17

2.2基于方面技术使对等关注点保持分离 19

2.3基于方面技术使扩展保持分离 21

2.4方法学指导的需要 26

第3章现在基于用例 29

3.1用例概述 29

3.2用例驱动开发 32

3.3用例的角色和益处 34

3.4用例技术的缺口(gap) 34

3.5基于方面来填补缺口(gap) 35

第4章将来基于用例模块 37

4.1通过叠加用例切片来构建系统 38

4.2使对等用例保持分离 40

4.3使扩展用例保持分离 42

4.4基于用例模块开发 45

第2篇基于用例捕获关注点并建模

第5章基于用例对关注点建模 51

5.1用例建模 51

5.2用例实例和事件流 53

5.3用例描述 54

5.4用例事件流的可视化 57

5.5总结与强调 60

第6章用例结构化 61

6.1用例关系 61

6.2用例扩展关系 63

6.3用例包含关系 70

6.4用例泛化 73

6.5公共用例 77

6.6总结与强调 79

第7章基于用例捕获关注点 81

第3篇基于用例模块实现关注点分离

第8章基于用例切片使对等用例保持分离 105

第9章基于pointcut使扩展保持分离 127

第10章基于用例模块构建系统 145

第4篇基于用例和方面建立架构

第11章通往弹性软件架构之路 167

第12章基于对等的应用用例使功能需求保持分离 187

第13章基于应用-扩展用例使功能需求保持分离 213

第14章基于基础结构用例使非功能需求保持分离 239

第15章基于平台相关用例切片使平台特性保持分离 263

第16章基于用例测试切片使测试保持分离 301

第17章架构评估 319

第18章架构描述 339

第5篇在项目中应用用例和方面

第19章运作一个项目 357

19.1迭代式开发 357

19.1.1项目中的阶段 358

19.1.2迭代中的活动 359

19.2估算开发工作量 359

19.2.1在项目之初进行估算 360

19.2.2对估算进行提炼 362

19.3项目的计划和监控 363

19.3.1项目延误估算 363

19.3.2使项目跟上进度 364

19.4保持关注点分离带来的生产率提高 365

19.5总结与强调 367

第20章方法剪裁 369

20.1实现正确的平衡 369

20.2选择应用的科目 370

20.3在项目的不同阶段采用 373

20.4总结与强调 374

第21章方面与超越 375

21.1在扩展(Extensions)上构建系统 375

21.2均衡各种最佳实践 376

21.3未来之路 377

附录A使用UML对方面和用例切片建模 379

附录B符号指南 387

参考文献 395

术语表 399

索引 407