软件工程期末复习(二)

简介: 软件工程期末复习(二)

第四章

一、软件测试的目的和重要性

       1. 目的:为了发现和改正错误

       2. 为了发现程序中的错误而执行程序的过程

       3. 好的测试方案使测试很可能发现尚未发现的错误

       4. 成功的测试是发现了未发现的错误的测试

二、软件测试方法分为2种

      1. 静态分析

      2. 动态测试

三、动态测试方法分为:

白盒法:分析程序的内部逻辑结构,注意选择适当的覆盖标准。

黑盒法:不考虑程序内部结构与特性,只根据功能或程序的外部特性设计

四、软件测试的步骤

      单元测试→集成测试→确认测试→系统测试

第五章

一、软件维护

       1.维护种类

       (1)改正性维护

      (2)适应性维护

      (3)完善性维护

      (4)预防性维护

       2. 副作用

       (1)代码副作用

       (2)数据副作用

       (3)文档副作用

       3. 可维护性的度量

       (1)可理解性

       (2)可测试性

       (3)可修改性

       (4)可移植性

第六章

一、面向对象(OO)

       目的是有效地描述和刻画问题领域的信息和行为,以全局的观点来考虑系统中各种对象的联系,考虑系统的完整性和一致性,是对问题域的完整、直接的映射。

二、面向对象的分析(OOA)

       通常建立三个模型:对象模型、动态模型、功能模型

三、面向对象方法学的要素和优点

       1. 四个要素:

       (1)对象

       (2)类

       (3)继承

       (4)消息传递

Ps:实例:有某个特定的类所描述的一个具体对象。

       消息:对象发出的服务请求。

       封装:把对象的属性和方法结合成一个独立的单位,尽可能隐蔽对象的内部细节。

       2. 面向对象=对象+类+继承+用消息通信

       3. 优点:

       (1)与人类习惯的思维方式一致

       (2)稳定性好

       (3)可重用性好

       (4)较易开发大型软件产品

       (5)可维护性好

四、统一建模语言(UML)

    1. 定义:是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,从需求分析到规格,再到构造和配置。

    2. UML语言中的关系

       (1)关联关系

是一种结构化关系,指一种事物与另一种事物有联系。在UML图中用一条实线表示,在关联的两端可以标注关联双方的角色和多重性标记。其中有一对一、一对多和多对多关系。

       (2)聚合关系

          也称为聚集关系,是一种特殊关联关系,描述元素之间部分和整体之间的关系。

       (3)组合关系

表示类之间整体和部分的关系,一种特殊的聚合关系。组合关系中部分和整体具有统一生存期,部分对象只能作为组合对象的一部分与组合对象同时存在。

(4)依赖关系

       两个事物之间的语义关系。如事物A、B,A变化引起B变化,则称B依赖于A。在UML中用一条带有箭头的虚线表示。

(5)泛化关系

                表示一般与特殊的关系。用一条带空心三角箭头的实线表示。

       (6)实现关系

                一个元素实现另一个元素。如类实现接口。带空心三角的虚线。

       3.  UML图有用例图、类图、对象图、状态图、顺序图、活动图、协作图、构件图、部署图9种。

Ps:动态建模只有顺序图、状态图和活动图。

五、用例图

       1. 用例代表某些用户可见的功能,用于实现一个具体的用户目标。定义了系统的功能需求。用例图只写出谁做了什么。

       2. 用例关系

       (1)关联关系

       (2)扩展关系:扩展用例是基础用例的一个相对独立且可选的用例。

       (3)包含关系:如果两个以上的有大量一致的功能;一个用例的功能太多时,可以使用包含关系建立若干个更小的用例;执行基用例时,每次都必须调用被包含用例。

       (4)泛化关系:一个或多个用例是某个一般用例的特殊化时使用泛化。


3. 用例图包含:

       (1)参与者(actor)/执行者/角色:系统功能的使用者和维护者、其他系统、硬件设备、甚至是时钟。可以用泛化关系来描述多个参与者之间的公共行为。用一个小人表示。

       (2)用例(use case):必须是由某一个参与者触发而产生的活动,即每个用例至少涉及一个参与者。每个参与者必须至少涉及一个用例。用椭圆表示。

      (3)通信联系:执行者和用例之间交换信息。用线段连接。

       4. 表示:

       (1)关联(参与者和用例之间),实线箭头。


       (2)包含(用例与用例之间),虚线箭头,上面写“《include》”,包含指向被包含。(必须)

       (3)扩展(用例与用例之间),虚线箭头,上面写“《extend》”,扩展指向被扩展。(可以有)

       (4)泛化(参与者之间),实线箭头,表示发出的事物“is a”被指向的事物。

2.2.png

