[面向对象程序设计] 第一章:入门介绍

为什么需要建模

  • 软件开发
    • 广义 : 用户需求分析, 程序设计, 编码, 部署等等
    • 狭义 : 单指编写代码的过程
  • 模型: 分析需求后得到的一种对软件系统的描述
    • 系统的抽象描述, 会忽略一些细节
    • 易于理解, 通过模型可以非常快速地理解软件系统
    • 一种高效的交流方式

有哪些建模方法可以使用

两类建模方法

  • 基于结构的方法
    • 数据 + 函数 (流程图 data flow diagrams)
  • 面向对象的方法
    • 面向对象 (UML图 Unified Modeling Language)

UML的基本元素

Views

不同视角下对软件系统的描述
在这里插入图片描述

  • Use Case View : 从软件的使用者的角度: 如何使用软件, 软件具有怎么样的功能
  • Design View : 从软件开发人员的角度: 软件系统具有哪些对象, 类, 他们之间的关系如何等等
  • Implementation View : 软件的源代码包含哪些文件, 这些文件之间的关系. (软件代码看作是软件设计的实现)
  • Deployment View : 软件系统如何部署到各种设备之中
  • Process View : 描述软件开发的整个过程. 从最初的需求分析到最后迭代

示例

在这里插入图片描述

  • 小人 : 角色 (actor), 与软件系统交互的人, 或者其它的软件系统
  • 椭圆形 : 用例 (use case), 用户使用软件系统时的一个具体情景

在这里插入图片描述

  • 箭头 : 依赖关系
  • .h文件· : 软件不同模块的接口
  • .cpp文件 : 是对头文件的实现

在这里插入图片描述

Diagrams

  • 框图描述的是底层系统模型的某个层次

  • 框图就像程序, 只是更抽象

  • 有些框图可以在多个视图中存在
    在这里插入图片描述

  • Class diagram : 类图

  • SateChart diagram : 状态图

  • 软件开发过程

    • 线性瀑布模型 (linear or waterfall model)
      • 需求分析(analysis) -> 设计(designing) -> 开发(development) -> 测试(testing) ->部署(deployment)
        在这里插入图片描述
    • 迭代模型 (iterative model)
      • 敏捷开发, 多次迭代, 及时反馈用户新的需求
        在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40996518/article/details/106292015