[关闭]
@rayiooo 2018-07-08T09:01:27.000000Z 字数 13159 阅读 2655

软件工程复习

计算机考试复习


实时更新。

资料更新度:7更。

已完结。

发布地址:作业部落

发布总地址:Blog

Author 爱吃大板
Email rayiooo@foxmail.com
Time 2018.7

1 软件工程概述

软件工程(SE):是一种系统工程,不止包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理。是为了生产出高质量的软件进而找到解决方案,并考虑那些对质量有影响的特性。

故障和失效的区别:

故障:是内部视图,是从开发人员的角度看待系统。
失效:是外部视图,是用户看到的问题。
人为错误 -- 可能导致 -> 故障 -- 可能导致 -> 失效

软件质量衡量的维度:

软件系统的系统组成:
A system = activities(活动) + objects(对象) + relationships(关系) + boundary(系统边界)

抽象(abstraction):是在某种概括层次上对问题的描述,使得我们能够集中于问题的关键方面而不会陷入细节。

复用:重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去。

现代软件工程大致包含的几个阶段及各个阶段文档:

  1. 需求分析和定义───需求规格说明
  2. 系统设计────设计描述
  3. 程序设计─┐
  4. 程序实现─┴─程序文档
  5. 单元测试─┐
  6. 集成测试─┼─测试数据
  7. 系统测试─┘
  8. 系统交付─┬─培训手册
  9. 维护 ─┘

使现代SE实践发生变化的七个关键因素:

商业软件的投放市场时间的紧迫性
计算经济学的改变
强力的桌面计算平台的出现
局域网和广域网的延伸
面向对象技术的出现和采用
使用窗口、图标、菜单和指针的图形用户界面
瀑布模型用于软件开发的不可预测性


2 过程和生命周期的建模

2.1 过程

过程(Process): 一组有序的任务称为过程。它涉及活动、约束和资源使用的一系列步骤,用于产生某种想要的输出。
生命周期: 涉及产品构建的过程。
软件生命周期: 软件开发过程。

软件开发的阶段:

2.2 软件过程模型

2.2.1 瀑布模型

w. 01w. 02w. 03w. 04w. 05w. 06w. 07w. 08w. 09w. 10w. 11w. 12需求分析系统设计程序设计编码单元测试和集成测试系统测试验收测试运行和维护原型化Work瀑布模型

原型(prototype):是一个部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型。

2.2.6 阶段化开发:增量和迭代

  • 增量开发:系统需求按功能分为子系统,定义发布时首先定义一个小的功能子系统,然后在每一个新发布中增加新功能。
  • 迭代开发:系统开始就提供了整体功能框架,后续版本陆续增强各个子系统。

2.2.7 螺旋模型

题目:螺旋模型四个象限的任务及四重循环的含义?(P41)

四象限:

  • 确定目标、可选方案及约束
  • 评估可选方案及风险
  • 计划
  • 开发与测试

操作概念是第一次迭代的产品,而软件需求则是第二次迭代的主要产品,第三次迭代系统开发软件设计,第四次迭代能够进行测试

2.2.∞ 总结

题目:针对本章描述的每一种过程模型,讨论使用该模型的优点和缺点分别是什么?

瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。该模型适用于项目开始时需求已确定的情况。

V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。

原型化模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。

螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。


3 计划和管理项目

3.1 跟踪项目进展

项目进度:通过列举项目的各个阶段,把每个阶段分解成离散的任务或活动,来描述特定项目的软件开发周期。
活动(activity):是项目的一部分,它在一段时间内发生。
里程碑(milestone):是活动的完成——某一特定的时刻。
关键路径:是一条每个节点的时差都为零的路径。
甘特图:是对项目的描述,显示在什么地方活动是并行进行的,并用颜色或图标来指明完成的程度。

3.4 风险管理

风险(risk):是一种具有负面后果的、人们不希望发生的事件。

