当前位置: 首页 > news >正文

软件工程国考

软件工程-同等学力计算机综合真题及答案
(2004-2014、2017-2024)

2004 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)

  1. 软件可用性是指( )。
    A .用户界面友好的程度 B .软件结构,实现及文档为用户可用的程度
    C .修改软件错误的难易程度 D .符合用户使用习惯的程度
    S 解:B 软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。
    可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
  2. 设计阶段的主要任务是( )。
    A .给出软件解决方案 B .给出系统模块结构 C .定义需求并建立系统模型 D .定义模块算法
    S 解:A
  3. 演化模型与增量模型的主要区别是( )。
    A .软件工程活动不同 B .针对的项目大小不同 C .针对不同的软件开发方法 D .针对的需求完整性不同
    S 解:D 增量模型与演化模型的相同点是:基本思想都是非整体开发,以渐增方式开发系统。
    不同点:增量模型:产生结果给客户使用;演化模型:多次迭代,产生结果给测试。
  4. 飞机和发动机都是类,它们之间是一种( )关系。
    A .分类结构 B. is a C .聚合结构 D .一般-特殊结构
    S 解:C
    5.按不同人员的工作内容来分类软件过程,组织过程包括( )。
    A .维护过程和改进过程等 B .确认过程和审计过程等 C .管理过程和改进过程等 D .配置管理过程和裁剪过程等 S 解:C
    按照不同人员的工作内容来分,将软件生存周期过程分为三类: 基本过程、支持过程、组织过程:
    . 基本过程是指那些与软件生产直接相关的过程(5 个):获取过程、供应过程、开发过程、运行过程、维护过程 . 支持过程是有关各方按他们的支持目标所从事的一系列相关活动集(9 个):
    文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程、问题解决过程、 易用性过程等。 . 组织过程是指那些与软件生产组织有关的过程(8 个):
    管理过程、基础设施过程、改进过程、人力资源过程、资产管理过程、复用程序管理过程、领域软件工程过程、培训过程。

二、判断题(每小题 1 分,共 5 分。如果正确,用“√”表示,否则,用“×”表示)

  1. 软件就是计算机系统中的程序。( )
    S 解: × 软件是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解 程序所需的阐明性资料。
  2. 一个软件模型的控制范围应该在其作用范围之内。( )
    S 解: × 在软件设计阶段,划分模块的原则是, 一个模块的作用范围应该在其控制范围之内。
  3. 测试用例时,只需检查程序是否做了它应该做的事情。( )
    S 解: × 测试用例应由测试的输入数据和预期的输出结果两部分组成。
  4. COAD-YOURDON 分析方法是“模型驱动的方法”。( )
    S 解:√ Coad 和 Yourdon 的方法是建立在信息模型化技术、面向对象的程序设计和知识库系统的基础之上的,方法分为 面向对象的分析(OOA)和面向对象的设计(OOD) 。Coad 和 Yourdon 认为面向对象的分析主要应该考虑:一个与特定应用有 关的对象,对象与对象在结构和相互作用上的关系。在面向对象的分析中,需要建立分析模型来描述系统的功能。
  5. 软件开发环境中最主要的组成部分是软件工具。( )
    S 解:√

三、问答题(共 12 分,每小题 4 分)

  1. 给出软件测试过程模型。
    S 答:五种测试模型分别为:V 模型,W 模型,H 模型,X 模型和前置测试模型
    V 模型:V 模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系,从左到右,描述了基本的开发过 程和测试行为。 它非常明确地标明了测试过程中存在的不同级别,强调了在整个软件项目开发中需要经历的若干个测试 级别,并与每一个开发级别对应。
    W 模型:我们可以认为, W 模型,测试与开发是同步进行的,从而有利于今早的发现问题。强调了测试计划等工作的先 行和对系统需求和系统设计的测试;
    H 模型:软件测试是一个独立的流程,贯穿于产品的整个生命周期,与其他流程并发的进行。软件测试原则“尽早准备, 尽早执行”;强调测试是独立的,只要测试准备完成,就可以执行测试。
    X 模型:探索性测试, 能够帮助有经验的测试人员在测试计划之外发现更多的软件错误。
    前置测试模型:前置测试能给需要使用测试技术的开发人员、测试人员、项目经理和用户等带来很多不同于传统方法的 内在的价值。与以前的方法中很少划分优先级所不同的是,前置测试用较低的成本来及早发现错误,并且充分强调了测 试对确保系统的高质量的重要意义。它不仅能节省时间,而且可以减少那些令开发人员十分厌恶的重复工作。
    2.将下面给出的伪码转换成 N-S 图和 PAD 图。
    begin
    输入 10 个数给 a[1]到 a[10];
    max=0;
    min=0;
    if a[1]> a[2] then { max= a[1];
    min= a[2];}
    then { max= a[2];
    min= a[1];}
    i=3;
    while i<=10
    begin if a[i]>max then max=a[i];
    else if a[i]<min then min=a[i];
    i=i+1;
    end;
    输出 max,min;
    end;

3 、COAD-YOURDON 的 OOD 模型包括哪几部分?这几部分各自的任务是什么?
S 答:OOD 模型包括:设计数据管理子系统、设计任务管理子系统、构建问题域子系统、设计人机交互子系统。
1)数据管理子系统的任务是,将一个系统的实现和它所需的具体数据存储分离开来,建立完善的数据存储管理体 系;主要针对系统中涉及的数据,采用独立管理方式,即保证数据的安全又方便对数据进行操作;包括选择数据管 理模式和数据管理子系统的设计。
2)任务管理子系统的任务是,对系统各种任务进行选择和调整;任务管理明确任务的类型并设计处理过程。
3)问题域子系统的任务是,通过对问题的详细分析,已初步得到了问题域的基本模型,但进入设计阶段,要根据 应用环境、编程环境对分析模型进行细化和晚上,进入详细设计阶段需要对问题域模型进行补充修改。
4)人机交互子系统的任务是,根据具体实现环境,用户界面部分是在分析应用的基础上,确定人机交互的细节;

四、建模题(共 8 分)
问题陈述:在一简化的图书管理系统中:
图书管理员负责:
●录入每一入库的图书(书名, 图书编号,图书种类,作者,单价,入库数量);
●当图书出现丢失时,修改该图书的库存数量;如果图书库存数量小于库存下限,则将购书通知(书名,购书量)发给采购员。
采购员负责:
●将图书管理员发来的购书通知(书名,购书量)存入购书目录文件({书名,购书量});
●每月末,根据购书目录文件,制定购书计划({书名,购书量}),并将购书计划提交馆长审批;
●馆长审批通过购书计划后,开始购书,并清除购书目录文件中的相应记录。
馆长负责:审批采购员提交的购书计划,并返回审批意见(同意或不同意)。
图书馆主任负责:
●随时查询某类图书的库存情况(图书种类,库存量,库存金额);
●在每月末,按图书种类统计库存情况(图书种类,库存量,库存金额)。
1.(3 分)用结构化分析方法给出该系统的顶层 DFD(系统环境图);
2.(2 分)给出上述顶层 DFD 的数据字典;
3.(3 分)定义一个交互,并以顺序图给出该交互的描述。

2005 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)
1、软件的正确性是指( B )
A .软件产品能正常运行 B .软件产品达到预期功能的程度
C .软件产品符合用户的要求 D .软件产品运行中不出现任何错误
2、软件开发模型是( B )
A .瀑布开发方法 B .以活动对软件开发的一种分解 C .瀑布模型 D .一种软件过程
3、结构化分析方法中的主要概念有( D )
A .摸块内聚和耦合 B .对像及类 C .摸块和信息隐蔽 D .加工、数据流和数据源等
4、软件测试目标是( B )
A .证明软件是正确的 B .发现错误,降低错误带来的风险 C .排除软件中的所有错误 D .与软件调试相同
5、软件过程是( D )
A .特定的开发模型 B .一种软件求解的计算逻辑 C .活动的集合 D .软件生存周期模型
二、判断题(如果正确,用” √ ”表示;否则,用”×”表示。每题 1 分,共 5 分)
1、在软件生命周期中的软件工程活动包括性能优化。( √ )
2、两个模块共同引用一个全局数据项,模块间的这种耦合称为数据耦合。( × )
S 解:数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.数据耦合联系简单,耦合度低, 模块独立性好,模块间的影响最小,是最理想的一种耦合形式。耦合度低的模块结构设计,系统的复杂性降低,系统易于理解, 易于修改与维护。
3、白盒测试技术和黑盒测试技术都基于程序的逻辑结构。( × )
S 解:白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,着重于程序的内部结构及算法,通常不关心功能 与性能指标。黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,不考虑程序内部结构和内部特性。
而是从用户观点出发,针对程序接口和用户界面进行测试,根据产品应该实现的实际功能和已经定义好的产品规格, 来 验证产品所应该具有的功能是否实现,是否满足用户的要求。
4 、ISO9000-3 是 ISO9003 的一个子集。( × )
S 解:ISO9001 质量体系是在软件设计、开发、生产、安装和维护时的质量保证的参考文件。此标准应用于所有软件产品 和满足各种技术需求的软件维护活动中。它是评价软件质量的首要标准。ISO9000-3 是对 ISO90001 进行改造后,将其应 用到软件工业中对软件开发、供应和维护活动的知道文件。
ISO9003:1994《质量体系最终检验和试验的质量保证模式》适用于汇编及测试运行情况的标准。目前已经不再使用。
5、在对象的整个生命周期中,不同的对象可以具有相同的标识。( × )
S 解:每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
三、简答题(每小题 4 分,共 12 分)
1、给出模块内聚的定义,并举例说明 3 种模块内聚。
答:内聚按强度从低到高有以下几种类型:
(1)偶然内聚。如果一个模块的各成分之间毫无关系,则称为偶然内聚。
(2)逻辑内聚。几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。 尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系, 即使局部功能的修改有时也会影响全 局,因此这类模块的修改也比较困难。
(3)时间内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
(4)过程内聚。如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行, 则称为过程内聚。
(5)通信内聚。如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
(6)顺序内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为 顺序内聚。
(7)功能内聚。模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。

2、将下面给出的伪码转换为 N-S 图和 PAD 图。
Begin
输入 10 个数到 a[1]到 a[10];
sum=0;
max=0;
n=1;
while n<= 10do begin
sum=sum+a[n];
n=n+1 end;
输出 sum 和 max end;
答:N-S 图

PAD 图

3、给出 CMM 中关键过程域的定义,并举例说明两个关键过程域。
答:关键过程域:指明组织改善软件过程能力应关注的区域,并指出为了达到某个成熟度等级所要着手解决的问题。
达到一个成熟度等级,必须实现该等级上的全部关键过程域。每个关键过程域包含了一系列的相关活动,当这些活动全 部完成时,就能够达到一组评价过程能力的成熟度目标。要实现一个关键过程域,就必须达到该关键过程域的所有目标。
可重复级:软件配置管理, 软件质量保证,软件子合同管理,软件项目跟踪和监督,软件项目规划,需求管理 已定义级:对等复审,组间协作,软件产品工程, 集成的软件管理,培训计划,组织过程定义,组织过程焦点
已管理级:软件质量管理, 量化的过程管理
持续优化级:过程变化管理,技术变化管理,缺陷预防

四、建模题( 8 分)
问题陈述:已知在一个简化的教学管理信息系统中,分工如下:
教务员负责:
·录入教师教学信息(姓名,工作证号,课程名,总学时,上课地点,上课时间);
·录入教师缺课情况(姓名,工作证号,缺课时间,原因);
教学秘书负责:
·录入学生各科成绩(姓名,学号, [课程名,成绩])。
教学主任负责:
·每学期统计每一个教师的工作量(姓名,工作证号,上课学时数);
每学期统计每一个学生的不及格课程(姓名,学号,﹛不及格课程名,成绩,补考时间,补考地点﹜), 若大于 2 门, 则给学生发降级通知(姓名,学号)。
要求完成:
1、(3 分)用结构化分析方法给出该系统的顶层 DFD(系统环境图)。
2、(2 分)给出上述顶层 DFD 的数据字典。
3、(3 分)定义一个交互,并以顺序图给出该交互的描述。

答:(1)顶层 DFD

(2)教师教学信息=姓名+工作证号+课程名+总学时+上课地点+上课时间
教师缺课情况=姓名+工作证号+缺课时间+原因
学生成绩=姓名+学号+课程名+成绩
学期教师工作量统计=姓名+工作证号+上课学时数
学期学生不及格课程统计=姓名+学号+不及格课程名+成绩+补考时间+补考地点学生 降级通知=姓名+学号

(3)交互:教学主任通过教学管理信息系统查询每学期教师工作量

2006 年软工

