美文网首页Android架构设计学习
Use Case @ Software Development介

Use Case @ Software Development介

作者: a1c39d1714f9 | 来源:发表于2017-03-07 13:27 被阅读60次

      简化的酒店系统有顾客屏幕,职员屏幕,订房,入住,离店,订单和房间7个组件,箭头标示了组件间的依赖关系.这是软件开发中用组件化来划分复杂系统,隔离复杂度到各个组件里的标准姿势.

    1. 简化的酒店系统

      姑且把系统外对系统的关注点(Concern)称为痛点,下图2显示订房间,登记入住和结单离店3个痛点分别缠绕若干个组件,同时有些组件内部也同时分散着多个痛点的部分.

    2. 痛点和组件间的聚散离合

      倘若渴望的目标是清楚地分离各个痛点,从用例,需求,分析,到设计,实现,再到测试都是严格的分开,软件开发要来得容易多了.

    3. 痛点与组件(类)矩阵示意

      在痛点与组件实现类之间架一座桥,叫做用例.这里所说的用例是用来对系统行为建模,一个用例的定义是某个系统进行的一系列活动,产出可观测到的结果,并且这个结果对一个或者多个系统相关的人或物是有价值的.

    4. 用例作为痛点和组件类之间的桥梁

      用例与类清单如下所示,订房,入住和离店3个用例,顾客屏幕,职员屏幕,订房,入住,离店,订单和房间7个类.

    5. 简化酒店系统的用例和类清单

      以类为横坐标,用例作纵坐标,模块化设计系统的可选方式有两种,OO(Object-Oriented)为代表的纵向切割系统,每个组件一个类,另一种是横向切割,AO(Aspect-Oriented)是代表,每一组横向切片打包合称为用例片断(Use Case Slice).

    6. 用例-类坐标图

      任何一个用例,如订房,在软件开发过程中用例,分析,设计,实现,测试阶段都分别有对应的用例片断.把一个用例对应的所有用例片断合在一起,称为用例模块(Use Case Module).比如分析建模或设计建模的用例片断会囊括该用例的所有类,一些类里相关的部分成员(变量或方法)称为Aspect,还包括交互图,通讯图和类图这些描述用例实现的协作.

      用例的表示有3个场景:最简洁的是一个椭圆+名字,矩形同时显示用例名和它所含的活动序列(基本序列,备选序列,和子序列),还有一种就是在系统中和其它用例的关系结构.订房用例的图示,在系统关系图中,为订房用例归纳抽象出设施预定的用例,订房用例继承它,同时抽取3个用例共同部分检查房间情况的子用例,然后分别包含,在没有合适的房间时,为订房扩展新的排队列表用例.用例间的关系就这3种:归纳抽象,包含和扩展.

    7. 订房用例椭圆简图 8. 订房用例矩形图 9. 订房用例及其所在系统示意

      关于用例间的归纳,包含关系和OO里类间继承,包含类似,扩展的概念不是很好对应,这个主题也内容也比较多,可参阅"Aspect-Oriented Software Development with Use Cases"一书.此文有意回避这部分,可简单粗暴地理解为订房用例把排队完全外包给另一个用例了.

      用例就像硬币,从系统外部看有一个相关方actor连着一个命名的实线椭圆就够了,从系统内部看去,用一个命名的虚线椭圆再连上与它关联的所有类或类的部分,这两个视角分别称为用例和用例的实现.

    10. 外部看用例和actor 11. 用例和它的实现示意 12. 订房用例的实现

      描述订房用例实现的交互图,用例片断图,以及用例片断间的抽象归纳,包含和扩展关系.

    13. 用例交互图 14. 订房用例片断图 15. 从订房用例归纳抽象出设施预订用例 16. 订房用例包含检查房间情况用例 17. 订房用例与酒店管理用例的扩展关系

      开发过程中用例的迭代建模过程如下:细化用例阶段更新用例模型,分析阶段更新分析模型,设计阶段更新设计模型,实现阶段更新实现模型.而测试设计片段覆盖前3个,测试实现片断覆盖测试设计和用例的实现

    18. 软件开发阶段及对应的迭代更新 19. 用例模块和它所含用例片断 20. 用例间关系及其在用例模块图里的表示 21. 用例模块的打包编译配置

    相关文章

      网友评论

        本文标题:Use Case @ Software Development介

        本文链接:https://www.haomeiwen.com/subject/aomugttx.html