软件工程---5.系统建模

从不同视角对系统建模

  1. 外部视角,上下文模型,对系统上下文或环境建模
  2. 交互视角,交互模型(功能模型),对系统与参与者或系统内构件之间的交互建模
  3. 结构视角,结构模型(静态模型),对系统的组成或系统处理的数据结构建模
  4. 行为视图,行为模型(动态模型),对系统的动态行为以及系统如何响应事件进行建模

UML同一建模语言

在这里插入图片描述

UML动态图
  1. 协作图
  2. 顺序图
  3. 状态图
  4. 活动图
UML静态图
  1. 用例图
  2. 类图
  3. 对象图
  4. 构建图
  5. 部署图

UML可以用于建立系统开发中的多种模型

功能模型用例图
对象模型类图,对象图
动态模型交互图(顺序图),状态图,活动图,协作图
其他构件图,部署图

在这里插入图片描述

交互模型(重点)

  1. 用例建模,系统与外部主体(人或其他系统)之间的交互,抽象层次高
  2. 顺序图,系统构件之间的交互,也可以包括外部主体,抽象层次低

用例建模

在这里插入图片描述
对于上图写出用例详述
在这里插入图片描述

用例图

在这里插入图片描述

参与者
  1. 与系统交互的外部实体(人,其他系统)
  2. 定义系统边界
标识参与者
  • 在标识参与者的初始阶段,很难将参与者与对象区别开 来,例如一个数据库可能是参与者,也可能是系统中对 象,可以通过确定系统边界的方式来确定参与者
  • 标识参与者的时候需要考虑
    • 本系统与哪些参与者交互(人,其他系统)
    • 哪些参与者完成系统主要功能
    • 哪些参与者完成系统次要功能(维护,管理)

标识用例

  • 场景是用例的实例
  • 用例可以说明这一功能下的所有场景
  • 用例大多由参与者启动
  • 用例贯穿系统事件的完整流程
用例详述的写法
  • 用动词短语命名,清晰

    • 用户登录,打印信息,搜索网页
  • 用名词短语对参与者进行命名

    • 用户,系统管理员,应用服务器
  • 系统边界应该是清晰的

    • XX客户端,需要对其功能范围非常清楚
  • 事件流中使用主动语态,指明谁完成这一步骤

    • 用户通过网银结算,将货款付到第三方支付机构
  • 事件流前后因果关系清晰

    • 用户打开播放器
    • 搜索本地视频文件
  • 应该描述一个完整的用户事务流程

  • 异常情况应该分别描述

  • 无需描述系统接口

    • 不需描述用户提交Web表单到服务器
  • 简洁,明了

示例

在这里插入图片描述

标识参与者与用例之间的关系

  1. 启动,参与者启动了该用例
  2. 参与,参与者参与了该用例

用例与用例之间的关系(牢记)

  1. 扩展,一个用例被定义为 基础用例的扩展
  2. 包含,包含其他用例的行 为,减少用例之间的冗余
  3. 继承,一个用例被泛化成 多个用例

顺序图

  • 顺序图主要用于对参与者与系统对象之间、系统对象自身之间的交互进行建模
  • 顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
  • 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件
示例

注意长方形里,每写一个要加冒号
在这里插入图片描述

顺序图四要素(重点)

在这里插入图片描述

  1. 示例或类元角色
  2. 消息流
  3. 对象生命线
  4. 注释

结构模型

结构模型描述系统构件以及它们之间的关系

类图

  1. 类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模手段
  2. 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象

类之间的四种关系(重点)

  • 关联、依赖、继承、实现
  • 而其中关联又有两种特例:聚合和组合
关联关系
聚合

在这里插入图片描述

组合

在这里插入图片描述

关联和依赖的区别

  1. 从类之间关系的强弱程度来分,关联表示类之间的很强的关系;依赖表示类之间的较弱的关系
  2. 从类之间关系的时间角度来分,关联表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。比如学生管理系统中的Student类和Class(班级)类,一个Student对象属于哪个Class是一个重要的业务关系,如果这种关系不保存,系统就无法管理。另外,**依赖表示类之间的是一种“临时、短暂”关系,这种关系是不需要保存的,**比如Student类和StuEditScreen(学生登录界面)类之间就是一种依赖关系,StuEditScreen类依赖Student类,依赖Student对象的信息来显示编辑学生信息。
  3. 依赖是类与类之间的连接,依赖总是单向的。依赖关系代表一个类依赖于另一个类的定义。依赖在代码中一般表示为方法的参数。
  4. 关联是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。给定一个连接两各类关联,可以从一个类的对象导航到另一个类的对象。关联可以有方向,即导航。一般不作说明的时候
  5. 导航是双向的,不需要在线上标出箭头。大部分情况下导航是单向的,可以加一个箭头表示。关联在代码中一般表示为属性(成员变量)。
  6. 设计类之间的关系是遵循的原则:首先判断类之间是否是一种“关联”关系,若不是再判断是否是“依赖关系”,一般情况下若不是关联,就是依赖关系。