第三部分 软件工程
(共 30 分)
一、在每小题的四个备选答案中选出一个正确的答案。
1.软件工程的基本目标可概括为( A )。
A .可用性、正确性、合算性 B .可用性、正确性、可靠性
C .有效性、正确性、鲁棒性 D .可用性、可靠性、方便性
解析:软件工程目标—包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有的基本性质。
2.模块 A 直接访问模块 B 的数据,属于( A )。
A .内容耦合 B .数据耦合 C .公共耦合 D .控制耦合
解析:内容耦合:两个模块间发生下面情形:
(1)一个模块直接访问另一个模块的内部数据; (2)一个模块不通过正常入口转到另一个模块内部; (3)两个模块有一部分程序代码重叠(只可能程序在汇编语言中); (4)一个模块有多个入口。
3.螺旋模型相比演化模型主要增加了( B )。
A .制定计划 B .风险分析 C .客户评估 D .工程实施
解析:螺旋模型将瀑布模型与演化模型结合起来, 并且加入两种模型均忽略了的风险分析。
4.需求规约的最主要结果为( C )。
A .用户需求描述文档 B .数据流图和数据字典 C .需求规格说明书 D .可行性分析报告
5.OOA 阶段建立的最主要模型是( B )。
A .用况图 B .类图 C .顺序图 D .对象图
S 解:用况图-用来建立需求模型;类图-面向对象建模,显示类内部结构及类之间关系;对象图-是类图的实例,显示对象 和对象之间的关系。顺序图-是用来描述对象自身及对象间信息传递顺序的视图。
二、判断题(共5 分,每小题 1 分)
判断以下每句话是否正确。如果正确,用“ √ ”表示,否则,用“×”表示。
1.“我们是否完成了正确的产品?” 解释了验证(verification)的概念。( × )
解析:错误。 为把握软件开发各个环节的正确性, 需要进行各种确认和验证工作。
验证(Verification),是保证软件正确地实现了某一功能的一系列活动。 验证:“我们是否正确地完成了产品?”(过程正确) 确认(Validation) , 是保证软件的实现满足了用户需求的一系列活动。 确认:“我们是否完成了正确的产品?”(结果正确)
2.软件质量保证过程是软件开发过程的一部分。( √ )
3.α 测试是在受控环境中进行的。( √ )
解析:正确。 α测试由用户在开发者的场所进行,并且在开发者的指导下进行测试。开发者负责纪录发现的错误和
使用中遇到的问题,也就是说 α 测试是在受控的环境中进行的。 (α 版:受控版 β 版:用户直接测试)
4.软件配置管理是 CMM 2 级的一个关键过程域。( √ )
解析:正确。 CMM 第 2 级(可重复级)有 6 个关键过程域,主要涉及建立软件项目管理控制方面的内容。 需求管理,软件项目计划,软件项目跟踪与监控, 软件子合同管理,软件质量保证,软件配置管理。
5.接口是面向对象方法中必不可少的概念。( √ )
三、简答题(共9 分,每小题 3 分)
1.简述白盒测试中的覆盖类型,并说明哪种最强,哪种最弱 ?
解析:白盒测试有六种覆盖类型:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖, 发现错误的能力呈由弱至强的变化。
语句覆盖每条语句至少执行一次。
判定覆盖每个判定的每个分支至少执行一次。
条件覆盖每个判定的每个条件应取到各种可能的值。
判定/条件覆盖同时满足判定覆盖条件覆盖。
条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
路径覆盖使程序中每一条可能的路径至少执行一次。

  1. CMM 5 级(持续优化级)相对4 级(已管理级)增加了哪些关键过程域?
    解析:第 5 级(持续优化级)相对 4 级(已管理级)增加了 3 个关键过程域,主要涉及的内容是软件组织和项目中 如何实现持续不断的过程改进问题。包括缺陷预防,技术变更管理,过程变更管理

3.需求阶段的主要任务是什么?
解析: 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发 计划的一个复杂过程。在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求, 为之后的软件设计打下基础。简言之,需求分析的任务是确定待开发的软件系统"做什么"。具体任务包括确定软件系 统的功能需求,性能需求和运行环境约束,编制软件需求规格说明书,软件系统的验收测试准则和初步的用户手册。

四、建模题(共 11 分)
1.(3 分)某公司人员管理系统问题陈述:人员分为业务员、程序员和经理; 随着时间的变化,人员会变换工作岗位, 如业务员升任经理,经理出任程序员等等。请建立该系统的类图,以有效应对人员职责变化的情况。
解析:

2.(3 分)将下面的 N—s 图转换为 PAD 图:

解析:

3.(5 分)根据你熟悉的一个业务问题建模,要求:
(1)用自然语言给出该问题的简单陈述;
(2)用结构化方法建立该问题的 DFD(至少要给出2 层,即顶层和 0 层),并给出顶层数据字典。

解析:(1)学籍管理系统用于学校对每一位学生的入学、毕业、每学年考试成绩、升留级处理等,该系统具备录入、 存储学生的基本情况、各科成绩;查询学生各科成绩、单科成绩;打印成绩;统计班平均成绩、各科平均成绩;
根据分数进行升留级处理等功能。
(2)
顶层数据流图:

数据字典
数据流项目:
(1)学生信息=姓名+性别+年龄+系别+专业+班级
(2)成绩单=姓名+专业+{科目+考试时间+成绩} 数据项条目:
成绩:别名:本次考试成绩、学生历次考试成绩、学生成绩
类型:实型
长度:6 位,小数点后 1 位
加工条目:
加工名:学籍管理系统
编号:无
输入:学生信息、本次考试成绩、学生记录
输出:统计表、成绩单

0 层数据流图

2007 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题( 每小题 1 分,共 5 分)

  1. 软件是( C )。
    A .计算方法 B .一个计算任务的处理对象的描述
    C .程序和文档 D .一个计算任务的处理规则的描述

  2. 对于软件需求明确的软件项目,适合于使用( D )模型进行软件开发。
    A .喷泉 B .增量 C .螺旋 D .瀑布

  3. 软件设计阶段的主要任务是( A )。
    A .给出系统的模块结构 B .给出问题的软件解决方案
    C .定义需求并建立系统模型 D .定义模块的算法和数据结构

  4. 软件测试过程模型给出了( B )。
    A .用例设计过程 B .软件测试的要素以及它们之间的关系
    C .白盒测试技术的要点 D .测试覆盖准则

  5. 运输工具和汽车都是类,它们之间是一种( A )关系。
    A .一般特殊结构 B .组合结构 C .整体部分结构 D .聚合结构

二、判断题( 每小题 1 分,共 5 分) 正确的用“ √ ”表示,不正确的用“ X”表示。

  1. 模块间通过参数传递基本类型的数据,模块间的这种耦合称为数据耦合。( √ )

  2. 以结构化分析方法建立的系统模型就是数据流图。( × )

  3. 软件测试和程序调试都是发现错误的过程。( × )
    S 解:软件测试目的是为了发现错误而执行程序的过程;程序调试的目的诊断和改正程序中的错误。

  4. 软件质量保证是为保证产品和服务充分满足开发者的要求而进行的活动。( × ) S 解:软件质量保证将使软件项目满足机构方针的要求

  5. 流程图是面向对象方法中用于描述动态模型的一种工具。( × )
    S 解:系统流程图是一种传统工具(详细设计工具),它用于描述物理模型。

三、简答题( 每小题 4 分,共 12 分)

  1. 阐述结构化分析方法的主要概念及分析步骤。
    答:结构化分析方法是一种面向数据流进行需求分析的方法。它是一种建模技术,建立的分析模型如下:

其中,核心是数据字典(DD):包括在目标系统中使用和生成的所有数据对象;
数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能),用于功能建模;
实体- 关系图(ER 图):描述数据对象及数据对象之间的关系,用于数据建模;
状态- 迁移图(STD):描述系统对外部事件如何响应、如何动作, 用于行为建模。
结构化分析的基本步骤是:由顶向下对系统进行功能分解,画出分层 DFD 图;由后向前定义系统的数据加工,编制 DD 和 PSPEC (加工规格说明); 最终写出 SRS(软件需求规格说明)。
1、画出顶层 DFD,确定系统边界;
2、由顶向下按功能逐层分解,根据分析需要画出各层 DFD;
3、当不再分解时,建立 DD 并对处理进行描述;
4、建立 E-R/EE-R、控制流图 CFD、控制说明 CSPEC 和状态迁移图STD 等作为补充;
5、沿 DFD 回溯:从最终的输出数据流出发, 审查输入/ 输出的合理性、一致性、完整性;
6、修改完善 SRS。
2. 将下面给出的伪码转换成 N-S 图和 PAD 图.
begin
s1 ;
if x>1 then s2 else s3 ;
for n :=1 to 10 do s4 ;
if y>1 then s5 ;
end;
答:(1)对应的 N-S 图如下所示: (2)对应的 PAD 图如下所示:

  1. 给出黑盒测试的定义,并列举三种黑盒测试技术。
    答:黑盒测试着眼于软件的外部特性,而不考虑软件的内部逻辑结构和处理过程,只依据程序的需求规格说明书, 检查程序的功能是否符合它的功能说明,故又称为功能测试。
    黑盒测试检查的主要方面有: 程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;能否保证 外部信息(如数据文件)的完整性,等等。
    黑盒测试技术主要有:等价类划分;边界值分析;因果图。

四、建模题( 共 8 分)
问题陈述:在一简化的商场管理信息系统中,
库房管理员负责:
● 输入、修改、删除入库商品信息( 商品名,编号,数量,单价,入库日期) ;
● 打印库房商品库存清单( 商品名,编号,库存量,库存金额) 。 销售员负责:
● 录入商品销售信息( 商品名,编号,销售量,单价) ;
● 输入、修改、删除前台商品信息( 商品名,编号,数量,单价,入库日期);
● 打印前台商品库存清单( 商品名,编号,库存量,库存金额) 。 部门经理负责:
● 统计月商品销售金额;
● 统计月商品库存情况( 商品名,编号,库存量,库存金额) 。
1.(3 分) 用结构化分析方法给出该系统的顶层 DFD(系统环境图) ;
2.(2 分) 给出上述顶层 DFD 的数据字典;
3.(3 分) 选择该商场管理信息系统中的一个交互,用顺序图给出该交互的描述。 答:1.系统的顶层 DFD 如下:( 3 分)

2.数据字典: (2 分)
入库商品信息=商品名+编号+数量+单价+入库日期;
库房商品库存清单={商品名+编号+库存量+库存金额};
商品销售信息=商品名+编号+销售量+单价;
前台商品信息=商品名+编号+数量+单价+入库日期;
前台商品库存清单={商品名+编号+库存量+库存金额};
月商品库存情况={商品名+编号+库存量+库存金额}。
3.例如针对“统计月商品库存情况”这一交互,给出其顺序图如下:( 3 分)

其中,对象“部门经理”调用对象“库房管理员”,实现统计月商品库存情况。

2008 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(本大题共 5 小题,每小题 1 分,共 5 分)
1.软件开发的需求活动,其主要任务是( D )。
A .给出软件解决方案 B .给出系统模块结构 C .定义模块算法 D .定义需求并建立系统模型
S 解:各阶段主要任务, 需求阶段:定义需求并建立系统模型,编制需求规约; 设计阶段:给出软件解决方案;
总体设计:给出软件体系结构,设计各模块;详细设计:给出系统模块结构和定义模块算法;
实现:软件编码; 确认:软件测试; 支持:完善性维护,纠错性维护
2.软件总体设计结束后得到( B )。
A .初始化的软件结构图 B .优化的软件结构图 C .模块的算法 D .程序编码
3.面向对象分析方法与结构化分析方法的区别之一是( B )。
A .一个使用了“抽象”,而另一个没有使用“抽象”
B .一个以问题域的成分为基点来构造一个模块,而另一个不是
C .一个目标明确,而另一个目标不明确
D .一个需要考虑数据结构,而另一个不需要考虑数据结构
S 解:A 都使用了抽象(面向对象: 类、对象和他们之间的关系;结构化方法:DFD、加工);
B 结构化只是抽象了问题处理过程; C 目标都明确; D 都考虑数据结构;
4.确定测试的计划是在( A )阶段制定的。
A .需求分析 B .详细设计 C .编码 D .测试
S 解:分析之后—确定测试计划;设计之后—设计测试用例;编码之后—测试实施;测试—测试工作的展开
5.按不同人员的工作内容来分类软件过程,基本过程包括( C )。
A .维护过程和改进过程等 B .开发过程和改进过程等
C .获取过程和供应过程等 D .改进过程和裁减过程等
二、判断题(本大题共 5 小题,每小题 1 分,共 5 分。如果正确,用“√”表示,否则,用“×”表示)
1.在软件开发方法中,结构化方法总的指导原则是自顶向下、逐步求精。( √ )
2.当一个模块直接修改另一个模块的数据时,模块间的这种耦合称为数据耦合。( × ) S 解:模块间通过参数传递基本类型的数据,模块间的这种耦合称为数据耦合。
3.测试用例只需选用合理的输入数据。( × )
S 解:测试用例要包括 欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行 尽可能完备的测试;
4.边界值分析法是一种白盒测试法。( × )
S 解:七种黑盒测试方法:等价类划分法、边界值法、错误推测法、因果图法、判定表法、状态迁移法、正交实验法 5.关联是建立类之间关系的一种手段。( √ )
S 解:UML 图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
三、简答题(本大题共 3 小题,每小题 4 分,共 12 分)
1.给出模块耦合的定义,并举例说明 3 种模块耦合。
答:耦合是对不同模块之间相互依赖程度的度量。(定义 1 分)
一般地,模块耦合可分为:
1)内容耦合:当一个模块直接修改或操作另一个模块的数据时,模块间的这种耦合称为内容耦合。
2)公共耦合:当两个以上的模块共同引用一个全局数据项时,模块间的这种耦合称为公共耦合。
3)控制耦合:一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整,模 块间的这种耦合称为控制耦合。
4)标记耦合:当两个模块至少有一个通过界面传递的公共参数时,模块间的这种耦合称为标记耦合。
5)数据耦合:当模块间通过参数传递基本类型的数据时,模块间的这种耦合称为数据耦合。 (给出任意 3 种模块耦合,得 3 分,其中每种耦合 1 分)

2.将下面的伪码转换成 N-S 图和 PAD 图。
BEGIN
S1;
S2;
IF a>5 THEN S3 ELSE S4;
n=1;
WHILE n<=5 DO
{ S5;
n=n+1; }
IF b>5 THEN S6 ELSE S7; END.
答:(1)对应的 N-S 图如下所示:(2 分)

(2) 对应的 PAD 图如下所示:(2 分)

3.给出 CMM 的 5 级模型,并以其中一个 CMM 等级为例,列出该等级包含的关键过程域。
答:CMM 的 5 级模型如下所示:(2 分)

例如:
(1)可重复级的关键过程域包括(6 个):
软件配置管理,软件质量保证,软件子合同管理,软件项目跟踪和监督,软件项目规划,需求管理。
(2)已定义级的关键过程域包括(7 个):
同行复审,组间协作,软件产品工程,集成的软件管理,培训计划,组织过程定义,组织过程焦点。
(3)已管理级的关键过程域包括(2 个):软件质量管理,量化的过程管理。
(4)持续优化级的关键过程域包括(3 个):过程变化管理,技术变化管理,缺陷预防。 (至少答出 2 个关键过程域,得 2 分)。

