zoukankan      html  css  js  c++  java
  • 软件工程中的各种图

    CMM 能力成熟度模型:它是对于软件在组织定义,实施,度量,控制和改善软件过程的实践中对于各个发展阶段的描述。CMM的核心是软件开发视为一个过程。并根据这一个原则对软件开发和维护进行监控和研究,以使其更加科学化、标准化、使企业能够更好的实现商业目标。

     

    产生的原因:70%项目的失败不是由于技术原因导致的,而是由管理不善引起的。

     

    *********************************************************************

     

    UML(Unified Modeling Language,统一建模语言)是一种基于面向对象的可视化语言。

    它采用一组形象化的图形(如类图)符号作为建模的语言。使用这些符号可以形象的描述系统的各个方面。UML是通过建立图形之间的各种关系(如类之间的关系)来描述模型。

     

    UML图形一共有十种,分为静态模型图和动态模型图。其中静态模型图主要描述系统的静态结构,动态模型图主要描述系统行为的各个方面。

    静态模型图:类图、对象图、包图、组件图、部署图。

    动态模型图:用例图、时序图、协作图、状态图、活动图。

     

    *********************************************************************

    *********************************************************************

    具体图形介绍:

     

    1.用例图:也被称为用户模型图,是从软件的需求分析的到最终实现的第一步,它是从客户角度来描述系统功能的。它包含三个基本组件:参与者(使用系统的人或事物)、用例(代表系统的某项完整的功能,在图形中使用椭圆型表示)、关系(泛化关系、扩展关系、包含关系)

     

     

    扩展关系:如果一个功能在完成的时候,偶尔会执行另外一个功能,使用扩展关系表示。

    泛化关系:表示同一个业务的不同技术实现。其实就是继承关系的一种。

    包含关系:是指一个用例可以含有其他用例具有的行为。

    ——————————————————————————————————————

    2.类图

     类图是面向对象系统建模中最常用的,也是定义其他图的基础。它主要是用来显示系统中的类,接口及他们之间的关系。类图中包含的主要元素有类、接口、和关系。其中的关系有关联关系、泛化关系、依赖关系、实现关系。在类图中也可以包含注释和约束。

     

    类是类中的主要组件,有3部分组成:类名、属性和方法。

     

    接口的表示法:在UML中接口用一个带有名称的圆圈表示。并且通过一条实践与它的模型相连。也可以使用普通的类表示,但是要在上面要做声明。

     

    泛化关系:表示类与类,接口与接口之间的继承关系。

     

    依赖关系:对于两个相对独立的系统。当一个系统负责构造另一个系统的事例,或者依赖另一个系统的服务时。这两个系统之间体现为依赖关系。

     

    关联关系:对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定的事例存在固定的对应关系时,这两个系统之间的关联关系。关联关系中的关系可以有一个名称。

     

    关联关系包括:聚合关系、组成关系

     

    聚合关系:是一种特殊的更强形式的关联,它在逻辑上是部分和整体的关系。但 是不强调生命周期。聚合关系描述了一中“has a”的关系。即整体拥有部分。整体不在,部分可以存在。聚合关系使用空心的菱形箭头

     

    组合关系:它是更强的一种聚合关系,它强调生命周期。只有在整体存在的条件下,部分才能存在,如果整体不在,部分不能单独存在。整体拥有部分的生命周期。组成关系用实心的菱形箭头

     

    ——————————————————————————————————————

    3.时序图:时序图用于描述对象之间的传递信息的时间顺序。即用例中的行为顺序。当执行一个用例时,时序图中的每一条消息对应了一个类中操作或者引起转换的触发事件。时序图是一个而微大关系图。纵轴表示时间时间轴向下延伸。横轴代表协作中的各个独立对象。对象存在时。消息用从一个对象的生命线到另个对象的生命线的箭头表示。箭头以时间的顺序在图中上下排列。

    ——————————————————————————————————————

     

    4.活动图:活动图本质上就是流程图。它用于描述系统的活动,判定点和分支等。活动中的动作状态,原子的、不可已中断的动作。并在此动作完成后向另一个动作转变。分支与合并。分支在软件系统中很常见:用于表示对象类具有的条件行为。用一个布尔型的表达式真假来判定动作的流向,合并有两个如转换一个出转换。分支有一个如转换两个出转换。分叉与汇合:分叉又来描述并发线程。每个分叉可以有一个输入的转换和两个或多个输出转换。汇合代表两个或多个并发控制流的同步发生。当所有流都到达汇合点后,程序才能继续前进。泳道:泳道将活动图中的活动划分为若干组。并将每一组指定给负责这组活动的业务组织。在活动图中,泳道使用垂直的实线绘制。

     

    ——————————————————————————————————————

    5.状态图:状态图包括状态、转换、初始状态、终止状态。

     

    ——————————————————————————————————————

     

    6.协作图:也叫做合作图,是一种交互图。时序图主要侧重于对象之间的消息传递在时间上的先后关系。而协作图表达对象之间的交互过程及对象之间的关联关系。   

         

    ——————————————————————————————————————

     

    7.对象图:对象图是类图的实例,用于显示系统执行时的一个可能的快照。即在某一个时间系统上可能出现的样子,对象图用带有下滑线的对象名称表示对象。

     

    ——————————————————————————————————————

     

    8.组件图:组件图用来建立系统中各种组件之间的关系。各个组件通过功能组织在一起。JavaBeanejbjsp都是组件。在UML中,组件使用左侧有两个小矩形的矩形来表示。组件图用来设计系统的整个架构。

     

    ——————————————————————————————————————

     

    9.包图:由包与包之间的关系组成,包的图标就如同一个带标签的文件夹。

     

    ——————————————————————————————————————

     

    10.部署图:部署图是用来帮助开发者了解软件中各种组件驻留在什么硬件位置,以及这些硬件之间的相互关系。

     注:仍待修改

    参考:http://meiyitianabc.blog.163.com/blog/static/105022127201111573257290/

  • 相关阅读:
    pandas:由列层次化索引延伸的一些思考
    机器学习中的异常检测手段
    GBDT+LR算法解析及Python实现
    模型性能提升操作
    /usr/bin/python: can't decompress data; zlib not available 的异常处理
    FM算法解析及Python实现
    vue项目中的iview如何验证for循环的输入框、日期选择框,及表单回填验证不通过问题
    JavaScript的数组方法(array)
    Js中toFixed()方法保留小数不精准的问题
    vscode中iview的</Col>标签报错问题
  • 原文地址:https://www.cnblogs.com/sungyouyu/p/3590592.html
Copyright © 2011-2022 走看看