软件工程导论期末复习——概念汇总(背就完了!哭哭QAQ
作者:互联网
1.软件工程的7条本质特征:
- 软件工程关注于大型程序的构造
- 软件工程的中心课题是控制复杂性
- 软件经常变化
- 开发软件的效率非常重要
- 和谐的合作是开发软件的关键
- 软件必须有效的支持他的用户
- 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品
2.软件工程生命周期:
问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、维护
3.瀑布模型:
- 传统的瀑布模型和实际的瀑布模型(15页&16页图)
- 传统瀑布模型特点:
- 阶段间具有顺序性和依赖性
- 推迟实现的观点
- 质量保证的观点
- 每个阶段都必须完成规定的文档
- 每个阶段结束前都要对所完成的文档进行评审
- 实际的瀑布模型增加了“反馈环”,因为在设计阶段可能发现规格说明文当中的错误,而设计上的缺陷或错误可能在实现的过程中显现出来,在综合测试阶段将发现需求分析、设计或编码阶段的很多错误。
- 优点:
- 可强迫开发人员采用规范的方法
- 严格规定了每个阶段必须提交文档
- 要求每个阶段交出的所有产品必须经过质量保证小组的仔细验证。
- 缺点:
- 用户只能通过文档了解产品,但仅通过纸上的静态规格说明很难全面的动态认识软件产品。
4.总体设计的原理:
- 原理包括:模块化、抽象、模块独立
- 模块化:
- 把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。
- 总成本曲线:把复杂问题分解能减小成本,但模块过多导致接口设计成本增加;故每个程序都相应的有一个最适当的模块数目使得开发成本最小,依据总成本开发曲线估计。
- 抽象:
- 抽象:一定事物、状态或过程之间总存在某些相似的方面(共性),把这些共性集中和概括起来,暂时忽略他们之间的差异,这就是抽象。
- 求精:为了能集中精力解决主要问题而尽量推迟对细节的考虑。是一种自顶向下策略。
5.内聚和耦合:
- 耦合:
- 耦合是对一个软件内不同模块之间互连程度的度量。
- 耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
- 在软件设计中应该追求尽可能松散耦合的系统。
- 分类:
- 数据耦合:两个模块彼此只交换数据(低耦合,必须存在,一个系统可以只有数据耦合
- 控制耦合:模块间交换的信息中有控制信息(中等程度的耦合,往往多余,可以分解后用数据耦合代替
- 特征耦合:把整个数据结构作为参数传递而被调用的模块只需要其中一部分元素
- 公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。(如果只有两个模块有公共环境:①一个模块往公共环境送数据,另一个取,为数据耦合;②两个都既传又取,介于数据耦合和控制耦合之间
- 内容耦合:
- 一个模块访问了另一个模块的内部数据
- 一个模块不通过正常入口而转到另一个模块内部
- 两个模块有一部分程序代码重叠(只可能出现在汇编程序中
- 一个模块有多个入口
- 出现以上之一则为内容耦合
- 内容耦合程度最高,应该坚决避免
- 内聚:
- 内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
- 设计是力求高内聚。
- 分类:
- 低内聚
- 偶然内聚:任务之间即使有关系也很松散(出现修改错误的概率高
- 逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类
- 时间内聚:一个模块包含的任务必须在同一段时间内执行
- 中内聚:
- 过程内聚:一个模块内的处理元素是相关的,而且必须以特定次序执行(程序流程图得到的往往是过程内聚的
- 通信内聚:模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据
- 高内聚:
- 顺序内聚:一个模块内的处理元素同一个功能密切相关,且这些处理必须顺序执行(数据流图得到的是顺序内聚
- 功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能(程度最高
- 低内聚
后续补充大概率出题的大题
标签:QAQ,哭哭,一个,软件工程,模块,内聚,耦合,数据 来源: https://www.cnblogs.com/hotaru-klxx/p/15635593.html