四、建模题(本大题共 3 小题,共 8 分)
问题陈述:在一简化的某学校图书管理系统中,
库房管理员职责:
根据各系的要求负责购买图书,并为新书编制图书卡片(分类目录号、流水号、书名、作者、价格、购书日期), 写入图书目录文件。
图书管理员职责:
根据借还书的要求负责借还图书处理:
(1)当没有要借的图书时,向借阅人发无书通知;
(2)当借阅人将图书丢失时,以图书丢失单的形式报告图书管理员,由图书管理员下罚款单给借阅人;同时图书
管理员负责修改图书目录文件,并通知库房管理员。
图书馆主任职责:
每月末根据分类目录号查看某种图书库存量,当库存量低于库存下限时,通知库房管理员购书。
1.(3 分)用结构化分析方法给出该系统的顶层 DFD(系统环境图);
2.(2 分)给出顶层 DFD 的数据字典;
3.(3 分)选择该图书管理系统中的一个交互,并用顺序图来描述。
答:1. 系统的顶层 DFD 如下:(3 分)
3. 以下针对“图书馆主任根据图书月末库存情况通知库房管理员购书”这互,给出其顺序图:(3 分)
其中,对象“图书馆主任”是界面对象,它调用对象“图书库存信息文件”,根据图书的分类目录号统计图书 月末库存情况,当图书的库存量低于下限时,对象“图书馆主任”向对象“库房管理员”发购书通知。

  1. 数据字典:(2 分)
    入库单=分类目录号+流水号+书名+作者+价格+购书日期 借还书的要求=[借书信息|还书信息]
    借书信息=[书名|作者]+借书日期 还书信息=书名+还书日期
    图书丢失单=图书流水号+借阅人图书证号
    丢失报告单=书名+分类目录号+图书流水号 无书通知单=借阅人图书证号+无书信息
    罚款单=借阅人图书证号+罚款金额
    查看要求=分类目录号
    月末库存量={分类目录号+书名+库存量} 购书通知=分类目录号+书名+购买量

注:该题的答案在形式上可能是多种多样的,但在回答时,主要注意三点:
(1)顶层 DFD 是否符合系统环境图的构造特点;
(2)数据字典的定义是否符合其书写原则;
(3)所画的顺序图是否符合 UML 中顺序图的定义。

2009 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)
1.在软件生命周期的( A )阶段中出错,对软件质量影响最大。
A .需求分析 B .总体设计 C .详细设计 D .编码实现
S 解:越靠上的环节出现问题,造成的影响越大
2.瀑布模型与喷泉模型的主要区别是( B )。
A .软件工程活动不同 B .支持不同的软件开发方法 C .针对的需求完整性不同 D .针对的项目大小不同 S 解:工程活动相同(需求、分析、设计、编码等); 开发方法(瀑布:结构化分析,喷泉:面向对象开发范型)
3.软件详细设计阶段的主要任务是( D )。
A .给出系统的模块结构 B .给出问题的软件解决方案 C .建立系统模型 D .定义模块的算法和数据结构

4.在白盒测试的用例设计中,( C )是最强的覆盖准则。
A .语句覆盖 B .条件覆盖 C .路径覆盖 D .分支覆盖
S 解:语句覆盖–判定覆盖–条件覆盖–判定/条件覆盖–条件组合覆盖–路径覆盖(由弱到强)
5.动物和牛都是类,它们之间是一种( A )关系。
A .泛化 B .组合 C .依赖 D .聚合
S 解:泛化:继承或实现关系
二、判断题(每小题 1 分,共 5 分。如果正确,用“√”表示,否则,用“×”表示)
1.软件的正确性是指软件产品能正常工作。( × )
S 解:正确性指软件产品达到预期功能的程度。(满足用户需求)
2.两个模块都使用同一张表,模块之间的这种耦合称为数据耦合。( × ) S 解:模块间通过参数传递基本类型的数据,模块间的这种耦合称为数据耦合。
3.演化模型与增量模型的主要区别是软件工程活动不同。( × )
S 解:活动相同(需求、分析、设计、编码等);区别:增量模型–产生结果给客户使用;演化模型–多次迭代,产生结果给测试。
4.ISO9003 是一种用于“供方建立质量保证体系的标准” 。 ( √ )
S 解: ISO9001 证实企业设计和生产合格产品的过程控制能力;(需求方要求供方提供)
ISO9002 证实企业生产合格产品的过程控制能力;(需求方要求供方提供)
ISO9003 证实企业对成品实施检验或试验的能力。(需求方要求供方提供)
三种模式逐次包容:ISO9001 规定 20 项,比 ISO9002 多 1 项,比 ISO9003 多 4 项。都是外部质量保证模式和认证的依据。 IS09004 为准备建立和实施质量体系的企业提供指南。为企业持续改进质量体系提供指南。 不能作为认证依据。(供方内部)
5.软件开发环境是一些软件工具的集合。( √ )

三、问答题(每小题 4 分,共 12 分)
1.给出模块内聚的定义,并举例说明 3 种模块内聚类型。
答:模块内聚是模块内各处理成分之间的相互关联。作为模块化度量指标之一,它是指导人们进行模块结构设计的重要概念。(1 分) 模块内聚可分为: (给出 3 种模块内聚类型,得 3 分,其中每种内聚 1 分)
(1)偶然内聚:即一个模块内各成分之间毫无关系,则称为偶然内聚。
(2)逻辑内聚:即把几个逻辑上相关的功能放在一个模块中,则称为逻辑内聚。
(3)时间内聚:即如果一个模块完成的功能必须在同一时间内执行,则称为时间内聚。
(4)过程内聚: 即如果一个模块内部的处理成分相关,且这些处理成分必须以特定的次序执行,则称为过程内聚。
(5)通信内聚:即如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
(6)顺序内聚:即如果一个模块的各个处理成分和同一功能相关,且一个成分的输出作为另一成分的输入,则称为顺序内聚。
(7)功能内聚:即模块的所有成分对于完成单一功能都是基本的,则称为功能内聚。
评分说明:定义 1 分,3 个模块内聚例子各 1 分。

2.将下面的伪码转换成 N-S 图和 PAD 图。
begin
输入 10 个数给 x[0]到 x[9];
max=0;
min=0;
if x[0]>x[1] then { max=x[0];
min=x[1];}
else{ max=x[1];
min=x[0];}
i=2;
while i<=9
begin if x[i]>max then max=x[i];
else if x[i]<min then min=x[i];
i=i+1;
end;
输出 max 和 min; end;
答:(1)对应的 N-S 图如下所示: (2)对应的 PAD 图如下所示:
评分说明:N-S 图和 PAD 图各 2 分。

3.给出整体-部分结构关系的定义,并举 2 个例子说明。
答:如果对象 a 是对象 b 的一个组成部分,对象 b 为对象 a 的整体对象,对象 a 为对象 b 的部分对象,对象 b 和对象 a 的关系称作“整体-部分结构关系” 。 (评分说明:定义 2 分,2 个例子各 1 分。)

四、建模题(共 8 分)
问题陈述 在一简化的教学管理系统中:
教务负责
l 录入教师教学信息(姓名,工作证号,{课程名,学时,上课地点,上课时间})。
教学助理负责
l 录入学生各科成绩(姓名,学号,{课程名,成绩});
l 录入学生缺考信息(姓名,学号,{课程名,原因})。
教务主任负责
l 统计每位教师的教学工作量(姓名,工作证号,总学时);
l 统计每个学生的不及格课程(姓名,学号,{不及格课程名,成绩}),若有 1 门不及格,则给学生发补考通知 (姓名,学号,{不及格课程名,成绩,补考时间,补考地点});若有 2 门不及格,则给学生发降级通知(姓 名,学号);若大于等于3 门不及格,则发退学通知(姓名,学号)。
1.用结构化分析方法给出该系统的顶层 DFD;(3 分)
2.给出顶层 DFD 的数据字典;(2 分)
3.选择该教学管理系统中的一个交互,并用顺序图来描述。(3 分)
答:1. 系统的顶层 DFD 如下图:
3.以下针对“统计教学工作量”这一交互,给出其顺序图:
其中,对象“教务主任”是界面对象,它调用对象“教师教学信息文件”,实现统计教师教学工作量情况。

  1. 数据字典:
    教师教学信息=姓名+工作证号+{授课单};
    授课单=课程名+学时+上课地点+上课时间
    学生缺考信息=姓名+学号+{课程名+缺考原因}; 学生各科成绩=姓名+学号+{课程成绩单}
    课程成绩单=课程名+成绩
    统计要求=教师的教学工作量统计|学生的不及格课程统计 教师的教学工作量统计表={教师的教学工作量}
    教师的教学工作量=姓名+工作证号+总学时
    学生的不及格课程统计表={姓名+学号+{不及格成绩表}} 不及格成绩表=不及格课程名+成绩
    补考通知=姓名+学号+{补考情况}
    补考情况=不及格课程名+成绩+补考时间+补考地点 降级通知=姓名+学号
    退学通知=姓名+学号
    评分说明:该题的答案在形式上可能是多种多样的,但在回答时,主要注意三点:
    (1)顶层 DFD 是否符合系统环境图的构造特点, 占 3 分;
    (2)数据字典的定义是否符合其书写原则,占 2 分;(3)所画的顺序图是否符合 UML 中顺序图的定义, 占 3 分。

2010 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)
1.软件需求规格说明书不应包括( D )。
A .用户界面的描述 B .主要功能的描述 C .软件性能的描述 D .算法的描述
2.下列选项中,( D )不是软件生存周期模型。
A .瀑布模型 B .增量模型 C .演化模型 D .功能模型
3.使用白盒测试方法时,确定测试数据应依据( B )。
A .程序的数据结构 B .程序的内部逻辑 C .程序使用说明书 D .程序的功能
4.汽车有一个发动机,汽车和发动机之间是一种( A )关系。
A .聚合 B .分类 C .依赖 D .泛化
5.若运输工具和火车都是类,则它们之间是一种( C )关系。
A .聚合 B .分类 C .泛化 D .依赖
二、判断题(每小题 1 分,共 5 分。如果正确,用“√”表示,否则,用“×”表示)
1.在软件生命周期中的软件工程活动包括性能优化。( √ )
2.软件过程是一种软件求解的计算逻辑。( × )
S 解:软件过程求解软件的计算逻辑
3.等价类划分法是一种常用的白盒测试技术。( × )
S 解:七种黑盒测试方法:等价类划分法、边界值法、错误推测法、因果图法、判定表法、状态迁移法、正交实验法
4.统一软件开发过程 RUP 是一种以体系结构为中心、迭代、增量式开发。( √ )
5.ISO9000 系列标准的主导思想是产品质量形成于产品生产的全过程。( √ )
三、问答题(每小题 4 分,共 12 分)
1.给出数据流图的定义,并举例说明数据流图的四个基本构成成份。
答:数据流图是一种描述数据变换的图形工具。系统接受输入的数据,经过一系列的变换(或称加工),最后输出结果数据。(1 分) 数据流图由以下四个基本成分组成:
(1)加工(用圆圈表示):是对数据进行处理的单元。它接受一定的输入数据,对其进行处理,并产生输出;(1 分)
(2)数据流(用箭头表示):表示数据和数据流向(0.5 分);
(3)数据存储(用两条平行线表示):用于表示信息的静态存储(0.5 分);
(4)数据源和数据潭(用矩形表示):数据源是数据流的起点,数据潭是数据流的最终目的地。(1 分) 评分说明:定义 1 分,加工 1 分,数据源和数据潭 1 分,数据流和数据存储各0.5 分。
2.给出软件测试中语句覆盖的定义,并举例说明。
答:至少执行程序中所有语句一次。如果遵循这一规定,则说明达到了 100%语句覆盖。(2 分)
例如图 1 中程序要实现 100%语句覆盖,则只需设计一种能通过路径ace 的测试用例,就能覆盖所有的语句。(2 分) 评分说明:定义 2 分,例子 2 分。
3.给出对象的聚合关系的定义,并举例说明松散聚合和紧密聚合。
答:聚合是表示整体的类和表示部分的类之间的“整体-部分”关系。 一个类的对象,以另一个类的对象作为其 组成部分,这样的对象之间具有“a part of”或“has a”语义。(2 分)
图 2 为松散聚合和紧密聚合的例子。(松散聚合的例子和紧密聚合的例子各 1 分)(评分说明:定义 2 分,2 个例子各 1 分。)

四、建模题(共 8 分)
问题陈述:在某超级市场销售管理系统中,
供货员负责:
(1)录入、删除、修改入/出库商品信息(商品编号,商品名称,生产厂家,数量,单价,入/出库日期);
(2)统计商品库存信息(商品编号,商品名称,库存量)。
前台销售员负责:
(1)录入顾客选购的商品信息(商品编号,商品名称,销售量,单价);
(2)打印顾客选购的商品清单(商品编号,商品名称,销售量,销售金额);
(3)计算每次顾客购买商品的总价并收费;
(4)当商品销售量大于某一限额时,给供货员发供货通知(商品编号,商品名称,进货数量)。 值班经理负责:
(1)统计当日商品销售信息(商品编号,商品名称,销售量,销售金额);
(2)统计当日商品库存信息(商品编号,商品名称,库存量)。
1.(3 分)用结构化分析方法给出该系统的顶层 DFD;
2.(2 分)给出顶层 DFD 的数据字典;
3.(3 分)选择该超级市场销售管理系统中的一个交互,并用顺序图来描述。
答:1.系统的顶层 DFD 如下:(3 分)

2.数据字典:(2 分)
入/出库商品信息=商品编号+商品名称+生产厂家+数量+单价+入/出库日期; 商品库存信息=商品编号+商品名称+库存量;
顾客购买的商品信息=商品编号+商品名称+销售量+单价;
顾客选购的商品清单={商品编号+商品名称+销售量+销售金额}; 当日商品销售信息={商品编号+商品名称+销售量+销售金额};
当日商品库存信息={商品编号+商品名称+库存量}; 供货通知={商品编号+商品名称+进货数量}。
3.例如针对“统计当日商品库存信息”这一交互,给出其顺序图如下:(3 分)

其中,对象“值班经理”调用对象“供货员”,实现统 计当日商品库存信息。
评分说明:该题的答案在形式上可能是多种多样的,但在回答时,
主要注意三点:
(1)顶层 DFD 是否符合系统环境图的构造特点,占 3 分;
(2)数据字典的定义是否符合其书写原则,占 2 分;
(3)所画的顺序图是否符合 UML 中顺序图的定义,占 3 分

2011软工

第三部分 软件工程
(共 30 分)

一、单项选择题(每小题 1 分,共 5 分)

1.( )的说法是错误的。

A .螺旋模型和演化模型都适用于软件需求不明确的项目开发
B .演化模型和增量模型都适用于软件需求不明确的项目开发
C .螺旋模型是在瀑布模型和演化模型的基础上加以修改而形成的
D .增量模型是在瀑布模型的基础上加以修改而形成的
S 答:B 每一个增量开发过程都要有明确的需求。 螺旋模型=瀑布模型+演化模型+风险分析活动;识别风险迭代的进行。

