博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python day 17: UML(统一建模语言)

Posted on 2019-10-25 15:38  bluestarpin  阅读(514)  评论(0编辑  收藏  举报

python day 17

  1. UML:unified modeling languages,是一种基于面向对象的可视化建模语言。

  2. 画图语言:画图要合理。即符合逻辑。

  3. 历史:
    3.1. 软件功能越来越强大,导致不可维护性,出现了软件危机,国际组织,召集了50个顶尖程序员解决这个问题。
    3.2. 软件工程:用工程学的方法论来指导软件开发,目的是来解决软件危机。
    3.3. 按照工程学的角度,最重要的一步就是建模。
    3.4. 建模:建立模型。图纸+沙盘。模型分为很多种角度。
    3.5. 在中国,软件的大多数消费者是政府。政府采购计划有保护政策。

  4. 软件公司人员构成:
    4.1. 系分:系统分析员
    4.2. 项目经理(pm):外国的项目经理都是经验丰富的。外国可以做一辈子开发。外国生活成本小,中国生活成本大,中国的程序员浮躁,经常跳槽。主要负责项目协调,沟通能力很强。
    4.3. leader组长:管理经验要丰富。
    4.4. 业务咨询:在中国,往往比程序员工资要高。
    4.5. 开发人员
    4.6. 设计人员:全程参与项目。
    4.7. 业务人员
    4.8. 测试人员
    4.9. 技术顾问

  5. cmm: capability maturity model。能力成熟度模型,印度提出来的。

  6. 三类企业的划分:
    6.1. 一类企业:卖标准,ajb, j2ee.
    6.2. 二类企业: 卖产品,
    6.3. 三类企业:做项目,

  7. 软件工程的生命周期---瀑布模型:使用软件工程指导软件开发,有优点,也有缺点。
    7.1. 生命周期的图示:软件生命周期
    7.2. 五个阶段
    7.2.1. 需求分析:价值最高。
    7.2.1.1.问题定义:要做什么样的系统,目标是什么?
    7.2.1.2. 可行性研究:
    时间可行性:限定时间内能开发出来吗?
    经济可行性:对方出得起我想要的钱吗?
    技术可行性:技术上能实现吗?
    7.2.2系统分析和设计:价值第二高。
    技术含量比较高,有经验的人才能胜任。
    概要设计
    详细设计
    7.2.3. 写代码:coder
    7.2.4. 测试:也是有技术含量的。但不到专业程度,就没有技术含量。调试就量在测试。单元测试。都是在提高软件的健壮性。
    单元测试,白盒测试,能看到源码来测试的。
    集成测试,墨盒测试,看不到源码的。
    冒烟测试,
    压力测试,大流量压力,loadrunner,ab|apache
    7.2.5. 维护:纠错性维护和改进性维护。
    7.3. 瀑布模型:依赖性强
    缺点:慢
    7.4. 真实的项目是怎么运作的?真实的项目是怎么运作的?

  8. 软件生命周期---RUP(统一软件开发过程)
    统一软件开发过程(Rational Unified Process,RUP):一个通用的软件流程框架,以架构为中心,用例驱动的迭代化开发流程。对于实现的项目有很强的指导意义。
    RUP用二维坐标来描述。横轴通过时间来组织,是过程展开的生命周期特征,体现开发过程的动态结构;纵轴以内容来组织,体现开发过程的静态结构。
    RUP

四个阶段:
初始阶段:主要人员是项目经理和系统分析师,主要任务是系统可行性分析,创建基本的需求,识别系统的关键任务。
细化阶段:主要目标是创建可执行的构件基线,精化风险评估,捕捉大部分的系统功能需求用例,为构造阶段创建详细需求。主要就是展现用户所期望的需求。
构造阶段:完成所有的需求,分析和设计,该阶段的制品将演化成最终系统。
交付:将完整的系统部署到用户所处的环境中。
RUP是不断迭代的。
RUP分为6个核心过程工作流和3个核心支持工作流。
OOP(面向对象编程):OOA(面向对象分析),OOD(面向对象设计)。
建模的原则:
正确的模型
使用者的身份和使用的原因是评判模型好坏的关键。
必须保证简化过程不掩盖关键问题。
学uml的目标:
能看懂产品经理或系统分析设计人员画的图 。
UML中的图:
静态模型图:描述系统的静态结构的。
用例图:use case diagram
用例图(use case diagram):也称为用户模型图,是从客户的角度来描述系统功能。是第一步。
参与者(Actor):与系统打交道的人或其他系统即使用该系统的人或事物。用人形图来表示参与者。
用例(use case):代表系统的某项完整的功能。在UML中用一个椭圆表示。
关系:定义用例之间的关系。-----泛化关系,扩展关系,包含关系。
关联关系:角色与用例之间的关系。用户有用户登录功能。
泛化关系,即父类与子类的关系。
扩展关系,extend,用户验证密码失败可以找回密码功能。
包含关系:include,虚线箭头连接,实行此功能的先决条件。
类图 class diagram
定义:
类图是面向对象系统建模中最常用的图,是定义其他图的基础。
类图主要用来显示系统中的类,接口,以及它们之间的关系。
类图

    类图包含的主要元素有类,接口和关系,其中关系有关联关系,泛化关系,依赖关系,实现关系。在类图中也可以包含注释和约束。
    类是类图的主要组件,由类名,属性,方法3部分组成。UML中属性和方法是可选的。

    UML中公有用+,私有用-,保护类型用#表示,但是软件工具可以自定义。
    UML中类图的关系:
        关联:强调的是实体之间有一定的数量上的对应关系。
            图示:

关联

关联的多重性

        聚合:不强调生命周期,但是强调整体和部分。

聚合

        组成关系:

组成关系

            代码中实现聚合与组成:

代码实现聚合与组成

        泛化:在UML中,泛化关系是用来表示类与类,接口与接口之间的继承关系。泛化关系有时也称为"is a kind of "关系。就是类的继承。用一条实绩空心箭头由子类指向父类。

泛化

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

依赖

        实现:类与接口之间的关系,由类指向接口。有两种表现形式,取决于接口的表现形式:

实现一

实现二

            接口在UML中一个带有名称的圆圈表示,并且通过一条实绩与它的模型元素相连。有时候接口也使用普通 类符号表示。

动态模型图:描述行为的。
    时序图:用于描述对象之间传递消息的时间顺序,即用例中的行为顺序。
            图一:

时序图

            图二:

时序图二

        基本概念:

基本概念一

基本概念二
一个例子:
例子

    活动图本质上就是流程图。它用于描述系统的活动,判定点和分支等。通常描述方法内部的调用过程。
        基本概念:
            图一:

活动图

            图二:

活动图2

        例子:

例子

    状态图:通过建立对象的生存周期模型来描述对象随着时间变化的动态行为。
        基本概念:
                图:

基本概念

                图:

例子

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

协作图

    对象图:
        例子:

对象图

    包图:
        基本概念:

包图

    组件图:
        基本概念:

组件图

    部署图:
        基本概念:

部署图