题目:有几种降低风险的策略?

  1. 通过改变性能或功能需求来降低风险。
  2. 通过把风险分配到其他系统中,或者购买保险以便在风险成为事实弥补经济上的损失。
  3. 假设风险会发生,接受并用项目资源控制风险。

3.6 过程模型和项目管理

挣值(earned value):是比较活动的一种方案,根据每一个活动确定项目完成了多少。


4 获取需求

4.1 需求过程

需求(requirement):就是对期望的行为的表达。是对来自用户的关于软件系统的期望行为的综合描述,涉及系统的对象、状态、约束,功能等。

获取需求的过程:[P102]

TIM截图20180707144034.png

4.3 需求的类型

4.3.1 解决冲突

需求优先级划分方案:

(1)绝对要满足的需求(必须的)
(2)非常值得要的但并非必须的需求(值得要的)
(3)可要可不要的需求(可选的)

4.3.2 两种需求文档

需求定义:完整罗列用户想要系统实现的功能。它面向的是业务相关的人员,例如:委托人,客户以及用户。
需求规格说明SRS:用工程术语重述需要实现的功能。它面向的是技术性人员,例如:设计人员、测试人员以及项目经理。

4.5 建模表示法

4.5.1 实体-联系图(ER图)

4.5.2 UML类图

4.5.4 消息时序图

4.5.6 状态图

4.5.8 数据流图

数据流图的画法

画法 名称 意义
箭头 表示数据流
圆或椭圆 表示加工
= 双杠 表示数据存储
方框 表示数据的源点或终点

4.5.9 用例图

4.5.11 判定表

4.5.∞ 题目

4.7 原型化需求

抛弃型原型:为了对问题或者提议的解决方案有更多的了解而开发的软件,永远不会作为交付软件的一部分。快速但不考虑质量。
演化型原型:不仅帮助我们回答问题,而且还要演变为最终的产品。


5 设计体系结构

5.1 设计过程

体系结构(Architecture):一种软件解决方案,用于解释如何将系统分解为单元,以及单元如何相互关联,还包括这些单元的所有外部特性。
设计模式(Design pattern):一种针对单个软件模块或少量模块而给出的一般性解决方案,它提供较低层次的设计决策(低于体系结构)。它们不是拿来就可以使用的打包的解决方案,而是解决方案的模板,必须针对特定的状况进行修改和调整。
设计公约(Design Convention):一系列设计决策和建议的集合,用于提高系统某方面的设计质量。
设计原则(design principle):一些良好的设计特征。
概念设计:告诉客户系统可以做什么(软件结构和功能)。
技术设计:告诉程序员系统会如何做(软件功能和界面接口方法)。包括主要硬件组成及其功能、软件功能和层次、数据结构和数据流。

软件体系结构开发过程:(P160,图5-4)

  • 建模:尝试可能的分解
  • 分析:分析初步的体系结构
  • 文档化:记录体系结构决策
  • 评审:检查体系结构是否满足需求
  • 软件体系结构文档(SAD)

6 设计模块

6.2 设计原则

设计原则:模块化、接口、信息隐藏、增量式开发、抽象、通用性

6.2.1 模块化

6.2.1.1 耦合度

耦合度:

  • 当两个构件之间有大量依赖关系的时候,我们就说这两个构件是高度耦合的。
  • 松散耦合的构件之间具有某种程度的依赖性,但是它们之间的相互连接比较弱。
  • 非耦合的构件之间没有任何相互连接,它们之间是完全独立的。

耦合度取决于:

耦合度的类型从高到低分为:

6.2.1.2 内聚度

内聚度:是指模块的内部元素的“粘合”程度。内聚度越高,模块内部的各部分相互之间的相互联系就越紧密,与总体目标就越相关。

内聚的类型由低到高:

6.3 面向对象设计(OO)