2.设计软件结构不需考虑( )。

A .模块之间的接口 B .模块间的调用关系 C .模块的功能 D .模块内的局部数据
S 答:D

3.( )的目标是发现软件的功能实现与需求规约的不一致。

A .单元测试 B .集成测试 C .有效性测试 D .验证测试
S 答:D 单元测试-详细设计;集成测试-概要设计;系统测试-规格说明书; 验证测试-需求分析(正确实现需求);

4.千里马和马都是类,它们之间是一种( )关系。

A .聚合 B .分类 C .依赖 D .泛化
S 答:D
泛化:人有老师、学生;关联:球员和球队;聚合:电话机和话筒,学校和老师;组合:人和人的心脏;依赖:司机依赖车;

5.公司有一名法人代表,公司和法人代表之间是一种( )关系。

A .聚合 B .分类 C .泛化 D .依赖
S 答:A

泛化(Generalization)

  • 定义:表示 继承关系,即子类继承父类的属性和方法(is-a 关系)。
  • 特点
    • 父类(超类)是更通用的抽象,子类是更具体的实现。
    • 空心三角箭头 表示,箭头指向父类。
  • 示例
    动物(父类)↑
    猫(子类)
    

  1. 关联(Association)
  • 定义:描述类之间的 结构性关系,表示两个类的对象之间存在某种长期或固定的联系。
  • 特点
    • 可以是双向或单向的(通过箭头方向表示)。
    • 通常通过类的属性(成员变量)实现。
    • 实线 连接类,可标注角色和多重性(如 1..*)。
  • 示例
    学生 ── 选课 ── 课程
    (一个学生可以选多门课程,一门课程可以被多个学生选)
    

  1. 聚合(Aggregation)
  • 定义:一种特殊的 弱关联,表示 整体与部分的关系has-a 关系),但部分可以独立存在。
  • 特点
    • 整体和部分的生命周期不依赖(整体消失时部分仍存在)。
    • 空心菱形 表示整体端。
  • 示例
    学校 ◇── 教师
    (学校关闭后,教师仍然存在)
    

  1. 组合(Composition)
  • 定义:一种更强的 聚合,表示 严格的整体与部分关系,部分不能脱离整体存在。
  • 特点
    • 整体和部分的生命周期一致(整体消失时部分也随之消失)。
    • 实心菱形 表示整体端。
  • 示例
    公司 ◆── 部门
    (公司倒闭后,部门不再存在)
    

  1. 依赖(Dependency)
  • 定义:描述 临时性的使用关系,一个类的变化可能影响另一个类。
  • 特点
    • 通常由方法的参数、局部变量或返回值引发。
    • 虚线箭头 表示,箭头指向被依赖的类。
  • 示例
    订单 ╌╌> 支付服务
    (订单生成时需要调用支付服务,但支付服务不作为订单的属性)
    

关键区别总结

关系类型强度生命周期依赖UML符号示例
泛化继承关系空心三角箭头动物 → 猫
关联实线学生 ↔ 课程
聚合弱整体部分独立空心菱形 + 实线学校 ◇─ 教师
组合强整体部分依赖实心菱形 + 实线公司 ◆─ 部门
依赖临时使用虚线箭头订单 ╌╌> 支付服务

实际应用中的选择

  • 使用 泛化 表示明确的继承逻辑(如父类定义通用行为)。
  • 使用 组合 而非聚合,当部分必须与整体共存。
  • 依赖 用于临时协作(如工具类方法的调用)。

通过理解这些关系的差异,可以更清晰地设计类图,避免过度耦合或松散的结构。

二、判断题(每小题 1 分,共 5 分。 如果正确,用“√”表示,否则,用“×”表示)

1.UML 既是一种建模语言,又是一种建模方法。( )
S 答: × UML 是一种建模语言, 不是一种建模方法,它可采用各种各样的建模方法。
2.两个模块共同引用一个全局数据项,模块间的这种耦合称为数据耦合。( )
S 答:× 数据耦合指两个模块之间有调用关系,传递的是简单的数据值, 相当于高级语言的值传递。
3.在应用演化模型时,可以使用瀑布模型来管理每一个演化的增量。( )
S 答: × 管理每一个迭代过程
4.在软件生存周期过程中,质量保证过程是一类组织过程。( )
S 答: × 质量保证过程是支持过程
5.CMM 的每一成熟度等级表示了过程能力,并且包含一组特定的关键过程域。( )
S 答:× CMM 共 5 级,除第 1 级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干关键实践。

三、简答题(每小题 4 分,共 12 分)

1.给出事务型数据流图的定义,并举例说明。
S 答:信息系统的数据流图通常也可分为两种典型的结构,即变换型结构和事务型结构。
事务型结构由3 层组成:事务层、操作层和细节层,功能是对接收的事务按其类型选择某类事务处理,即数据沿输 入通路到达一个处理,这个处理根据输人数据的类型在若干个动作序列中选出一个来执行。事务型结构的数据流图 则呈束状。如图 7-6 所示,即一束数据流平行流入或流出,可能同时有几个事务要求处理。举例:
在这里插入图片描述

注: 变换型结构由三部分组成:输入、数据加工(中心变换)和输出。在变换型结构中,信息沿输入通路进入系统, 同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离 开软件系统。变换型结构的数据流图呈一种线性状态,如图 7-5 所示。
在这里插入图片描述

2.给出对象的依赖关系的定义,并举例说明。
S 答:依赖关系(Dependence):假设 A 类的变化引起了 B 类的变化,则说明 B 类依赖于 A 类; 是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖; 在 UML 中,用带箭头的虚线,指向被使用者。
举例:
在这里插入图片描述

注:类与类之间的关系可以根据关系的强度依次分为以下五种:
依赖关系(Dependency)—关联关系(Association)—聚合(Aggregation)—组合(Composition)—泛化(Generalization)

3.给出软件测试中分支覆盖的定义,并举例说明。

S 答:
(1)分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。
(2)举个例子:
if A and B then Action1
if C or D then Action2
设计测试用例使其分别满足下列条件(1)A=true,B=true,C =true,D=false(2)A=true,B=false,C=false,D=false。

注:
(1)语句覆盖最弱,只需要让程序中的语句都执行一遍即可。上例中只需设计测试用例使 A=true B=true C=true 即可。
(2)分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。
设计测试用例使其分别满足下列条件(1)A=true ,B=true ,C =true ,D=false(2)A=true ,B=false ,C=false ,D=false。
(3)条件覆盖: 要使得每个判断中的每个条件的可能取值至少满足一次。
上例中第一个判断应考虑到 A=true ,A=false ,B=true ,B=false 第二个判断应考虑到 C =true ,C =false ,D=true ,D=false, 所以上例中可以设计测试用例满足下列条件(1)A=true,B=true,C =true,D=true(2)A=false,B=false,C =false,D=false。
(4)路径覆盖: 要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件
(1)A=true ,B=true ,C =true ,D=true(2)A=false ,B=false ,C =false ,D=false
(3)A=true ,B=true ,C =false ,D=false(4)A=false ,B=false ,C =true ,D=true。
不论那种覆盖方法,都不能保证程序的正确性。

(5)条件判定组合覆盖:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的 判定结果(真/假)也至少出现一次.
(6)条件组合覆盖也称多条件覆盖:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次.显然满足多 条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。

四、建模题(8 分)

问题陈述:在一简化的图书管理系统中,
图书管理员负责:
(1)购入新书时,录入新书的信息(分类目录号,流水号,书名,作者,单价,购书日期);
(2)当读者借书时,将读者的借书单信息输入系统,检查读者学号是否有效,若无效,则拒绝借书;否则登记图 书分类目录号、读者学号和借书日期等,写入借书文件中;
(3)当读者还书时,根据还书单信息,从借书文件中查看读者的借书记录,看是否超期,若超期则给出罚款单;
(4)当一些书过期没有保留价值时,从图书目录文件中删除相关记录。
读者负责:
(1)借书时,填写借书单(姓名,学号,图书分类目录号);
(2)还书时,填写还书单(姓名,学号,图书分类目录号)。
图书馆领导负责:
(1)根据读者学号,查询读者借书情况;
(2)根据图书流水号,查询图书库存情况。
1.(3 分)用结构化分析方法给出该系统的顶层 DFD;
2.(2 分)给出顶层 DFD 的数据字典;
3.(3 分)选择该图书管理系统中的一个交互,并用顺序图来描述。

1. 顶层 DFD(数据流图)

系统边界与外部实体

  • 外部实体
    • 图书管理员:负责输入新书信息、借书单、还书单、删除请求,接收罚款单和操作结果
    • 图书馆领导:输入查询请求(学号/流水号),接收查询结果

数据流图描述

1. 新书信息
2. 借书单
3. 还书单
4. 查询请求
5. 借书确认/拒绝
6. 借书确认/拒绝
7. 还书确认
8. 罚款单
9. 查询结果
图书管理员
图书管理系统
读者
图书馆领导
2. 数据字典
数据流名称来源去向组成
新书信息图书管理员系统分类目录号、流水号、书名、作者、单价、购书日期
借书单信息图书管理员系统姓名、学号、图书分类目录号
还书单信息图书管理员系统姓名、学号、图书分类目录号
删除请求图书管理员系统分类目录号、流水号
查询请求(学号)图书馆领导系统学号
查询请求(流水号)图书馆领导系统流水号
罚款单系统图书管理员学号、姓名、图书分类目录号、超期天数、罚款金额
借书结果系统图书管理员状态(成功/失败)、失败原因(如“学号无效”)
还书结果系统图书管理员状态(成功)、罚款信息(如有)
查询结果(借书)系统图书馆领导学号、借书列表(分类目录号、借书日期)
查询结果(库存)系统图书馆领导流水号、书名、状态(在库/借出)

3. 顺序图(还书超期场景)

交互流程

  1. 图书管理员提交还书单
  2. 系统检查借书记录并计算超期天数
  3. 若超期,生成罚款单;否则更新库存状态

顺序图描述

图书管理员 系统 借书记录库 图书库存库 提交还书单(学号、分类目录号) 查询借书记录 返回借书日期 计算超期天数 生成罚款单 更新库存状态 返回还书结果(含罚款信息) 更新库存状态 返回还书成功 alt [超期] [未超期] 图书管理员 系统 借书记录库 图书库存库

2012 年软工

第三部分 软件工程
(共 30 分)

一、单项选择题(每小题 1 分,共 5 分)

1.软件的正确性是指( )。
A .软件能正常运行 B .软件达到预期功能的程度 C .软件符合用户的要求 D .软件运行中不出现任何错误 【答案】B
【解析】软件的正确性是指软件达到预期功能的程度。
2.结构化分析方法中的主要概念有( )。
A .模块内聚和耦合 B .对象及类 C .模块和信息隐蔽 D .加工、数据流和数据源等
【答案】D
【解析】模块内聚和耦合是从功能角度来度量模块内的联系;对象及类是面向对象的程序设计语言中的概念; 模块和信息隐藏是开发整体程序结构时使用的法则;加工、数据流和数据源等是结构化分析法中的主要概念。
3.软件需求很明确时,适用的软件开发模型是( )。
A .喷泉模型 B .增量模型 C .瀑布模型 D .螺旋模型
【答案】C
【解析】喷泉模型使开发过程具有迭代性和无间隙性;增量模型是分析员先作出需求分析和概要设计,用户参与逐步完善; 需求明确且稳定时,适用瀑布模型;螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析, 特别适合于大型复杂的系统。
4.软件测试过程模型给出了( )。
A .用例设计过程 B .软件测试的要素以及它们之间的关系 C .白盒测试技术的要点 D .测试覆盖准则
【答案】B
5.教师是学校的一个部分,学校和教师之间是一种( )关系。
A .聚合 B .分类 C .泛化 D .依赖
【答案】A
【解析】 聚合关系是整体与部分的关系;且部分可以离开整体而单独存在:如车和轮胎是整体和部分的关系,
轮胎离开车仍然可以存在; 泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征 和行为, 例如:老虎是动物的一种, 既有老虎的特性也有动物的共性;
依赖关系是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
二、判断题(每小题 1 分,共 5 分。 如果正确,用“√”表示,否则,用“×”表示)
1.在对象的整个生命周期中,不同的对象可以具有相同的标识。( X )
【解析】 每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改 变,不同的对象不能有相同的标识。
2.模块间通过参数传递基本类型的数据,模块间的这种耦合称为数据耦合。( √ )
【解析】数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递。

3.以结构化分析方法建立的系统模型就是数据流图。( X )
【解析】结构化分析方法采用介于形式语言和自然语言之间的描述方式,建立起以数据流图为核心,以数据字典和处理 逻辑说明为补充说明工具的新系统的逻辑模型。因此,不能说以结构化分析方法建立的系统模型就是数据流图。
4.CMM(能力成熟度模型)的第三级是已定义级。( √ )
【解析】CMM(能力成熟度模型)分为五个等级:一级为初始级,二级为可重复级,三级为己定义级,四 级为己管理级,五级为优化级。
5.面向对象分析方法与结构化分析方法的区别之一是一个使用“抽象”,而另一个没有使用“抽象”。( X ) 【解析】面向对象分析方法与结构化分析方法均使用“抽象”。

三、简答题(每小题 4 分,共 12 分)
1.给出模块耦合的定义,并举例说明 3 种模块耦合。
答: 模块耦合是指两个或两个以上模块之间存在紧密配合与相互影响,并通过接口从一个模块向另一个模块传输 信息,概括地说,模块耦合就是两个模块相互依赖对方的一个量度。
举例如下:内容耦合:当一个模块直接修改或操作另一个模块的数据时,或者直接转入另一个模块,此时,被修改 的模块完全依赖于修改它的模块。
控制耦合:一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整,模块间 的这种耦合称为控制耦合。
数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递,当一个模块访问另一 个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。
2.给出对象的关联关系定义,并举例说明。
答:对象的关联关系是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。给定一个连接两个类的关 联,可以从一个类的对象导航到另一个类的对象。关联可以有方向,即导航。一般不作说明的时候,导航是双向的, 不需要在线上标出箭头。大部分情况下导航是单向的,可以加一个箭头表示。例如客户类 A 与订单类 B 关联,则表 示成 A—>B,事实上,订单类 B 也与客户类 A 关联,即二者相互关联,则表示成 A 一 B。
关联在代码中一般表示为属性(成员变量),例如「面例子中 class A 与 B 关联:
public class A { private B b ;
}
如果 B 也关联到 A,那么它们就是双向的关联。
Public class B { Private A a ;
}
3.给出模块的高内聚、低耦合原则的具体含义。
答:高内聚,就是在一个模块内,让每个元素之间都尽可能的紧密相连,也就是充分利用每一个元素的功能,
各施所能,以最终实现某个功能。如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善, 或者是该元素是多余的。
低耦合,就是一个完整的系统中,模块与模块之间,尽可能的使其独立存在。 也就是说,让每个模块,尽可能的 独立完成某个特定的子功能,模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话, 最好首先考虑进一步的模块划分。这样有利于修改和组合。

