软件过程题目
- 格式:docx
- 大小:22.26 KB
- 文档页数:3
2025年软件资格考试软件过程能力评估师(基础知识、应用技术)合卷(中级)自测试题(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件过程能力评估师在进行软件过程评估时,通常会使用哪种方法来识别和量化软件过程中的关键过程域(KPA)?A、专家评审法B、统计分析法C、模型分析法D、过程审计法2、在软件能力成熟度模型集成(CMMI)中,哪个级别是组织软件过程能力成熟度的基础?A、初始级B、已管理级C、已定义级D、已量化级3、题干:在软件开发生命周期中,以下哪个阶段主要负责软件需求的收集和分析?A. 需求分析阶段B. 设计阶段C. 编码阶段D. 测试阶段4、题干:以下哪个不是软件质量保证(SQA)的常用方法?A. 流程分析B. 审计C. 验收测试D. 软件审计5、题目:在软件过程能力成熟度模型(CMM)中,哪一级别代表了组织已经建立了一套持续改进的机制,并且能够对过程进行监控和评估?A、初始级B、可重复级C、已定义级D、管理级6、题目:在软件开发生命周期中,以下哪个阶段通常负责确定项目是否应该继续进行?A、需求分析B、设计C、编码D、验收测试7、软件过程能力成熟度模型(CMM)的五个级别中,哪个级别强调对软件过程进行定量分析和度量?8、在软件项目管理中,以下哪个不是敏捷开发方法的特点?9、题干:在软件工程中,以下哪个活动通常被称为“软件需求工程”?A. 软件设计B. 软件测试C. 软件需求工程D. 软件维护 10、题干:在软件过程能力成熟度模型(CMM)中,以下哪个级别表示组织已经建立了有效的软件过程管理和改进机制?A. 初级(Initial)B. 管理级(Managed)C. 定义级(Defined)D. 精益级(Optimizing)11、题干:在软件过程中,以下哪个阶段不是软件生命周期的标准阶段?A. 需求分析B. 设计C. 编码D. 测试E. 维护12、题干:以下哪种软件工程原则旨在减少系统复杂性,提高软件的可维护性?A. 单一职责原则B. 开放封闭原则C. Liskov替换原则D. 迪米特法则13、在软件过程能力成熟度模型CMM(Capability Maturity Model)中,成熟度级别1的特点是什么?14、敏捷开发方法中,哪个原则强调“尽早地、持续地对软件进行测试,以便及时发现问题并修复?”15、软件过程能力评估模型(CMMI)的成熟度等级分为几个级别?16、在软件项目管理中,下列哪个工具用于跟踪项目进度和资源消耗?17、在软件生命周期模型中,哪一个模型强调了需求获取与定义的重要性,并且在这个阶段收集所有必要的信息来确保后续设计和开发工作的正确性?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型18、下列哪一项质量管理原则强调在整个组织内各级人员的积极参与是组织之本?A. 过程方法B. 领导作用C. 全员参与D. 持续改进19、在软件过程能力成熟度模型(CMM)中,以下哪个级别标志着组织已经建立了一套稳定的软件开发过程?A. CMM Level 1:初始级B. CMM Level 2:可重复级C. CMM Level 3:已定义级D. CMM Level 4:管理级 20、在软件项目管理中,以下哪个工具或技术用于评估项目风险的概率和影响?A. 风险矩阵B. Gantt图C.PERT图D.PERT分析21、在软件生命周期模型中,螺旋模型是一种结合了瀑布模型与哪种其他模型的特点,并且包含风险分析的模型?A、增量模型B、快速原型模型C、喷泉模型D、敏捷模型22、在软件工程中,需求分析阶段的主要任务是什么?A、确定软件的功能需求和非功能需求B、设计软件的具体实现细节C、编写程序代码D、测试软件是否满足需求规格说明书的要求23、在软件过程能力成熟度模型(CMM)中,CMM模型将软件过程成熟度分为几个等级?24、敏捷开发方法中,哪一种实践不强调团队间的协作和沟通?25、在软件生命周期中的哪一个阶段,需求分析被归类为一项关键活动?A. 概念定义阶段B. 软件开发阶段C. 需求获取阶段D. 系统维护阶段26、下列哪一项质量管理原则强调了持续改进的重要性?A. 以客户为中心B. 过程方法C. 基于事实的决策方法D. 持续改进的方法27、在软件过程能力成熟度模型(CMM)中,哪个级别代表组织具有持续改进的过程?28、软件需求工程中,以下哪项不是软件需求规格说明书(SRS)的主要目的?29、关于软件生命周期模型的说法,下列哪一项是正确的?A. 增量模型允许在早期阶段实现核心产品。
概述1、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得的的结果应该精确到小数点后4位。
一旦实现并测试完之后,改产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你作出选择的理由。
对这个软件的需求很明确,实现开方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。
2、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。
由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。
你打算采用哪种软件生命周期模型?为什么?对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的进度。
使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。
这个项目是开发该公司已被广泛使用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。
综上所述,采用增量模型来完成这个项目比较恰当。
1、什么是软件工程?2、什么是软件过程?它与软件方法学的关系?3、用自己的语言来比较瀑布模型与原形模型?分析两种模型产生的必然性。
需求分析简单例子:(订货系统)一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
软件资格考试软件过程能力评估师(基础知识、应用技术)合卷(中级)自测试卷(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件过程能力成熟度模型(CMM)中,哪个级别标志着组织在软件过程管理方面已经建立了一套有效的、稳定的、可重复的过程?A、初始级(Initial)B、可重复级(Repeatable)C、已定义级(Defined)D、已管理级(Managed)2、敏捷开发方法中,哪个概念强调团队成员之间的密切合作,以及在开发过程中快速响应变化?A、ScrumB、KanbanC、极限编程(XP)D、看板(Kanban)3、软件过程能力评估师的定义是什么?4、评估过程中常用的软件过程模型有哪些?请列出至少三种。
5、以下哪种说法不属于软件过程能力的五个关键能力范围?()A. 交流能力B. 需求工程能力C. 设计能力D. 软件项目管理能力6、在软件开发生命周期中,以下哪个阶段是确保软件质量的关键阶段?()A. 需求分析阶段B. 设计阶段C. 编码阶段D. 测试阶段7、在软件生命周期模型中,螺旋模型是一种结合了瀑布模型与哪种模型的特点,并加入了风险分析的模型?A. 迭代模型B. 敏捷模型C. 增量模型D. 快速原型模型8、下列哪一项不是软件质量保证(SQA)的主要活动?A. 制定SQA计划B. 执行同行评审C. 监控配置管理D. 编写测试用例9、在软件过程能力成熟度模型(CMM)中,哪一级别表示组织已经建立了标准化的软件过程,并能对这些过程进行持续改进?A. CMM1:初始级B. CMM2:可重复级C. CMM3:已定义级D. CMM4:已管理级 10、以下哪项不是软件过程评估的目的?A. 提高软件产品质量B. 识别和改进软件过程中的问题C. 确保项目按时交付D. 评估组织对CMM级别的符合程度11、在项目管理中,下列哪个过程组负责定义和批准项目需求,并确保项目目标、范围与客户的期望保持一致?A. 项目启动B. 项目规划C. 项目执行D. 项目监控12、敏捷开发方法论强调什么原则?A. 严格的项目规划B. 持续的迭代与反馈C. 严格的代码审查D. 高层管理的控制13、软件过程能力成熟度模型中,认为软件开发是一个迭代的过程,并通过迭代来提高软件质量的方法是?A. 水平模型B. V模型C. 圈模型(螺旋模型)D.瀑布模型14、在软件过程管理中,不属于软件开发生命周期中过程活动的是?A. 规划B. 分析C. 实现D. 维护15、在软件开发过程中,哪一项是确保软件质量的重要手段?•A) 需求分析•B) 代码编写•C) 软件测试•D) 用户培训16、CMMI(Capability Maturity Model Integration)模型中的哪个级别表示组织已经定义了标准过程,并且这些过程被文档化、标准化,同时被整个组织所遵循?•A) 初始级•B) 可管理级•C) 已定义级•D) 量化管理级17、在软件过程中,哪个阶段通常被用于评估软件产品的质量?A. 需求分析阶段B. 设计阶段C. 编码阶段D. 测试阶段18、以下哪个不是软件过程改进的典型方法?A. 精益软件开发B. 精益六西格玛C. 敏捷开发D. 传统瀑布模型19、软件过程能力评估是指对软件企业执行软件开发过程的能力进行评估。
2025年软件资格考试软件过程能力评估师(基础知识、应用技术)合卷(中级)自测试题(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件过程能力评估师在进行软件过程评估时,最常用的评估模型是:A. CMMI(能力成熟度模型集成)B. ISO/IEC 15504(软件过程评估模型)C. SPICE(软件过程改进和环境能力)D. MOF(微软运营框架)2、在进行软件过程评估时,以下哪个因素不是影响软件过程能力的直接因素?A. 人员技能B. 工具和技术C. 组织文化D. 项目管理方法3、在软件过程能力成熟度模型(CMM)中,哪个级别表示组织已建立了标准化的过程并能够进行过程改进?A. CMM Level 1 - 初级B. CMM Level 2 - 可重复C. CMM Level 3 - 定义D. CMM Level 4 - 管理级4、软件过程能力评估师在进行软件过程评估时,以下哪项活动不是必须的?A. 收集过程文档B. 与团队成员进行访谈C. 分析项目历史数据D. 评估软件产品的质量5、题干:在软件工程中,以下哪项不是软件开发生命周期模型?A. 瀑布模型B. 螺旋模型C. 水晶模型D. 代码审查模型6、题干:以下关于软件质量特性的描述中,哪项是错误的?A. 软件质量特性包括功能性、可靠性、易用性、效率、可维护性和可移植性。
B. 功能性是指软件满足用户需求和预期的程度。
C. 可靠性是指软件在特定条件下保持其性能的能力。
D. 软件的可维护性是指软件能够被修改和适应环境变化的能力。
7、在软件过程中,以下哪个阶段通常不涉及详细设计工作?A、需求分析B、概要设计C、详细设计D、编码实现8、在软件过程能力成熟度模型(CMM)中,以下哪个等级代表组织已经建立了稳定的软件过程?A、初始级B、可重复级C、已定义级D、管理级9、在软件过程能力成熟度模型(CMM)中,哪个级别代表了组织已建立有效的软件过程,并已对软件过程进行了定量管理?10、敏捷开发方法中的“故事卡”通常用于什么目的?11、在软件开发生命周期中,以下哪个阶段是需求分析的起点?A. 系统设计B. 系统规划C. 系统实现D. 系统测试12、以下哪个标准是用于评估软件产品的可维护性的?A. ISO/IEC 15504(SPICE)B. ISO/IEC 25010(SQuaRE)C. ISO/IEC 25000(SWE-CMM)D. ISO/IEC 1220713、在软件过程评估中,下列哪项不是过程成熟度模型(CMM)关注的核心要素?A. 项目管理B. 人员管理C. 软件质量管理D. 组织管理14、在软件过程能力评估中,以下哪个指标通常用来衡量软件项目交付的及时性?A. 项目进度偏差B. 完成分解任务的时间C. 完成时间与计划时间之比D. 需求变更频率15、在软件过程能力成熟度模型(CMM)中,以下哪个级别代表了组织已建立了有效的过程管理机制?A. 初始级(Initial)B. 可重复级(Repeatable)C. 定义级(Defined)D. 管理级(Managed)16、软件质量保证(SQA)的主要目的是什么?A. 确保所有软件需求都被满足B. 减少软件缺陷和错误C. 提高软件产品的可靠性D. 以上都是17、以下关于软件质量保证(Software Quality Assurance,简称SQA)的说法中,正确的是()。
软件开发考试题目及答案一、选择题(每题2分,共20分)1. 在软件开发过程中,需求分析阶段的主要任务是什么?A. 确定软件的最终用户界面B. 确定软件的功能需求和性能需求C. 编写软件的详细设计文档D. 开始编写代码答案:B2. 面向对象编程中的“封装”指的是什么?A. 将数据和操作数据的方法组合在一起B. 将不同的数据类型组合在一起C. 将数据和控制数据的方法组合在一起D. 将不同的方法组合在一起答案:A3. 在敏捷软件开发中,以下哪个不是敏捷宣言的四个价值观之一?A. 个体和交互B. 可工作的软件C. 详尽的文档D. 响应变化答案:C4. 在软件测试中,黑盒测试和白盒测试的区别是什么?A. 黑盒测试关注软件的内部结构,白盒测试关注软件的功能B. 黑盒测试关注软件的功能,白盒测试关注软件的内部结构C. 两者都关注软件的功能D. 两者都关注软件的内部结构答案:B5. 软件项目管理的主要目标是什么?A. 确保软件按时发布B. 确保软件在预算内完成C. 确保软件满足所有需求D. 所有以上选项答案:D二、简答题(每题10分,共30分)1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期(SDLC)的主要阶段包括:需求收集、需求分析、系统设计、编码、测试、部署、维护和退役。
2. 解释什么是软件重构,并给出一个重构的例子。
答案:软件重构是指在不改变软件外部行为的前提下,对软件的内部结构进行调整以提高其可读性、可维护性和性能。
一个常见的重构例子是将一个过长的函数拆分成几个更小的、功能单一的函数。
3. 描述单元测试和集成测试的区别。
答案:单元测试是针对软件中的最小可测试部分(通常是单个函数或模块)进行的测试,以确保它们按预期工作。
集成测试则是在多个模块或组件已经单独测试后,将它们组合在一起进行测试,以确保它们能够协同工作。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的负责人,你的团队正在开发一个电子商务平台。
1、在软件开发过程中,以下哪项活动属于需求分析阶段的主要任务?A. 编写详细的程序代码B. 确定软件的性能指标C. 设计数据库结构D. 与用户沟通,明确软件需求(答案)2、关于软件测试,以下哪种说法是正确的?A. 软件测试只能在编码完成后进行B. 软件测试的目的是为了发现所有的错误C. 软件测试应该尽早开始,并贯穿整个开发过程D. 单元测试主要由测试团队负责(答案:C)3、在敏捷开发方法中,以下哪个是迭代计划会议的主要目的?A. 评估项目风险B. 确定下一个迭代中要完成的工作C. 审查代码质量D. 制定详细的项目计划(答案:B)4、关于软件架构设计,以下哪种说法是错误的?A. 软件架构是软件系统的蓝图B. 软件架构描述了系统的组件及它们之间的关系C. 软件架构一旦确定,就不能更改D. 良好的软件架构可以提高系统的可维护性和可扩展性(答案:C)5、在数据库设计中,以下哪个步骤是为了确保数据的完整性和一致性?A. 数据抽象B. 规范化C. 数据加密D. 数据备份(答案:B)6、关于云计算,以下哪种说法是正确的?A. 云计算只能提供IaaS(基础设施即服务)B. 云计算可以显著提高系统的可用性和可扩展性C. 云计算只适用于大型企业D. 云计算不需要任何形式的网络安全措施(答案:B)7、在项目管理中,以下哪个工具或技术用于估算项目活动的持续时间?A. 工作分解结构(WBS)B. 三点估算C. 关键路径法(CPM)D. 帕累托图(答案:B)8、关于软件质量,以下哪种说法是错误的?A. 软件质量是软件满足规定或隐含需求能力的总和B. 软件质量可以通过测试来完全保证C. 软件质量包括功能性、可靠性、可用性等多个方面D. 提高软件质量可以降低维护成本(答案:B,因为测试不能保证发现所有错误,只能提高发现错误的可能性)。
软件资格考试软件过程能力评估师(基础知识、应用技术)合卷(中级)自测试卷(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件过程能力评估师(CAPP)在评估软件项目时,通常会考虑以下几个方面:项目规模、项目复杂性、团队经验、风险管理等。
以下哪个因素不是软件过程能力评估师在评估软件项目时需要考虑的因素?A、项目规模B、项目复杂性C、团队经验D、项目进度2、以下哪项不属于软件过程改进活动的范畴?A、软件过程评估B、软件过程改进C、软件过程优化D、软件过程审计3、在软件开发生命周期中,以下哪个阶段不是软件设计阶段的一部分?A. 需求分析B. 系统设计C. 模块设计D. 编码实现4、以下哪项不属于软件过程能力成熟度模型(CMM)的五个成熟度级别?A. 初始级B. 管理级C. 定义级D. 集成级5、题干:在软件开发生命周期中,以下哪个阶段不属于软件需求分析阶段的工作内容?A. 用户需求收集B. 需求规格说明C. 系统设计D. 系统测试6、题干:以下哪个软件质量模型不是基于过程模型的?A. CMM(能力成熟度模型)B. SPICE(软件过程能力成熟度模型)C. ISO/IEC 15504D. FURPS(功能、用户界面、可靠性、性能、安全性)7、在软件过程能力成熟度模型(CMM)中,CMM的哪个级别代表了组织已经建立了软件过程管理的基础?A、初始级B、可重复级C、已管理级D、定义级8、以下哪个不是敏捷开发方法的特点?A、迭代开发B、持续集成C、严格的时间表和预算D、需求变更的灵活性9、软件过程能力评估师在评估软件过程时,通常会考虑哪些关键因素?A. 项目规模和复杂性B. 团队技能和经验C. 软件开发方法和工具D. 客户满意度和交付时间 10、以下哪项不是CMMI(能力成熟度模型集成)的五个关键过程区域之一?A. 项目规划B. 供应管理C. 组织级过程D. 量化管理11、在软件过程中,以下哪个活动不属于软件设计阶段?A. 需求分析B. 系统架构设计C. 编码实现D. 测试计划12、软件过程能力成熟度模型(CMM)的哪个级别表明组织已经建立了稳定的软件过程?A. CMM Level 1:初始级B. CMM Level 2:可重复级C. CMM Level 3:已定义级D. CMM Level 4:管理级13、题干:在软件开发生命周期中,下列哪一项活动不属于软件需求分析阶段?A. 确定软件需求B. 设计数据结构C. 编写软件规格说明书D. 进行软件测试14、题干:下列关于软件设计原则的说法,错误的是:A. 单一职责原则要求一个类只负责一项职责B. 开闭原则要求软件对扩展开放,对修改封闭C. Liskov替换原则要求子类可以替换基类对象出现的地方D. 迪米特法则要求降低类之间的耦合度15、在软件生命周期中,哪个阶段主要进行需求分析、系统设计和系统测试?16、在软件过程能力成熟度模型(CMM)中,第5级(优化级)的特点是什么?17、题目:在软件工程中,以下哪个过程不属于软件开发生命周期?A. 需求分析B. 系统设计C. 硬件设计D. 编码实现18、题目:以下哪项不是软件过程能力成熟度模型(CMM)的五级模型之一?A. 初始级B. 可重复级C. 已定义级D. 管理级E. 优化级19、在软件开发生命周期中,哪个阶段主要用于需求分析、系统设计和编码实现?A. 计划阶段B. 迭代阶段C. 维护阶段D. 开发阶段 20、敏捷开发方法中,哪个原则强调通过尽早和持续地交付有价值的软件来满足客户的需求?A. 尊重个体和互动胜过过程和工具B. 工作软件胜过详尽的文档C. 客户合作胜过合同谈判D. 响应变化胜过遵循计划21、软件过程能力成熟度模型(CMM)中,第几个成熟度等级开始关注软件产品的质量?22、软件需求规格说明书(SRS)的主要目的是什么?23、在软件过程中,以下哪个阶段最注重软件产品的可维护性?A. 需求分析阶段B. 设计阶段C. 编码阶段D. 测试阶段24、在软件过程能力评估中,CMMI模型中哪个过程区域负责管理软件项目的进度和成本?A. 项目管理B. 软件工程C. 产品集成D. 供应管理25、在软件过程能力成熟度模型CMMI中,过程域“组织过程定义”的目的是什么?26、在软件项目管理中,以下哪一项不是项目风险识别的主要方法?27、软件过程能力评估师在进行过程改进时,以下哪种方法不适用于评估软件项目的成熟度?A. 软件能力成熟度模型(CMM)B. ISO/IEC 15504(SPICE)C. 六西格玛管理D. 项目管理框架28、在软件过程能力评估中,以下哪个术语表示软件组织在管理软件开发和维护过程中对变更的响应能力?A. 变更管理B. 配置管理C. 流程适应性D. 项目管理29、软件过程能力成熟度模型(CMM)中,CMM的哪个级别代表了软件过程的稳定性和可预测性?A. CMM Level 1:初始级B. CMM Level 2:可重复级C. CMM Level 3:已定义级D. CMM Level 4:管理级 30、在软件需求工程中,以下哪个活动通常用于识别用户需求和系统需求?A. 需求分析B. 需求收集C. 需求验证D. 需求管理31、软件过程能力评估(SPC)中,软件过程成熟度模型(CMM)定义了软件过程的五个等级,以下哪个等级表示组织已建立一套稳定的软件开发过程,并已实施持续的过程改进?A. 初始级B. 可重复级C. 已定义级D. 管理级32、在软件过程能力评估中,过程度量是评估软件过程能力的关键手段。
1、在软件开发过程中,需求分析的主要目的是?A. 确定软件开发所需的技术栈B. 明确软件的功能和性能要求C. 设计软件的架构和模块划分D. 测试软件的可用性和用户体验(答案)B2、下列哪项不属于软件设计的基本原则?A. 高内聚低耦合B. 模块化设计C. 尽可能使用最新技术D. 遵循设计模式(答案)C3、在敏捷开发方法中,迭代计划会议的主要任务是?A. 详细规划整个项目的开发流程B. 确定下一个迭代周期要完成的用户故事C. 评估项目风险并制定应对措施D. 对已完成的工作进行回顾和总结(答案)B4、关于软件测试,下列说法错误的是?A. 单元测试是对单个模块进行测试B. 集成测试是在单元测试之后进行,关注模块间的交互C. 系统测试是验证软件是否满足用户需求D. 验收测试是由开发人员自行完成的最终测试(答案)D5、在数据库设计中,ER图(实体-关系图)主要用于表示?A. 数据表的字段和数据类型B. 实体、属性和实体间的关系C. 数据的存储结构和访问方法D. 数据的流程和处理逻辑(答案)B6、下列哪项不是版本控制工具(如Git)的主要功能?A. 跟踪代码变化历史B. 协助多人协作开发C. 自动编译和部署代码D. 管理代码分支和合并(答案)C7、关于软件架构,下列说法正确的是?A. 软件架构只在软件设计初期考虑,后续开发无需关注B. 软件架构是软件开发过程中的固定不变的部分C. 软件架构影响软件的可维护性、可扩展性和性能D. 所有软件的架构都是相同的,不存在差异(答案)C8、在面向对象编程中,继承的主要作用是?A. 实现代码的复用和扩展B. 提高代码的执行效率C. 减少代码的内存占用D. 简化代码的编写过程(答案)A9、关于软件测试中的回归测试,下列说法错误的是?A. 回归测试是在修改代码后进行的测试B. 回归测试的目的是确保修改没有引入新的错误C. 回归测试只需测试修改过的部分D. 回归测试通常包括全部或部分已经执行过的测试用例(答案)C10、在软件开发过程中,代码审查的主要目的是?A. 检查代码是否符合编码规范B. 发现并修复代码中的错误和潜在问题C. 评估代码的性能和优化空间D. 确定代码是否满足用户需求(答案)B。
/c?m=9f65cb4a8c8507ed4fece763105392230e54f7396b95c7150995d55f93130a1c1871e3cc7 67e0d4289842b7a41f80801adb067252a546ae0db99d30b8afa8f2838885076264892044f934fa0dc3652d6569b4d98 ad0e93cce733e3b9a3a3c82454dd22046df4f59c5b7003ba6fe76441f4a7e95f642907c99c27648f4e072e885246a146 89f7426510f580ca2c4dd45ba17610e7b844b62961b404d21d0c5532b74dc11f2723279744308f372a75e6fc5c973d08 3334c643a4cfc0a19a499bdd9a26e8fddcde29826196d29bfc66357b458a51a9dfb9&p=c9759a44c79201ee34be9b7f5 b&user=baidu第2章软件过程(习题与参考答案)[选择题]1. ( )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明,软件设计与开发,软件确认,软件改进等活动组成.(A)A. 软件过程B. 软件工具C. 软件产品D. 软件工程2. 软件过程的基本活动是( ).(A)A. 分析,设计,实现,测试,演化B. 沟通,计划,建模,构造,部署C. 计划,分析,设计,实现,调试D. 沟通,风险管理,度量,产品化,评审3. ( )软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据.(B)A. 真B. 假4. 软件开发的瀑布模型是( ).(A)A. 适用于需求被清晰定义的情况B. 一种需要快速构造可运行程序的好方法C. 最适合于大规模团队开发的项目D. 已不能用于现代环境的过时模型5. 软件开发的增量模型是( ).(B)A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 最适合于大规模团队开发的项目D. 一种不适用于商业产品的创新模型6. 快速原型开发模型是( ).(B)A. 适用于客户需求被明确定义的情况B. 适用于客户需求难以清楚定义的情况C. 最适合于大规模团队开发的项目D. 很难产生有意义产品的一种冒险模型7. 演进式软件过程模型( ).(D)A. 本质上是迭代的B. 可以很容易适应需求的变化C. 通常不会抛弃所产生的系统D. 以上所有选项8. 螺旋模型( ).(C)A. 在软件产品发布时结束B. 比增量模型更加混乱C. 在每一次迭代过程中包含项目风险评价D. 以上所有选项9. 基于组件的开发模型( ).(C)A. 只适用于计算机硬件设计B. 不能支持可重用组件的开发C. 在面向对象技术获得支持的情况下应用得更好D. 增加了开发风险和成本10. 形式化方法模型是将数学方法用于( ).(D)A. 定义计算机系统的规格说明B. 开发无错误的计算机系统C. 验证计算机系统的正确性D. 以上所有选项11. 下面的( )不是RUP模型的阶段.(D)A. 启动阶段B. 精化阶段C. 构造阶段D. 确认阶段[练习题]1. 请简要说明软件过程的概念和基本元素.答案要点:软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:『过程中所执行的活动及其顺序关系『每一个活动的内容和步骤『团队人员的工作和职责2. 请描述快速原型过程模型的各个阶段.答案要点:快速原型方法的目的是解决软件需求不明确给开发带来风险的问题,其关键在于尽可能"快速"地建造原型,通过用户对原型的评价最终确定系统的需求.快速原型过程模型包括以下阶段:『原型需求分析:分析和提炼所收集到的客户需求;『原型开发:基于初步的需求快速建造一个可以运行的软件原型,实现客户或未来的用户与系统的交互;『原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的需求,并继续调整原型直至需求确定下来为止.3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型.(1) 瀑布模型(2) 快速原型模型(3) 增量模型(4) 形式化方法模型(5) 基于组件的开发模型答案要点:(1) 瀑布模型项目举例:某项目需要在一种新型机器上,为一种已知语言开发一个普通的编译器.选用分析:由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发.阶段说明:略.(2) 快速原型模型项目举例:某公司需要给火车站开发一个交互式火车车次查询系统,这是火车站首次使用该系统.选用分析:本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统.阶段说明:略.(3) 增量模型项目举例:某公司开发一个通用CAD软件产品,产品需求是逐步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市.选用分析:通用CAD软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,但是实现该产品所有功能需要比较长的开发周期.为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础. 阶段说明:略.(4) 形式化方法模型项目举例:某公司开发一个汽车防抱死刹车控制系统.选用分析:由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行相关性能的检验,因此适合采用形式化方法开发该系统.阶段说明:略.(5) 基于组件的开发模型项目举例:某公司开发企业管理ERP系统,包括销售,库存,生产,财务,物流,人力资源等部分,在系统实施过程中不同的企业具有一定的需求差异.选用分析:企业ERP系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成.阶段说明:略.4. 在螺旋模型中,风险分析的作用是什么答案要点:在螺旋模型中,软件开发是在风险等级的指导下进行的.首先确定该阶段的目标,完成这些目标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统;如果某些风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作,并再次通过风险分析规定过程遵循的策略;最后,评价该阶段的结果,并规划下一个迭代.从上述过程中可以看出,风险分析的作用是通过识别项目中的高风险问题,使开发人员制定适当的开发策略消除这些风险.5. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统.请设计一个适用于该系统开发的过程模型,并进一步描述该模型.答案要点:假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能.从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:『系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求.『遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,必要时适当修改系统需求,最终确定系统需求和总体结构.『设计开发阶段:开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口.『系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试.根据所报告的测试问题,开发人员调试和修改程序.『系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收.6. 请举例说明不同的过程模型组合使用的情况.答案要点:在前面提到的企业管理ERP系统项目中,可以将快速原型方法,组件开发模型和增量模型组合在一起使用,即在需求分析阶段采用原型方法确定需求,采用组件化的结构设计整个系统,并采用增量方式逐步交付整个系统.。
1.软件工程是指导软件开发和维护的工程类学科,它以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、方法和技术,进行软件的开发和维护,并与经过时间证明正确的管理方法与措施相结合,以较少的代价获取高质量的软件。
2.PSP和TSP中质检过失比(A/FR)是一个重要的质量度量参数。
请简要说明A/FR分别小于1和大于2时对过程的意义。
质检/过失比:质检质量成本/过失质量成本,用来测量在第一次编译前花在查找缺陷上的时间的相对值。
可用复查时间/(编译+测试)时间来计算。
能很好地指示测试中发现缺陷的可能性。
当A/FR<1时,程序测试一般会发现很多错误;当A/FR>2时,过程产生无缺陷的可能性更大。
A/FR的值对于小的独立的产品通常比2.0要大;A/FR的值对于相对大的产品等于1.0较为合适。
例如,如果有实际总开发时间=262min,实际代码复查时间=29min,则质检成本=100*29/262=11.07% 如果有实际编译时间=5min,实际测试时间=10min,则过失成本=100*(5+10)/262=5.73%。
此时,A/FR= 11.07/ 5.73=1.93。
可用复查时间/(编译+测试)时间来计算。
3. SEPG(软件工程过程组)职责概念软件工程过程组(Software Engineering Process Group)由专家组成,统领CMM 实施活动,协调全组织软件过程的开发和改进活动,制定、维护和跟踪与软件过程开发和改进活动有关的计划,定义用于过程的标准和模板,负责对全体人员培训有关软件过程及其相关的活动。
这是来源于CMM3的一个名词,是指执行组织,为不断改进软件过程管理能力而组建的专门性组织,其职责包括:制定规程:组织制定软件过程管理规程推广规程:在组织内部推广已制定软件过程管理规程监督实施:对组织内部软件过程管理规程执行情况的监督过程能力提高:对组织内部软件过程管理能力进行评估,制定计划提高组织软件过程管理能力,实施软件过程管理能力改进计划4.从软件管理所包含的内容,简要论述软件管理的必要性及其发展趋势。
1. 软件管理是对软件项目和产品进行管理的技术的总称。
包含以下几方面的内容:2. 软件项目管理:主要完成定义项目目标,评估项目资源,估计项目实施的进度;3. 软件风险管理:主要进行软件产品的风险鉴定,分析,监视,缓解和计划;4. 软件质量管理: 主要包括质量计划和控制,验证和确认,产品和过程的度量,软件产品的可信任度和可靠性。
5. 软件配置管理: 软件产品的版本控制、变更管理、状态统计、和配置审计.6. 在软件开发过程中,产品质量涉及到生产的所有环节,只有各个生产层面都不忽视质量,最后才能得到高质量的产品;而要制造及传递某种合乎特定质量标准的产品时,必须配合适当的管理技术及作业程序;另外,软件管理也是使企业具备持续提供符合要求产品的能力的必要条件。
所以,对于整个项目和产品来说,软件管理都是必须的。
7. 其发展趋势:目前,软件管理正向着软件过程管理发展,软件界已经认识到软件过程因素对软件开发的重要影响,它使人们把注意力从抽象的软件生存周期模型的研究,转向那些对软件项目的成功起着关键作用的过程细节的研究。
5.从你已有的软件过程与软件管理的知识和软件实践经验,谈谈如何判断软件过程是成熟的和有效的。
若软件过程满足如下几个标准,则认为其是成熟和有效的:软件过程被正确无误地通知到现有职员和新雇员,工作活动均按照己规划的过程进行,而且和实际进行工作的方式相一致。
软件过程中,需要时就更新过程,并且通过可控的先导性试验和(或)费效分析使其得到改进。
所有项目和在整个组织中,所有的岗位及其职责都是清楚的。
经理能够严格监控产品的质量和顾客的满意程度;有客观的、定量的基础,进度和预算是现实的基于以前的性能数据;能达到产品的成本、进度、功能和质量的预期结果。
整个过程一致地遵循一个有纪律的过程,而且存在支持该过程的必要基础设施。
6.谈你学习PSP、TSP、CMM的心得体会。
对于小项目,项目本身不大,开发周期也不长,所以看起来比较简单,比较容易成功。
因而往往会忽视了这类小项目的管理,其实这是一种误解,从本人的经验看来,小项目开发中容易犯以下的一些错误:①开发之前没有认真地进行项目可行性和工作量的估计往往由于项目较小,便很草率地制定一个开发日程表,没有认真地估计项目难度,结果实际完成时间与估计完成时间往往有较大差别。
②没有真正的设计过程开发人员少,意味着不同人员的程序之间交互、接口相对少一些。
开发周期短意味着往往是同样的几个人从头到尾负责一个项目。
这两者都让人容易犯些错误。
往往是几个人碰一下头,讨论一下最基本的结构、接口便分头去做自己的工作了,没有一份较正式的文档。
这种做法潜在的危险之一是有的人可能会对讨论出的接口、结构理解有偏差(应该承认人是会犯错误的),一个误解可能造成以后的返工。
另一个潜在的危险是由于讨论时忽略了某些情况,等大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却形不成一个完整的系统。
其根源在于没有一个负责协调的人员不断监控整个开发过程。
第三个潜在的危险是一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头来。
另外,没有文档的程序,日后维护和版本升级都比较困难。
③不经过单元测试而直接进入系统测试造成这一现象的原因是每个模块相对比较简单,但是为了测试一个模块需要建立一些测试环境。
例如,为了测试一个函数是否正确,应该用一些测试数据去调用该函数,需要编写一些测试数据。
但很多人嫌麻烦,觉得反正其他模块也很快出来了,直接用真正的数据来运行几次就行了。
这样,一旦直接进入系统测试,发现运行结果不正确后需要一步步查找。
由于模块间的调用关系,可能查了很久才发现是某个模块的问题。
这种方法一来效率比较低,大量的时间用在了将一个错误定位在模块上了。
另外由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,可能某些边界情况容易被忽视,很久之后才被发现。
但是如果对每个模块进行单元测试时都进行一下边界测试,就会很容易消除一些隐患,可谓欲速则不达。
7.从PSP的过程框架出发,谈谈PSP带来的益处。
PSP是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程以及帮助软件工程师测量和改进工作方式的结构化框架。
可用于控制、管理、改进和自我完善软件工程师软件开发的个人工作方式与过程。
个体软件过程PSP的好处有:PSP为个体和小型群体优化软件过程提供了途径;PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立;PSP能够说明个体软件过程的原则,且原则能够应用到几乎任何的软件工程任务之中;PSP帮助软件工程师作出准确的计划;PSP确定软件工程师为改善产品质量要采取的步骤;PSP建立度量个体软件过程改善的基准;PSP确定过程的改变对软件工程师能力的影响。
8.PSP过程脚本的主要步骤。
1入口准则—进行问题描述;PSP项目计划总结表;以前开发的程序的实际规模和时间数据;时间记录日志;2计划阶段—首先获得项目的需求,然后完成项目计划总结表,最后把计划所花费的时间记录在时间记录日志上。
3设计阶段—设计这个程序。
用流程图或伪码等指定的格式记录设计的内容。
该阶段结束时,把设计时间记录在时间记录日志上。
4编码阶段—利用所选择的程序设计语言来实现该设计。
使用一致的编码格式。
结束时在时间记录日志上记录编码所花费的时间。
5代码复查—复查所有的源程序代码;遵照代码复查脚本;修复并记录所发现的每一个缺陷;将代码复查阶段所花费的时间记入时间记录日志;6编译阶段—编译程序并改正所有发现的缺陷。
修复缺陷直到正确编译无错为止。
所有花费在这一阶段的时间记为编译时间,包括修改设计和改正代码的时间。
该阶段结束时,在时间记录日志上记录编译时间。
7测试阶段—进行充分的测试以保证程序满足所有的需求,并且能够不带任何错误通过一组全面的测试集。
所有花费在这一阶段的时间记为测试时间,其中包括修改设计、改正代码和重新编译的时间。
该阶段结束时,在时间记录日志上记录测试时间。
8后置处理阶段—完成项目计划总结表中所有有关实际数据的那些栏目。
然后登入一个估计的后置处理阶段的时间。
9.CMM的主要用途。
软件过程评估:(SPA,Software Process Assessment)一组经过训练和培训的软件专业人员,确定出一个企业软件过程的状况,找出软件企业所面对的与软件过程有关的、最急需解决的所有问题,以便取得企业领导层对软件过程改进的支持——企业内部。
软件过程改进:(SPI,Software Process Improvement)帮助软件企业对其软件过程向更好的方向改变,进行计划、制定以及实施。
软件能力评价:(SCE,Software Capability Evaluation)一组经过训练和培训的软件专业人员,鉴别出软件承包者的能力资格;或者是,检查、监察正用于软件制作的软件过程的状况——企业外部。
10.在软件配置管理系统中检入与检出是基本功能。
请解释该功能的作用。
检入就是将软件配置项从用户的工作环境存入到软件配置库的过程;检出就是将软件配置项从软件配置库中取出的过程。
PMBOK(Project Management Body Of Knowledge),即项目管理知识体系,对项目管理所需的知识、技能和工具进行的概括性描述。