zoukankan      html  css  js  c++  java
  • UML 五步法:轻量级OOAD

    这个理论内容源自于我阅读的UML .Net 实战一书,这本书整本都在讲五步法的开发过程,因为他是以.Net 为背景编写的所以我想学习一下他其中的一些应用思想。这本书针对的UML不是2.0

    UML 五步法并不是适合于开发复杂系统的全功能的OOAD过程,他没有管理、测试、文档编制和审查功能,UML五步法适合于学习UML的框架过程。

    6,7,8,9,10章是细化每一个过程的特定章节。

    2009-11-26_132150

    image

    1.定义

    找出需求中的角色和域对象,并分别以参与者为核心去画用例图,再以域对象为核心画用例图

    以参与者为核心画用例图

     2009-11-26_163901

    以域对象为核心画用例图

    2009-11-26_163917

    Pen,是域对象

    2.细化

    为每个用例都建立一个场景(活动图)来详细地描述此用例做什么

    简单活动图有8个元素:初始状态、终止状态、活动状态、分支、归并、分叉和结合(一个线程变多个线程,多个线程合并为单个线程)。

    活动图中的活动可以包含子活动以对活动进一步描述。

    2009-11-26_193108

    2009-11-26_195107

    3.分配

     image

    将活动图划分泳道,就是在前期去分析,这些状态将会在那些类和组件部分去实现。这些类之间的交互,而每个泳道代表了这个组件。

    转换上的原型《》,实际其中的英文我认为完全可以用中文去说明:

    《invoke》:调用原型,代表在A类中使用了B类中的方法或者属性。

    《interrupt》:中断原型,表示A类中正常的运行中,来了事件中断了了A类,到B类中运行,结束后返回A类。

    《UI》:界面原型:指一个用户界面的操作活动。

    《return》:终止原型:代表调用终止中断结束了。

    《display》:显示原型:代表这个转换是显示内容到UI。

    image

    而这个带泳道的活动图,可以用顺序图代替,不过顺序图是线性的,而活动图可以表现非线性分支和循环并包含子活动,可以向下钻取更多逻辑活动。

    image

    但是在UML2.0中顺序图同样可以解决这些问题,EA工具中似乎是这样做的。

    4.设计

    image

    实际上他的这一步就是为系统定义一个组件图。但是他的根据是之前的泳道,或者是顺序图。

    向类图中添加接口(圆形),并分析此接口将要实现的操作,由那个组件来实现这个接口,并将这个接口定义成类图的接口。

    image 

    上面的接口类图定义

    image

    查找泳道,或者顺序图对象的方法调用,以分析依赖关系。

    这个所做的是体系结构的设计

     image

    5.重复和再次重复

    这个部分是为每一个组件创建类图,考虑每个类的属性和方法。

    类图的关联,一般可以理解为一个类包含在另一个类之中。

    类图的依赖,可以理解为using 和程序集引用。

    网关类

    image

     image

    再次细化,就是再执行5步

     image

    最后一步他是考虑的部署图

    image

    书签82页

    冯瑞涛
  • 相关阅读:
    引导用户关注公众号
    python计算两组数据的P值
    【style-resources-loader】自动化导入CSS
    【concurrently】前端工程化并行解决方案
    【已解决】K8s + Ingress + Nodejs代理服务报错:413 Request Entity Too Large
    Python定时任务框架APScheduler实战Demo
    前端团队codeReview规范以及流程
    Git使用关键理解
    Vue+ESLint+Git钩子函数pre-commit配置教程
    【MongoDB】查询字段对应的数组中包含某个值
  • 原文地址:https://www.cnblogs.com/finehappy/p/1611192.html
Copyright © 2011-2022 走看看