【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试

目录

  • 考试题型分布与对应知识点
  • 软件工程概述
  • 软件过程
  • 项目管理
  • 用例图
  • 活动图(泳道图)
  • 类图
  • 顺序图
  • 软件测试

考试题型分布与对应知识点

  1. 阅读题1:1-3章:JDK,JVM,基本数据类型,String,流程控制,数组
  2. 阅读题2:4-6章:类和对象,超类,子类,继承类,包,访问控制,接口
  3. 阅读题3:7-9章:异常处理,多线程设计(易),输入输出流
  4. 编程题:4-7章:类和对象,超类,子类,继承类,包,访问控制,接口,异常处理
  5. 简答题1:软件工程概述:软件概念和特点,软件双重作用,软件危机概念和产生原因,应用软件工程的目的,软件工程定义,三要素和发展阶段
  6. 简答题2:软件过程:软件生命周期概念和阶段,软件过程概念,软件过程模型的概念,5大软件过程模型,能力成熟度模型(CMM)概念
  7. 简答题3:项目管理:四P要素(人员,产品,过程,项目),项目度量的方法,项目估算的方法,项目计划中的任务网络图,找关键路径
  8. 分析题1:画用例图
  9. 分析题2:画活动图
  10. 分析题3 :画顺序图
  11. 分析题4:画类图
  12. 分析题5:软件测试(黑盒测试或白盒测试)

软件工程概述

  1. 软件=程序+数据+文档,程序是按事先设计的功能和性能需求执行的指令序列,数据是程序能正常操纵信息的数据结构,文档是与程序开发、维护和使用有关的图文材料

  2. 双重作用:一方面是一种产品,另一方面是开发其他软件产品的工具

  3. 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题

  4. 客观原因:软件本身特点,逻辑部件,规模庞大

    主观原因:不正确的开发方法,忽视需求分析,错误认为:软件开发=程序编写,轻视软件维护

  5. 软件工程的定义:(1)应用系统化的、学科化的、定量化的方法,来开发、运行和维护软件,即将工程应用到软件。(2)对(1)中各种方法的研究。

  6. 三要素:方法(技术手段,分面向过程面向对象),工具(建模工具,编程工具,测试工具),过程(评估管理控制,采用方法工具生成产品)

  7. 四阶段:第一代软件工程 — 传统的软件工程,第二代软件工程 — 对象工程,第三代软件工程 — 过程工程,第四代软件工程 — 构件工程

软件过程

  1. 软件生命周期:软件产品或软件系统从设计、投入使用到被淘汰的全过程

  2. 阶段:问题定义可行性研究需求分析总体设计详细设计编码测试维护

  3. 软件过程:在工作产品构建过程中,所需完成的工作活动、动作和任务的集合。

  4. 软件过程模型:是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。

  5. 瀑布模型:规定了各项软件工程活动,以及它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。适用于系统需求明确且稳定、技术成熟、工程管理较严格的场合,如军工、航天、医疗。

    瀑布模型优点(改):迫使开发人员采用规范的方法。 严格规定了每阶段必须提交的文档。要求各阶段的产品必须经过质量验证。

    瀑布模型缺点:增加工作量,各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。开发风险大由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。早期错误发现晚,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。不适应需求变化不能反映实际的开发方式,软件开发需要迭代;无法适应需求不明确和需求的变化。

  6. 原型模型:一个部分开发的产品,使客户和开发人员能够对计划开发的系统的相关方面进行检查。如图书借阅系统:主要界面,智能家居系统:少量的室内信息监视和电器控制

    原型模型优点:减少需求不明确带来的风险

    原型模型缺点:构造原型采用的技术和工具不一定主流;快速建立起来的系统加上连续的修改可能导致原型质量低下;设计者在质量和原型中进行折中;客户意识不到一些质量问题

  7. 增量模型:增量:满足用户需求的一个子集,能够完成一定功能、小而可用的软件,举例:文字处理软件:创建文本、组织文本、格式化文本

    增量模型优点:增量概念的引入,不需要提供完整的需求,只要有一个增量出现,开发就可以进行;软件能够更早投入市场;开放式体系结构,便于维护;在项目的初始阶段不需要投入太多的人力资源;产品逐步交付,软件开发能够较好地适应需求的变化;能够看到软件中间产品,提出改进意见,减少返工,降低开发风险;

    增量模型缺点:每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量;软件必须具备开放式体系结构(困难);易退化成边做边改的方式,使软件过程控制失去整体性

  8. 螺旋模型:开发过程分成若干次迭代,每次迭代代表开发的一个阶段,对应模型中一条环线。适用于需求不明确或者需求可能发生变化的大型复杂的软件系统。

    螺旋模型优点:螺旋模型强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力,支持用户需求的动态变化;螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。原型可看作可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便;

    螺旋模型缺点:如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟交付时间;使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高,否则会带来更大风险。

  9. 敏捷软件过程是基本原理开发准则的结合

    快速响应变化和不确定性,可持续开发速度,适应商业竞争环境下的有限资源和有限时间

    测试驱动开发可能导致通过测试但非用户期望;重构而不降低质量困难

  10. 能力成熟度模型CMM:迄今为止学术界和工业界公认的有关软件工程和管理实践的最好的软件过程评估模型。

    • 初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
    • 可重复级:建立了基本的项目管理过程来跟踪费用、进度和软件的功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
    • 已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
    • 量化管理级:分析软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理活动有一个作出结论的客观依据,能够在定量的范围内预测性能。
    • 优化级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。 有能力识别软件过程中的薄弱环节,并有足够的手段改进它们,防止缺陷的产生。