面向对象:是一种软件开发方法,它将问题及其解决方法组织成一系列独立的对象,数据结构和动作都被包括在内。
OO基本特征:一致性、抽象、分类、封装、继承、多态、持久性

  • 继承与对象组合:
  • 可替换性:
  • 德米特法则:“不要和陌生人说话”
  • 依赖倒置:

OO开发的优势:

OO开发过程步骤:

OO需求、OO高级设计、OO低级设计、OOP、OO测试

6.4 在UML中体现面向对象设计

6.5 面向对象设计模式

  • 模板方法模式:将重复的代码结构放置在一个抽象类中,然后让子类继承这个抽象类。
  • 工厂方法模式
  • 策略模式
  • 装饰者模式
  • 观察者模式
  • 组合模式
  • 访问者模式

7 编写程序

7.3 文档

7.3.1 内部文档

内部文档内容:

  • HCB头注释块
  • 其他程序注释
  • 有意义的变量名和语句标记
  • 安排格式以增强理解
  • 文档化数据

7.3.2 外部文档

外部文档内容:

  • 描述问题
  • 描述算法
  • 描述数据

7.4 编程过程

极限编程(XP):是一种轻量级的软件开发方法论,属于敏捷开发方法。XP从实践中来,是对实践的总结,也是经过实践检验的,其主要特征是要适应环境变化和需求变化,充分发挥开发人员的主动精神。XP承诺降低软件项目风险,改善业务变化的反应能力,提高开发期间的生产力,为软件开发过程增加乐趣等等 。

结对编程:属于主要的敏捷开发方法,其开发方式是两个程序员共同开发程序,且角色分工明确。一个负责编写程序,另一个负责复审与测试。两人定期交换角色。

7.∞ 其它

一般性的编程原则应该从三个方面考虑:

编码阶段实现某种算法时所涉及的问题:


8 测试程序

8.1 软件故障和失效

产生软件失效的原因:(287页)

主要的缺陷类型:

A. 算法故障
B. 计算故障和精度故障
C. 文档故障
D. 压力故障或过载故障
E. 能力故障或边界故障
F. 计时故障
G. 性能故障
H. 恢复故障
I. 硬盘和系统软件故障
J. 标准和过程路障

正交缺陷分类:故障被分为不同的类别,这些类别共同勾画出开发过程的哪些部分需要关注,因为它们是产生很多故障的原因。因此,分类方案必须是产品无关的和组织无关的,并且可适用于开发的所有阶段的。

8.2 测试的相关问题

模块测试/构件测试/单元测试:将每个程序构件与系统中其他构件隔离,对其本身进行测试。
集成测试:验证系统构件是否能够按照系统和程序设计规格说明中描述的那样共同工作的过程。

测试步骤以及各个步骤的测试对象:(P292,图 8-3)

黑盒或闭盒:测试对象的功能
开盒或白盒:测试对象的结构

8.3 单元测试

单元测试:检查集成的系统是否按照需求中指定的那样执行它的功能
走查中,程序员向评审小组提交代码及其相关文档,然后评审小组评论它们的正确性。
审查中,评审小组按照一个事前准备好的关注问题清单来检查代码和文档(更正式)。

白盒测试的覆盖方法:
语句覆盖 < 判定(分支)覆盖 < 条件覆盖 < 判定条件覆盖 < 组合覆盖 < 路径覆盖

8.4 集成测试

8.4.1 自底向上集成(驱动程序)

8.4.2 自顶向下集成(桩)

8.4.3 一次性集成

8.4.4 三明治集成

8.5 OO系统测试

OO系统测试中更容易和更困难的部分:

更容易 更困难
模块化 继承
更快的开发 多态
小的方法 动态绑定
复用 复杂接口
早期识别的接口 更多的集成

9 测试系统

9.0 概念

可靠性:是指一个系统对于给定的时间间隔内、在给定的条件下无失效运作的概率。
可用性:是指在给定的时间点上,一个系统能够按照规格说明正确运作的概率。
可维护性:是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。