四、建模题(8 分)

问题陈述:在一简化的图书销售管理系统中,
库房管理员负责:
(1)输入、修改、删除入库图书信息(图书名,图书编号,数量,单价,入库日期);
(2)打印库房图书库存清单(图书名,图书编号,库存量,库存金额)。
销售员负责:
(1)录入图书销售信息(图书名,图书编号,销售量,单价);
(2)输入、修改、删除前台图书信息(图书名,图书编号,数量,单价);
(3)打印前台图书库存清单(图书名,图书编号,库存量,库存金额)。
部门经理负责:
(1)统计月图书销售金额;
(2)统计月图书库存情况(图书名,图书编号,库存量,库存金额)。
试回答:
1.(3 分)用结构化分析方法给出该系统的顶层 DFD;
2.(2 分)给出顶层 DFD 的数据字典;
3.(3 分)选择该图书销售管理系统中的一个交互,并用顺序图来描述。

  1. 顶层数据流图(DFD)
1. 入库图书信息
2. 库房库存清单
3. 销售信息
4. 前台图书信息
5. 前台库存清单
6. 统计请求
7. 月销售统计
8. 月库存统计
库房管理员
图书销售管理系统
销售员
部门经理

图例说明

  • 图书销售管理系统(蓝色框):核心处理单元,包含库存管理、销售处理、统计三大模块
  • 库房管理员(浅蓝框):
    • 输入:图书入库信息(5要素)
    • 输出:结构化库存清单
  • 销售员(浅蓝框):
    • 输入:销售记录(4要素)、前台图书信息(4要素)
    • 输出:动态库存清单
  • 部门经理(浅蓝框):
    • 输入:统计指令(销售/库存)
    • 输出:月维度分析报告

2. 顶层 DFD 数据字典

数据流编号数据流名称组成要素来源去向
1入库图书信息图书名, 图书编号, 数量, 单价, 入库日期库房管理员系统
2库房库存清单图书名, 图书编号, 库存量, 库存金额系统库房管理员
3销售信息图书名, 图书编号, 销售量, 单价销售员系统
4前台图书信息图书名, 图书编号, 数量, 单价销售员系统
5前台库存清单图书名, 图书编号, 库存量, 库存金额系统销售员
6统计请求统计类型标识(销售/库存)部门经理系统
7月销售统计图书编号, 销售总量, 销售总额系统部门经理
8月库存统计图书名, 图书编号, 月末库存量, 库存总金额系统部门经理
  1. 销售信息录入交互顺序图
销售员 销售系统 库存服务 数据库 提交销售单(图书编号:B001, 数量:3) 查询图书B001库存 返回当前库存量=5 校验库存充足性(需3, 现有5) 校验通过 更新库存(B001:5-3=2) 记录销售流水(B001,3,2025-05-01) 返回交易凭证(流水号:TX20250501001) 校验库存(需5, 现有3) 库存不足 返回错误"库存不足,当前可售3本" alt [库存不足场景] 销售员 销售系统 库存服务 数据库

交互说明

  1. 正常流程

    • 销售员提交销售数据时,系统执行三级校验:
      • 图书存在性校验(通过图书编号验证)
      • 库存充足性校验(实时查询数据库)
      • 价格一致性校验(隐含在销售单数据验证)
    • 交易完成后生成不可篡改的销售流水记录
  2. 异常处理

    • 当请求数量>当前库存时,系统自动计算最大可售数量并提示
    • 采用数据库事务机制保证库存更新与销售记录的原子性
  3. 扩展功能

    • 可追加价格变动校验(当销售单价≠系统价时触发预警)
    • 支持批量销售录入(通过循环校验机制实现)

2013 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)
1.一个重要的软件生存周期模型是增量模型。以下各选项中,不属于该模型开发活动的是( )。
A .增量分析 B .增量设计 C .增量实现 D .增量发布
S 解:D 增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试 这些增量组件。 开发活动仅包括:需求、设计、实现、确认、支持。
2.在使用结构化分析方法时,首先需要定义系统的边界。通常用于表达系统边界的是( )。
A .数据存储 B .外部实体 C .数据接口 D .运行环境
S 解: B
3.内聚是模块内部各个成分之间相互关联的紧密程度的度量。如果一个模块内部各个处理必须按特定的次序执行, 那么这种内聚类型是( )。
A .逻辑内聚 B .通信内聚 C .过程内聚 D .功能内聚
【答案】C
【解析】逻辑内聚是将几个逻辑上相关的功能被放在同一模块中;
通信内聚指一个模块的所有成分都操作同一数据集或生成同一数据集;
过程内聚指一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;
功能内聚指模块内所有元素共同完成一个功能,缺一不可。
4.对于下图所示的程序流程图,为达到 100%的语句覆盖率,至少需要的测试用例数为( )。
A .5 B .6 C .7 D .8
在这里插入图片描述

S 解:A 语句覆盖,就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,
意味着使用测试用例越少越好。语句覆盖率的公式可以表示如下:语句覆盖率=被评价到的语句数量/可执行的语句总数x100%
5.CMM 认为,支撑软件质量的要素有三个。以下各选项中,不属于软件质量三要素的是( )。
A .人员素质 B .过程 C .管理 D .技术
S 解:A
二、判断题(每小题 1 分,共 5 分。如果正确,用“√”表示,否则,用“×”表示)
1.系统的性能刻画了功能执行达到什么样的效果,因此,在考虑需求时功能和性能必须一起考虑。( √ ) S 解:√
2.对于规模较大的模块,应通过分解以提高其内聚性,从而降低其模块独立性。( )
S 解: × 设计、评价模块结构的一个重要原则是: 尽可能低耦合高内聚,从而提高模块的独立性。
3.如果一个剧组包含许多演员,每个演员又可以是其他剧组的成员,那么剧组和演员之间的关系应属于一种特殊 的聚合关系,即组合关系。( )
S 解:× 聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分可以分开。如电话机和话筒
组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开,如人和人的心脏。
4.等价类划分和边界值方法都没有考虑输入条件之间的关系。( )
S 解:√ 等价类划分法和边界值分析方法都是着重考虑输入条件,但没考虑输入条件的各种组合、输入条件之间的相互 制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。 因果图方法是充分考虑了输入情况的各种组合及输入条件之间的相互制约关系的一种方法。
5.最常用的软件规模度量方法是代码行度量和功能点度量。( )
S 解:√

三、简答题(每小题 4 分,共 12 分)
1.验证和确认是软件质量审查的两个重要手段,简述它们的区别和联系。
S 答:验证:就是要用数据证明我们是不是在正确的制造产品。注意这里强调的是过程的正确性。
确认:就是要用数据证明我们是不是制造了正确的产品。注意这里强调的是结果的正确性。
设计和开发中“验证”和“确认”都是认定,区别在于:
验证的目的是检查设计输出是否满足设计输入的规定要求。
确认的目的是检查设计形成的最终产品是否达到顾客的使用要求。
注:
确认测试(验收测试): 目标是验证软件的有效性。
验证(verification):保证软件正确地实现了某个特定要求的一系列活动。(过程)
确认(validation):为了保证软件确实满足用户需求而进行的一系列活动。(结果)
2.说明什么是 UML 状态图?它的作用是什么?
S 答:状态图(Statechart Diagram) 是 UML 中对系统动态方面建模的图之一,是描述一个实体基于事件反应的动态行 为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的,状态描绘了对象的动态生命周期。在对象的 整个生命周期中,它的状态是会发射功能变化的, 而状态机就是用来表示一个对象在它的生命周期中响应事件所 发生的状态变化以及对事件的响应。
通常我们创建一个 UML 状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
状态图用于描述模型元素的实例(如对象或交互)的行为。它适用于描述状态和动作的顺序,不仅可以展现一个对象拥 有的状态,还可以说明时间如何随着时间的推移来影响这些状态。
3.说明什么是条件组合覆盖准则,说明对于一个判断中的复合条件( A≥9 ) and (B <0 ),为达到 100%的条件组合覆盖率, 至少需要多少测试用例。
S 答:条件组合覆盖也称为多条件覆盖:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。 如设计:A=9 、B=-1;A=9 、B=1;A=0 、B=-1;A=0 、B=1 四组测试用例即可达到 100%的条件组合覆盖率。
类似题目:一个判定中的复合条件表达式为(A>1)or(B<=3),为了达到 100%的条件覆盖率,至少需要设计多少个测试用例? 【解析】 由条件覆盖定义:设计若干测试用例,运行被测程序, 使得每个判定的每个条件的可能取值至少评价一次。
针对该题取 A=3 、B=3和 A=0 、B=5 两组测试用例即可达到 100%的条件覆盖率。
四、建模题(共 8 分)
问题陈述:下面是一个简化的 Web 商品购销存信息系统的描述。
Web 用户:
(1)注册/登录系统。用户输入用户名和密码,系统验证。如果正确,系统返回注册/登录成功信息,否则返回注册/登录失败信息。
(2)在系统显示窗口上浏览商品和选购商品,系统显示购物车信息。
(3)根据购物车信息确定订单,网上支付,系统显示交易成功信息。
(4)得到发票。
仓储主管:
(1)获取商品库存清单。
(2)根据订单,确认出库单。
(3)根据到货单,确认入库单。
销售经理:确认系统制作出的销售报表。
采购经理:
(1)根据销售报表和商品库存清单,确定采购清单。
(2)提交到货单。
试回答:
1.(3 分)用结构化方法给出系统的顶层数据流图。
2.(2 分)简述系统中可能用到的数据存储文件。
3.(3 分)用 UML 顺序图给出 Web 用户登录到系统的一个交互。

  1. 顶层数据流图(DFD)
1. 注册/登录信息
2. 商品浏览请求
3. 商品列表/购物车
4. 订单支付信息
5. 交易成功/发票
6. 库存清单请求
7. 库存清单
8. 出库单确认
9. 入库单确认
10. 销售报表确认
11. 销售报表/库存清单
12. 采购清单
13. 到货单提交
Web用户
商品购销存系统
仓储主管
销售经理
采购经理

图例说明

  • 商品购销存系统(橙色框):核心处理单元,包含用户管理、商品管理、订单处理、仓储管理、报表生成五大模块
  • Web用户(蓝色框):
    • 输入:注册信息、商品浏览请求、订单支付指令
    • 输出:交易结果、电子发票
  • 仓储主管(绿色框):
    • 输入:库存查询请求、出库/入库确认指令
    • 输出:实体单据(出库单/入库单)
  • 销售经理(红色框):
    • 输入:销售报表确认指令
    • 输出:已确认报表
  • 采购经理(黄色框):
    • 输入:报表数据、库存数据
    • 输出:采购计划、到货通知

2. 系统数据存储文件简述

数据存储存储内容
用户信息表用户名、密码哈希、注册时间、最后登录时间、权限等级
商品目录表商品编号、名称、描述、单价、库存量、分类标签、图片URL
订单记录表订单号、用户ID、商品列表(编号+数量)、总金额、下单时间、支付状态
购物车临时表用户会话ID、商品编号、加入时间、数量
库存变动日志操作类型(入库/出库)、商品编号、变动数量、操作时间、经办人
销售报表库按日/月/年统计的销售总额、热销商品排行、销售趋势图表数据
采购计划表商品编号、建议采购量、供应商信息、计划到货日期
到货单存档到货单号、商品清单、实际到货数量、验收人、验收时间

3. Web用户登录交互顺序图

Web用户 浏览器 认证服务 用户数据库 输入用户名/密码,点击登录 发送登录请求(username, password) 执行查询SELECT * FROM users WHERE username=? 返回用户记录(含密码哈希) 验证密码哈希匹配 返回JWT令牌+成功状态码 显示登录成功提示 记录登录日志(IP地址、时间戳) 返回错误码401 显示"用户名或密码错误" 记录失败尝试(IP地址、时间戳) 失败次数超过阈值时触发账号锁定 alt [验证成功] [验证失败] Web用户 浏览器 认证服务 用户数据库

交互说明

  1. 安全机制

    • 采用密码哈希存储(如bcrypt算法)
    • 使用JWT令牌实现无状态会话管理
    • 记录登录日志用于安全审计
    • 实施防暴力破解机制(失败次数限制+IP封禁)
  2. 扩展功能

    • 可追加双因素认证(2FA)流程
    • 支持第三方登录(OAuth2.0)集成
    • 密码强度校验(在前端实施正则验证)
  3. 异常处理

    • 数据库连接失败时返回503错误
    • 用户被锁定状态时返回特定错误码
    • 令牌过期时触发刷新令牌机制