六、类图

       1. 描述类与类之间的静态关系。类图表示系统或领域中的实体及实体之间的关联,由表示类的类框和表示类之间如何关联的连线所组成。包的作用是把各种相关的建模元素组织在一起,形成一个整体。

       2. 属性的可见性就是可访问性,分为:

       (1)公有的(publiic):用+表示

       (2)私有的(private):用-表示

       (3)保护的(protected):用#表示

       3. 类的相互关系

       (1)聚合关系:整体和部分的关系。部分对象可同时参与多个整体对象的构成,称为共享聚集。关键词:“包含”、“组成”、“分为”。且在整体类旁边画空心菱形,用实线连接部分类。

       (2)组合关系:整体和部分的关系,部分和整体具有统一生存期。如果部分类完全隶属于整体类,部分与整体共存亡,则称该聚聚为符合聚集,简称组成。用实心菱形(在整体这边画)。

       (3)泛化关系(继承):表示一般与特殊的关系。空心箭头的实线,从子类指向父类。


2.2.png

七、对象图

       1. 对象是类的实例(类可以实例化,接口不行;接口可以多继承,没有定义),因此对象图可以看做类图的实例,能帮助人们理解比较复杂的类图。

八、状态图

       1. 建立类或对象的动态行为模型。状态图重点在于描述状态的控制流。

       2. 状态图画的是某一个对象的状态,不是整个的。

       3. 状态转换是指两个状态之间的关系,它描述了对象从一个状态进入另一个状态的情况,并执行了所包含的动作。

       4. 符号及表示:

       (1)椭圆或圆角矩形:状态

       (2)箭头:状态转移

       (3)事件(写在箭头旁边):引起状态转换的原因

       (4)条件(跟在事件后面括号):状态转换的条件

       (5)实心圆:初始状态

       (6)内部实心的同心圆:最终状态


2.3.png

九、交互图的两种形式:顺序图(时序图)和协作图

       1. 顺序图:

 (1)描述对象之间动态交互的情况,着重表示对象间消息传递的时间顺序。

       (2)对象用矩形框表示,框内标对象名。顺序图方向有从上到下和水平方向两种。箭头上写事件。

       (3)横轴表示参与交互的对象,纵轴表示时间。

                对象:行为的执行者,而不是类象。

                生命线:是一个时间线,表示对象存在的时间段

       2. 协作图:

       (1)描述组成系统的各个成分之间如何协作来实现系统的交互行为。

       (2)强调发送和接收消息的对象之间的组织。

       (3)包含对象、链、消息。

Ps:区别在于前者描述时间顺序,后者描述对象之间的关系。两者语义等价,可以转换形式且不丢失任何信息。

2.4.png

十、活动图

       1. 建模用例的工作流,理解业务处理过程、描述复杂过程的算法。

       2. 活动,动作,转移、决策、同步条、业务对象、起始状态、终止状态

       3. 是状态图的一种特殊情况。不需指明任何事件,只要动作被执行,活动图中的状态就自动开始转换。

       4. 泳道:活动图中的区域划分。每一个泳道代表一个责任区域,一个泳道中包括一组相关活动。

2.5.png

十一、构件图

1.描述软件构件之间的相互依赖关系。

2.构件的类型:


(1)源构件:实现类的源代码文件

(2)二进制构件:一个对象代码文件、一个静态库文件或一个动态库文件

(3)可执行构件:一个可执行的程序文件,是链接所有二进制构件所得到的结果


(1)构件之间才有依赖、提供关系,节点间只有关联关系。

(2)实线表示服务的提供,虚线表示服务的依赖。接口:从代表构件的大矩形边框画出一条线,另一端为小空心圆,接口名字写在空心圆旁边。接口表示构建对外提供的服务。

(3)包含元素:组件、接口、关系


Ps:先写名称后写类型,不要被名字迷惑。如ServerHostMachine中,ServerHost是名字,Machine是类型。

十二、部署图(配置图)

1.用来描述系统所需的处理器和设备的拓扑结构

2.包含元素:节点、组件、关系。

3.一般一个系统只有一个部署图。

相关文章
|
2月前
|
存储 算法 测试技术
|
2月前
|
自然语言处理 算法 测试技术
|
6月前
|
Python
西安石油大学Python期末复习
西安石油大学Python期末复习
103 0
|
4月前
|
数据建模 测试技术 uml
【软件工程】期末复习总结(通俗易懂,学不会来打我)
【软件工程】期末复习总结(通俗易懂,学不会来打我)
|
9月前
|
算法 测试技术 项目管理
软件工程导论期末急救包(上)(二)
软件工程导论期末急救包(上)(二)
|
9月前
|
测试技术 开发工具
软件工程导论期末急救包(上)(一)
软件工程导论期末急救包(上)
|
9月前
|
C语言
期末复习二
期末复习二
|
10月前
|
网络协议 网络安全 网络性能优化
【计算机网络期末复习】重点知识总复习
【计算机网络期末复习】重点知识总复习
146 0
|
11月前
|
数据可视化 测试技术 项目管理
软件工程期末复习(三)
软件工程期末复习(三)
|
11月前
|
存储 供应链 测试技术
软件工程期末复习(一)
软件工程期末复习(一)
147 0