回归测试:是用于新的版本或发布的一种测试,以验证与旧版本或发布相比,它是否以同样的方式执行相同的功能。
α测试:开发机构或公司的内部测试。
β测试:客户的测试,属于试用性质的非正式的验收测试。
安装测试:在用户的场所安装系统的测试。

9.2 功能测试

功能测试:基于系统功能性需求,属于闭盒测试。
作用:将系统的实际表现与其需求进行比较。

功能测试的基本指导原则:(335页)

9.3 性能测试

性能测试的含义与作用:(338页)

在我们确定系统能执行需求所要求的功能之后,就要考虑这些功能执行的方式。因此,功能测试针对的是功能需求,而性能测试针对的是非功能需求。

性能测试的主要分类:(338页)

压力测试、容量测试、配置测试、兼容性测试、安全性测试、计时测试、环境测试、质量测试、恢复测试、维护测试、文档测试、人为因素测试。

9.5 验收测试

9.6 安装测试

9.7 自动化系统测试

9.8 测试文档

9.∞ 总结

题目:系统测试的主要步骤及各自含义?(327页, 图9-2)

  1. 功能测试:系统是否按照需求中指定的那样执行它的功能。
  2. 性能测试:软件与非功能系统需求进行比较。
  3. 验收测试:根据用户的需求描述检查系统。
  4. 安装测试:保证系统按照它应有的方式进行。

题目:什么是系统配置?软件配置管理?基线?

系统配置是向特定客户交付的一组系统组件。
配置管理控制不同系统配置之间的差别,将风险和错误降低到最低程度。某个特定系统的一个配置有时称为一个版本。
基线是软件文档或源码的一个稳定版本,它是进一步开发的基础

题目:确认测试, 确认测试分类?(基准测试和引导测试)

当功能测试和性能测试完成后,我们确信,系统满足在软件开发的初始阶段过程中指定的所有需求,下一步要询问客户和用户,他们是否持有同样的观点。
基准测试中,客户准备一组代表在实际安装后系统运作的典型情况的测试用例。针对每一个测试用例,客户评估系统的执行情况。
并行测试中,新系统与先前版本并行运转,用户逐渐地适应新系统,但是继续使用与新系统功能相同的老系统。


复习资料

软件工程第四版复习要点答案

软件工程复习 课件整理(修改版)

软件工程知识点总结

软件工程期末复习知识点整理

软件工程知识点


题目

题目来自sdu学长学姐05-16年祖传。


2017试题(含答案)

2017《软件工程》试题及答案


2016模拟试题

软件工程模拟试卷2016年下(A)

备注1:请使用中文回答问题。
备注2:所有题目都要写到试卷的指定位置(例如:试卷上),以免流水阅卷时有遗漏
备注3:复习时以课件为主,英文教材为辅。

一. 解释下列名词的含义(每个小题2分,共 X 分)
2.过程(Process)
3.功能性需求(Functional Requirement)
4.黑盒测试( Black-box Test)

二. 判断(填写 × 或 √)(每个小题1分,共 X 分)
1.( ) 当软件系统的效率与可维护性产生抵触时,应强调效率。
2.( ) 开发软件时可随便选择一种语言进行开发。
3.( ) 抽象是面向对象的开发方法中独有的策略,在传统的开发方法中不需使用。
4.( ) 桩模块的编写比驱动模块更困难。

三. 从供选择的答案中,选出正确的答案填入( )内。(每个题空1分,共 X 分)
1. 下列选项不属于瀑布模型的优点的是( )。
A.可迫使开发人员采用规范的方法
B.严格的规定了每个阶段必须提交的文档
C.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
D.支持后期的变动
2.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( )。
A.运行和维护阶段 B. 设计阶段
C.代码实现阶段 D. 测试阶段
3. 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)及(C)的完整集合。其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文资料。
A,B,C:① 软件 ② 程序 ③ 代码 ④ 硬件
⑤ 文档 ⑥ 外设 ⑦ 数据 ⑧ 图表
填入答案(A: B: C: )