2014 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)
1、瀑布模型是一种( )。
A. 软件产品模型 B.软件过程模型 C. 软件项目模型 D. 软件测试模型
【答案】B
【解析】瀑布模型是软件工程中应用最广泛的过程模型,其他常用的软件过程模型还有增量模型、螺旋模型、喷泉模型等。
2、软件需求开发阶段包括多种活动,不属于需求开发活动的是( )。
A. 软件需求获取 B.软件需求分析建模 C. 软件需求定义与评审 D.软件需求管理
【答案】D
【解析】需求开发活动主要包括需求获取、需求分析、需求定义、需求验证。
3、模块设计中,最差的内聚类型是( )。
A. 功能内聚 B.逻辑内聚 C.信息内聚 D. 巧合内聚
【答案】D
【解析】巧合内聚又称为偶然内聚,是摸块设计中最差的内聚类型,表示模块的各成分之间毫无关系,也就是说该模块 完成一组任务, 而这些任务之间的关系松散,实际上没有什么联系。
4、软件集成测试主要依据的文档应该是( )。
A. 软件需求规格说明书 B.软件工作分解结构 C.软件概要设计说明书 D. 软件详细设计说明书 【答案】C
【解析】 软件集成测试也称联合测试或组装测试。 指在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或 系统时进行的测试。
5、软件项目管理中,用于实施进度控制的图是( )。
A. Gantt 图 B.IPO 图 C.管理图 D. 系统流程图
【答案】A
【解析】 Gantt 图是对简单项目进行计划与排序的一种常用工具,是将活动与时间联系起来的最早尝试之一。 它直观地表明任务计划何时进行,实际进展与计划要求的对比。
二、判断题(每小题 1 分,共 5 分。如果正确,用“√ ”表示,否则,用“×”表示)

  1. 软件配置管理是一种保护伞活动,它贯穿于整个软件生存周期过程,用于控制变更。( √ )
    【解析】软件配置管理用于控制变更,核心是配置数据库,主要有两个方面:一个是怎样实现软件配置改变的安全隔离; 另一个是怎样把最后确定下来的改变发布到整个开发组织中。因而可以说是一种保护伞活动,而且该活动贯穿整个软件 的生存周期。
  2. 若对象 a 是对象 b 的一个组成部分,则对象 a 是整体对象,对象 b 是部分对象。( × )
  3. 边界值分析法是一种常用的白盒测试的测试用例设计方法。( × ) 【解析】 边界值分析法是一种常用的黑盒测试的测试用例设计方法。
  4. 在使用SD 的变换分析方法建立系统模块结构时,模块结构的主模块应是由 DFD 的变换中心部分映射而来。( × ) S 解: 在变换型结构中,信息沿输入通路进入系统, 同时由外部形式变换成内部形式,进入系统的信息通过变换中心,
    经加工处理以后再沿输出通路变换成外部形式离开软件系统。变换型结构的数据流图呈一种线性状态。
    事务型结构中,信息沿输入通路到达一个处理,这个处理根据输人数据的类型在若干个动作序列中选出一个来执行。事 务型结构的数据流图则呈束状。
  5. MVC 架构是一种典型的软件体系结构,它主要包括三部分,即表示层、控制逻辑层和数据层。( × ) S 解: MVC 架构的框架内容是模型、视图、控制器。

三、问答题(每小题 4 分,共 12 分)

  1. 什么是面向对象系统中的消息?一个消息应包括哪几部分?
    答:面向对象系统中的消息是指对象向另一个对象发出的服务请求。一个消息应包括:对象名、调用的服务名和适当的参数 三部分。
  2. 什么是基本路径覆盖测试?它应满足哪一种测试覆盖准则?
    答:基本路径覆盖测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合, 从而设计测试用例的方法。
    基本路径覆盖测试应满足白盒测试覆盖准则。
  3. 什么是 CMMI ?在 CMMI 连续式表示中把能力等级划分为哪几个等级?
    答:CMMI (Capability Maturity Model Integration)即能力成熟度集成模型,就是把所有的以及将被发展出来的各种 能力成熟度模型,集成到一个框架中去。 这个框架有两个功能, 第一,软件采购方法的改革: 第二,建立一种 从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。
    在 CMMI 连续式表示中把能力等级划分为初始级、己管理级、己定义级、量化管理级、优化级这五个等级。
    四、建模题(共 8 分)
    一个简化的教学管理系统的描述如下:
    ●与学生相关的活动:
    ◇学生向系统提出注册申请
    ◇系统向学生反馈学籍通知
    ◇系统向部分优秀学生发出奖励通知
    ●与教务处相关的活动:
    ◇教务处将学籍审批结果输入系统
    ◇系统向教务处显示统计报告
    ◇教务处向系统提供奖励凭证
    ●与系教学办相关的活动:
    ◇系统显示学籍报告管理情形
    ◇系教学办将学籍处理意见和奖励建议输入系统
    ●与教师相关的活动:
    ◇系统将教学安排通知教师
    ◇教师将学生成绩输入系统
    试回答:
  4. ( 3 分)根据以上描述,画出该系统的顶层数据流图;
  5. ( 2 分)写出至少两个相关的数据文件;
  6. ( 3 分)如果系统的主要功能是注册管理、学籍管理、成绩管理、奖励管理,请画出系统的第一层数据流图。

2015 年软工(暂无)
2016 年软工(暂无)

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)

  1. 创建和分发软件产品版本并安装到它们的工作场所,这是 RUP 的( )工作表应做的事情。
    A. 分析和设计 B. 部署 C. 需求 D. 配置和变更管理
    S 答:B RUP(Rational Unified Process),统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。

RUP 的静态视角聚焦在开发过程中活动的组织方面.
工作流 描述
业务建模 使用业务用例对业务过程进行建模
需求 找出与系统进行交互的参与者并开发用例, 完成对系统需求的建模
分析和设计 使用体系结构模型、构件模型、对象模型和交互模型来创建并记录设计模型
实现 实现系统中的构件并将它们合理安排在子系统中.从设计模型自动代码生成有助于加快此过程
测试 测试是一个反复过程, 它的执行是与实现紧密相关联的。系统测试紧随实现环节的完成
部署 创建和分发产品版本并安装到它们的工作场所
配置和变更管理 它支持工作流管理对系统的变更
项目管理 它支持工作流管理系统开发
环境 用于提供软件开发团队可用的合适的软件工其

  1. 在描述 UML 用例模型活动场景的顺序图中,将所有相关对象安排在图的顶部,其中最靠近参与者(外部实体) 的对象属于( )。
    A. 实体类 B. 控制类 C. 边界类 D. 主动类
    S 答:C UML 类的三种类型:
    (1)边界类, 用于描述外部参与者与系统之间的交互的类。 边界类位于系统与外界的交界处,窗体、报表、以及表示 通讯协议的类、直接与外部设备交互的类、直接与外部系统交互的类等都是边界类。通过用例图可以确定需要的边界类, 每个 Actor/Use Case 对至少要一个边界类, 但并非每个 Actor/Use Case 对要唯一的边界类。
    (2)控制类,控制其他类; 每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。 其他类并不向控制类发送很多消息, 而是由控制类发出很多消息。
    (3)实体类,存储信息和相关行为的类; 实体类保存要放进持久存储体的信息。持久存储体就是数据库、文件等可以 永久存储数据的介质。实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性 对应数据库表中的字段。

  2. 在软件生存周期过程中,属于生存周期基本过程的是( )。
    A. 运行过程 B. 管理过程 C. 配置管理过程 D. 质量保证过程
    S 答:A
    软件的生命周期过程按照 GB8566 可以划分为:基本过程、支持过程、组织过程
    (1)基本过程是指那些与软件生产直接相关的过程(5 个):获取过程、供应过程、开发过程、运行过程、维护过程 获取过程是定义需方为获取相关产品或服务所进行的活动;
    供应过程是定义供方提供相关产品或服务所应进行的活动;
    开发过程是定义开发方开发产品或服务所应进行的活动;
    运行过程是定义运行方在规定条件下,为用户提供产品的服务功能所应进行的活动;
    维护过程是定义维护方为维护产品或服务所应进行的活动包括修改和管理,使其保持在良好的运行状态,包括迁移和退役;
    (2)支持过程是有关各方按他们的支持目标所从事的一系列相关活动集(9 个):
    文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程、问题解决过程、易用性过程等。
    (3)组织过程是指那些与软件生产组织有关的过程(8 个):
    管理过程、基础设施过程、改进过程、人力资源过程、资产管理过程、复用程序管理过程、领域软件工程过程、培训过程。

  3. 在有关程序设计风格或编码规范的说法中,错误的是( )。
    A.可以把多个短语句写在一行内 B.在源程序的首部应插入注释 C.标识符的命名应清晰并有明确含义 D.不能随便改变与其他模块的接口
    S 答:A

  4. 在有关软件测试的测试用例设计方法中,属于白盒测试的是( )。
    A.边界值分析法 B.条件组合覆盖法 C.等价类划分法 D. 因果图法
    S 答:B 黑盒测试: 等价类划分、边界值分析法、猜错法、因果图
    白盒测试:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异
    二、判断题(每小题 1 分,共 5 分。如果正确,用“√ ”表示,否则,用“×”表示)

  5. 软件需求规格说明应描述待开发系统“能做什么 ”而不是“怎样实现 ”。( ) S 答:√

  6. 划分程序的模块机构时,要求模块的控制范围应在该模块的作用范围内。( )
    S 答: × 本题考查软件设计的基础知识。模块的控制范围包括模块本身及其所有的从属模块。模块的作用范围是指模块 一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。原则上一个模块的作用范围应该在 其控制范围之内,若没有, 则可以将判定所在模块合并到父模块中,使判定处于较高层次;将受判定影响的模块下移到 控制范围内;将判定上移到层次中较高的位置。

  7. 建立系统体系结构的第一步是建立系统的逻辑视图,即建立系统面向问题的逻辑架构。( ) S 答:√

  8. 在设计软件测试用例时应尽量把所有可能的情况都考虑到。( )
    S 答: × 实际上,软件测试用例的详细程度首先要以覆盖到测试点为基本要求

  9. 编制预算和进度表,属于 CMMI 已管理级“项目策划 ”过程域的专用实践。( )
    S 答: × CMMI 能力成熟度集成模型分为 5 个级别:初始级, 已管理级,已定义级,量化管理级,优化级。
    三、简答题(每小题4 分,共 12 分)

  10. 如果待开发软件是大系统的一部分。为什么在该软件的需求规格说明中需要针对大系统的描述。
    S 答: 软件需求规格说明书大致包括概述、功能性需求、非功能性需求、约束等几大块。
    概述主要描述系统的上下文、关键性功能场景、角色以及角色能够使用的功能即用例。
    功能性需求主要描述用例、报表、接口三大类。非功能性需求通常情况下有性能、安全等, 视具体要求而定。
    约束同非功能性需求一样, 需要才补充,有技术选型、软硬件、使用场景、 UIUE 的要求,法律法规等。
    因为待开发软件是大系统的组成部分,当需求规格说明中具体描述待开发软件的功能及所应具有的外部行为时,必然要 涉及到大系统的各种输入、输出和约束关系进行描述。

  11. 软件质量保证的活动之一是进行技术评审。什么是技术评审,它的主要目标是什么?
    S 答:(1)技术评审(Technical Review): 是一种静态分析,评审对象通常是技术文档、计划、测试用例和测试数据、 测试结果等,是质量控制最有效的手段之一。常见的技术评审包括了走查(Walkthrough)、轮查(Pass Around)、正式的 同行评审(Peer Reviews)等。
    (2) 目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。并向管理提供 证据,以表明产品是否满足规范说明并遵从标准, 而且可以控制变更。
    注:管理评审就是最高管理者为评价管理体系的适宜性、充分性和有效性所进行的活动。管理评审的主要内容是组织的 最高管理者就管理体系的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实及实现情况进行正式的评价,其目 的就是通过这种评价活动来总结管理体系的业绩,并从当前业绩上考虑找出与预期目标的差距,同时还应考虑任何可能 改进的机会,并在研究分析的基础上,对组织在市场中所处地位及竞争对手的业绩予以评价,从而找出自身的改进方向。 检查的目的是检测和识别软件产品异常。一次检查通常针对产品的一个相对小的部分。发现的任何异常都要记录到文档中,并提交。 走查的目的是评价软件产品, 走查也可以用于培训软件产品的听众,主要目标是:发现异常、改进软件产品、考虑虑其他实现、 评价是否遵从标准和规范说明。走查类似于检查, 但通常不那么正式。走查通常主要由同事评审其工作, 以作为一种保障技术。 软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是正式 组织的活动,识别违例情况,并产生一个报告,采取更正性行动。

  12. 什么是程序调试?程序调试活动是由哪两部分活动组成?
    S 答:(1)程序调试:是测试发现错误后,进行的排错过程。软件错误的外部表现和它的内在原因之间可能并没有 明显的联系;调试就是把症状和原因联系起来的过程;试图找出原因,以便改正错误。
    (2)组成活动:1)发现原因,排除错误。2)没有找出原因,从新设计测试用例。

四、建模题(共 8 分)
问题陈述:一个图书管理系统的简化的“图书采编”业务可描述如下:
u 图书采购人员
·提交购书单(包括 ISBN 号,书名,作者名,出版社,出版日期,印次,单价,册数);
·得到汇总的购书清单(包括 ISBN 号,书名,作者名,出版社,出版日期,印次,单价,册数,合计);
·录入图书订单(包括订单号,供货商名称,图书清单,总价,下单日期);
·录入图书到货清单(包括订单号,供货商名称,图书清单,总价,发货日期) u 读者
·提交缺书登记表(包括 ISBN 号,书名,作者名,出版社);
·得到图书上架通知(包括馆藏号,ISBN 号,书名,作者名,出版社);
u 财务人员
·得到图书到货清单(包括订单号,供货商名称,图书清单,总价,发货日期);
· 图书入账(包括 ISBN 号,订单号,书名,册数,单价,总价,入账日期);
·保存发票底单(包括发票流水号,发货单位,总价,开票日期);
u 图书分编人员
·得到图书到货清单(包括订单号,供货商名称,图书清单,总价,发货日期);
·编辑图书目录(包括馆藏号,ISBN 号,书名,作者名,出版日期,印次, 内容简介);
·发送图书上架通知(包括馆藏号,ISBN 号,书名,作者名,出版社);
试回答:
(可能如下)
1.(3 分)结构化分析方法给出该系统的顶层 DFD 及其数据字典;
2.(2 分)画出 USE/CASE 图;
3.(3 分)选择该书管理系统中的一个交互,并用顺序图来描述。

软件工程-同等学力计算机综合真题及答案(回忆版)
(2018)

2018 年软工

