【软件工程中的各种图】

news/2024/12/22 9:04:39/

  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)事务型数据流
2. 完成软件结构设计
 

面向数据结构设计方法

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. 流程图使用约定 

 

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

盒图

盒图是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.一般交互
2.  信息显示
3. 数据输入


http://www.ppmy.cn/news/971752.html

相关文章

基于深度学习的高精度六类海船检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度六类海船检测识别系统可用于日常生活中检测与定位海船目标(散装货船(bulk cargo carrier)、集装箱船(container ship)、渔船(fishing boat)、普通货船&…

SpringBoot实战(二十一)集成 TLog 日志

目录 一、简介二、Maven依赖三、启动类集成四、测试1.服务简介2.服务A代码DemoController.javaDemoFeignClient.java 3.服务B代码4.测试结果 补充一:自定义日志标签模板补充二:SpanId的生成规则补充三:业务标签1.打印入参2.指定连接符3.打印常…

Docker 的数据管理、容器互联、镜像创建

目录 一、数据管理 1.数据卷 2. 数据卷容器 二、容器互联(使用centos镜像) 三、Docker 镜像的创建 1.基于现有镜像创建 1.1首先启动一个镜像,在容器里修改 1.2将修改后的容器提交为新的镜像,需使用该容器的id号创建新镜像 …

任务 04、Midjourney提示词使用初指南:AI绘画不再难

4.1 任务简介 本次实验任务帮助读者掌握MidJourney提示词的使用为主题。任务分为四个部分,包括掌握提示词的基本使用结构、了解编写提示词的基本原则、探索提示词的基本用法以及通过实例快速体验提示词绘图。通过学习本任务,读者能够全面了解并熟练运用MidJourney提示词,在…

Stable Diffusion,给大家一点小小的固有印象

输入文字自动生成 AI 绘图,喜欢吗?😋 下面测试一下简单的提示词生成效果,可以认为体现了模型的默认固有印象(训练集平均)。 Model: Protogen v2.2 Prompt: two asian women 经典吊梢眼、宽眼距、塌鼻子。…

【C语言】表达式求值相关问题汇总—>隐式类型转换(整型提升)、算数转换与操作符优先级汇总(收藏查阅)

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》 🌝每一个不曾起舞的日子,都是对生命的辜负。 目录 前言: 一、隐式类型转换 (一)整型提升的意义…

EAP系统如何助力光伏制造行业实现数据采集和控制的自动化?

光伏制造行业作为清洁能源领域的重要组成部分,随着市场的扩大和技术的进步,对生产效率、产品质量和成本控制的要求也越来越高。在这个竞争激烈的行业中,企业需要寻求自动化解决方案来提高生产效率和降低人工成本。 图.光伏面板生产&#xff0…

结构型设计模式之桥接模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everythi…