【软件工程中的各种图】

这篇具有很好参考价值的文章主要介绍了【软件工程中的各种图】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  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. 数据输入
文章来源地址https://www.toymoban.com/news/detail-601878.html

到了这里,关于【软件工程中的各种图】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 8年经验的软件工程师建议

    我希望在职业生涯早期就开始做的事情和我希望以不同的方式做的事情。 大家好,我已经做了八年半的软件工程师。这篇文章来源于我最近对自己在职业生涯中希望早点开始做的事情以及希望以不同方式做的事情的自我反思。 我在这里分享的对任何希望提高和进步到高级甚

    2024年02月05日
    浏览(31)
  • 《24海南大学835软件工程考研经验贴》

    1.经验之谈 首先,我是一个二战的考生,一战给我带来的经验有几点。第一,数学、专业课这两门越早复习越好,越拖到后面你就会发现来不及了,这学不完,那学不完的。第二、我认为是比较关键的一点,一定要去本专业的学长学姐,专业课不要以为自己买几本资料啃,就

    2024年02月13日
    浏览(21)
  • 【软件工程】软件设计中的通用编码规范

    总结软件工程中的一些通用编码规范。 提示:以下内容参考chat回答 1. 命名规范 变量、函数、类和文件名应该简明易懂,使用英文单词或单词缩写,并使用下划线或驼峰命名法。 变量名应该使用名词,函数名应该使用动词,类名应该使用名词或名词短语,文件名应该使用有

    2024年02月05日
    浏览(20)
  • 软件工程毕设分享(含算法) 基于python的搜索引擎设计与实现

    今天学长向大家分享一个毕业设计项目 毕业设计 基于python的搜索引擎设计与实现 项目运行效果: 毕业设计 基于python的搜索引擎 项目获取: https://gitee.com/sinonfin/algorithm-sharing 随着互联网和宽带上网的普及, 搜索引擎在中国异军突起, 并日益渗透到人们的日常生活中, 在互

    2024年01月21日
    浏览(29)
  • 软件工程毕设题目大全 40个计算机毕业设计项目分享【含源码+论文】

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的java web缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的java web管理系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享5个优质java web毕业设计

    2024年02月08日
    浏览(27)
  • 软件工程中的人工智能:如何提高开发效率

    随着人工智能技术的发展,人工智能在软件工程领域的应用也越来越广泛。人工智能可以帮助软件工程师更高效地进行软件开发,提高开发效率。在这篇文章中,我们将讨论人工智能在软件工程中的应用,以及如何利用人工智能提高开发效率。 软件工程是一项复杂的技术,涉

    2024年02月21日
    浏览(34)
  • 软件工程毕设分享(含算法) 基于Python大数据的电影可视化分析系统(源码+论文)

    # 0 简介 今天学长向大家介绍一个机器视觉的毕设项目 毕设分享 基于Python大数据的电影可视化分析系统(源码+论文) 项目获取: https://gitee.com/sinonfin/algorithm-sharing 使读者能够了解MOVA项目的概况 电影行业从业人员、电影爱好者 项目名称:Movie Visualization Analysis system (MOVA)

    2024年01月20日
    浏览(23)
  • 全链路压力测试:现代软件工程中的重要性

    全链路压力测试不仅可以确保系统在高负载下的性能和稳定性,还能帮助企业进行有效的风险管理和性能优化。在快速发展的互联网时代,全链路压力测试已成为确保软件产品质量的关键步骤。 1、测试环境搭建 测试应在与生产环境尽可能相似的环境中进行,以确保测试结果

    2024年01月17日
    浏览(36)
  • 【程序人生】来自拥有 8 年经验的软件工程师的建议 | Advice From a Software Engineer With 8 Years of Experience

    目录 来自拥有 8 年经验的软件工程师的建议 | Advice From a Software Engineer With 8 Years of Experience Practical tips for those

    2024年02月05日
    浏览(27)
  • 软件工程中的人工智能与机器学习:未来研发效能的驱动力

    人工智能(Artificial Intelligence, AI)和机器学习(Machine Learning, ML)在过去的几年里已经成为软件工程中最热门的话题之一。随着数据量的增加,计算能力的提升以及算法的创新,人工智能和机器学习技术已经成为软件开发过程中不可或缺的一部分。 在软件工程中,人工智能和机器学

    2024年02月21日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包