第三部分 软件工程
(共 30 分)
一、单项选择题(每小题 1 分,共 5 分)

  1. E-R 模型中包含的基本成分是 ( )
    A. 数据、对象、实体 B. 控制、联系、对象 C. 实体、联系、属性 D. 实体、属性、协作
    S 答:C E-R 模型中包含的基本成分是实体、联系、属性
    来源:2008 年上半年信息系统监理师上午真题

  2. 正式技术评审的目的是( )
    A. 发现软件中的错误 B. 评价程序员的工作效率
    C. 发现和改正程序中的错误 D. 记录程序员给出错情况与绩效挂钩
    S 答:C 正式技术评审目的: (1)发现软件在功能、逻辑、实现上的错误;(2)验证软件符合它的需求规格;
    (3)确认软件符合预先定义的开发规范和标准; (4)保证软件在统一的模式下进行开发; (5)便于项目管理。 此外,正式技术评审为新手提供软件分析、设计和实现的培训途经, 后备、后续开发人员也可通过正式技术评审熟悉他人开发的软件。

  3. 在 UML 中,( )关系描述了两个对象类之间的一般化/特殊性关系,它可以使子对象类共享父对象类的属性和方法。
    A. 依赖 B. 泛化 C. 关联 D. 实现
    S 答:B

  4. 某模块内有两个处理 A 和 B,分别对数据区 X 写数据和读数据,则该模块的内聚类型属于( )
    A. 逻辑内聚 B. 过程内聚 C. 通信内聚 D. 内容内聚
    S 答:C 通信内聚-模块内各个组成部分都使用相同的数据或产生相同的数据结构。
    来源:2016 年下半年软件设计师考试第36 题

  5. 关于增量开发模型的叙述,错误的是( )
    A. 不必等到整个系统开发完成就可以使用
    B. 可以使用较早开发的增量构件来构建稍后开发的增量构件
    C. 优先级最高的服务先交付,这样最重要的服务能接受最多的测试
    D. 有利于较好的模块划分
    S 答:D 来源:2016 年 5 月软件设计师考试第 29 题
    二、判断题(每小题 1 分,共 5 分。如果正确,用“√ ”表示,否则,用“×”表示)

  6. 软件的开发成本不但需要考虑开发的人力消耗,还要考虑期间的其他经常性消耗。( )
    S 答:√ 直接成本、间接成本、人力成本、非人力成本都要考虑

  7. 模块的独立程度可以使用两个标准来衡量。这两个标准分别是模块的内聚度和模块之间的耦合度。它们属于定 性的标准。( )
    S 答:√ 模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合

  8. 描述一个模块内的处理流程时,一种改进的方法是使用 N-S 图(盒图),与最常用的程序流程图相比,它的优 点是完全避免了 GOTO 转移,彻底遵循了结构化程序设计的思想。( )
    S 答: × 程序流程图属于结构化程序设计工具的一种,它也限制使用 goto 语句。
    注:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句。
    主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制 GOTO 语句的使用。
    为了提高程序的清晰性和可靠性,结构化程序设计中限制使用goto 语句。结构化程序设计常用三种工具: 图形、表格和语言。 图形:程序流程图、 N-S 图、PAD 图 表格:判定表 语言:过程设计语言(PDL)

  9. 描述一个模块内的处理流程时,一种改进的方法是使用 PAD 图(盒图),与最常用的程序流程图相比,它的优 点是完全避免了 GOTO 转移,彻底遵循了结构化程序设计的思想。( )
    S 答:× 同上

  10. 在描述系统功能时常使用用例建模,但也需要辅之以规格说明,即用例实现的场景。场景从用户角度描述每一 个功能处理的事件序列。( )
    S 答:× 场景从用户角度描述每一个功能处理的事件如何执行。
    注:业务用例、业务用例场景与业务用例实现之间的关系
    所谓的业务用例场景即为了实现业务用例所采取的不同的实现方式或做法, 因此一个业务用例才有多个业务用例场景的 出现。而业务用例场景和业务用例实现的关系通常为一个业务用例场景对应一个业务用例实现。业务用例场景规定了业 务如何执行, 而业务用例实现则描述如何通过计算机来实现这个业务。
    举一个简单的例子供大家参考:假如用户想缴纳手机话费,我们可以吧缴纳手机话费当做一个业务用例, 众所周知, 缴纳 话费可以去营业厅中缴纳, 也可以网上缴费(如通过微信, 支付宝), 这两种方式都能达到缴纳手机费用的业务目标。因此 缴纳手机话费这个业务用例就存在两种不同的业务用例场景, 一个是通过营业厅的营业员代理缴纳, 一个是自己通过互 联网缴费,它们均对应一个业务用例实现, 而这两种业务用例场景的最终实现都需要依托计算机, 也即计算机如何实现这 个业务, 也即我们上面提到的业务用例实现。

