学校软件工程期末考试复习(各种图的详细说明)

请动手画一画以便加深记忆。

目录

用例图

请参考用例图的详细说明

用例

什么是用例?

从外部用户的视角看,一个用例(use case)是执行者(actor)与目标软件系统之间一次典型的交互作用,其效果就是执行者在软件系统的帮助下完成了某项业务功能,或达成了某项业务目标。

在课程注册管理系统中,主要的执行者有:“Registrar”(教务管理员) “Student”(学生)、“Teacher”(任课教师)“Billing System”(收费系统)

相对独立性和完整性是用例必备的两项特征,即,用例表示执行者为达成一项相对独立、完整的业务目标而与目标软件系统协同完成的功能。

从软件系统内部的视角出发,一个用例代表着系统执行的一系列动作,动作执行的结果能够被外部的执行者所察觉。

用例之间的关系

用例之间的关系主要有三种:包含(include)、扩展(extend)和继承 。

用例图(Use case diagram)从用户角度描述系统功能,并指出各功能的操作者。

图名称图定义图性质
用例图 一组用例、执行者及它们的关系 静态图

课程注册管理系统的用例图

image-20210524154623527

用例图中的所有用例的集合构成目标软件系统应该提供的功能

用例图布局

用例图的布局攸关其可理解性。建议读者采纳以下布局规则:

主要的执行者应置于用例图的左上区域

触发用例执行的主动执行者位于用例的左面,接收用例产生的信息的被动执行者置于用例的右面

多个用例沿垂直方向排列。如果用例A的执行时间一定在B之前,那么最好将A置于B之上

水平方向绘制包含关系,并将被包含的用例置于包含用例的右侧

垂直方向绘制扩展和继承关系,并将扩展用例置于被扩展用例的下方。将继承用例置于被继承用例的下方

类之间的关系(类图)

课件汇总p680

继承和聚合(聚集和组合),关联、依赖和实现

继承

介绍:

继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。

表示方法:

继承使用空心三角形+实线表示。

示例:

鸟类继承抽象类动物

img

实现

介绍:

实现表示一个class类实现interface接口(可以是多个)的功能。

表示方法:

使用空心三角形+虚线表示

比如:大雁需要飞行,就要实现飞()接口

img

依赖

介绍:

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

表示方法:

依赖关系用虚线箭头表示。

示例: 动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

img

关联

介绍:

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

表示方法:

关联关系用实线箭头表示。

示例:

企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。

img

聚合

介绍:

表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期

表示方法:

聚合关系用空心的菱形+实线箭头表示。

示例:

每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

img

组合

介绍:

组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样

表示方法:

组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。

示例:

鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。

img

img

类图布局

类图往往是软件模型图中最复杂同时也最关键的一张UML视图。为提高其可理解性,本书推荐以下布局规则:

(1)尽量沿垂直方向表示继承、实现关系,沿水平方向表示关联、聚合、组合、依赖、实现关系。

在继承关系中,父类应位于子类的上方;

在单向关联、依赖和实现关系中,方向尽量从左至右;

在聚合、组合关系中,整体类一般位于部件类的左面。

(2)在关联边上,多重性、角色名、约束特性等应靠近关联端。

(3)如果多条边表示相同种类的关系,它们有公共的类端点,并且在公共端的标注相同,则汇合这些边。例如,将“用户”与“教务管理员”、“教师”和“学生”之间的三条继承边汇合,布局成树形结构。

课程注册管理系统的类图

image-20210524161410806

流程图

p412

流程图与PDL、盒图、PAD可以相互转换

系统流程图

系统流程图的符号

系统流程图符号中有五种基本符号是从程序流程图中借用来的,当以概括方式抽象描绘一个实际系统时,仅用此五种符号足够了。

五种基本的系统流程图符号

image-20210524162153745

系统流程图布局

系统流程图的习惯画法是使信息在图中自顶向下从左向右流动

库存管理系统的系统流程图

image-20210524162302953

程序流程图

为了能够用程序流程图描述结构化的程序,一般地,限制只允许使用三种基本结构。

a.顺序型

b.选择型

c.先判断型循环 DO-WHILE

image-20210524162515516

image-20210524162728514

过程设计语言(PDL)

•过程设计语言(PDL)也称为伪码, PDL是一种用于描述功能模块的算法设计和加工细节的语言。

•PDL是一种“混杂式语言”,它采用某种语言(如英语或自然语言)的词汇,另一种语言(结构化程序设计语言)的全部语法。

•伪码的语法规则分为“外语法”和“内语法”。

