【软件工程中的各种图】

1 、用例图( use case diagrams

【概念】描述用户需求,从用户的角度描述系统的功能

【描述方式】椭圆表示某个用例;人形符号表示角色

【目的】帮组开发团队以一种可视化的方式理解系统的功能需求

【用例图】

2 、静态图 (Static diagram)

(1) 类图( class diagrams

【概念】显示系统的静态结构,表示不同的实体是如何相关联的

【描述方式】三个矩形

【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体

【类图】

(2) 对象图( object diagrams

【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系

【对象图】

3 、交互图 (Interaction Diagram)

用来描述对象之间的交互关系

(1) 序列图(顺序图) (Sequence Diagram)

【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序

【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开

【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。

【序列图】

(2) 协作图( Collaboration diagrams

【概念】描述对象之间的合作关系,侧重对象之间的消息传递

4 、行为图 :描述系统的动态模型和对象之间的交互关系

(1).状态图(Statechart diagrams)

【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移

【描述方式】

  1. 起始点:实心圆
  1. 状态之间的转换:使用开箭头的线段
  2. 状态:圆角矩形
  3. 判断点:空心圆
  4. 一个或多个终止点:内部包含实心圆的圆

【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程

(2). 活动图( Activity diagrams

【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系

【描述方式】

  1. 起始点:实心圆
  1. 活动:圆角矩形
  1. 终止点:内部包含实心圆的圆
  1. 泳道:实际执行活动的对象

【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程

【活动图】

活动图和状态图区别:

5 、实现图 Implementation diagram

(1) 构件图( Component diagrams

【概念】描述代码构件的物理结构以及各构件之间的依赖关系

【描述方式】构件

【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构

【构架图】

(2) 部署图( Deployment diagrams

【概念】系统中硬件的物理体系结构

【描述方式】

1三维立方体表示部件

2节点名称位于立方体上部

【目的】显示系统的硬件和软件的物理结构

【部署图】

九种UML图详解到此为止。

UML 中类间的关系

类与类之间的关系通常有 4 种,即依赖关系( Dependency )、泛化关系( Generalization )、关联关系( Association )、实现关系( Realization

1, 依赖关系( Dependency

【概念】表示两个或多个模型元素之间语义上的连接关系

【绘图方式】虚线箭头,箭头指向被使用者

【依赖图】

2, 泛化关系(继承)( Generalization

【概念】描述类的一般和具体之间的关系,描述的"is a kind of "的关系

【绘图方式】实线空心三角箭头,箭头指向父类

【继承方式】

  1. 单继承

一个类只有一个父类

  1. 多继承

一个类可以有多个父类,可以从每一个父类中获得允许继承的信息

【泛化图】

3. 关联关系( Association

【概念】表示一个事物的对象与另一个事物的对象之间的语义上连接,简单的理解为两个类或类与接口之间的强依赖关系

【绘图方式】实线箭头,双向箭头或无箭头

【包括】

1 聚集

【概念】描述的是部分与整体关系,描述了"has a"的关系,部分离开整体可以单独存在

【绘图方式】空菱形的实线,头部指向整体

【聚集关系图】

2,组成

【概念】一种更强形式的关联,在整体中拥有管理部分特有的职责,也被称为强聚合关系,部分不能脱离整体存在

【绘图方式】实菱形的实线,头部指向整体

【组成关系图】

4. 实现关系( Realization

【概念】将一种模型关系与另一种模型关系连接起来,从而说明和其实现之间的关系,简单的理解为一个类或多个类实现一个接口

【绘图方式】封闭空箭头的虚线,箭头指向接口

【实现关系图】

泛化和实现关系的区别:

泛化关系是指同一语义层的元素连接起来,通常在同一模型内;实现关系将不同语义层内的元素连接起来,通常在不同模型内。

UML 的视图

相信大家都知道UML的全称,统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

我想问大家两个问题:

一、什么是模型?模型是对现实世界的形状或状态的抽象模拟和简化。

二、为什么要建模?最简单的理由:为了能够更好地理解正在开发的系统。通过建模,可以达到四个目的:

1、有助于按照需求对系统进行可视化的分析

2、能够系统的结构或行为

3、给出了知道构造系统的模板

4、对做出的决策进行文档化

本文是我们主要介绍UML的七种视图,所谓一张图胜于千言万语,我们就用图来介绍UML的视图:

第一张图:总体的给大家一个影响,UML的七种视图。

第二章图;详细的讲解每个视图。

UML的七种视图各有各自的特点,各自有各自的作用。只有正确的认识七种视图才能对UML的九种图进行更加详细、深入的学习。UML的九种图是七种视图的具体表现形式。

实体-关系图

  1. 数据对象
  2. 属性
  3. 关系
    学生成绩管理系统

数据流图

1、数据流图的基本符号

2、数据流图的附加符号

  • * 表示数据流之间是"与"关系(同时存在)
  • + 表示数据流之间是"或"关系
  • ⊕ 表示只能从几个数据流中选一个(互斥关系)

3、画数据流图的步骤

  • 画顶层数据流图
  • 画分层数据流图
  • 画总的数据流图

4、几点注意事项
画学生成绩管理系统的数据流图。

状态转换图

  1. 什么情况下要画状态转换图

  2. 状态转换图的符号

画出数据结构中"栈"对象的状态转换图。

IPO 图

输入/处理/输出(Input Process Output )图的简称。
画出学生成绩管理系统的 IPO 图。

层次图(或HIPO图)

结构图

  1. 结构图的符号
    (1)方框代表模块,框内注明模块的名字和主要功能。
    (2)方框之间的大箭头或直线表示模块的调用关系。
    (3)带注释的小箭头表示模块调用时传递的信息及其传递方向。
    尾部加空心圆的小箭头表示传递数据信息。
    尾部加实心圆的小箭头表示传递控制信息。
    (4)选择结构
    (5)循环结构,模块 H 循环调用模块 A,B,C

学生成绩管理系统的结构图

结构化方法

结构化方法又称面向数据流设计方法(Structured Design,SD)。

设计步骤是先根据系统数据流图建立系统逻辑模型,再进行结构设计。

  1. 建立系统逻辑模型

(1)变换型数据流

(2)事务型数据流

  1. 完成软件结构设计

面向数据结构设计方法

Jackson 把数据结构(或程序结构)分为

三种基本类型 :(a)顺序 (b)选择 (c) 循环

Jackson 图特点:

  • 能对结构进行自顶向下分解,可以清晰地表示层次结构
  • 结构易读、形象、直观
  • 既可表示数据结构也可表示程序结构

Jackson 设计方法的四个步骤:

1、分析并确定输入数据和输出数据的逻辑结构;

2、找出输入数据结构和输出数据结构中有对应关系的数据单元;

3、从描述数据结构的Jackson 图导出描述程序结构的Jackson 图;

4、列出所有的操作和条件,并把它们分配到程序结构图中去。

用Jacksan方法对学生成绩管理系统进行结构设计。

学生成绩管理系统在学生入学时输入学生基本信息。
每次单科成绩是按班级内学生学号的顺序依次输入每位学生的平时成绩和考试成绩,然后由计算机计算每位学生的单科成绩总评分。
班级各科成绩汇总。

过程设计

过程设计就是用顺序、选择和循环三种结构的有限次组合或嵌套,描述模块功能的实现算法。
过程设计阶段的工具:流程图、N_S图、问题分析图(PAD图)、
判定表、判定树、过程设计语言(PDL)等。
流程图

  1. 流程图的分类
    (1)数据流程图


(2)程序流程图


(3)系统流程图


(4)程序网络图
(5)系统资源图
2. 流程图符号

3. 流程图使用约定

  1. 流程图的三种基本结构:顺序、选择、循环。

盒图

盒图是Nassi和Shneiderman提出的,又称N_S图。

  1. 盒图的符号

将下述含有GOTO语句的用程序流程图,改为N_S图。

学生成绩管理系统的 N-S 图。

PAD 图
基本符号

学生成绩管理系统的 PAD 图

判定表

  1. 判定表的组成
    左上部列出所有条件。
    左下部列出所有可能做的工作。
    右上部每一列表示各种条件的一种可能组合,所有列表示条件组合的全部可能情况。
    右下部的每一列是和每一种条件组合所对应的应做的工作。
  2. 判定表中的符号
    右上部用"T"表示条件成立,用"F"表示条件不成立,空白表示条件成立与否不影响。
    右下部画"X"表示做该行左边列出的那项工作,空白表示不做该项工作。

用判定表表示旅游票价的优惠规定。

某旅行社根据旅游淡季、旺季及是否团体订票,确定旅游票价的折扣率。具体规定如下:人数在20人以上的属团体,20人以下的是散客。每年的4-5月、7-8月、10月为旅游旺季,其余为旅游淡季。旅游旺季,团体票优惠5℅,散客不优惠。旅游淡季,团体票优惠30℅,散客优惠20℅。用判定表表示旅游订票的优惠规定。

用判定树表示旅游价格优惠规定。

过程设计语言

过程设计语言(Program Design Language,简称 PDL),也称伪码,
是一种混杂语言,说明某种结构化的程序设计语言的语法形式。
用PDL表示的程序结构:
1、顺序结构
处理1
处理2
...
处理3
2、选择结构
IF-THEN-ELSE结构:
IF 条件
处理1
ELSE
处理2
ENDIF
IF-THEN结构:
IF 条件
处理1
NDIF
CASE结构:
CASE 条件 OF
CASE(1)
处理1
CASE(2)
处理2
...
CASE(n)
处理n
3、循环结构
FOR循环结构:
FOR i=1 TO n
循环体
END FOR
WHILE循环结构:
WHILE 条件
循环体
ENDWHILE
UNTIL循环结构:
REPEAT
循环体
UNTIL条件
4、模块定义和调用
模块定义
PROCEDURE 模块名(参数)
...
RETURE
模块调用
CALL模块名(参数)
数据定义
DECLARE 类型 变量名,...
其中,类型可以有:字符、整型、实型、双精度、指针、数组及结构等类型。
5. 输入或输出
GET(输入变量表)
PUT(输出变量表)
数据代码设计

  1. 代码的定义和作用
    代码是为了对数据进行识别、分类、排序等操作所使用的数字、文字或符号。
  2. 代码的性质

代码设计原则
1、标准化:国际标准、国家标准、部颁标准或习惯标准
2、惟一性
3、可扩充性
4、简单性
5、规范化
6、适应性
代码种类

  1. 顺序码
  2. 信息块码
  3. 归组分类码 见表 归组代码示例
  4. 助记码
  5. 数字式字符码
  6. 组合码

表归组代码示例

代码设计方法
基本步骤如下:

  1. 确定编码对象
  2. 明确编码目的
  3. 确定代码的个数
  4. 确定代码使用范围和使用期限
  5. 确定代码体系和代码位数
  6. 确定编码规则
  7. 编写代码
  8. 编写代码词典

用户界面设计
用户界面设计问题

  1. 系统响应时间
  2. 用户帮助设施
  3. 出错信息处理
    4.命令交互
    用户界面设计过程
    用户界面设计是一个迭代的过程,一般步骤如下:
    先设计和实现用户界面原型。
    用户试用该原型,向设计者提出对界面的评价。
    设计者根据用户的意见修改设计并实现下一级原型。
    不断进行下去,直到用户满意为止。
    用户界面设计的基本原则
    (1)可靠性
    (2)简单性
    (3)易学习性和易使用性
    (4)立即反馈性
    用户界面设计指南
    1.一般交互
  4. 信息显示
  5. 数据输入
相关推荐
东莞梦幻网络科技软件开发公司9 小时前
开发体育赛事直播平台防止数据泄露的技术安全方案
经验分享·安全
售后宝10 小时前
服务机器人三甲坎德拉:用智能化开启售后服务新篇章
经验分享·制造
志-AOX11 小时前
Python编程艺术:优雅与实用的完美平衡(推导式)
经验分享
LZXCyrus11 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
志-AOX11 小时前
AI安全:从现实关切到未来展望
经验分享
yigan_Eins15 小时前
【数论】莫比乌斯函数及其反演
c++·经验分享·算法
布说在见19 小时前
个人实施工作的一天 —— 繁琐的数据输入与未来的句里录数据
经验分享·实习实施
梅见十柒19 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
管家婆客服中心20 小时前
提成制是什么?如何高效管理提成制?
经验分享·管家婆软件
zy张起灵1 天前
48v72v-100v转12v 10A大功率转换电源方案CSM3100SK
经验分享·嵌入式硬件·硬件工程