四.简述题(每个小题5分,共 X 分)
1.某个开发模型的含义及特点。
2.列出你所知道的模块间的各种内聚(Cohesion)关系
3.说明软件测试过程的主要步骤及含义。
4.简述如何使需求变得更具测试性。

五.综合应用题(共 X 分)
1。根据给定的命题或分析图, 添加内容或回答问题或画图。
2.测试方面的题目(基本概念,或单元测试,或集成测试概念等)。
// 3. 高级语言程序设计的基本技术用以实现软件工程的某个概念。
// 4.OO的基本设计方法和技巧等。


2012试题(含答案)

2012年软件工程试卷(A版01稿)

注意:请使用中文回答问题
一. 解释下列名词的含义(每个小题1分,共10分
1.统一过程(UP-Unify Process)
统一过程是一个面向对象且基于网络的程序开发方法论。
2. 项目进度(Project Schedule)
项目进度是对特定项目的软件开发周期的刻画。
3.重用(Reuse)
重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去。
4.项目成本(Project Cost)
项目成本就是指项目消耗和占用资源的数量总和
5.需求(requirement)
需求,就是对期望的行为的表达。
6.耦合(Coupling)
耦合:两个软件部件之间的相互关联程度
7.关联(Association)
两个类之间的连线称为关联,表示类的实体之间的关系。
8.极限编程(XP-Extreme Programming)
极限编程(XP)是一种轻量级的软件开发方法论,属于敏捷开发方法。XP从实践中来,是对实践的总结,也是经过实践检验的,其主要特征是要适应环境变化和需求变化,充分发挥开发人员的主动精神
9.驱动模块(Component Driver)
驱动模块就是集成测试里面自顶向下测试时的主模块
10.β测试(β/ Beta Test)
客户的测试,属于试用性质的非正式的验收测试

二. 判断(填写 × 或 √)(每个小题1分,共10分)
1.( √ ) 原型化可以改善对需求和设计的理解,因此选择原型化过程可以降低项目风险。
2.( √ ) 模型是对现实的简化,建模是为了更好地理解所开发的系统。
3.( √ ) 软件过载缺陷就是当运行程序时,软件内部定长的数据结构被溢出,系统任务无法完成。
4.( × ) UML语言支持面向对象的主要概念,并与具体的开发过程相关。
5.( × ) RUP(Rational Unified Process:统一软件过程)本质上是轻量级的软件过程规范。
6. ( × ) 如果测试数据满足了条件覆盖,则必然满足判定覆盖。
7. ( × ) 每一个故障(缺陷)都会对应于一个失效(失败)。
8. ( × ) 设计成功的系统不需维护,维护意味着系统存在问题。
9.( × ) 需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
10.( × ) 开发人员和客户对软件质量因素的认可是一致的。

三. 从供选择的答案中,选出正确的答案填入_________内。(每个小题或题空为1分,共25分)
1、以下关于软件测试的叙述中,正确的是B_
A. 软件测试不仅能表明软件中存在错误,也能说明软件中不存在错误。
B. 软件测试活动应该从编码开始。
C. 一个成功的测试能发现至今未发现的错误。
D. 在一个被测程序段中,若已发现的错误越多,则残存的错误越少。
2、不属于黑盒测试技术的是__B_
A. 错误猜测 B. 逻辑覆盖 C. 边界值分析 D. 等价类划分
3、一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”, RUP用A_来表述“谁做”。
A. 角色 B. 活动 C. 制品 D. 工作流
4、__D__是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;A是指子类可以自动拥有父类的全部属性和服务;C_是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。
(1)A. 继承 B. 多态 C. 消息 D. 封装
(2)A. 继承 B. 多态 C. 消息 D. 封装
(3)A. 继承 B. 多态 C. 消息 D. 封装
5、风险预测从两个方面评估风险,即风险发生的可能性以及D_
A. 风险产生的原因。
B. 风险监控技术。
C. 风险能否消除。
D. 风险发生所产生的后果。
6、UML中关联的多重度是指C_
A. 一个类中被另一个类调用的方法个数。
B. 一个类的某个方法被另一个类调用的次数。
C. 一个类的实例能够与另一个类的多少个实例相关联。
D. 两个类所具有的相同的方法和属性。
7、下图是一个软件项目的活动图,里程碑B_在关键路径上。
TIM截图20180707100411.png
A.1 B.2 C.3 D.4
8、UML是一种面向对象的统一建模语言,它包含九种图。其中用例图中的外部actor指__D__,用例可以用__A__图来描述。协作图描述了协作的__A__之间的交互和联结。
(1) A人员 B单位 C人员或单位 D人员或外部系统
(2) A类 B状态 C活动 D协作
(3) A对象 B类 C用例 D状态
9、按测试数据执行程序逻辑程度判断,判定覆盖C_条件覆盖。
A. 强于 B. 弱于 C. 等价于 D. 不等价于
10、包含8个成员的开发小组的沟通路径最多有A_条。
A. 28 B. 32 C. 56 D. 64
11、模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为D
A. 数据耦合 B. 标记耦合 C. 公共耦合 D.内容耦合
12、下列关于项目估算的叙述不正确的是D_
A. 专家判断方法受到专家经验和主观性影响
B. 启发式方法(如COCOMO模型)的参数难以确定
C. COCOMOII采用多次估算的策略,估算结果将越来越准确
D. 结合上述三种方法可以得到精确的估算结果
14、为了有效地捕获系统需求,应采用C_
A. 瀑布模型
B. V模型
C. 原型模型
D. 螺旋模型
15、UML设计视图包含了类、接口和协作,其中,设计视图的静态方面由__ A__和B表现,动态方面由交互图、__ D__表现。
(1)A类图 B状态图 C活动图 D序列图
(2)A交互图 B对象图 C通信图 D定时图
(3)A状态图和类图 B活动图和类图 C状态图和对象图 D状态图和活动图
16、软件A_是指一个系统在给定的时间间隔内和给定条件下无失效运行的概率。
A. 可靠性
B. 可用性
C. 可维护性
D. 可伸缩性
17、高质量文档所应具备的特性中,不包括D_
A. 针对性,文档编制应考虑读者对象群
B. 精确性,文档的行文应十分确切,不能出现多义性描述
C. 完整性,任何文档都应该是完整的、独立的、应该自成体系
D. 无重复性,统一软件系统的几个文档之间应该没有相同内容,若存在相同内容,则可以用“见文档节”方式引用
18、在面向对象软件开发过程中,采用设计模式A_
A. 复用成功的设计
B. 保证程序运行速度达到最优
C. 减少设计中创建类的个数
D. 允许在非面向对象程序设计语言中使用面向对象的概念
19、下列关于风险的叙述不正确的是:风险是指C_
A. 可能发生的事件
B. 一定会发生的事件
C. 会带来损失的事件
D. 可能对其进行干预,以减少损失的事件
20、黑盒测试不能发现C_
A. 不正确或遗漏的功能。
B. 初始化或终止性错误。
C. 内部数据结构不合理。
D. 性能不满足要求。

四.简述题(共30分)
1. 请写出下列术语的英文全称或缩写:
软件需求规格说明书,设计模式,验收测试。
SRS,Design pattern,Acceptance Testing
补充:功能测试:Function Testing
性能测试:Performance Testing
安装测试:Installation Testing
2.影响软件工程开发实践的关键要素是什么?

3.螺旋模型四个象限的基本任务和四重循环的大致结果是什么?
1. 确定目标、可选方案及约束
2. 评估可选方案及风险
3. 计划
4. 开发与测试

4.考虑到需求的优先级,举例说明获取需求时的需求基本分类。

1.传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的主要原因。
瀑布模型最大的问题是它并不能反映实际的代码开发方式

3、对于需求文档,如何进行测试?(哪些方面? 什么原则?)
7.举例说明模块间的各种内聚(Cohesion)关系。
6.功能测试的基本指导原则是什么?
5.试述COCOMOII模型的工作原理。
8.试述设计用户界面应考虑的问题
注意解决的要素、文化差异问题、用户爱好问题

五.综合应用题(共25分)

1、(12分)某客户信息管理系统中保存着两类客户的信息。
(1)个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和E-mail)。
(2)集团客户。集团客户可以创建和管理自己的若干名联系人。对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息。联系人的信息包括姓名、住宅电话、E-mail、办公电话以及职位。

