软件工程课程复习重点与模拟题_第1页
软件工程课程复习重点与模拟题_第2页
软件工程课程复习重点与模拟题_第3页
软件工程课程复习重点与模拟题_第4页
软件工程课程复习重点与模拟题_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程课程复习重点与模拟题同学们,软件工程这门课程旨在培养大家系统、规范地开发和维护软件的能力。它不仅仅是编程,更是一门融合了管理、方法、工具和思想的综合性学科。临近考试,一份清晰的复习重点和有针对性的模拟题,将帮助大家巩固知识、查漏补缺,顺利通过考试。下面,我将结合课程核心内容,为大家梳理复习要点并提供模拟练习。一、复习重点1.软件工程基本概念*软件的定义与特点:理解软件与硬件的区别,软件的逻辑实体性、可复用性、无磨损性等特点。*软件工程的定义:明确软件工程是将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程,以及对这些方法的研究。*软件工程的目标与原则:目标包括正确性、可用性、可靠性、效率、可维护性、可重用性等;原则如抽象、模块化、信息隐藏、局部化、一致性、完整性等。*软件危机:了解软件危机的表现、产生原因及缓解途径。*软件过程:理解软件过程的概念,以及它在软件开发中的重要性。2.软件生命周期模型*瀑布模型:掌握其阶段划分(需求分析、设计、编码、测试、运行维护)、线性顺序特点、优缺点及适用场景。*原型模型:理解原型的定义、分类(探索型、实验型、演化型),原型开发的步骤,优缺点及适用场景(需求不明确时)。*增量模型:掌握增量模型的基本思想,如何将软件分解为增量,优缺点及适用场景。*螺旋模型:理解其核心思想(风险驱动),四个象限(制定计划、风险评估、开发与验证、计划调整),优缺点及适用场景(大型复杂项目)。*敏捷开发方法:了解敏捷的核心价值观(个体与交互、可用的软件、客户合作、响应变化)和基本原则,掌握Scrum等典型敏捷过程框架的主要角色、事件和artifacts。*其他模型:如喷泉模型、V模型等,了解其基本思想。3.软件过程活动*需求工程:*需求的概念与分类:功能需求、非功能需求(性能、可靠性、安全性、可用性等)。*需求获取:方法包括访谈、问卷、观察、原型、场景分析等。*需求分析:任务是分析用户需求,建立分析模型(如用例图、数据流图、状态图等)。*需求规格说明:SRS文档的作用、主要内容和质量要求。*需求验证:方法和目的,确保需求的正确性、完整性、一致性、可行性等。*软件设计:*设计的基本原则:模块化、抽象化、信息隐藏、低耦合高内聚。*概要设计(总体设计):任务是系统架构设计、模块划分、模块间接口设计。常用方法如结构化设计(SD)、面向对象设计(OOD)。*详细设计:任务是为每个模块设计内部实现细节,包括算法、数据结构。常用工具如程序流程图、N-S图、PAD图、伪代码、UML类图(详细)。*面向对象设计:理解类、对象、封装、继承、多态等概念在设计中的应用,掌握UML的核心图(类图、对象图、顺序图、协作图、状态图、活动图)。*编码:编码风格、命名规范、代码可读性、可维护性、编程语言选择因素。*软件测试:*测试的基本原则:测试显示缺陷存在、穷举测试不可能、尽早测试、独立测试等。*测试级别:单元测试、集成测试(自顶向下、自底向上、三明治)、系统测试、验收测试(α测试、β测试)。*测试方法:黑盒测试(等价类划分、边界值分析、因果图、场景法)、白盒测试(语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、路径覆盖)。*测试过程:测试计划、测试用例设计、测试执行、缺陷报告与跟踪。*软件维护:*维护的类型:改正性维护、适应性维护、完善性维护、预防性维护。*维护的特点:成本高、难度大、维护人员流动性等。*软件可维护性:概念及度量指标(可理解性、可测试性、可修改性、可靠性、可移植性)。4.软件项目管理*项目计划:范围计划、进度计划(甘特图、网络图、关键路径法)、成本计划、质量计划、资源计划。*风险管理:风险识别、风险评估(可能性、影响)、风险应对策略(规避、转移、减轻、接受)。*质量保证:软件质量的概念,质量保证活动。*配置管理:版本控制、变更控制、配置审计。5.软件工具与环境*了解CASE工具的概念和分类(需求分析工具、设计工具、编码工具、测试工具、项目管理工具等)。二、模拟题一、选择题(每题只有一个正确答案)1.下列哪项不是软件工程的基本原则?A.模块化B.快速原型C.信息隐藏D.低耦合高内聚2.在软件生命周期模型中,强调风险分析的模型是:A.瀑布模型B.螺旋模型C.增量模型D.原型模型3.软件测试的目的是:A.证明软件没有错误B.尽可能多地发现软件中的错误C.改正软件中的所有错误D.评估软件的质量4.以下哪项不属于需求分析阶段的主要任务?A.确定软件的功能需求和非功能需求B.生成需求规格说明书C.设计软件的模块结构D.建立需求分析模型5.在面向对象设计中,“开-闭原则”(Open-ClosedPrinciple)是指:A.软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。B.一个类应该只有一个引起它变化的原因。C.子类必须能够替换掉它们的父类。D.多个功能相关的类应该被统一封装在一个模块中。二、简答题1.简述瀑布模型的主要阶段及其优缺点。2.什么是软件需求?功能需求和非功能需求有何区别?请各举一个例子。3.软件测试为什么要分级别进行?简述单元测试和系统测试的主要关注点。4.什么是耦合?什么是内聚?在软件设计中,我们追求什么样的耦合和内聚?5.简述敏捷开发的核心思想和主要特点。三、分析与设计题1.场景分析:某高校图书馆计划开发一个新的图书管理系统,用于管理图书借阅、读者信息、图书采购等。初期用户需求不太明确,且希望能尽快看到系统的初步形态以进行反馈。请问,你会推荐采用哪种软件生命周期模型?并说明理由。2.用例图绘制:针对上述图书管理系统中的“图书借阅”功能,请识别出主要的参与者(Actor)和至少三个相关的用例(UseCase),并绘制出简化的用例图(文字描述参与者和用例名称及其关系即可,无需精确画图工具)。3.测试用例设计:假设有一个函数`intadd(inta,intb)`,其功能是返回两个整数a和b的和,且已知a和b的取值范围均为[-100,100]。请使用等价类划分法和边界值分析法,为该函数设计至少4个测试用例(包括输入值a、b和预期输出)。三、模拟题参考答案与解析一、选择题1.B(快速原型是一种开发方法或模型,不是基本原则)2.B(螺旋模型的核心是风险驱动)3.B(测试的目的是发现错误,而不是证明没有错误)4.C(设计软件模块结构是概要设计阶段的任务)5.A(开-闭原则的定义)二、简答题1.瀑布模型主要阶段:需求分析、可行性研究、概要设计、详细设计、编码、测试、运行与维护。优点:阶段划分清晰,各阶段任务明确;文档驱动,便于管理和控制。缺点:线性开发,前一阶段错误后移,后期修改成本高;需求一旦确定难以更改,不适应需求变化快的项目;用户直到开发后期才能看到产品原型。2.软件需求:是指用户对软件系统在功能、性能、行为、设计约束等方面的期望和要求。功能需求:描述软件必须完成的具体功能。例如:图书管理系统中“读者可以查询图书信息”。非功能需求:描述软件除功能以外的其他特性。例如:“系统应能支持100名用户同时在线操作”(性能需求),“系统数据应保证安全,防止未授权访问”(安全性需求)。3.分级别测试的原因:软件测试是一个渐进的过程,从模块到整体,从局部到全局。不同级别测试关注不同粒度和范围的问题,逐步集成和验证,有助于尽早发现和定位错误,降低测试成本,提高测试效率和软件质量。单元测试:关注软件中最小可测试单元(如函数、方法、类)的正确性,主要由开发人员完成,使用白盒测试方法为主。系统测试:将经过集成测试的软件作为一个整体,与系统中其他部分(如硬件、数据库、网络)结合起来,验证软件是否满足需求规格说明书中规定的整个系统的功能和非功能需求。4.耦合:指模块之间相互依赖的程度。内聚:指模块内部各元素之间联系的紧密程度。追求目标:在软件设计中,我们追求低耦合、高内聚。低耦合意味着模块间相互影响小,独立性强,便于修改和维护;高内聚意味着模块功能单一、完整,模块的可读性和可维护性好。5.敏捷开发核心思想:强调个体与交互胜过过程与工具,可用的软件胜过完备的文档,客户合作胜过合同谈判,响应变化胜过遵循计划。主要特点:迭代式、增量式开发;小团队协作;频繁交付可用版本;高度适应变化;强调面对面沟通;自组织团队;持续集成和测试。三、分析与设计题1.推荐模型:原型模型或敏捷开发模型(如Scrum)。理由:*需求不明确:原型模型可以快速构建一个可运行的原型,帮助用户和开发团队更好地理解需求,澄清模糊点。敏捷开发则通过短迭代和频繁反馈来逐步明确和调整需求。*尽快看到初步形态:原型模型能快速提供原型给用户反馈。敏捷开发则强调在每个短迭代(如2-4周)结束时交付一个潜在可发布的增量版本。*相比之下,如果未来需求变更可能较多,敏捷开发可能更为适合,因为它本身就拥抱变化。如果主要是为了探索和明确需求,原型模型(探索型或实验型)是直接有效的选择。2.图书借阅功能用例图元素:*参与者(Actor):读者、图书管理员。*用例(UseCase):1.借阅图书:读者请求借阅图书,图书管理员处理借阅流程。2.归还图书:读者归还已借图书,图书管理员处理归还流程。3.查询图书可用性:读者或图书管理员查询某本图书是否可借。4.(可选)续借图书:读者请求续借未到期图书,图书管理员处理续借。*关系:参与者“读者”和“图书管理员”与上述用例之间为“关联”关系。3.测试用例设计:*等价类划分:*有效等价类:a和b都在[-100,100]范围内。*无效等价类:a或b超出[-100,100]范围(但本题主要考察功能正确性,假设函数已处理输入范围检查,此处主要针对有效输入设计)。*边界值分析:边界值为-100,100。*测试用例示例:1.a=0,b=0→预期输出0(正常中间值)2.a=100,b=50→预期输出150(a取上边界)3.a=-100,b=-30→预期输出-130(a取下边界)4.a=99,b=100→预期输出199(b取上边界)5.a=5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论