美文网首页
软件工程需求分析中的图们

软件工程需求分析中的图们

作者: WangEP | 来源:发表于2019-12-09 11:14 被阅读0次

    基础知识

    对象(Class)

    对象是指定义一类事务,比如我们在教学系统中可以定义学生这样一个事务。
    事务会有自身的一些属性,比如学生有姓名和学生ID。
    事务也可以有一些对外界的操作,如学生在选课系统中应当可以去选课查询退选等。
    和对象相对应的是实例。举个例子,学生张三,就是学生这样一个对象的实例。

    这个概念和对象类似,是更倾向于coding的一个描述。类的操作主要是

    • 操作数据
    • 执行计算

    类的关系主要有

    • 关联关系
      • A类中有B类作为成员变量
      • 用 1-------0…n表示
    • 聚合关系
      • 整体和部分
      • 整体和部分可以分开
    • 组合关系
      • 整体和部分
      • 整体和部分不能分开
      • 类似学生和学生证,学生删除后学生证无意义
    • 依赖关系
      • 某个类的方法使用另一个类的对象作为参数
    • 泛化关系
      • 表示类和类的继承
      • 箭头指向父类

    类的种类

    • 实体类 (负责保存信息,担当数据库的职责)
      • 需要保存信息的就是实体类
    • 边界类 (提供接口供操作)
      • 提供服务的就是边界类
    • 控制类(在实体类和边界类之间增加一部验证,提供两个方面的接口,增加系统鲁棒性)
      • 控制输入合法性的
      • 可以合在边界类中。
        举个例子:学生提交信息,信息保存的类就是实体类,学生填信息的那个网页就是边界类,检查学生信息正确与否(比如年龄应当大于0)的就是控制类。

    用例

    (其实这个应该放在类之前讲,但是用例你说你知道了,这里就粗略的过一下)
    用例 -> 系统可见的功能单元,即系统可以为用户做的事情。
    我们应当从系统的参与者中开始识别用例。

    用例也有三大关系(注意箭头形状和指向关系!!

    • include
      用例1 include 用例2 -> 用例1执行过程会用到用例2(如要查询信息就需要登录系统

      image.png
    • extend
      用例1 extend 用例2 表示用例2在某些情况下会用到用例1(注意和上面相反,箭头也是相反。(比如如果输入不合法提示错误

      image.png
    • 泛化
      抽象用例,比如支付可以是现金支付,也可以是网银支付。参与者之间也可以有泛化(管理员有普通用户的权限)


      image.png

    几种图

    首先我们要知道为啥要画图? -> 是为了更好的分析需求
    那分析(画图)的顺序是什么呢?
    -> 首先对用例建模(用例图)-> 根据用例找出分析类 -> 然后使用用例实现建模(用时序图表示用例的实现过程),从而发现每个对象的方法 -> 根据之前的建模建立类图 -> 如果用到数据存储,应当建立E-R图 -> 如果需要描述对象的状态变化,则需要状态图

    用例图

    这里需要做的就是

    1. 确定用例有什么(按照上面说的用例的定义来确定,根据参与者)
    2. 找用例之间的关系(上面三种,注意箭头形式和指向!!
    3. 根据参与者画出用例图。


      image.png

    用例图画完我们仍然需要进行用例描述。即说清楚这个用例要干什么。

    主要包含,用例名,编号,前置条件,后置条件,事件流

    前置条件:这个用例需要满足什么条件?(如查看信息需要检查是否登陆)
    后置条件:用例执行完成怎么样?(如更新信息,如果更新成功就更新页面,否则不变)
    事件流:包含基本流和扩展流
    -> 基本流:用例的执行过程描述,如对登陆系统((1)系统提示用户输入用户名和密码。(2)用户输入自己的用户名和密码。(3)系统验证用户名和密码,用户登录系统成功)
    -> 扩展流:可能会出错的流程,如上面如果用户名和密码无效,系统提示错误信息,用户可重新输入或停止。

    完成这一切之后,就要进行分析类的划分。划分见前面关于类的描述。基于那个概念很容易进行划分。

    时序图

    时序图是什么?
    其定义了对象(类)之间交互关系的模型,并按照交互的时间顺序来确定,上面我们画出了用例图和作出了用例说明,根据这个来画出时序图:
    一个标准的时序图如下:

    image.png

    上面是上一步分析出的类(实体,边界,控制)下面是执行操作的时间流程(注意:一个用例画一个这样的时序图)上面这个图是针对打印这个操作的时序图

    类图

    这个主要是根据之前找到的类的种类,根据上面提到的类之间的关系,画出类图。


    image.png

    这是一个典型的类图(这部分考察不多,因为牵涉到数据库的部分了,如果你需要你再说)

    E-R图 (这个是数据库中的概念,软工一般不会考察)

    状态图

    状态图的核心是状态的转换,即通过事件/动作,从一个状态转变为另一个
    状态主要包含

    • 内部动作(这个状态会做什么)
    • 入口动作(做什么会进入这个状态)
    • 出口动作(做什么会离开这个状态)
      如:


      image.png

    相关文章

      网友评论

          本文标题:软件工程需求分析中的图们

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