【软件工程中的各种图】

  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.mzph.cn/news/6561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】C--单链表(小白入门基础知识)

前段时间写了一篇关于顺序表的博客,http://t.csdn.cn/0gCRp 顺序表在某些时候存在着一些不可避免的缺点: 问题: 1. 中间 / 头部的插入删除,时间复杂度为 O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不…

前端 | ( 十一)CSS3简介及基本语法(上) | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 系列笔记: 【HTML4】(一)前端简介【HTML4】(二)各种各样的常用标签【HTML4】(三)表单及HTML4收尾…

2023/07/23

1. 必须等待所有请求结束后才能执行后续操作的处理方式 方式一: async func () {const p1 await api1();const p2 await api2();const p3 await api3();Promise.all([p1, p2, p3]).then(res > {后续操作...}) }方式二:待补充 2. flex 弹性盒子布…

FPGA实现串口回环

文章目录 前言一、串行通信1、分类1、同步串行通信2、异步串行通信 2、UART串口通信1、UART通信原理2、串口通信时序图 二、系统设计1、系统框图2.RTL视图 三、源码1、串口发送模块2、接收模块3、串口回环模块4、顶层模块 四、测试效果五、总结六、参考资料 前言 环境&#xff…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(7 月 21 日论文合集)

文章目录 一、检测相关(15篇)1.1 Representation Learning in Anomaly Detection: Successes, Limits and a Grand Challenge1.2 AlignDet: Aligning Pre-training and Fine-tuning in Object Detection1.3 Cascade-DETR: Delving into High-Quality Universal Object Detectio…

《Docker与持续集成/持续部署:构建高效交付流程,打造敏捷软件交付链》

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

c语言修炼之指针和数组笔试题解析(1.2)

前言: 书接上回,让我们继续开始今天的学习叭!废话不多说,还是字符数组的内容上代码! char *p是字符指针,*表示p是个指针,char表示p指向的对象类型是char型! char*p"abcdef&q…

使用Plist编辑器——简单入门指南

本指南将介绍如何使用Plist编辑器。您将学习如何打开、编辑和保存plist文件,并了解plist文件的基本结构和用途。跟随这个简单的入门指南,您将掌握如何使用Plist编辑器轻松管理您的plist文件。 plist文件是一种常见的配置文件格式,用于存储应…

7.6Java EE——Bean的生命周期

Bean在不同作用域内的生命周期 Bean的生命周期是指Bean实例被创建、初始化和销毁的过程。在Bean的两种作用域singleton和prototype中,Spring容器对Bean的生命周期的管理是不同的。在singleton作用域中,Spring容器可以管理Bean的生命周期,控制…

vue父组件和子组件数据传递

vue --父组件向子组件传递数据 父组件&#xff1a; <template><div class"parent"><p>父组件&#xff1a;{{ msg }}</p><Child message"Hello, I am parent!"></Child></div> </template><script>…

【Linux】udp客户端windows版以及Tcp服务器的实现

windows版客户端更适合大多数人~ 文章目录 一. udp客户端windows版二.Tcp服务器的实现总结 一、udp客户端windows版 首先我们将上一篇文章中实现的udp大型聊天室的代码进行修改&#xff0c;注意我们只修改服务端代码将代码修改的很简单就好&#xff0c;因为我们只是做一个如何…

【Flume 01】Flume简介、部署、组件

1 Flume简介 Flume是一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统 主要特性&#xff1a; 它有一个简单、灵活的基于流的数据流结构&#xff08;使用Event封装&#xff09;具有负载均衡机制和故障转移机制一个简单可扩展的数据模型(Source、Channel、Sink) Sou…

Zookeeper的基本概念以及安装

Zookeeper简介 Zookeeper是一个分布式的(多台机器同时干一件事情),开源的分布式应用程序协调服务,是Google公司Chubby产品,是Hadoop和Base重要的组件,.它是一个分布式应用程序提供一致性的服务的软件,提供的功能包括:配置服务,域名服务,分布式同步,组服务等 Zookeeper目…

多肽试剂1801415-23-5,Satoreotide,UNII-S58172SSTS,应用在多肽标记及修饰上

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Satoreotide&#xff0c;UNII-S58172SSTS Product structure Product specifications 1.CAS No&#xff1a;1801415-23-5 2.Molecular formula&#xff1a;C58H72ClN15O14S2 3.Molecular weight&#xff1a;1302.9 4.Packa…

手机word文档怎么转换成pdf?分享两种方法

手机word文档怎么转换成pdf&#xff1f;在如今信息化的时代&#xff0c;电子文档已经成为人们日常办公不可或缺的一部分。随着科技的不断进步&#xff0c;电子文档的格式也在不断发展。PDF作为电子文档的一种重要格式&#xff0c;被广泛使用。那么&#xff0c;如何将手机上的Wo…

一)Stable Diffusion使用教程:安装

目前AI绘画最火的当属Midjorney和Stable Diffusion&#xff0c;但是由于Midjourney没有开源&#xff0c;因此我们主要分享下Stable Diffusion&#xff0c;后面有望补上Midjourney教程。 本节主要讲解Stable Diffusion&#xff08;以下简述SD&#xff09;的下载和安装。 1&…

MyBatis学习笔记——2

MyBatis学习笔记——2 一、MyBatis核心配置文件详解1.1、environment&#xff08;环境&#xff09;1.2、transactionManager&#xff08;事务管理器&#xff09;1.3、dataSource&#xff08;数据源&#xff09;1.4、properties1.5、mapper 二、在WEB中应用MyBatis&#xff08;使…

轮播图添加删除

轮播图页面和对话框搭建 页面简单布局 <template><div id"banner"><el-space direction"vertical" :size"20" style"width: 100%"><h1>轮播图管理</h1><div style"text-align: right"&g…

商城-学习整理-基础-分布式组件(三)

目录 一、前言二、Spring Cloud&Spring Cloud Alibaba1、Spring Cloud 与Spring Cloud Alibaba简介2、为什么使用Spring Cloud Alibaba3、版本选择4、项目中的依赖 三、Spring Cloud Alibaba-Nacos作为注册中心1、Nacos1&#xff09;、下载 nacos-server2&#xff09;、启动…

42. 接雨水

42.接雨水 这是一个简单的动态规划问题&#xff0c;虽然leetcode将它归结为困难。 但是我感觉它难度应该达不到&#xff0c;可能归结为中等比较合适0x1 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨…