课程代码:0668043
前言:软件工程(英语:software engineering),是软件开发领域里对工程方法的系统应用,可以解决软件开发中的很多问题。
看到大家整理的复习提纲,都有同样的问题:内容过于繁琐。所以我给大家带来急救版复习资料,考前24小时必看。但要注意这并不是软件工程学习资料,它以精简、易背为目的。其中Q标记的是必看,QE为拓展,仅供参考。
Q:软件危机原因:
软件开发和维护过程中所遇到的一系列严重问题。
问题1:如何开发软件,满足对软件日益增长的需求。
问题2:如何维护数量不断膨胀的已有软件。
Q:软件工程方法学
软件生命周期全过程中使用的一整套技术的整合,包含:方法、工具和过程
Q:软件生存期(生命周期)
软件定义、软件开发、软件维护
Q:软件需求的正确性(四方面验证)
一致性、完整性、现实性、有效性
Q:软件质量
指的是“软件与明确地和隐含地定义的需求相一致的程度”。
几个特性:可使用性、可维护性、可靠性
Q:结构化分析方法: 面向数据流自顶向下逐步求精进行需求分析
Q:瀑布模型
采用结构化分析与设计方法,将逻辑实现与物理分开,阶段间有顺序性和有效性。
优点:强迫采用规范方法(结构化技术)
缺点:文档驱动导致最终开发的产品可能不满足需要
Q:快速原型模型: 快速构建一个可以运行的软件,以便理解和澄清问题
QE:螺旋模型: 风险驱动开发模型,适合开发大型软件
QE:问题定义: ① 调查 ② 开发系统的要求(要实现的目标) ③ 确定功能与方案(实现的方法) ④ 写报告
Q:研究可行性: 技术、经济、操作、社会和法律 可行性
Q:成本估算技术: 代码行技术、任务分解技术、自动估计成本技术
Q:软件维护四大类
① 改正性维护 ② 适应性维护 ③ 完善性维护 ④ 预防性维护
Q:测试与调试
测试:目的是找出程序中存在的错误
调试:目的是定位错误并修改错误
Q:黑盒与白盒测试:
黑盒测试:完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。是在程序接口进行的测试,又称功能测试。
白盒测试:将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。
Q:数据流图: 数据流、数据存储、加工、外部实体
Q:状态转换图
例题:手机开机时,处于空闲状态;当用户开始呼叫某人时,手机进入拨号状态;如果呼叫成功,进入通话状态;如果呼叫不成功,重新进入空闲状态。在空闲状态被呼叫,进入响铃状态;如果用户接听,进入通话状态;如果一分钟不接听,重新进入空闲状态。
Q:计算环形复杂度(McCabe方法)
Ⅰ. V = E - N + 2 (E为边数,N为结点数)
Ⅱ. V = P + 1 (P为流图中判定节点的数目)
QE:软件设计分为 概要设计 和 详细设计:
概要设计:将软件需求转化为数据结构和软件系统结构
详细设计:通过对结构表示细化,得到软件详细数据结构与算法
Q:模块与模块化设计
模块:数据说明和可执行语句等程序对象的集合,每个模块单独命名并且可通过名字对模块进行访问。
模块化设计:把大型软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块设计方法。
QE:什么是耦合与内聚?
耦合:模块之间相互连接的紧密程度的度量。
内聚:模块功能强度的度量。
模块独立性强,指的是高内聚、低耦合。
Q:模块的耦合、内聚与独立性关系
低 | 耦合性 | 高 | ||||
---|---|---|---|---|---|---|
非直接耦合 | 数据耦合 | 标记耦合 | 控制耦合 | 外部耦合 | 公共耦合 | 内容耦合 |
强 | 模块独立性 | 弱 |
高 | 内聚性 | 低 | ||||
---|---|---|---|---|---|---|
功能内聚 | 信息内聚 | 通信内聚 | 过程内聚 | 时间内聚 | 逻辑内聚 | 巧合内聚 |
强(功能单一) | 模块独立性 | 弱(功能分散) |
Q:程序流程图
Q:盒图
QE:Jackson方法
面向 数据结构 的设计方法。
Q:流图
Q:程序流程图导出流图
Q:画等价类表,设计测试样例
例题:日期限定在1990年1月—2049年12月,并规定设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月—2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例。
设计测试样例的格式如下。
测试数据 | 期望结果 | 覆盖的等价类 |
---|---|---|
xxx | xxx | xxx |
Q:边界值分析
是一种黑盒测试技术,步骤如下。
① 分析输入情形
② 分析输出情形
③ 分析规格中每一决策点情形
④ 以上述输入/输出组合可能的情形
⑤ 设计测试用例
QE:UML图的关系
泛化关系(继承)、实现关系、关联关系、依赖关系、聚合关系、组合关系
静态建模:用例图、类图、对象图、组件图、部署图
动态建模:时序图、协作图、状态图、活动图
Q:类图
参考如下。(+为public,-为private,#为protected)
Q:时序图
对应上面的类图。
能力成熟度模型
软件能力成熟度模型是一种对软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述形成的标准。
初始级->可重复级->已定义级->已管理级->优化级