软件工程期末笔记整理

考试题型与分数:选择20,名词解释12,简答30,综合38;

选择题

cmm可分为五个等级:

  • 一级为初始级,

  • 二级为可重复级,

  • 三级为已定义级

  • 四级为已管理级,

  • 五级为优化级

  1. IDEF0图不反映出系统( B )

A.系统做什么 B.系统功能如何实现 C.系统由谁来做 D.系统实现的约束条件

  1. 软件详细设计主要采用的主要方法是 结构化程序设计

  2. 不适合作为科学工程计算的语言是 Prolog

名词解释

  • 软工:将系统化的,规范化的,可量化的方法应用于软件开发,即将工程化应用于软件

  • 通用软件工程过程架构:沟通 策划 建模 构建 部署

  • KIS(Keep it simple):保持简洁

  • CRC(类 -责任 -协作者):顶部写类名,左侧写出类的职责,右侧写出类的写作者。识别系统需求相关的类或对象

  • spike:在某个故事设计中遇到困难时, 立即建立这部分设计的可执行原型, 实现并评估设计原型

  • 项目速度:第一个发行版本中实现的客户故事个数。用于后续发行版本的发布日期和进度安排,调整软件发行内容和最终交付日期

  • 重构:不改变可观察行为的前提下,调整其结构

  • 结对编程:一个人考虑设计的编码实现,一个人确保编码遵循特定的标准

  • 需求工程:致力于不断理解需求的大量任务和技术

  • 需求工程七个人物:起始 获取 细化 协商 规格说明 确认 管理

  • 模块化:整个软件被划分为独立命名、可编址的部分,称之为模块,这些模块组装起来可以满足整个问题的需求

  • 模块化好处:1容易开发2定义和交付软件增量3容易实施变更4测试调试5长期维护

  • 信息隐蔽:每个模块的实现细节对其他模块来说是隐蔽的

  • 功能独立:是模块化抽象化信息隐蔽的直接结果,专一的功能,避免与其他模块有过多的交互

  • 耦合:模块之间相互连接的紧密程度的度量

  • 内聚:模块功能强度(一个模块内部各元素彼此结合的紧密程度)的度量 求精是一个细化的过程

  • 接口的定义:描述信息如何流入和流出系统以及被定义为体系结构一部分的构件之间是如何通信

  • uml接口定义:接口是类、构件或其他分类的外部可见的操作说明,而没有内部结构的规格说明

  • uml构件定义:系统中模块化的,可部署的和可替换的部件,该部件封装了实现并对外提供一组接口

  • ocp(open close Principle-开闭原则):模块应该对外延具有开放性,对修改具有封闭性,即不应吧变更写进代码,从而不必进入代码内部修改

  • LSP(Liskov Substitution Principle):子类可以替换它们的基类。用在有继承时判断有无滥用继承。

  • dip(Dependence Inversion Principle-依赖倒置原则):依赖于抽象,而非具体实现

  • isp(Interface Segregation Principle-接口隔离原则):多个用户专用接口比一个通用接口,降低接口间的耦合度

  • 测试的目的:

    • 从用户角度,希望通过测试暴露软件隐藏的错误和缺陷,考虑是否接受该产品。

    • 从开发者角度,希望表明软件不存在错误,表明已正确实现了用户的要求

  • 单元测试:对软件设计的最小模块构件或者模块进行正确性检验的测试工作,目的在于发现各模块间可能存在的各种错误

  • 冒烟测试:一种集成测试,是时间关键性项目的决定性机制,允许团队频繁对项目进行评估

  • 回归测试:重新执行已进行测试的某个子集,以确保变更没有传播不期望的副作用

  • 黑盒测试:把它看做一个黑盒子,测试人员不用知道内部结构,只需要按照规格说明书检测其功能是否符合功能说明

  • 白盒测试:把测试对象看成一个透明的盒子,测试人员利用其内部结构设计测试用例,对程序的所有独立路径进行测试。

  • afa测试:一个用户在开发环境下进行的测试,也可以是公司内部员工在模拟实际环境下进行的测试。α测试在受控环境下进行

  • beta测试:多个用户在实际环境下进行的测试。β测试在一个或多个最终用户场所进行,与α测试不同,开发者通常不在场。

  • 4P(People-Product-Process-Project):人员-产品-过程-项目

  • 5whh(Who-When-Where-Why-What-How):

  • 风险:是一个潜在的问题,可能发生也可能不发生

功能独立

OCP(开闭原则)

模块应该对外延具有开放性,对修改具有封闭性,即不应把变更写入代码,从而不必进入

代码内部修改

信息屏蔽(Informetion Hiding)

软件生命周期(software life cycle)

指软件从提出开发要求开始,直到该软件报废为止的整个时期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,是规模大,结构管理复杂的软件变得容易控制和管理。

简答题

比较分析“非渐增组装测试”和“渐增组装测试”

  • 非渐增式测试方法需要编写的测试用例较多,工作量较大;渐增式测试方法开销小。

  • 渐增式测试方法发现模块间接口错误早;而非渐增式测试方法晚。

  • 非渐增式测试方法发现错误,较难诊断;而使用渐增式测试方法,如果发生错误则往往和最近加进来的那个模块有关。

  • 渐增式测试方法测试更彻底

  • 渐增式测试方法需要较多的机器时间

  • 使用非渐增式测试方法,可以并行测试。

谈谈对敏捷开发的认识

概念:

它是一种软件开发方法论,可以应对客户快速变更的需求,它强调以人为核心,采用迭代的方式,循序渐进的开发软件,特别适用于web应用开发。

特点:

  1. 允许项目团队调整并合理安排任务;

  2. 理解敏捷开发方法的易变性并制定计划;

  3. 精简并维持最基本的工作产品

  4. 强调增量交付原则

  5. 快速向用户提高适应产品和运行环境的课执行软件

敏捷原则

简述瀑布模型的定义,特点,使用场景

定义:

特点:

使用场景:

综合题

挣值分析

按如下步骤确定挣值

  1. 为进度表中的每一个工作任务确定其预计工作的预算成本(BCWS-Budgeted Cost for Work Scheduled-计划该完成工作的预算费用)

  2. 将所有BCWS值加起来,可计算出完成工作的预算(BAC-Budget At Completion-预算成本)

  3. 计算已完成工作的预算成本(BCWP-Budgeted Cost for Work Performed-已完成工作的预算费用),即该时间点已经实际完成的所有工作任务的BCWS的和

    可以得到:

    Schedule Performed Index-进度表执行指标SPI=BCWP/BCWS(效率指标,越接近1.0则效率越高)

    Schedule Variance-进度表偏差-SV=BCWP-BCWS(只表示与计划进度的偏差)

    预计完成百分比值:BCWS/BAC(应该完成的)

    特定时间实际完成工作的百分比值:BCWS/BAC(注意这里的BCWS和上面的不一样)

  4. 计算出已完成工作的实际成本ACWP

    字如其名

    Cost Performed Index-成本执行指标CPI=BCWP/ACWP(越接近1.0表示项目与预算越接近)

    Cost Variance-成本偏差CV=BCWP-ACWP(表示在项目特定阶段的成本节省或短缺)

  5. 挣值(EV,Earned Value),又叫已完成工作量的预算成本( BCWP,Budgeted Cost for Work Performed)。指项目实施过程中某阶段实际完成工作量及按预算定额计算出来的 工时(或费用)。(EV=BCWP)

判定表

基本路径测试

程序控制流图

环路复杂度

独立路径

测试用例

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值