该系统除了可以保存客户信息之外,还具有以下功能:
(1)向系统中添加客户(addCustomer);
(2)根据给定的客户标识,在系统中查找该客户(getCustomer);
(3)根据给定的客户标识,从系统中删除该客户(removeCustomer);
(4)创建新的联系人(addContact);
(5)在系统中查找指定的联系人(getContact);
(6)从系统中删除指定的联系人(removeContact)。

该系统采用面向对象方法进行开发。在面向对象分析阶段,根据上述描述,得到如下表所示的类。

类 名 说 明
CustomerInformationSystem 客户信息管理系统
IndividualCustomer 个人客户
InstitutionalCustomer 集团客户
Contact 联系人

描述该客户信息管理系统的UML类图如下图所示。
TIM截图20180707100851.png
【题目要求】:
1、请使用需求定义中的术语,给出上图中类Customer和类Person的属性。
2、考虑上图,请画出类之间的联系。
3、根据说明中的叙述,抽象出如下表所示的方法,请指出类CustomerInformationSystem和InstitutionalCustomer应分别具有其中的哪些方法。

功 能 描 述 方 法 名
向系统中添加客户 addCustomer
根据给定的客户标识,在系统中查找该客户 getCustomer
根据给定的客户标识,从系统中删除该客户 removeCustomer
创建新的联系人 addContact
在系统中查找指定的联系人 getContact
从系统中删除指定的联系人 removeContact