• PDL语法是开放式的,其外层语法是确定的,而内层语法则故意不确定。外层语法描述控制结构和数据结构,它用类似于一般编程语言控制结构的关键字(如 IF—THEN —ELSE、WHILE—DO、REPEAT—UNTIL等)表示,所以是确定的,而内层语法可使用自然语言的词汇描述具体操作。

例如,在PDL 描述

if X is not negative
then
return(square root of X as a real number);
else
return(square root of -X as an imaginary number);

中,外层语法 IF—THEN —ELSE是确定的,内层操作“square root of X”是不确定的。

盒图(N-S图)

N-S图是为克服流程图在描述程序逻辑时的随意性等缺点

image-20210605230806209

只能从上边进入盒子然后从下边走出,除此之外没有其他的入口和出口

image-20210605231059644

用N-S图作为详细设计的描述手段时,常需用两个盒子:数据盒和模块盒,前者描述有关的数据,包括全程数据、局部数据和模块界面上的参数等,后者描述执行过程。

image-20210605231136978

image-20210605231146382

问题分析图(PAD图)

Problem Analysis Diagram

使用二维树形结构图来描述程序的逻辑

PAD图的基本符号

image-20210605224545420

image-20210605231455120

image-20210605231545794

image-20210605231653299

image-20210605231704940

image-20210605231718540

将数组A(1)到A(10)从大到小进行选择法排序的算法描述如下PAD图所示。

image-20210605231931444

例如:将数组A(1)到A(10)从大到小进行选择法排序的算法描述如下PAD图所示。

image-20210605231953470

顺序图(时序图)

课程注册管理系统中“制订选课计划”用例的顺序图

image-20210605235136472

时序图布局

顺序图是一张二维图。

纵向代表时间轴,时间沿垂直方向向下延伸;

横向由多个参与交互的对象构成,这些对象之间无顺序关系

一般情况下,时间轴上的两点只有相对时序的差异,但在实时应用中,可以使用带时间刻度的时间轴以度量两点之间的绝对时差。

一张基本的顺序图由以下图形元素构成:对象及其生命线与活跃期消息传递注解

⑴顺序图中的对象表示为嵌于矩形框内形如

 “[对象名] : [类名]”

的文本,其中对象名、类名分别可省略,但不能同时省略。

对象之下垂直虚线称为对象的生命线,表示对象在始于对象表示图元所处的时间起点、止于对象生命终结符(见图中TimeConflictChecker对象的生命线)之间的时间段内在软件系统中存在。如果对象生命线的下方没有终结符,则表示对象在顺序图所代表的时间段之后仍然存在。

⑶对象中操作的执行期(包括等待同步调用返回的时间)称为对象的活跃期,它由覆盖于对象生命线之上的长条形矩形表示。

对象间的消息传递表示为对象生命线之间的有向边,边上可标注

  “[*][监护条件] [返回值:=]消息名[(参数表)]”

其中“*”为迭代标记,表示同一消息对同一类的多个对象发送

建模者勿需考虑消息发送与接收之间的时延,确需考虑时(例如,在实时应用中,或者当消息通过网络传输时),可以用斜向下方的消息边来表示,见图。

顺序图中的消息分为同步、异步两种,分别用实心三角形箭头普通箭头表示。

image-20210605235604971

尽管对象在水平轴上的次序没有严格的语义信息,但建模应遵循以下布局规则:

⑴将用例的主动执行者实例安排在顺序图左侧被动执行者实例安排在顺序图右侧

⑵采用分层设计时,应将同层对象放在一起

每层对象的排序规则是:接近用户界面层靠左,接近后台处理层(如,数据持久存储层)靠右;

在软件分层结构中相邻的层,其对象集合在顺序图的水平布局中也相邻。

因同层对象交互较多,相邻层间的交互较少,跨层交互更少,所以此排序规则可有效缩短消息边的长度,简化顺序图。

⑶在遵守以上两条规则的同时,对象的排序应尽量缩短消息边的长度,并且尽量使消息边的方向从左至右。

关于消息边上文字的位置,有以下布局规则:

⑴如果模型读者辨识消息的目标对象较辨识消息的源对象为难,则文字应置于消息的目标端;否则,文字应置于消息的源端。

当消息的源和目标都易于辨识时,建模者可将文字置于任意一端(不宜将文字置于消息边的中间位置),但在本项目的所有顺序图中应保持风格一致。

⑵返回消息上的文字一定要置于消息的目标端。

ADL

没有找到。



![](https://img2020.cnblogs.com/blog/2066313/202106/2066313-20210620144209655-1006098193.png)

posted @ 2021-06-20 15:30  sanling  阅读(1080)  评论(0编辑  收藏  举报