项目管理

  • 面向规模的度量:

    千行代码( KLOC )

    生产率(PM):PM = L / E, L表示代码总量(单位:KLOC),E表示软件工作量(单位:人月)

    每千行代码的平均成本( CKL ):CKL = S / L,S为软件项目总开销 , L表示代码总量(单位:KLOC)

    代码出错率(EQRl):EQRl = Ne / L,Ne表示代码出错的行数,L表示代码总量(单位:KLOC)

    文档与代码比(Dl):Dl = Pd / L,Pd表示文档页数, L表示代码总量(单位:KLOC)

    优点:简单易行,自然直观

    缺点: 依赖于程序设计语言的表达能力和功能,软件开发初期很难估算出最终软件的代码行数,对精巧的软件项目不合适

  • 面向功能的度量:

    FP和UFC的计算

    优点:与程序设计语言无关, 在开发前就可以估算出软件项目的规模

    不足: 没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;功能点计算主要靠经验公式,主观因素比较多

  • 关键路径:在任务网络图中,从项目开始到项目完成有许多条路径,路径上所有弧权重之和最大的路径(路径最长)叫关键路径。

用例图

  1. 组成元素:

    (1)参与者:是指外部用户或外部实体在系统中扮演的角色。可以是一个人、一个计算机子系统、硬件设备或者时间等角色。

    (2)用例:对一组动作序列的描述,系统通过执行这一组动作序列为参与者产生一个可观察的结果。用例名往往用动宾结构命名。

    (3)执行关联: 参与者(Actor)执行用例(UseCase)之间的关系。

  2. 关联:描述参与者和用例之间的关系。用单向箭头,表示谁启动用例。每个用例都有角色启动,除了包含和扩展用例。

  3. 包含:是指两个用例之间的关系。其中一个用例(基本用例,base use case)的行为包含了另一个用例(包含用例,inclusion use case)的行为。如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用例可以和这个用例建立包含关系。

  4. 扩展:也是指两个用例之间的关系。一个用例可以被定义为基础用例的增量的扩展,称作为扩展关系。扩展关系是把新的行为插入到已有的用例中方法。基础用例即使没有扩展用例的执行不会涉及扩展用例,只有在特定的条件发生,扩展用例才被执行。

  5. 泛化(继承):一个用例和其几种情形的用例间构成泛化关系。往往父用例表示为抽象用例。任何父用例出现的地方子用例也可出现。

    【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第1张图片

  6. 用例描述

    【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第2张图片

  7. 实例:用户登录系统进行登录信息校验。校验成功,则给予登录成功提示。登录有误,则返回到登录窗口。校验失败最多允许3次,则退出登录。

    【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第3张图片

    活动图(泳道图)

    1. 组成元素:

    活动的开始:大黑点
    活动的结束:圆圈套大黑点
    每一个活动:圆角矩形
    分支及合并(可选计算线程):菱形
    分叉及汇合(并发计算线程):短横线

  8. 引入泳道:引入泳道技术来解决活动图没有描述对象职责的缺点。泳道代表了一个特定的类、人、部门、层次等对对象的职责区,这些对象在业务流程中负责执行的活动构成了他们的职责。

    【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第4张图片

【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第5张图片

类图

类是包含信息和影响信息行为的逻辑元素。

类的符号是由三个格子的长方形组成,有时下面两个格子可以省略。

最顶部的格子包含类的名字,类的命名应尽量用应用领域中的术语,有明确的含义,以利于开发人员与用户的理解和交流。中间的格子说明类的属性。最下面的格子是类的操作行为
【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第6张图片

类之间的耦合关系:

【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第7张图片
【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第8张图片
【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第9张图片

顺序图

顺序图是强调消息时间顺序的交互图。

顺序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。

顺序图包含四个元素:对象(Object),生命线(Lifeline),消息(Message),激活(Activation)

【软件工程】期末知识点总复习(包括考题分布介绍)——电子科技大学期末考试_第10张图片

软件测试

  1. 黑盒测试:

黑盒测试的等价类划分:划分等价类,选取测试用例
黑盒测试的边界值分析:确定边界情况选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据做为测试用例。
上点,即边界上的点,不管是开区间还是闭区间。
内点,上点范围内的任意一点。
离点,离上点最近的点称为离点。开区间为上点范围内加一个步长,闭区间为上点范围外加一个步长。
二元函数,按照一元函数的方法对每一个变量选择上点、内点和离点,然后用第一个变量的上点、离点与第二个变量的内点配对设计4个测试用例,再用第一个变量的内点与第二个变量的上点、离点配对设计4个测试用例,最后两个变量的内点配对形成最后一个测试用例,共设计9个测试用例。
三元函数,方法同二元函数类似,对每一个变量选择上点、内点和离点,然后用第一个变量的上点、离点与第二个变量的内点、第三个变量的内点配对设计4个测试用例,然后第一个、第三个变量的内点与第二个变量的上点、离点配对设计4个测试用例,依次,第一个、第二变量的内点与第三个变量的上点、离点配对设计4个测试用例,最后三个变量的内点配对形成最后一个测试用例,共设计13个测试用例。

  1. 白盒测试:

白盒测试的逻辑覆盖包含语句覆盖,分支覆盖,条件覆盖,条件组合覆盖。
语句覆盖:每个语句
分支覆盖(判定覆盖):每个判断的取真分支和取假分支
条件覆盖:每个判断的每个条件的可能取值至少执行一次
条件组合覆盖:每个判断的所有可能的条件取值组合至少执行一次

白盒测试的基本路径覆盖
1.绘制程序控制流图
2.分析控制构造的环路复杂性。计算方法:V(G) = e−n+2。
其中,e 为图中边的数目;n 为节点数目
3.导出基本可执行路径集合
4.设计测试用例的,保证在测试中,程序的每一个基本路径至少要执行一次

你可能感兴趣的:(软件工程,软件工程)