三、简答题(每小题4 分,共 12 分)

  1. 在承包软件项目之前为什么要需要可行性研究?软件项目的可行性研究主要研究哪几个方面的可行性?
    S 答:可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。它压缩简化了系统分析 和设计的过程,也就是在较高层次上以较抽象的方式进行系统分析的过程。如果在项目开始进行前,没有进行可行 性研究,当开发时遇到问题且该问题根本得不到解决,那么之前在这项工程上所有的花费都只能是浪费。
    可行性研究最根本的任务是对以后的行动方针提出建议,如果问题没有可行的解,分析员应该建议停止这项 开发工程,避免时间资源人力金钱的浪费,如果问题值得去解决,那么应该推荐一个较好的解决方案,并且为工程 制定一个初步的计划。
    (1)经济可行性:进行成本/效益分析。从经济角度判断系统开发是否“合算”。
    (2)技术可行性:进行技术风险评价。从开发者的技术实力、以往的工作基础、问题的复杂性等出发,判断系统开发 在时间、费用等限制条件下成功的可能性。
    (3)法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。
    (4)方案的选择:评价系统或产品开发的几个可能的候选方案,最后给出结论意见

  2. 事件驱动风格的体系结构在软件体系结构分类中属于控制模型,它是通过外部生成的事件来驱动的系统。典型 的事件驱动风格的体系结构有哪两种类型?简述它们的控制机制。
    S 答:
    事件驱动模式的基本原理是构件并不直接调用过程,而是触发一个或多个事件。系统中的其他构件可以注册相关的事件, 触发一个事件时,系统会自动调用注册了该事件的构件过程,即触发事件会导致另一构件中过程的调用。
    事件驱动模式的主要特点是事件的触发者并不知道哪些构件会受到事件的影响,且不能假定构件的处理顺序,甚至不知道 会调用哪些过程,使用事件驱动模式的典型系统包括各种图形界面工具。
    特征:系统中有许多目标, 利用消息协作的方式来工作。主子系统负责整个系统的运行,每个元素拥有事件接收和处理机制
    优点:易于完成并发任务, 良好扩展性,良好交互性
    缺点:对系统计算控制能力弱,难以共享数据,对象间逻辑复杂
    举例:各种 IDE ;MVC 框架; EJB 的 JMS 和 MessageDriven Bean
    两种类型:
    1)MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户 交互的同时,不需要重新编写业务逻辑。 MVC 被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图 形化用户界面的结构中。
    2)集成开发环境(IDE ,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑 器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软 件服务套。所有具备这一特性的软件或者软件套(组) 都可以叫集成开发环境。如微软的 Visual Studio 系列,Borland 的 C++ Builder 、Delphi 系列等。
    该程序可以独立运行, 也可以和其它程序并用。 IDE 多被用于开发 HTML 应用软件。例如, 许多人在设计网站时使用 IDE (如 HomeSite 、DreamWeaver 等),因为很多项任务会自动生成。

注:
体系结构的风格有哪些? . 管道一过滤器风格
. 面向对象风格
. 事件驱动风格
. 分层风格
常见架构风格举例总结 1. 管道-过滤器风格

. 数据共享风格
. 解释器风格
. 反馈控制环风格

特征:每个功能构件都有一组输入输出,过滤器独立完成自身的功能,相互之间无须进行状态交互;各过滤器无须 知道输入管道与输出管道所连接的过滤器的存在, 仅仅保证自己的输入输出, 不必理会其余过滤器。
优点:减少构件之间的耦合;容易维护和扩展;易于分析。
缺点:缺乏交互性。
举例:Linux Shell 的管线;数字通信系统。
2. 面向对象风格
特征:封装,继承,多态
优点:高模块化、代码封装、代码共享、易维护、良好扩展性
缺点:调用者必须知道被调对象的引用,当对象引用改变时,必须通知所有可能调用其的对象,系统内高耦合
举例:Java ,C#开发的系统
3. 事件驱动风格
特征:系统中有许多目标,利用消息协作的方式来工作。主子系统负责整个系统的运行,每个元素拥有事件接收和处理机制
优点:易于完成并发任务,良好扩展性,良好交互性
缺点:对系统计算控制能力弱, 难以共享数据,对象间逻辑复杂
举例:各种 IDE ;MVC 框架;EJB 的 JMS 和 MessageDriven Bean
4.分层风格:
特征: 每层只为上一层服务,同时接收来自下层的服务。
优点:抽象化, 软件重用,易扩展
缺点:方法间接调用, 影响性能
举例:TCP/IP 协议;J2EE 的表现层、领域层、数据控制层、数据库。
5.数据共享风格 (库风格)
特征: 中央的数据单元被共享, 为一些单元提供存储和访问服务
优点:知识库扩展性, 解决具体领域的问题
缺点:
举例:专家系统、自然语言处理、模式识别
6.解释器风格
特征: 固定的结构、伪代码、解释器引擎
优点:
缺点:
举例:Java 虚拟机
7. 反馈控制环风格 9. 三层 C/S 风格
特征: 通过其学习构件和决策者构件的运用,能利用 特征:客户端运行表现层。服务器运行功能层和数据层
学习和信息更新增强自身的功能 优点:BS 所缺乏的
优点: 缺点:客户端难以升级维护
缺点: 举例:QQ,MSN,需安装的网游
举例:数据挖掘、机器学习系统 10. B/S 风格
8. 两层 C/S 风格 特征:客户端采用浏览器。
特征:服务器管理应用程序,客户机运行应用程序。现 优点:容易维护升级
已比较少用。 缺点:交互性较差,响应较慢
举例:各种网站

  1. 软件生命周期中可能执行的活动可分为 5 个基本过程,这 5 个基本过程是什么?每一个基本过程与软件项目的 哪一方相关?
    S 答:GB/T 8566-2007《信息技术 软件生存周期过程》标准把软件生存周期中可能执行的活动分为 5 个基本过程、 9 个支持过程和7 个组织过程,每一生存周期过程划分为一组活动,每一活动进一步划分为任务。
    5 个基本过程:
    1、获取过程:为需方而定义的活动,启动,招标,合同,对供方监督,验收等
    2、供应过程:为供方而定义的活动,启动,准备投标,签订合同,编制计划,执行,交付和完成
    3、开发过程:为开发方而定义的活动:需求、设计、编码、测试、安装、验收
    4、运作过程:为操作方而定义的活动:运行测试,系统运行,用户支持
    5、维护过程:为维护方而定义的活动:问题和修改分析,修改实现,维护评审/验收,迁移,软件退役

四、建模题(共 8 分)
问题陈述:下面是在某慕课教育平台上一个在线作业批改系统的简化陈述:
u 学生
·系统登录,提交学生标识(学号、密码);
·在线提交作业(作业题量、完成题目、答案、提交时间);
·获取作业已批改的通知(学号、批改时间、评分、评价(可选));
·查看已批改的作业。
u 教师
·教师登录,提交教师标识(教师号、密码);
·上传作业信息(作业题量、布置题目、标准答案、评分标准、最后期限);
·获取有作业提交的通知(学号、提交时间);
·下载学生提交的作业(在屏幕上显示);
·批改后上传已批改作业(学号、批改时间、评分、评价(可选));
·获取作业抽检意见(学号、教师号、建议)。
u 教学督导
·教师登录,提交督导标识(教师号,密码);
·抽取并下载作业样本(学号、教师号、批改时间、评分、评价(可选));
·抽检并提交抽检意见(学号、教师号、建议)。

试回答:
1.(4 分)结构化分析方法给出该系统的顶层 DFD 中,请补充图中缺失的 4 个数据流;
2.(4 分)写出该数据流图中的数据字典。

2019年
一、选择题

  1. 采用一样的方法名,重新写方法体的方法是()
    A.重叠

B.重载
C.继承
D .…
答案: B
二、判断题

  1. 面向对象分析方法的常用工具是用例图 (×)
    三、简答题
  2. 软件需求是什么?共分为几个层次?
    答案:(来自大纲推荐书籍软件工程(第三版)王立福, P58)
    一个需求是一个“要予构造”的陈述,描述了待开发产品(或项)功能上的能力,性能参数或其他性质。分为功 能需求跟非功能需求,其中非功能需求又分为性能需求,外部接口设计,质量属性,设计约束。
  3. 软件质量保证的是什么?它的四个活动是什么?
    答案:(来自大纲推荐书籍软件工程(第三版)王立福, P22)
    质量保证是为项目生存周期内的软件过程和软件产品提供适当保障的过程, 目的是使它们符合所规定的需求,并 遵循已建立计划。包括过程实现,产品保证,过程保证,质量体系保证四个活动。
  4. 说明客户端/服务器,对等模式采用的三层结构是什么? 答案:(来自百度)
    三层是表示层、业务逻辑层、数据层。表示层是为客户提供应用服务的图形界面,有助于用户理解和高效的定位 应用服务。业务逻辑层位于显示层和数据层之间,专门为实现企业的业务逻辑提供了一个明确的层次,在这个层 次封装了与系统关联的应用模型,并把用户表示层和数据库代码分开 。这个层次提供客户应用程序和数据服务之 间的联系,主要功能是执行应用策略和封装应用模式,并将封装的模式呈现给客户应用程序。数据层是三层模式 中最底层,他用来定义、维护、访问和更新数据并管理和满足应用服务对数据的请求。
    四、解答题
    一个图书管理系统的流程图如下
  5. 分别写出图中的 6 个空白处
  6. 该流程图的环路复杂度是多少?
    答案:
    1:
    2:环路复杂度 =判断节点数+1

2020年
软件工程
一、单项选择题(每小题1分,共5分)

  1. 一个模块内部的各部分没什么联系,另一个模块通过传递基本参数向它传递一个控制,该模块 属于什么()内聚
    A.数据内聚 B.逻辑内聚 C.通信内聚 D.顺序内聚
    答案:B
  2. DFD顶层流图用于指出系统的()
    A.数据主体 B.数据存储 C.输入与输出 D.处理过程
    答案:C
  3. 黑盒测试主要考虑系统的()
    A.程序流程 B.功能 C.判定分支结构 D.异常处理
    答案:B
  4. RUP中的“谁做”,“怎么做”,“做什么”里的“谁做”有哪个概念/术语()完成
    A.制品 B.角色 C.工作流 D.数据
    答案:B
  5. 面向对象设计模式,说法正确的是()
    A.使程序员能够更快的完成 B.可以复用好的设计 C.使程序以最快的速度 D.…
    答案:B

二、判断题(每小题1分,共5分)

  1. CMMI是过程改进模型,它支持阶段性过程改进不支持连续性过程改进()
    答案:错
  2. 某项目组织打算开发一个大型系统,且具备了相关领域知识以及开发经验,此时采用瀑布模型是最好的选择()
    答案:错
  3. 采用UML进行软件设计时,可用依赖关系表示两类事物的“整体/部分”关系()
    答:错, “整体/部分”是聚合,依赖表示“使用”关系
  4. 质量控制不是软件配置管理活动()
    答案:对
  5. 风险预测从两个方面,即风险发生的可能性跟风险消除方法()
    答案:错

三、简答题(共12分)
1. 什么是开源软件?试举一简单说明。
答:开源软件(OPEN-SOURCE)是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有COPYRIGHT的, 它的许可证可能包含这样一些限制:蓄意的保护它的开放源码状态,著者身份的公告,或者 开发的控制。“开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放 源码定义的一种手段。 如GitHub

2.RUP的每一个迭代周期中设计6个核心工程工作流,3个核心支持工作流。试简述每个核心工程工作流的名称和主要目的。

3. 结构化程序设计方法要求再复杂的程序结构也应使用基本控制结构组合嵌套来实现。试问这些基本控制结构有 哪些?并试用类C语言或程序流程图简单描述。
答:结构化程序设计的基本控制结构有选择结构,顺序结构,循环结构,每一个结构只有一个入口和出口。

四、建模题(共8分)
在学校的教学管理系统中,学生查询成绩就是系统中的一次交互行为。问题陈述如下:
开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。
在用户输入学号后,系统查询学生文件,和对学生学号:若输入的学号不正确,则显示“输入学号不正确”,此次查 询取消,回到首页;若输入正确,出现“请输入课程名”。
一旦输入课程名,则开始查找课程文件:若输入的课程名不正确,则显示“输入的课程名不正确”,此次查询取消, 回到首页;若输入正确,则根据“学号”和“课程名”查询选课文件。
若在选课文件中查询成功,显示查询到的成绩,当用户选择“继续查询”后回到“请输入学号”,当用户选择“结束查询” 后回到首页。若查询失败,则显示“查询失败”后回到首页。
1. (5分)下图时该系统的状态图,其中有5个状态的名字缺失,请补充完整。
2. (3分)计算途中的MCCABE环路复杂度,并依据基本路径覆盖原则确定可能的测试路径。

答:(1)S2: DO:核对学号,S5: DO: 核对课程名,S7: DO: 查询选课文件,S8: DO: 显示成绩,S9: DO: 要求用户输入学号
(2)环路复杂度为5
基本路径覆盖原则包括路径覆盖、条件组合覆盖、条件覆盖、分支覆盖、语句覆盖等。根据分支覆盖原则,可能的测试路径包括: A.S0→S1→S2→S→S0
B.S0→S1→S2→S4→S5→S6→S0
C.S0→S1→S2→S4→S5→S7→S10→S0
D.S0→S1→S2→S4→S5→S7→S8→S9→S0
E.S0→S1→S2→S4→S5→S7→S8→S9→S1

2021年

软件工程
一、选择题
二、判断题
三、简答题

  1. 什么是web应用软件?请举例说明。
  2. RAD有哪3种建模,每个建模的主要活动是?
  3. 设有参数a,b,c,求最小值,如图(程序流程图就是求abc最小值的),求用最少的设计测试用例完成语句覆盖。

四、建模题
买铁地票
8个填空
5个节点状态
3个判定状态

2022年
软件工程

答案:① B ② D ③ A ④ C ⑤ A

答案:1.√ 2.√ 3.× 4.√ 5.×

答案:1、
软件测试的目的是:
(1)为了发现错误而执行程序的过程。
(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。
2、

3、

  1. 功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例冬和场景描述组成。
  2. 对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。
  3. 动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常用状态图、顺序图、合作图、活动图构建系统的动态模型。
     与功能模型的关系:对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。
     (2)与对象模型的关系:功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户"关系;动态模型展示了每个对象的状态以及 它接收事件和改变状态时所执行的操作。
     (3)与动态模型的关系:功能模型展示了动态模型中未定义的不可分解的动作和活动的定义,对象模型展示了是谁改变了状态和承受了操作。

答案:(不确定)

2023 年同等学力申硕全国统考计算机科学与技术试卷

Ⅲ . 软件工程(共 30 分)

一、单项选择题(本大题共 5 小题,每题 1 分,共 5 分)

1.软件开发的需求活动,其重要任务是( D) 。
A.给出软件处理方案 B.给出系统模块构造
C.定义模块算法 D.定义需求并建立系统模型
解析:考察软件需求
2.软件总体设计结束后得到( B) 。
A.初始化的软件构造图 B.优化的软件构造图
C.模块的算法 D.程序编码
解析:考察软件设计
3. 面向对象分析措施与构造化分析措施的区别之一是( B) 。
A. 一种使用了“抽象” ,而另一种没有使用“抽象”
B. 一种以问题域的成分为基点来构造一种模块 ,而另一种不是
C. 一种目的明确 ,而另一种目的不明确
D. 一种需要考虑数据构造 ,而另一种不需要考虑数据构造

解析:考察软件设计

面向对象分析侧重于问题域的实体(如对象),并以这些实体为中心来构建系统。而结构化 分析则侧重于功能和过程,通常不以问题域的成分为基点来构造模块。
4.确定测试的计划是在(A) 阶段制定的。
A. 需求分析 B.详细设计
C.编码 D.测试
解析:考察软件需求

在需求分析阶段,开发团队会确定软件的功能和性能要求,并制定相应的测试计划以确保软

件能够满足这些要求。在详细设计、编码和测试阶段,团队会根据这个计划进行具体的测试 工作。
5.按不一样人员的工作内容来分类软件过程,基本过程包括(C)。
A.维护过程和改善过程等 B. 开发过程和改善过程等
C. 获取过程和供应过程等 D. 改善过程和淘汰过程等
解析:考察软件过程

按过程中活动的不同主体,将基本过程分为 5 个过程:获取过程、供应过程、开发过程、运 行过程、维护过程。
二、判断题(本大题共 5 小题,每题 1 分,共 5 分。假如对的,用“√” 表达,否则,用“×”表达)

1.在软件开发措施中,构造化措施总的指导原则是自顶向下、逐渐 求精。 ( √ )
解析:考察软件设计

2. 当一种模块直接修改另一种模块的数据时,模块间的这种耦合称 为数据耦合。 ( × )
解析:考察软件设计

模块间直接修改对方数据的是内容耦合而非数据耦合。

1,内容耦合:是各种耦合中最严重的一种。当一个模块不通过正常入口直接访问并修改另 一个模块的内部数据或控制流时,即存在内容耦合。这破坏了被修改模块的封装性,因此通 常被视为设计不良,应尽量避免。
2,数据耦合:在数据耦合中,模块之间通过参数传递数据,而不是共享数据。这是一种较

为理想的耦合方式,因为它保持了模块间的独立性和松散联系。在这种耦合方式下,模块通 过定义良好的接口来交换数据, 内部实现细节则互相隐藏。
3,其他类型的耦合:还有标记耦合、控制耦合、外部耦合等,它们的耦合程度介于数据耦

合与内容耦合之间。标记耦合涉及到模块间通过数据结构传递信息,而控制耦合则是通过控 制变量影响被调模块的行为。
3.测试用例只需选用合理的输入数据 。 ( × ) 解析:考察软件测试
4 .边界值分析法是一种白盒测试法 。 ( × )
解析:考察软件测试

边界值分析法是一种有效的黑盒测试技术,它通过对输入和输出的边界值进行测试,来提高 测试的效率和覆盖率。这种方法有助于发现那些可能在常规测试中被忽略的错误,从而提高 软件的质量。
5. 关联是建立类之间关系的一种手段 。 ( √ )

三、简答题(本大题共 3 小题,每题 4 分,共 12 分)

1.给出模块耦合的定义 ,并举例阐明3 种模块耦合。
答:考察软件设计

耦合是对不一样模块之间互相依赖程度的度量。(定义 1 分)

一般地,模块耦合可分为:

(1)内容耦合:当一种模块直接修改或操作另一种模块的数据时,模块间的这种耦合称为内 容耦合。
(2)公共耦合:当两个以上的模块共同引用一种全局数据项时,模块间的这种耦合称为公共 耦合。
(3)控制耦合:一种模块在界面上传递一种信号控制另一种模块,接受信号的模块的动作根 据信号值进行调整,模块间的这种耦合称为控制耦合。
(4)标识耦合:当两个模块至少有一种通过界面传递的公共参数时,模块间的这种耦合称为 标识耦合。
(5)数据耦合:当模块间通过参数传递基本类型的数据时,模块间的这种耦合称为数据耦合。

(给出任意 3 种模块耦合,得 3 分,其中每种耦合 1 分)

2.将下面的伪码转换成 N-S 图和 PAD 图。
BEGIN
S1;
S2;
IF a>5 THEN S3 ELSE S4;
n= 1;

WHILE n<=5 DO { S5;
n=n+1; }
IF b>5 THEN S6 ELSE S7;
END.
答:考察软件设计

3.给出 CMM 的 5 级模型,并以其中一种 CMM 等级为例,列出该 等级包括的关键过程域。
答:考察软件过程

CMM(能力成熟度等级)的 5 级模型如下所示:(2 分)

初始级(1 级)

可重复级(2 级)

已定义级(3 级)

已管理级(4 级)

持续优化级(5 级)

例如:(1)可重复级的关键过程域包括:软件配置管理、软件质量保证、软件子协议管理、 软件项目跟踪和监督、软件项目规划以及需求管理。
(2) 已定义级的关键过程域包括:组织过程焦点、组织过程定义、培训大纲、集成软件管 理、软件产品工程、组间协调以及同行评审。
(3) 已管理级的关键过程域包括:定量过程管理和软件质量管理。

(4)持续优化级的关键过程域包括:缺陷防止、技术变化管理和过程变化管理。

(至少答出 2 个关键过程域,得 2 分)。

四、建模题(本大题共 3 小题,共 8 分)

问题陈说:在一简化的某学校图书管理系统中,库房管理员职责:
根据各系的规定负责购置图书,并为新书编制图书卡片(分类目录号、 流水号、书名、作者、价格、购书日期), 写入图书目录文献。
图书管理员职责:
根据借还书的规定负责借还图书处理:
( 1) 当没有要借的图书时, 向借阅人发无书告知;
(2)当借阅人将图书丢失时,以图书丢失单的形式汇报图书管理员, 由图书管理员下罚款单给借阅人;同步图书管理员负责修改图书目录 文献 ,并告知库房管理员。
图书馆主任职责:
每月末根据分类目录号查看某种图书库存量,当库存量低于库存下限 时, 告知库房管理员购书。
1.(3 分)用构造化分析措施给出该系统的顶层 DFD(系统环境图);
2.(2 分)给出顶层 DFD 的数据字典;
3.(3 分)选择该图书管理系统中的一种交互,并用次序图来描述。

2024年
软件工程
一、填空题
1、软件的类型按功能可以分为系统软件、支撑软件和应用软件3中类型.
2、软件危机是指软件开发和软件维护中出现的一系列问题
3软件产品在交付使用之前一般要经过以下四步测试:单元测试、集成测试、有效性测试和系统测试
4、白盒测试和黑盒测试是两种不同的测试方法,其中白盒测试着重于测试代码内部的实现细节,而黑盒测试则重点测试软件系统的功能和性能。(原题描述不是这样的但是结果差不多就是这意思)
二、选择题
1、软件项目启动过程的主要任务是确定项目的目标、约束和自由度,并进行投资/效 益分析和可行性研究,如果符合企业的商业目标,则确定立项。立项的标志是正式下达项目任务书。
2、微软的软件开发团队实行矩阵式交叉管理,纵向垂直管理与汇报关系为:产品总经理一部门经理一小组长一组员.横向管理为产品特性项目组,产品特性项目组成员职能划分为5种角色,各角色地位对等。
三、判断题
1、用户提的需求,必须实现(大概是这意思)
2、忘了
3、执行测试用例发现一次bug为一次有效性测试
4、子类继承父类所有的属性和方法
四、建模题
大体是根据给出描述 1、让写出用例图的参与角色2、画出用例图
有所有人、图书管理员、借书人、系统管理员4种角色

相关文章:

  • 使用Python和Pandas实现的Azure Synapse Dedicated SQL pool权限检查与SQL生成用于IT审计
  • PyTorch 与 TensorFlow:深度学习框架的深度剖析与实战对比
  • 等保系列(一):网络安全等级保护介绍
  • 第四章 Maven
  • 世纪华通:从财报数据看其在游戏领域的成功与未来
  • 3D版同步帧游戏
  • PyTorch中“原地”赋值的思考
  • GPU虚拟化实现(六)
  • 线段树原理和代码详解
  • 课题推荐——通信信号处理中的非线性系统状态估计(如信号跟踪、相位恢复等场景),使用无迹卡尔曼滤波(UKF)的非线性滤波算法,MATLAB实现
  • 【C++重载操作符与转换】输入和输出操作符
  • 深入解析Session与Cookie:从HTTP无状态到现代会话管理
  • 【kafka系列】消费者组
  • 使用Nexus搭建远程maven仓库
  • MySQL零基础入门:Ubuntu环境安装与操作精解
  • AWK 文本分析工具核心总结
  • HashMap,高效 哈希
  • Python生活手册-文件二进制:从快递柜到生鲜冷链的数据保鲜术
  • 业务流程BPM能力框架体系及华为中兴流程变革案例P83(83页PPT)(文末有下载方式)
  • python拜占庭将军
  • 沈晓萍︱严金清:比斯坦因更早获得敦煌文物的无锡名士
  • 此前显示售罄的火车票“五一”前大量放出来了?12306回应
  • Meta一季度净利增长三成:上调全年资本支出,受关税影响亚洲出口电商广告支出减少
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 解放日报社论:只争朝夕、不负重托,加快建成具有全球影响力的科技创新高地
  • 葡萄牙、西班牙突发大范围停电,交通和通信服务受到严重影响