2、(6分)This figure illustrates the component hierarchy in a software system. Describe the sequence of tests for integrating the components using a bottom-up approach, a modified top-down approach.
TIM截图20180707101011.png

3、(7分)下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
int GetMax(int n, int datalist[ ])
{
int k=0;
for ( int j=1; j if ( datalist[j] > datalist[k] ) k=j;
return k;
}
(1) 画出该程序的控制流图。
(2) 设计路径覆盖的测试用例。


2011试题

2011年软件工程

一、名词解释
软件工程、重用、文档缺陷、分阶段模型、派对编程、α测试、组合、RUP、还有两个

二、判断
应该只有三个是往年的原题,其他的都没见过

三、选择
应该有14个题(不过与往年的题一模一样的也就三四个吧)
有考察对错误、缺陷、失败的理解,求关键路径,考风险,某个测试,总之范围比较广,需要平时的积累。

四、简答题
1、写出分阶段模型、需求规格说明书、设计模式、验收测试、软件配置管理的英文单词
2、如何衡量软件质量
3、主程序员负责制的优缺点
4、写出需求工程中获取需求的步骤吧(我的表述不太准确,大概就是这个意思) 我记得主要答案是原始需求的获取、问题分析、规格草稿说明、需求核准、输出正式的需求规格说明书吧,大概是这样。你还需要对每一步有个简短的解释。
5、写出所有的内聚并解释其含义
6、功能测试的原则

五、综合题
1、类似填用例图,给的是一个旅游景点的管理系统的描述(不难)
2、给一小段程序(其实你可以根据这段程序画出一个流程图,程序非常简单),然后让你设计判定覆盖和条件覆盖的测试用例
3、给你一段描述(很短),让你画类图(大概是一辆红色金属漆的轿车,它是四门车,前后门,前后挡风玻璃、轮胎、后视镜等,总之就是告诉你轿车的各个构件,让你画类图)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注