用例与面向Aspect软件开发-图解1

    软件系统复杂,分而治之,每个部分就叫组件。组件对内隐藏职责的实现细节,对外通过接口和系统其他部分交互满足自己的目标。基于组件的软件开发就是在理解系统将要做什么后,捋出需求,把需求全都映射到组件,设计实现和测试配置发布。假定一个酒店管理系统,组件如下图:为顾客和员工提供的功能组件有订房,入住和离店。顾客屏幕和员工屏幕展示信息,预订和房间组件维护在数据存储中的信息。

1-1 酒店管理系统的组件

    基于组件开发的软件系统可以从2个维度理解,横向维度是系统能完成的功能点和纵向组件。一个功能点通常跨越多个组件,而每个组件通常也是承载多个功能点的部分实现。


1-2 组件的缠绕和分散

    上图三个功能点,订房间,入住客人和客人离店,每个功能点都横跨多个组件,称为tangling缠绕,一个组件包含有多个功能点的部分称为分散scattering. 功能点的实现在组件里没有严格分离,扩展系统的时候,扩展的组件也不能完全从要扩展的组件完全隔离开来。


2-3 含认证和排队扩展的预定

    系统增加排队排队功能,顾客订房功能若没有满足条件的房源是进入列表排队。扩展的排队列表组件对订房组件扩展,多少要在订房组件某个地方插入些代码,称为侵入式代码。系统加入新功能点,这种侵入式代码让人异常痛苦。

    英文concern表示系统需要提供的功能点也称痛点,requirement则指系统内部需要实现的点. 功能点(痛点)表示软件系统外部对系统的关注点,需求表示软件系统内部一个开发环节,对每一个功能点(痛点)的需求,分析,设计,实现,测试,发布,配置环节都分离到完全独立的模块里,是本书介绍AOSD想要的效果,所有独立的功能点(痛点)模块最后通过组合机制合成一个可执行的运行程序。

    用例技术能帮助痛点在开发过程的分离与组合。


1-4 扩展,扩展点和扩展集



1-5 序列光栅


1-6 扩展用例排队列表


2-1 类与痛点矩阵


2-2 预定操作


2-3 含认证和排队的预定操作


3-1 酒店管理系统的用例


3-2 从用例到类


4-1 元素结构和用例片段


4-2 酒店管理系统的用例和类


4-3 组合点用例实现的用例片段


4-4 扩展用例


4-5 组合基本用例和扩展用例的实现


4-6 迭代式组合用例模块
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近再看阮一峰的一篇博客提到了一本书《Software Architecture Patterns》(PDF),写...
    卓_然阅读 7,889评论 0 22
  • 2019年2月17日 星期日~天气:多云 亲子日记~215 每个人的成长过程中都会经历一段叛逆期,我一直认...
    翟婧婷爸爸阅读 1,896评论 5 41
  • 生活重新开始很难 旧物 旧友 旧习 旧喜 可丢 可断 可改 可换 可失忆需强力物理刺激带来的脑组织损伤才做到 很不...
    廖峻毅阅读 178评论 0 0
  • 朋友,你好! 朋友你在我心里 朋友我在你眼里 我陪的朋友,可愿 一直都在,不会忘记 不语言行,心照不宣 ...
    xiaorui瑞阅读 251评论 0 0
  • 辉姐喝了一年道田青汁,比3年前还年轻了,气色更好了。
    香香的玫瑰阅读 293评论 0 0