类图约束 软件工程_软件工程 约束条件 - CSDN
  • 第三章:类图 概念 类图的概念:类图是描述类、接口以及它们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型。 分类可以有效地使复杂问题简化。建立类模型的过程,是把现实世界中与问题有关的各种...

    第三章:类图

    概念
    • 类图的概念:类图是描述类、接口以及它们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型。
    • 分类可以有效地使复杂问题简化。建立类模型的过程,是把现实世界中与问题有关的各种对象及其相互关系进行抽象和分类的过程。
    类图的组成

    2类元素(接口、类),4种关系
    在这里插入图片描述

    • 对象:是人们对某个事物的一种抽象描述。对象的基本特征可以归纳为对象的属性和行为两类。

    • 类:类是指对一组具有相同特征的对象的抽象描述;任何对象都是某个类的实例。

    • 关联关系:

    1. 概念:关联用来表示来表示两个(或多个)类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的引用。
    2. 表示:用一条无向线段表示,是一种双向关系。例如客户和订单的关联:从客户看,订单是他提交的;从订单看,它有一个客户。用一条有向线段表示,是一种单向关系。
      在这里插入图片描述
    3. 名称:关联的名称表达了关联的内容,一般使用动宾结构短语。关联的名称仅有语义作用,不转换为代码
      在这里插入图片描述
    4. 可见性:用可见性修饰角色名称,以说明该角色名称可以在哪些范围内被访问。
    • 泛化关系:
    1. 概念:泛化关系(继承关系)定义类和包之间的一般元素和特殊元素之间的分类关系。泛化也称之为继承或派生。
      在这里插入图片描述
    2. 区别:
      泛化(Generalization): 抽象化
      特化(Specialization): 实例化
    • 依赖关系:
    1. 概念:依赖表示一个类以某种形式依赖于其他类。当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类。
    2. 在程序代码中,依赖关系意味着一个类的对象出现在另一个类的操作当中。常见的有两种情况:一个类将另一个类的对象作为自己某个操作的参数(形参),或者是操作的局部变量。
      区别:
    • 依赖关系VS关联关系
    1. 从符号上
      在这里插入图片描述
    2. 从语义上:
      当一个类的实例与另一个类的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系。
      “我在某个方法中偶然用到了它,但在现实中我和它并没多大关系”。
    • 实现关系:

    • 聚合与组合:

    1. 概念:
      对于聚合:
      聚合表示类之间的整体与部分的关系。聚合意味着一个类拥有但共享另一个类的对象。
      当整体类不存在时,部分类仍可能存在。部分类被销毁时,整体类也将能够存在。
      对于组合:
      组合是一种特殊形式的聚合。与聚合相比,它有两个特点:
      一个部分类最多只能属于一个整体类
      当整体类不存在时,部分类将同时被销毁。
      在这里插入图片描述
    2. 区别
    • 关联VS聚合(组合)
      关联关系所涉及的两个类是处在同一个层次上的。比如学生和课程就是一种关联关系,而不是聚合关系,因为学生不是由课程组成的。聚合关系涉及的两个类处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和显示器、键盘、主板、内存就是聚合关系,因为主板等是电脑的组成部分。
    • 聚合VS组合
      组合:整体类端的重数必须是1,部分类的重数是任意的
      聚合:整体类端的重数可以大于1,部分类的重数是任意的
    1. 画图:
      聚合也是表示类和类之间的“整体-部分”关系,用空心菱形表示。
      组合是聚合的一种特殊情形,用实心菱形表示
      在这里插入图片描述
    • 约束规则
    1. 概念:
      在画类图的过程中,关联、属性和操作等基本要素都要为模型加注约束条件。
      约束规则的语法:将约束条件放在括号{ }中,用自然语言或其他常见的设计语言来描述,其描述要简洁准确。
      在理想的情况下,在所使用的程序设计语言中,规则应该作为断言来实现,并在调试代码时调用它。
      在这里插入图片描述
    • 对象图
      在这里插入图片描述
    三个层次的观点
    • 概念层:描述应用域中的概念,是对现实世界的直接描述,与实现它们的类有关,但与实现方案和实现语言无关。
    • 说明层:描述软件的接口,而不是软件的实现。一个类型描述一个接口,但可能有多种实现。
    • 实现层:从实现的角度定义类及其实现,揭示了软件实现体的构成情况。
    类图建模分析步骤

    (1)寻找出需求中的名词(候选对象)。
    (2)合并含义相同的名词,排除范围以外的名词,并寻找隐含的名词。
    (3)去掉只能作为类属性的名词。
    (4)剩下的名词就是要找的分析类(候选类)。
    (5)根据常识、问题域、系统责任确定该类有那些属性。
    (6)补充该类动态属性,如状态、对象间联系(如聚合、关联)等属性。
    (7)从需求中的动词、功能或系统责任中寻找类的操作(候选操作)。
    (8)从状态转换,流程跟踪、系统管理等方面补充类的操作。
    (9)对所寻找的操作进行合并、筛选。
    (10)对所寻找的操作在类间进行合理分配(职责分配),形成每个类候选操作。
    (11)补充每个类的的分析文档,为类的进一步设计打下基础。

    小结:
    1. 类和对象的表示法
      (1)名称;(2)属性;(3)行为;
    2. 类之间的各种关系
      (1)继承:子类继承了超类的所有属性和行为;
      (2)关联:两个不同类之间关联,可以单向或双向;
      (3)聚合:强关联关系,整体与部分的生命周期分开;
      (4)组合:强聚合,整体与部分的生命周期相同;
    3. 三个概念层次
      (1)概念层;(2)说明层;(3)实现层
    展开全文
  • 软件工程用的15种图

    2018-12-27 18:50:27
    软件工程中应用的15种图: 1、系统流程图 不论什么程序设计语言,程序设计都有3种基本结构:顺序结构、选择结构和循环结构。三种基本结构的特点: 一个入口,一个出口,不出现死循环和死语句。 数据流图、数据...

    软件工程中应用的15种图:
    1、系统流程图
    不论什么程序设计语言,程序设计都有3种基本结构:顺序结构、选择结构和循环结构。三种基本结构的特点: 一个入口,一个出口,不出现死循环和死语句。
    在这里插入图片描述
    在这里插入图片描述

    2、数据流图或数据流程图(Data Flow Diagram),缩写为DFD
    数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型

    数据流图DFD是描述系统中数据流程的一种图形工具,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

    值得注意的是,数据流图不是传统的流程图或框图,数据流也不是控制流。数据流图是从数据的角度来描述一个系统,而框图是从对数据进行加工的工作人员的角度来描述系统。

    DFD显示系统将输入和输出什么样的信息,数据如何通过系统前进以及数据将被存储在何处。它不显示关于进程计时的信息,也不显示关于进程将按顺序还是并行运行的信息,而不像传统的关注控制流的结构化流程图,或者UML活动工作流程图,它将控制流和数据流作为一个统一的模型。

    数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
    数据流程图包括:
    a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;
    b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;
    c.指明几个处理和(或)数据媒体之间的数据流的流线符号;
    d.便于读、写数据流程图的特殊符号。

    在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束,数据流图有两种典型结构,一是变换型结构,它所描述的工作可表示为输入、主处理和输出,呈线性状态。另一种是事务型结构,这种数据流图呈束状,即一束数据流平行流入或流出,可能同时有几个事务要求处理。
    数据流程图中有以下几种主要元素:

    →:  数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成.如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项 组成.由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名.
    □:  数据源(终点).代表系统之外的实体,可以是人、物或其他软件系统
    ○:  对数据的加工(处理).加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出
    〓:  数据存储.表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等

    在这里插入图片描述在这里插入图片描述
    3、数据字典
    数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。

    数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这个过程称为数据建模,结果产生一个对象关系图。当每个数据对象和项目都给出了一个描述性的名字之后,它的关系再进行描述(或者是成为潜在描述关系的结构中的一部分),然后再描述数据的类型(例如文本还是图像,或者是二进制数值),列出所有可能预先定义的数值,以及提供简单的文字性描述。这个集合被组织成书的形式用来参考,就叫做数据字典。

    据字典在需求分析阶段被建立。
    数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。
    数据字典可能包含的信息,例如:
    数据库设计资料
    数据内部储存的SQL程序
    用户权限
    用户统计
    数据库的过程中的信息
    数据库增长统计
    数据库性能统计
    数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
    数据字典通常包括数据项\数据结构\数据流\数据存储和处理过程五个部分。
    其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义,来描述数据流、数据存储的逻辑内容。
    数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.
    数据字典还有另一种含义,是在数据库设计时用到的一种工具,用来描述数据库中基本表的设计,主要包括字段名、数据类型、主键、外键等描述表的属性的内容。
    以Oracle数据库字典为例:数据字典分为数据字典表和数据字典视图
    Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。
    数据字典表里的数据是Oracle系统存放的系统数据,而普通表存放的是用户的数据。为了方便的区别这些表,这些表的名字都是用""SYS"结尾,这些表属于SYS用户。 数据字典表由ORACLE_HOME/rdbms/admin/sql.bsq 脚本创建, 这个脚本里又调用了其他的脚本来创建这些数据字典表。 在那些创建脚本里有基表的创建SQL。
    Oracle 对数据字典表的说明:
    These underlying tables store information about the database. Only Oracle Database should write to and read these tables. Users rarely access the base tables directly because they are normalized and most data is stored in a cryptic format.
    这些数据字典表,只有Oracle 能够进行读写。
    SYS用户下的这些数据字典表,存放在system 表空间下面,表名都用""便OracleOracleDBAXXXX,ALLXXXXUSERXXXX2useralldbauserall访,userall访dba访SYS使SYS,便Oracle(publicsynonyms).sys.V"结尾,为了便于用户对数据字典表的查询, Oracle对这些数据字典都分别建立了用户视图,这样即容易记住,还隐藏了数据字典表表之间的关系,Oracle针对这些对象的范围,分别把视图命名为DBA_XXXX, ALL_XXXX和USER_XXXX。 数据字典视图分2类:静态数据字典(静态性能视图) 和 动态数据字典(动态性能视图)。 静态数据字典中的视图分为三类,它们分别由三个前缀构成:user_*、 all_*、 dba_*。 user_*:该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象) all_*:该视图存储了当前用户能够访问的对象的信息, 而不是当前用户拥有的对象。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可) dba_*:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限) 这些视图由SYS用户创建的,所以使用需要加上SYS,为了方便, Oracle为每个数据字典表的视图头建立了同名字的公共同义词(public synonyms). 这样简单的处理就省去了写sys.的麻烦。 除了静态数据字典中三类视图,其他的字典视图中主要的是V视图,之所以这样叫是因为他们都是以VGV或GV开头的。这些视图会不断的进行更新,从而提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。
    Throughout its operation, Oracle Database maintains a set of virtual tables that record current database activity. These views are calleddynamic performance views because they are continuously updated while a database is open and in use. The views, also sometimes calledV$ views。
    VX视图是基于X虚拟视图的。V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图,没有DBA权限的用户可以看到USER_和ALL_视图,但不能看到DBA_视图。与DBA_,ALL,和USER_视图中面向数据库信息相反,这些视图可视的给出了面向实例的信息。
    动态性能表用于记录当前数据库的活动,只存于数据库运行期间,实际的信息都取自内存和控制文件。 DBA可以使用动态视图来监视和调节数据。

    数据字典的组成:
    1、数据项
    2、数据结构
    3、数据流
    4、数据存储
    5、处理过程
    6、外部实体
    数据字典
    数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:
    1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。
    2、分配多少空间,当前使用了多少空间等。
    3、列的缺省值。
    4、约束信息的完整性。
    5、用户的名字。
    6、用户及角色被授予的权限。
    7、用户访问或使用的审计信息。
    8、其它产生的数据库信息。
    数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
    数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
    关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明

    数据字典各部分的描述
    ①数据项:数据流图中数据块的数据结构中的数据项说明
    数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:
    数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
    取值范围,取值含义,与其他数据项的逻辑关系}
    其中“取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件,是设计数据检验功能的依据。
    若干个数据项可以组成一个数据结构。
    ②数据结构:数据流图中数据块的数据结构说明
    数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:
    数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
    ③数据流:数据流图中流线的说明
    数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:
    数据流描述={数据流名,说明,数据流来源,数据流去向,
      组成:{数据结构},平均流量,高峰期流量}
    其中“数据流来源”是说明该数据流来自哪个过程,即数据的来源。“数据流去向”是说明该数据流将到哪个过程去,即数据的去向。“平均流量”是指在单位时间(每天、每周、每月等)里的传输次数。“高峰期流量”则是指在高峰时期的数据流量。
    ④数据存储:数据流图中数据块的存储特性说明
    数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:
    数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,
      组成:{数据结构},数据量,存取方式}
    其中“数据量”是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息。“存取方法”包括是批处理,还是联机处理;是检索还是更新;是顺序检索还是随机检索等。
    另外“流入的数据流”要指出其来源,“流出的数据流”要指出其去向。
    ⑤处理过程:数据流图中功能块的说明
    数据字典中只需要描述处理过程的说明性信息,通常包括以下内容:
    处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},
      处理:{简要说明}}
    其中“简要说明”中主要说明该处理过程的功能及处理要求。功能是指该处理过程用来做什么(并不是怎么样做);处理要求包括处理频度要求,如单位时间里处理多少事务,多少数据量,响应时间要求等,这些处理要求是后面物理设计的输入及性能评价的标准。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    4、实体联系图
    E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
    构成E-R图的基本要素是实体型、属性和联系。

    实体
    实体是现实中存在的对象,有具体的,也有抽象的;有物理上存在的,也有概念性的;例如,学生、课程,等等。它们的特征是可以互相区别,否则就会被认为是同一对象。凡是可以互相区别、又可以被人们识别的事、物、概念等统统可以被抽象为实体。数据流图中的数据存贮就是一种实体。实体可以分为独立实体和从属实体或弱实体,独立实体是不依赖于其它实体和联系而可以独立存在的实体,如图1.9中的“学生档案”、“课程档案”等等,独立实体常 常被直接简称为实体;从属实体是这样一类实体,其存在依赖于其它实体和联系,在实体联系图中用带圆角的矩形框表示,例如图1.9中的“注册记录”是从属实体,它的存在依赖于实体 “学生档案”和联系“注册”,“选课单”也是从属实体,它的存在依赖于实体“学生档案”、“课程档案”和联系“选课”。
    联系
    实体之间可能会有各种关系。例如,“学生”与“课程”之间有“选课”的关系。这种实体和实体之间的关系被抽象为联系。在实体联系图中,联系用联结有关实体的菱形框表示,如图1.9所示。联系可以是一对一(1:1),一对多(1:N)或多对多(M:N)的,这一点在实体联系图中 也应说明。例如在大学教务管理问题中,“学生”与“课程”是多对多的“选课”联系联系。
    属性
    实体一般具有若干特征,这些特征就称为实体的属性,例如图1.9中的实体“学生”,具 有学号、姓名、性别、出生日期和系别等特征,这些就是它的属性。
    联系也可以有属性,例如学生选修某门课程学期,它既不是学生的属性,也不是课程的属性,因为它依赖于某个特定的学生,又依赖于某门特定的课程,所以它是学生与课程之间的联系“选课”的属性。在图1.9中,联系“选课”的属性被概括在从属实体“选课单”中。联系 具有属性这一概念对于理解数据的语义是非常重要的。
    重要概念编辑
    主键
    如果实体的某一属性或某几个属性组成的属性组的值能唯一地决定该实体其它所有属性的值,也就是能唯一地标识该实体,而其任何真子集无此性质,则这个属性或属性组称为实体键。如果一个实体有多个实体键存在,则可从其中选一个最常用到的作为实体的主键。例如实体“学生”的主键是学号,一个学生的学号确定了,那么他的姓名、性别、出生日期和系别等属性也就确定了。在实体联系图中,常在作为主键的属性或属性组与相应实体的联线上加一短垂线表 示。
    外键
    如果实体的主键或属性(组)的取值依赖于其它实体的主键,那么该主键或属性(组)称为外键。例如,从属实体“注册记录”的主键“学号”的取值依赖于实体“学生”的主键“学号”,“选课单”的主键“学号”和“课程号”的取值依赖于实体“学生”的主键“学号”和实体“课程”的主键“课程号”,这些主键和属性就是外键。
    属性域
    属性可以是单值的,也可以是多值的。例如一个人所获得的学位可能是多值的。当某个属性对某个实体不适应或属性值未知时,可用空缺符NULL表示。
    在画实体联系图时,为了使得图形更加清晰、易读易懂,可以将实体和实体的属性分开来画, 并且对实体进行编号。允许包括其它组合属性意味着属性可以是一个层次结构,通讯地址就是一种具有层次结构的属性。

    要素:

    实体型:用矩形表示,矩形框内写明实体名;
    属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;
    联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型
    在E-R图中要明确表明1对多关系,1对1关系和多对多关系:

    1对1关系在两个实体连线方向写1;
    1对多关系在1的一方写1,多的一方写N
    多对多关系则是在两个实体连线方向各写N,M
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    5、状态转换图
    通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外状态转换图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此状态转换图提供了行为建模机制。
    在状态转换图中,每一个节点代表一个状态,其中双圈是终结状态。许多单片机教材上对工作模式的表达通常采用状态图的形式。
    状态转换图是软件测试中书写测试用例时一种不常用的方法。
    在这里插入图片描述
    6、层次方框图
    层次方框图即层次模块机构图。层次模块结构图(或称结构图structure chart)是1974年由W.Steven等人从结构化设计(structured design)的角度提出的一种工具。它的基本做法是将系统划分为若干子系统,子系统下再划分为若干的模块,大模块内再分小模块,而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。
    层次模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,而并不关心模块的内部。换句话说也就是只关心它是什么,它能够做什么的问题,而不关心它是如何去做的(这一部分内容由下面的IPO图解决)。
    在这里插入图片描述

    7、Warnier图
    Warnier图是表示数据层次结构的一种图形工具,它用树形结构来描绘数据结构。它还能指出某一类数据或某一数据元素重复出现的次数,并能指明某一特定数据在某一类数据中是否是有条件的出现。在进行软件设计时,从Warnier图入手,能够很容易转换成软件的设计描述。以报纸的自动编辑系统为例。通常报纸的版面采用以下格式。
    头版部分 社论部分 副刊部分
    头条新闻 社论 体育新闻
    国内新闻 专栏 商业新闻
    当地新闻 读者来信 广告
    讽刺漫画
    上面给出的报纸概观就是一个数据的层次结构。上面给出了用Warnier图表示的报纸的数据层次结构。在这个Warnier图中,用花括号“{”表示层次关系,在同一括号下,自上到下是顺序排列的数据项。在有些数据项名字后面附加了圆括号,给出该数据项重复的次数。
    例如,社论(1,1)表示社论占一栏;专栏(1,3)表示专栏占1到3栏;讽刺漫画(O,1)表示讽刺漫画可有可无,若有就占一栏。另外,Warnier图可以通过细化组合数据项进一步分解信息域。
    在这里插入图片描述
    8、IPO图
    IPO图是输入/处理/输出图的简称,它是美国IBM公司提出的一种图形工具,能够方便地描绘输入数据、处理数据和输出数据的关系。
    IPO图使用的基本符号少而简单,因此很容易掌握使用这种工具。它的基本形式是在左边的框中列出有关的输人数据,在中间的框中列出主要的处理,在右边的框中列出产生的输出数据。处理框中列出了处理的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况。
    IPO图其他部分的设计和处理都是很容易的,惟独其中的处理过程描述部分较为困难。对于一些处理过程较为复杂的模块,用自然语言描述其功能十分困难,并且对同一段文字描述,不同的人还可能产生不同的理解(即所谓的二义性问题)。目前用于描述模块内部处理过程还有如下几种方法:结构化英语方法、决策树方法、判定表方法和算法描述语言方法。几种方法各有其长处和不同的适用范围,在实际工作中究竟用哪一种方法,需视具体的情况和设计者的习惯而定。
    一个软件可由一张总的层次化模块结构图和若干张具体模块内部展开的IPO图组成。前者描述了整个系统的设计结构及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入输出关系。
    IPO图的主体是算法说明部分,该部分可采用结构化语言、判定表、判定树,也可用N-S图、问题分析图和过程设计语言等工具进行描述,要准确而简明的描述模块执行的细节。
    开发人员不仅可以利用IPO图进行模块设计,而且还可以利用它评价总体设计。用户和管理人员可利用IPO图编写、修改和维护程序。因而,IPO图是系统设计阶段的一种重要文档资料。
    在IPO图中,输入、输出数据来源于数据词典。局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用。注释是对本模块有关问题作必要的说明。
    在这里插入图片描述
    9、层次图

    在这里插入图片描述
    10、HIPO图
    HIPO 图由层次结构图和IPO 图两部分构成,前者描述整个系统的设计结构以及各类模块之间的关系,后者描述某个特定模块内部的处理过程和输入/输出关系。
    HIPO 图一般由一张总的层次化模块结构图和若干张具体模块内部展开的IPO 图组成。
    IPO 图上部反映模块基本信息,即该模块在总体系统中的位置,所涉及的编码方案,数据文件/数据库,编程要求,设计者和使用者等信息。
    IPO 图的下部主要用在数据流程分析阶段定义的输入、输出数据流的基础上,对给定模块的输入、输出数据流进行详细定义,重点对该模块的内部处理过程进行描述。输入、输出数据流的描述与标识参考数据流程分析,处理过程描述可用结构化描述语言、判断树、判定表和算法描述语言或伪码等,也可以用其他辅助性工具协助IPO 图的设计。
    在这里插入图片描述
    在这里插入图片描述
    11、结构图
    软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,称为软件体系结构图更为合适,一般通过分层次或分时间段等方式说明体系结构的各个组成部分的组合关系。
    在结构化设计方法中,软件结构图主要分为变换型软件结构图和事务型软件结构图两种。
    软件结构包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。一个系统由一组构件以及它们之间的交互关系组成,这种系统本身又可以成为一个更大的系统的组成元素。
    在这里插入图片描述
    在这里插入图片描述
    12、程序流程图
    程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设计的最基本依据,因此它的质量直接关系到程序设计的质量。
    在这里插入图片描述
    在这里插入图片描述
    13、盒图
    摆弄数据离散度的一种图形。它对于显示数据的离散的分布情况效果不错。在软件工程中,Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也被称为N-S图。
    它由五个数值点组成:
    最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。
    由于现实数据中总是存在各式各样地“脏数据”,也称为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即

    1、IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
    2、最小观测值为min = Q1 - 1.5IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
    3、最大观测值为max = Q3 + 1.5
    IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
    通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:
    1、直观地识别数据集中的异常值(查看离群点)。
    2、判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

    14、PAD图
    PAD是问题分析图(Problem Analysis Diagram)的英文缩写。
    与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结构。发明以来,已经得到一定程度的推广。它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树(Tree Walk)规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
    特征:
    1)结构清晰,结构化程度高;
    2)易于阅读
    3)最左端的纵线是程序主干线,对应程序的第一层结构;每增一层PAD图向右扩展一条纵线,帮程序的纵线数等于程序层次数。
    4)程序执行:从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线。
    优点
    PAD图
    PAD图
    1. 使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序
    2. PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
    3. 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行;
    4. 很容易将PAD图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
    5. 既可用于表示程序逻辑,也可用于描述数据结构
    6. PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。
    PAD图是面向高级程序设计语言的,为FORTRAN,COBOL和PASCAL等每种常用的高级程序设计语言都提供了一整套相应的图形符号。由于每种控制语句都有一个图形符号与之对应,显然将PAD图转换成与之对应的高级语言程序比较容易。
    PAD是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。用PAD可以消除软件开发过程中设计与制作的分离,也可消除制作过程中的“属人性”。虽然目前仍需要由人来编制程序,一旦开发的PAD编程自动化系统实现的话,计算机就能从PAD自动编程,到那时程序逻辑就是软件开发过程中人工制作的最终产品。显然在开发时间上大大节省,开发质量上将会大大提高。
    缺点:不如流程图易于执行。

    15、判定表、
    判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来;其缺点是判定表的建立过程较烦杂,且表达方式不如前两种简便。判定表在用于知识表达中,有许多其他方式所达不到的作用。
    判定表通常有以下四个部分组成:
    1)条件桩(Condition Stub):在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
    2)动作桩(Action Stub):在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
    3)条件项(Condition Entry):在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。
    4)动作项(Action Entry):在右下部,列出在条件项的各种取值情况下应该采取的动作。
    判定表的建立步骤:
    1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
    2)列出所有的条件桩和动作桩。
    3)填入条件项。
    4)填入动作项。得到初始判定表。
    5)简化.合并相似规则(相同动作)。
    判定表的优点:
    能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 在线Visual Paradigm - UML编辑器使用在线UML编辑器轻松绘制UML图,其中包含功能强大的UML编辑工具,即时UML语法检查和整洁的用户界面。Visual Paradigm在线UML 图,如类...类图也显示了约束和类的属性。类图表示法...

    在线Visual Paradigm - UML编辑器

    使用在线UML编辑器轻松绘制UML图,其中包含功能强大的UML编辑工具,即时UML语法检查和整洁的用户界面。Visual Paradigm在线UML 图,如类,用例,序列,活动,部署,组件,状态机和包图。(一键即时打开使用)

    类图示例:汽车

    什么是UML中的类图?

    类图通过显示该系统中的类和类之间的关系来描述面向对象系统的结构。类图也显示了约束和类的属性。

    类图示例

    类图表示法

    一个类的UML表示是一个包含三个垂直堆叠的隔间的矩形,如图所示:

    UML类图示例

    属性

    类的属性部分在单独的行上列出每个类的属性。属性部分是可选的,但使用时它包含以列表格式显示的类的每个属性。该行使用以下格式:name:属性类型(例如cardNumber:Integer)。

    手术

    这些操作记录在类图矩形的底部隔间中,这也是可选的。与属性一样,类的操作以列表格式显示,每个操作都在自己的行上。操作记录使用这种表示法:名称(参数列表):返回值的类型(例如calculateTax(Country,State):Currency)。

    尝试一下!

    寻找在线活动图工具?只需点击下面的绘图按钮即可在线创建活动图。Visual Paradigm Online是免费*且直观的。在开始之前,您还可以通过此活动图教程了解活动图。

    现在画

    关系

    协会

    有些物体由其他物体组成。关联指定两个类之间的“有-a”或“全部/部分”关系。在关联关系中,整个类的对象具有部分类的对象作为实例数据。

    在类图中,关联关系呈现为有向实线。

    单向关联 - 在单向关联中,两个类是相关的,但只有一个类知道关系存在。

    单向关联被描绘成一条带有指向已知类的开放箭头的实线。

    无向关联示例

    双向(标准)关联 - 关联是两个类之间的关联。关联总是被假定为双向的; 这意味着除非您将协会限定为某种其他类型,否则这两个班级都会意识到彼此及其关系。

    双向关联由两个类别之间的实线表示。

    双向关联示例

    多重

    将多样性符号放置在关联的末尾附近。这些符号表示链接到另一个类的一个实例的一个类的实例的数量。例如,一个公司将有一个或多个员工,但每个员工只为一个公司工作。

    多重性示例

    能见度

    可见性用于表示谁可以访问类中包含的信息,用+, - ,#和〜表示,如图所示:

    Visibilitiy示例(属性)

    概括

    泛化是一般事物(称为超类)和更具体的那种(称为子类)之间的关系。泛化有时被称为“是一种”关系,是通过继承过程建立的。

    在类图中,泛化关系呈现为带有指向父类的大型开放箭头的固定定向线。

    UML泛化图示例

    抽象类和方法

    在继承层次结构中,子类实现特定的细节,而父类将框架定义为其子类。父类还提供一个模板,用于将由其子类实现的常用方法。

    抽象类和方法示例

    抽象类 的名称通常以斜体显示; 或者,可以使用文本注释来显示抽象类,在其名称后面或下面也可以称为stereotype {abstract}。

    一个抽象的方法是没有实现的方法。为了创建一个抽象方法,创建一个操作并使其斜体。

    实现

    实现是两件事之间的关系,一件事(一个接口)指定另一件事(一个类)通过实施该合同中指定的操作而保证执行的合同。

    在类图中,实现关系呈现为带虚线的指向线,并带有指向界面的开放箭头。

    UML实现示例

    依赖

    依赖关系表示两个类之间的“使用”关系。在类图中,依赖关系呈现为虚线。

    如果A类“使用”B类,则以下一个或多个语句通常适用:

    1. B类被用作A类的一个或多个方法中的局部变量的类型。
    2. B类用作A类一种或多种方法的参数类型。
    3. B类用作A类的一种或多种方法的返回类型。
    4. A类的一个或多个方法调用B类的一个或多个方法。
    UML依赖性示例

    何时绘制类图?

    除了类图之外,大多数UML图不能直接与任何面向对象的编程语言进行映射。换句话说,类图理想情况下可以有一对一映射到UML类图。此外,类图在以下情况下很有用:

    1. 描述系统的静态视图。
    2. 建模静态视图元素之间的协作。
    3. 描述系统执行的功能。
    4. 使用面向对象的语言构建软件应用程序。
    5. 为目标系统执行代码正向工程
    6. 将类或组件作为库进行分类以备未来重用

    如何绘制类图?

    1. 识别问题域中的对象,并为它们中的每一个创建类。(例如教师,学生,注册系统课程)
    2. 为这些类添加属性(例如姓名,地址,学生类的电话)
    3. 为这些类添加操作(例如课程类的addStudent(student))
    4. 将课程连接到适当的关系(例如,将教师与课程关联起来)
    5. 可选地为关联连接器的结尾指定多重性(例如,连接教师和课程的关联的课程侧的输入0..3,用于表示一个教师可以教导多达三个课程)

    你也可以:

    1. 为类的逻辑分类绘制包 
      封装在类图中

    类图示例

    下面的类图示例显示了销售订单系统中涉及的类。注意在类模型中使用<<枚举>>类。

    类图示例 - 销售订单系统

    下面的类图示例显示了一组与飞行管理相关的类。这些类被分组在一个包中。

    类图示例 - 飞行

    许多图表 (了解更多)


    展开全文
  • 类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1. 泛化(Generalization) ...

    在UML的

    类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)


    1.       泛化(Generalization

    【泛化关系】:是一种继承关系表示一般与特殊的关系它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.

    【箭头指向】:带三角箭头的实线,箭头指向父类

     

     

    2. 实现(Realization

    【实现关系】:是一种类与接口的关系表示类是接口所有特征和行为的实现.

    【箭头指向】:带三角箭头的虚线,箭头指向接口

     

    3. 关联(Association)

    【关联关系】:是一种拥有的关系它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子

    关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

    【代码体现】:成员变量

    【箭头及指向】:带普通箭头(或实心三角形箭头)的实心线,指向被拥有者

     

    上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

     

    上图为自身关联:

     

    4. 聚合(Aggregation

    【聚合关系】:是整体与部分的关系且部分可以离开整体而单独存在如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.

    聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

    【代码体现】:成员变量

    【箭头及指向】:带空心菱形的实心线,菱形指向整体

     

     

    5. 组合(Composition)

    【组合关系】:是整体与部分的关系但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门.

           组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

    【代码体现】:成员变量

    【箭头及指向】:带实心菱形的实线,菱形指向整体

     

     

    6. 依赖(Dependency)

    【依赖关系】:是一种使用的关系,  即一个类的实现需要另一个类的协助所以要尽量不使用双向的互相依赖.

    【代码表现】:局部变量、方法的参数或者对静态方法的调用

    【箭头及指向】:带箭头的虚线,指向被使用者

     

     

     

    各种关系的强弱顺序:

    泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

    下面这张UML图,比较形象地展示了各种类图关系:

     

     

    ====================================================

    序列图主要用于展示对象之间交互的顺序。

    序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

    消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

     

    序列图中涉及的元素:

    1.   生命线:

    生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实体。

     

     

    2.       同步消息

    发送人在它继续之前,将等待同步消息响应

     

    3.       异步消息

    在发送方继续之前,无需等待响应的消息

     

    4.       注释

     

    5.       约束

    约束的符号很简单;格式是: [Boolean Test]

     

    6.       组合片段

    组合片段 用来解决交互执行的条件及方式。 它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

    常用的组合片段有:

    a.       抉择(Alt)

    抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if..else..。

    抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。

     

    b.       选项(Opt)

    包含一个可能发生或不发生的序列

    c.       循环(Loop)

    片段重复一定次数。 可以在临界中指示片段重复的条件。

     

    d.       并行(Par)

     

    下表列出了常用的组合片段:

    片段类型

    名称

    说明

    Opt

    选项

    包含一个可能发生或可能不发生的序列。 可以在临界中指定序列发生的条件。

    Alt

    抉择

    包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。

    可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。

    Loop

    循环

    片段重复一定次数。 可以在临界中指示片段重复的条件。

    Loop 组合片段具有“Min”“Max”属性,它们指示片段可以重复的最小和最大次数。 默认值是无限制。

    Break

    中断

    如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。

    Par

    并行

    并行处理。 片段中的事件可以交错。

    Critical

    关键

    用在 Par 或 Seq 片段中。 指示此片段中的消息不得与其他消息交错。

    Seq

    弱顺序

    有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。

    Strict

    强顺序

    有两个或更多操作数片段。 这些片段必须按给定顺序发生。

     

    有关如何解释序列的片段

    默认情况下,序列图表明可能发生的一系列消息。 在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。

    以下片段类型可用于更改此释义:

    片段类型

    名称

    说明

    Consider

    考虑

    指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。

    “Messages”属性中键入该列表。

    Ignore

    忽略

    此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。

    “Messages”属性中键入该列表。

    Assert

    断言

    操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。

    Neg

    否定

    此片段中显示的序列不得发生。 通常用在 Consider 或 Ignore 片段中。

     


    ====================================================

    用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。

    【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。

     

    用例图所包含的元素如下:

    1.       参与者(Actor)

    表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

     

    2.       用例(Use Case)

     用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示

    3.       子系统(Subsystem)

    用来展示系统的一部分功能,这部分功能联系紧密。

     

    4.       关系

    用例图中涉及的关系有:关联、泛化、包含、扩展;

    如下表所示:

    关系类型

    说明

    表示符号

    关联

    参与者与用例间的关系

    泛化

    参与者之间或用例之间的关系

    包含

    用例之间的关系

    扩展

    用例之间的关系

    a.       关联(Association)

    表示参与者与用例之间的通信,任何一方都可发送或接受消息。

    【箭头指向】:指向消息接收方

     

     

    b.      泛化(Inheritance)

    就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

    【箭头指向】:指向父用例

    c.       包含(Include)

    包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤;

    【箭头指向】:指向分解出来的功能用例

     

    d.      扩展(Extend)

        扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。

       【箭头指向】:指向基础用例

     

     

    e.       依赖(Dependency)

    以上4中关系,是UML定义的标准关系。 但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示

    表示源用例依赖于目标用例;

    【箭头指向】:指向被依赖项

     

    5.       项目(Artifact)

    用例图虽然是用来帮助人们形象地理解功能需求,但却没多少人能够通看懂它。很多时候跟用户交流甚至用Excel都比用例图强,VS2010中引入了“项目”这样一个元素,以便让开发人员能够在用例图中链接一个普通文档。

    用依赖关系把某个用例依赖到项目上

     

    然后把项目-》属性 的Hyperlink 设置到你的文档上

    这样当你在用例图上 双击项目时,就会打开相关联的文档。

     

    6.       注释(Comment)

     

     

    包含(include)、扩展(extend)、泛化(Inheritance) 的区别:

    条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;

    直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。

    对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

    Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;

     

    一个用例图示例:

     

     

    展开全文
  • UML 类图

    2020-04-07 18:01:38
    类图软件工程的UML一种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。 类图是面向对象式的建模。他们一般都被用于概念建模(conceptual modelling)的系统分类的应用程序,并可将模型建模转译成...
  • 软件工程.第十章.UML-3.UML的模型表达工具_静态建模—类图0 目录10 UML-310.2 UML的模型表达工具_静态建模—类图10.2.1课堂重点10.2.2测试与作业11 下一章 0 目录 10 UML-3 10.2 UML的模型表达工具_静态建模—类图 ...
  • UML是统一建模语言,主要用于软件的分析与设计阶段。但是UML有这么多图,具体怎么用呢? 一:需求分析阶段的业务用例图 用例图,是用来表示 系统角色 与 系统什么功能 发生交互的图。通过用例图,可以很清晰地...
  • UML的内容可以由下列五类图(共9种图形)来定义:·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。...
  • 对象图可以被看做是UML类图中的某一时刻的实例。在UML中,对象图表示一组对象及他们之间的联系。对象图使用的使与UML类图相同的符号和关系,因为对象就是类的实例。 UML中类图与对象图的区别: 类图 ...
  • UML类图的总结

    2019-01-09 20:26:55
    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的...静态图分为:用例图,类图,对象图,包图,构件图,...
  • UML类图

    2019-08-03 15:12:37
    类图软件工程的统一建模语言一种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。 类图是面向对象式的建模。他们一般都被用于概念建模(conceptual modelling)的系统分类的应用程序,并可将模型...
  • 软件工程完整ppt

    2020-07-30 14:55:08
     第1篇面向过程的软件工程  第1章软件危机、 软件工程  11软件工程的发展史  111程序设计时代  112程序系统时代  113软件工程时代  12软件危机主要表现形式  13产生软件危机的原因及解决途径  131产生软件...
  • 软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。 v 软件是指程序、数据和文档三者共同构成的配置。 v 包含与数据处理系统操作有关的程序、规程...
  • 类图的概述

    2017-08-07 10:28:41
    类图是面向对象系统建模中最常见和最基本的图之一,它提供了用于定义和使用对象的主要规则,同时类图是正向工程(将模型转化为代码)的主要资源,是逆向工程的生成物。其他许多图(如状态图、协作图、组件图和配置图...
  • 大学软件工程总结

    2013-07-09 21:46:15
    大学软件工程总结 2013年7月9日 软件工程复习总结 软件工程在我整个大学的课程里是选修课,学的是电子工业出版社的《软件工厂--方法与实践 第2版》
  • 学习资料:软件工程(第三版)齐治昌等 学习计划:30h内 题型:选择题,填空题,判断题,简答题 update:2019/01/08补充了一些 update:2019/01/09国防科大的pdf版,在网页上看体验差 链接: ...
  • 复习-软件工程

    2019-07-22 22:40:15
    软件工程概念 软件工程是建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效运行。(NATO会议上提出) ①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和...
  • UML-类图

    2020-05-12 01:33:56
    类图软件开发业务模型设计中经常遇到,可以在设计实现之初用来描述整体的思路,便于更好的理解和发现不足。 UML图画图工具很多,可以自由选择,用word也没关系,手画也行 元素图例 类 每个类主要包含三部分:...
  • 软件工程基础知识

    2018-09-04 23:02:41
    软件工程知识点总结 有以下知识点(考试内容,当然不止这些)   1. 软件工程的定义 2. 软件生存周期 3. 软件过程模型 4. 需求分析的定义、获取 5. 常见的软件体系结构(B/S 、C/S 、软件总线中间件) 6. ...
  • 软件工程名词解释

    2019-11-09 21:39:16
     软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。 软件生存周期  软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退...
1 2 3 4 5 ... 20
收藏数 5,099
精华内容 2,039
关键字:

类图约束 软件工程