武汉理工大学《软件工程》复习总括三

第六章软件结构体系

软件结构体系的内容:

1、构件:代表着一组基本的构成要素
2、连接件:也就是构件之间的连接关系
3、约束:是作用于构件或者连接关系上的一些限制条件
4、质量:是系统的质量属性,如性能、可扩展性、可修改性、可重用性、安全性等。
5、物理分布:代表着构件连接之后形成的拓扑结构,描述了软件到硬件之间的影射。

软件结构体系发展的阶段:在这里插入图片描述

体系结构、软件框架、设计模式三者的联系和区别:

体系结构:描述某一特定应用领域中系统组织的惯用模式,反映领域中众多系统所共有的结构和语义特性,例如:MVC
软件框架:由开发人员定制的应用系统骨架,整个或部分系统的可重用设计,由一组抽象构件和构件实例之间的交互方式组成。例如Django就是一个开放源代码的应运框架,由Python写成。
设计模式:描述软件系统设计过程中常见问题的一些解决方案,从大量的成功实践中总结出来的,且被广泛公认的实践和知识。
软件框架和体系结构的区别及关系:
在这里插入图片描述
软件框架和实际模式的区别及关系:
在这里插入图片描述

软件工程问题中的关键的角色:

用户:使用系统实现某种目标
软件系统:待开发的系统
环境:软件系统以外的任何事物

软件设计的原则(高内聚低耦合):

内聚性:是一个模块或子系统内部的依赖程度。分为七种:功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、巧合内聚。
在这里插入图片描述
耦合性:是两个模块或者子系统之间依赖关系的强度,程序结构各个模块之间相互关联的度量。模块之间的联系方式一般有7中:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
在这里插入图片描述

软件体系结构常见的风格:

可以根据文字描述判断出风格的种类即可。
**在这里插入图片描述
管道/过滤器风格:把系统任务分成若干连续的处理步骤,这些步骤由通过系统的数据流连接,一个步骤的输出是下一个步骤的输入。
在这里插入图片描述
主程序—子程序风格
:结构化程序设计的一种典型风格,从功能的观点设计系统,逐步分解和细化,形成整个系统的体系结构。
在这里插入图片描述
面向对象风格
:系统被看作是对象的集合,每个对象都有一个它自己的功能集合,数据及作用在数据上的操作被封装成抽象数据类型,只通过接口与外界交互,内部的设计决策则被封装起来。
**在这里插入图片描述
层次结构风格----客户机/服务器体系结构:一种分布式系统模型
服务器:为客户机提供服务
客户机:负责与用户的交互 类似于网络编程交互的情景。
在这里插入图片描述
层次结构----浏览器/服务器结构

在这里插入图片描述
层次结构----模型/视图/控制器:(MVC)
**在这里插入图片描述
基于事件的隐式调用风格:将应用看成是一个构件集合,每个构件直至发生对它有影响的事件时才有所动作
**在这里插入图片描述
仓库风格:以数据为中心,适合于数据由一个模块产生而由其他模块使用的情形
在这里插入图片描述

第七章面向对象设计

面向对象的设计和分析中的三种类:

1、实体类:对应系统需求中的每个实体,它们通常需要保存在永久的存储体中,一般使用数据库表和文件来记录,实体类包括存储和传递数据的类,也包括操作数据的类
2、控制类:用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度;
3、边界类:用于对外部用户与系统之间的交互对象进行抽象。主要包括界面类。

什么是领域模型:

在面向对象分析和设计的初级阶段,通常先识别出实体类,绘制初始类图,此时的类图称为领域模型,包括实体类和它们之间的相互关系。

第八章编写高质量代码

程序复杂度怎么计算(重点是第二种,第二种有三种小方法):

基本思想:程序复杂性主要取决于程序控制流的复杂性,单一的顺序结构最简单,选择和循环结构构成的环路越多,程序越复杂。
实质:度量程序拓扑结构的复杂性程序图:把程序看成是有一个入口、一个出口的有向图程序图的
节点:每个语句、一个顺序流程的程序代码段、程序流程图中的每个处理符号程序图的
有向弧:程序中的流程控制、程序流程图中连接不同处理符号的、带箭头的线段
强连通图(Strongly Connected Graph):是指一个有向图(Directed Graph)中任意两点v1、v2间存在v1到v2的路径(path)及v2到v1的路径的图。
三种方法:如果程序图中每个节点都可以由入口节点到达,则图中环的个数 = 环路复杂度
如果程序图是强连通图,则计算环路数V(G)的方法 方法一:V(G) = e–n + p(e: 弧数,n: 节点数,p: 分离部分的数目,V(G)有向图G中的环数) 方法二:包括强连通域在内的环路数 方法三:判定节点数 + 1
V(G)与程序复杂性呈正比关系 一般一个模块V(G) ≤ 10

第九章测试驱动的实现

软件测试的类型

1)从测试对象角度①单元测试 ②集成测试③功能测试 ④性能测试 ⑤安装测试2)测试技术角度①黑盒测试(功能测试)②白盒测试(结构测试)
3)是否运行程序角度①静态测试 ②动态测试
4)执行测试的方式①手工测试 ②自动化测试

白盒测试:

在下一次更新中详写。

自己会设计测试用例:路径覆盖:

在下一次更新中详写

软件测试的几个阶段:(每个阶段的名称作用测试的对象)

1、单元测试:对软件中的最小可测试单元进行检查和验证 对象是单元。
2、集成测试:在单元测试的基础上,将所有模块按照总体设计的要求组装成为子系统或系统进行的测试 对象是系统或者子系统
3、确认测试:在开发过程中或结束时评估系统或组成部分的过程,目的是判断系统是否满足规定的要求。对象是系统
4、系统测试:检测软件系统运行时与其他相关要素的协调工作情况是否满足要求。对象是系统。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值