聚合与组合

  1. 聚合关系也称“has-a”关系,组合关系也称“contains-a”关系。
  2. 聚合关系表示事物的整体/部分关系的较弱情况,部分的生命周期可以超越整体
  3. 组合关系表示事物的整体/部分关系的较强的情况,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的“部分”,是不能在整体之间进行共享的。
  4. 聚合关系中,代表部分事物的可以属于多个聚合对象,可以为多个聚合对象共享,而且可以随时改变它。所从属的聚合对象.代表部分事物的对象与代表聚合事物对象的生存期无关,一旦删除了它的一个聚合对象不一定也就随即删除代表部分事物的对象。
  5. 在组合关系中,代表整体事物的对象负责创建和删除代表部分事物的对象,代表部分事物只属于一个组合对象.一旦删除了组合对象,也就随即删除了相应的代表部分事物的对象

关联关系的强度:关联<聚合<组合。

泛化关系

在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间
在这里插入图片描述

实现关系

对应于类和接口之间的关系
在这里插入图片描述

总的来说,后四种关系所表现的强弱程度依次为:组合>聚合>关联>依赖

行为模型

数据驱动的建模

行为驱动的建模

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第1页。电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第1页。电大计算机本科 软件工程 形考作业2参考 电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第1页。 电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第1页。 面向对象设计强调定义(软件对象),并且使它们相互协作来满足用户需求。 (用例图)是从用户的观点描述系统功能,它由一组用例、参与者以及它们之间关系所组成。 (用例视图)用于描述系统的功能集。 UML 语言支持的建模方式不包括有(模块化建模)。 UML 中,包图是一种(分组机制)。 UML是一种(建模工具)。 UML是一种(交互式建模)语言。 类的属性结构要坚持简单的原则,尽可能不使用复杂的(数据结构)。 继承耦合是(控制类与界面类)之间的一种关联形式,设计时应该适当使用这种耦合。 包含关系用于构造多个用例(共性的部分)。 从本质上说,面向对象是"先"确定动作的(主体)"后"执行(动作)。 对象模型描述现实世 中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由(类图)实现。 功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由(用例图和场景描述)实现。 对象实现了数据和操作的结合,使数据和操作(封装)于对象的统一体中。 (继承)是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。 电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第2页。电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第2页。表示对象相互行为的模型是(动态模型模型。 电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第2页。 电大计算机本科-软件工程-形考作业2参考全文共2页,当前为第2页。 定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的(可维护性)指标。 反映收发消息的对象的组织结构,用于描述系统的行为是如何有系统的成分协作实现的是(合作图)。 确定角色是(用例模型)的任务。 如果说用例F被用例T扩展,意思是(F是一个一般用例,T是一个特殊用例)。 软件需求分析产生两个重要文档,一个是软件需求规格说明书,另一个是(概要设计说明书)。 下面建立功能模型的步骤哪个顺序是正确的(确定角色/确定用例/确定用例模型)。 在图书馆信息管理系统中,已经构造了一个读者类,后来发现图书馆的学生和教师在借书中有不同要求。请问在面向对象设计中用(继承)方法可以有效地设计这3个类? 用(界面类)描述系统与角色之间的接口。 对类进行详细设计,主要是设计类的(属性和方法),优化类之间的关系。 面向对象设计的步骤中,正确的顺序是(系统构架设计、用例设计、类设计)。 面向对象设计首先要进行高层设计:确定系统的总体结构和风格,构造系统的(物理模型),将系统划分成不同的子系统。 面向对象设计首先要确定系统的总体结构和风格,构造系统的(物理模型)。 在面向对象方法中,描述系统控制结构的模型是(动态模型模型。 在软件设计中应该保持模块的独立性原则,(耦合和内聚)反映模块独立性。 电大计算机本科-软件工程-形考作业2参考

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值