《软件工程》期末复习题1
- 格式:doc
- 大小:591.00 KB
- 文档页数:11
《软件工程》期末复习题及答案1.运用所掌握的知识,通过抽象,给出该系统的结构,这就是A.系统建模B.软件开发C.问题求解D.验证确认3.结构化分析方法给出了一种能表达功能模型的工具是()。
A.HIP0图 B.PAD图 C.N-S图 D.DFD图7.在某大学学生学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是()。
A.可划分为2个有效等价类,2个无效等价类B.可划分为1个有效等价类,2个无效等价类C.可划分为2个有效等价类,1个无效等价类D.可划分为1个有效等价类,1个无效等价类10.是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;继承是指子类可以自动拥有父类的全部属性和服务;()是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。
A.继承B.多态C.消息D.封装11.分层DFD中父子平衡是指()。
A.父加工的数据流数目与子图中数据流数目相同B.父图应包含子图中的全部数据流C.子图应包含父图中的全部数据流D.父加工和子图的输入数据和输出数据应分别保持一致2.在建模过程中,可用以描述加工的工具是()。
A.数据流 B.判定树 C.数据字典 D.数据存储13.以下软件生存周期的活动中,要进行软件结构设计的是()。
A.测试用例设计 B.概要设计C.程序设计 D.详细设计16.CMMI 成熟度等级中的第四级为()。
A.已定义级B.已定量管理级C.持续优化级D.已重复17.以下选项中,最适合于用交互式计算机软件解决的问题是()。
A.非结构化决策问题B.半结构化决策问题C.结构化决策问题D.确定性问题18.系统测试是将软件系统与硬件、外设和网络等其他因素结合,对整个软件系统进行测试。
不是系统测试的内容()。
A.路径测试 B.可靠性测试 C.安装测试 D.安全测试19.项目管理工具中,将网络方法用于工作计划安排的评审和检查的是()。
软件工程期末试题(含答案)软件工程期末试题(含答案)1. 选择题(1) 在软件开发过程中,以下哪个活动是与需求分析相关的?A. 代码编写B. 测试C. 需求验证D. 项目规划答案:C(2) 在敏捷开发方法中,以下哪个原则强调“面对面交流”?A. 个体和交互高于工具和过程B. 客户合作高于合同谈判C. 可以交付的软件高于详尽的文档D. 响应变化高于遵循计划答案:A2. 简答题(1) 简述软件开发生命周期的阶段及每个阶段的主要任务。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护阶段。
需求分析阶段的主要任务是收集用户需求、进行需求分析和规格说明;设计阶段的主要任务是根据需求进行软件的整体架构设计、模块设计等;编码阶段的主要任务是根据设计文档进行程序代码的编写;测试阶段的主要任务是对软件进行功能、性能、兼容性等各方面的测试;维护阶段的主要任务是修复软件中的缺陷、升级功能等。
(2) 什么是软件需求?简述软件需求分析的过程。
答案:软件需求是对软件系统的功能、性能、接口、约束和设计约束条件的描述。
软件需求分析是指对软件需求进行识别、获取、明确和规格说明的过程。
其过程包括以下几个步骤:a. 需求获取:通过与用户交流、收集现有文档等方式,获取软件需求相关的信息;b. 需求分析:对获取的软件需求进行整理和分类,识别出需求之间的关联和依赖关系;c. 需求明确:明确每个需求的具体含义,确保需求描述准确清晰;d. 需求规格说明:将明确的需求进行形式化的规格说明,以便后续的设计和开发工作。
3. 论述题软件开发中的版本控制是一项重要的技术,它可以有效地管理和追踪软件代码的变化,并协同开发者之间的合作。
请简要讨论软件版本控制的几种常见方式及其优缺点。
答案:常见的软件版本控制方式包括本地版本控制、集中式版本控制和分布式版本控制。
每种方式都有其优缺点:a. 本地版本控制:通过在本地维护一份完整的代码仓库,实现对代码的版本控制。
《软件工程》期末总复习题(新版)(含作业及答案、复习重点、考核说明)一、选择题:(软件工程作业1 第1~4章)1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品3.瀑布模型存在的问题是(B)。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。
A.需求不确定性高的 B.需求确定的C.管理信息 D.实时6.下列有关软件工程的标准,属于国际标准的是(D )A.GBB.DINC.ISOD.IEEE7.结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是(D)A、分析开发系统的必要性B、确定系统建设的方案C、分析系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在(A)之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》14.效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性分析B、需求分析C、概要设计D、详细设计15.需求规格说明书的作用不包括(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义(D)中的各个成份的具体含义的。
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASEB.人工智能CASEC.结构的基于图形CASED.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率B.规模C.完整性D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象7.软件调试技术包括()A.边界值分析B.演绎法C.循环覆盖D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的()A.代码的规模B.运行速度C.质量D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么B.用户使用界面C.输入的信息D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程期末考试试题一、选择题(每题2分,共20分)1. 在软件开发过程中,哪个阶段是设计阶段的前一个阶段?A. 需求分析B. 测试C. 维护D. 实施2. 敏捷开发方法论中,哪个是其核心实践之一?A. 详细文档B. 持续集成C. 长期规划D. 严格的需求定义3. 在面向对象编程中,封装的主要目的是什么?A. 代码重用B. 隐藏实现细节C. 增加函数数量D. 提高执行速度4. 在软件测试中,单元测试主要关注什么?A. 系统的整体功能B. 单个模块的功能C. 系统的性能D. 系统的安全性5. 软件项目管理中,哪个工具用于帮助项目经理跟踪项目进度?A. 甘特图B. 流程图C. 思维导图D. 状态图二、简答题(每题10分,共30分)1. 解释什么是软件危机,并简述其产生的原因。
2. 描述软件开发生命周期(SDLC)的主要阶段。
3. 解释什么是软件架构,并简述其在软件开发中的作用。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的项目经理,你的团队正在开发一个电子商务网站。
请描述你将如何使用敏捷开发方法来管理这个项目,并列出至少三个关键的敏捷实践。
2. 给定一个场景:一个软件产品在发布后发现存在性能问题,用户报告响应时间缓慢。
作为软件工程师,你需要设计一个性能测试计划来诊断问题。
请列出你的测试计划的主要步骤,并解释你将如何使用这些步骤来识别和解决问题。
四、案例分析题(共30分)阅读以下案例,并回答相关问题:某软件公司开发了一个在线预订系统,但在用户使用过程中频繁出现系统崩溃的问题。
经过初步调查,开发团队怀疑是数据库连接问题。
请分析可能的原因,并提出解决方案。
请根据上述案例,回答以下问题:1. 系统崩溃可能与哪些数据库连接问题有关?2. 如何设计测试来验证这些假设?3. 如果测试结果证实了问题,你将如何优化数据库连接以提高系统稳定性?。
软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是(C )A模块高内聚B模块低耦合C模块独立性D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?(D )A产生危机B质量保证C开发效率D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标B软件的性能C软件的功能D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A。
功能需求B。
非功能需求 C.性能需求 D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D)A。
需求分析 B.软件设计C。
程序编码 D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A。
原型化方法B。
结构化方法 C.面向对象方法. D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.(A )A。
软件模型 B.软件功能 C.软件结构 D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A。
软件开发方法 B.软件开发工具 C.软件工程环境D。
软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的( B )A。
可理解性 B.可维护性C。
可扩展性 D.可靠性10、从( C)语言开始,软件摆脱了对硬件的依赖。
A。
第一代B。
第二代C。
第三代D。
第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分?(B )A。
实体 B.数据存储C。
关系D属性12、在下面的概念模式中,哪种描述的不是动态数据结构或属性?( C )A。
框图 B.结构图C。
实体关系图D。
软件工程-期末考试题(含答案)软件工程-期末考试题(含答案)1. 题目一:软件需求工程软件需求工程是软件开发的重要环节之一,主要包括需求获取、需求分析、需求规格、需求验证等阶段。
在软件开发的整个过程中,需求工程的目标是确保开发出的软件能够满足用户的需求,同时保证软件的质量和可靠性。
1.1 需求获取需求获取是软件需求工程的第一步,它涉及到对用户的需求进行调研和收集。
需求获取的方法可以包括面谈、问卷调查、观察等。
通过与用户的沟通和了解,开发团队可以获取到用户对软件的期望和需求,为后面的分析和规格阶段提供依据。
1.2 需求分析需求分析是对收集到的需求进行认真分析和理解的过程。
在这个阶段,开发团队将准确定义软件所需具备的功能、性能和约束。
通过对需求的分析,可以帮助开发团队更好地理解用户的需求,并将其转化为可执行的任务。
1.3 需求规格需求规格是将需求分析的结果进行详细描述和规范化的过程。
在这个阶段,开发团队需要将需求规格书写成可读、可理解的形式,以便于开发人员进行后续的开发工作。
需求规格书通常包括用例图、类图、时序图等各种工具和技术。
1.4 需求验证需求验证是对需求的正确性和完整性进行验证的过程。
在这个阶段,开发团队需要与用户进行确认,确保所开发的软件能够满足用户的期望和需求。
需求验证也可通过模拟测试、原型验证等方式进行。
2. 题目二:软件设计原则软件设计原则是开发人员编写高质量软件的指导原则,旨在提高软件的可维护性、可扩展性和可重用性。
下面介绍几个常用的软件设计原则。
2.1 单一职责原则单一职责原则(SRP)要求每个类或模块只负责一种功能或职责。
这样可以保持代码的简洁性和可读性,并使得类或模块更加易于维护和扩展。
2.2 开放封闭原则开放封闭原则(OCP)要求软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。
这样可以使得软件设计能够适应需求的变化,而不需要修改原有的代码。
2.3 里氏替换原则里氏替换原则(LSP)要求子类必须能够替换父类,并且不影响程序的正确性。
软件工程基础期末试题及答案一、选择题 (每题2分,共20分)1. 软件工程的主要目标是( )。
A. 提高软件的质量B. 降低软件的开发成本C. 提高软件的开发效率D. 以上都对答案:D2. 下列哪个不是软件工程的基本活动?A. 软件规格B. 软件设计和实现C. 软件验证D. 软件评估答案:D3. 下列哪个不是软件工程的关键过程?A. 需求分析B. 软件设计C. 软件测试D. 代码审查答案:D4. 下列哪个不是软件工程的核心思想?A. 规范性B. 可维护性C. 可靠性D. 高效性答案:D5. 在软件开发过程中,需求分析的目的是( )。
A. 确定软件的功能和性能要求B. 确定软件的架构和设计C. 确定软件的开发方法和工具D. 确定软件的测试策略答案:A6. 下列哪个不是需求分析的主要任务?A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的开发需求答案:D7. 下列哪个不是软件设计的主要任务?A. 确定软件的架构B. 确定软件的模块划分C. 确定软件的数据结构D. 确定软件的开发计划答案:D8. 下列哪个不是软件设计的重要考虑因素?A. 软件的可扩展性B. 软件的可维护性C. 软件的可靠性D. 软件的性能答案:D9. 下列哪个不是软件测试的主要目的?A. 发现和修复软件缺陷B. 验证软件的功能和性能是否符合需求C. 评估软件的质量和可靠性D. 提高软件的开发效率答案:D10. 下列哪个不是软件测试的主要方法?A. 黑盒测试B. 白盒测试C. 静态测试D. 代码审查答案:D二、填空题 (每题2分,共20分)1. 软件工程是一种应用系统工程的方法和工具,以规范化的、可量化的和可控制的方式开发和维护软件的工程学科,其基本目标是以$$______$$的方式开发和维护软件,以提高软件的质量、降低软件的开发成本和提高软件的开发效率。
答案:工程化2. 软件工程的核心思想可以概括为规范化、$$______$$、可维护性和可靠性,其中规范化是软件工程的基础,可维护性是软件工程的重要目标,可扩展性是软件工程的关键。
软件工程期末考试试卷附答案一. 选择题(每题4分,共30题,总分120分)1. 软件工程的目标是什么?A. 提高软件开发效率和质量B. 实现软件系统的功能需求C. 加快软件产品的上市时间D. 增加软件系统的用户体验答案:A2. 软件生命周期模型有哪些?A. 瀑布模型B. 原型模型C. 敏捷开发模型D. 螺旋模型答案:A、B、C、D3. 在软件工程中,需求工程的任务是什么?A. 收集用户需求B. 分析用户需求C. 规划需求开发过程D. 验证和确认需求答案:A、B、C、D4. 软件配置管理是指什么?A. 管理软件的需求变更B. 管理软件的源代码C. 管理软件的版本迭代D. 管理软件的错误修复答案:B、C、D5. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 提高软件的可靠性和质量D. 减少软件开发时间和成本答案:A、B、C6. 软件维护是指什么?A. 修复发现的软件错误B. 优化软件的性能和效率C. 更新软件的功能和特性D. 软件系统的日常管理和支持答案:A、B、C、D7. 软件风险管理包括哪些活动?A. 风险识别和评估B. 风险规避和转移C. 风险监控和控制D. 风险应对和应急处理答案:A、B、C、D8. 软件工程的核心原则是什么?A. 解释性和可行性原则B. 详细性和可测性原则C. 可维护性和可扩展性原则D. 可重复性和可验证性原则答案:B、C、D9. UML(统一建模语言)是用来做什么的?A. 描绘软件系统的静态结构B. 描述软件系统的行为和交互C. 绘制软件系统的数据流程D. 显示软件系统的部署结构答案:A、B、C、D10. 软件工程中的项目管理包括哪些主要过程?A. 项目计划和进度管理B. 项目风险和质量管理C. 项目需求和配置管理D. 项目团队和沟通管理答案:A、B、C、D11. 软件度量是用来做什么的?A. 评估软件产品的质量B. 监控软件开发的进展C. 改进和优化软件工艺D. 比较不同软件的性能答案:A、B、C、D12. 软件工程的伦理问题包括什么?A. 知识产权和版权问题B. 用户隐私和数据保护C. 软件安全和漏洞利用D. 职业道德和责任意识答案:A、B、C、D13. 什么是软件工程的标准?A. 是评估软件工程管理的指标B. 是规定软件开发流程的指南C. 是实现软件质量保证的方法D. 是确保软件安全性的基准答案:B、C14. 软件工程中的团队协作有哪些挑战?A. 沟通和协调不畅B. 人员技能和素质不匹配C. 资源和时间的约束D. 对项目目标和需求理解不一致答案:A、B、C、D15. 关于软件工程的学科范畴,下列说法正确的是:A. 软件工程包括软件开发过程的实施和管理B. 软件工程仅关注软件开发阶段C. 软件工程只涉及编程和代码实现D. 软件工程不包括对用户需求的研究答案:A二. 简答题(每题10分,共5题,总分50分)1. 什么是软件工程?软件工程的基本原理和方法有哪些?答案:软件工程是将工程学原理和方法应用于软件开发的学科,旨在提高软件开发的效率和质量。
软件工程期末考试试卷附答案一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是( )。
A. 处理对象和处理规则的描述B. 程序C. 程序及其文档D. 计算机系统( B )2. 软件需求规格说明的内容不应包括( )。
A. 主要功能B. 算法的详细描述C. 用户界面及运行环境D. 软件的性能( B )3. 程序的三种基本控制结构是( )。
A. 过程、子程序和分程序B. 顺序、选择和重复C. 递归、迭代和回溯D. 调用、返回和转移( D ) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、操作( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善性维护 B) 纠错性维护 C) 适应性维护 D) 预防性维护( B ) 7.软件测试的目标是( )。
A. 证明软件是正确的B. 发现错误、降低错误带来的风险C. 排除软件中所有的错误D. 与软件调试相同( D )8.软件生命周期中所花费用最多的阶段是( )A.详细设计B.软件编码C.软件测试D.软件维护( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( )A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法( D )10、详细设计的基本任务是确定每个模块的( )设计A.功能B.调用关系C.输入输出数据D.算法( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
考试时间: 16周周一5,6节考试地点: 二教419 406 408考试题型:选择题:20分简答题:30分应用题:50分各章内容及题型总结:第1,2章本章的主要题型是选择题和简答题。
1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。
2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。
IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。
软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。
软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。
4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。
5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。
通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。
6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。
它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。
7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。
模型的选择是基于软件的特点和应用领域。
8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。
9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。
10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。
第3章本章的题型主要是选择题。
1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。
3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。
首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。
推荐一个较好的解决方案和一个初步的计划。
第4,5章本章的题型有选择题。
2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。
需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。
3. 软件需求可分解为四个层次:业务需求、用户需求、功能需求和非功能需求。
4. 数据流程图是描绘系统逻辑模型的图形工具,只描绘信息在系统中的流动和处理情况,不反映系统中的物理部件,数据流程图使用四个标准符号。
5. 数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。
数据字典中所有的定义必须是严密的、精确的、无二义性的。
6. 结构化分析的步骤:根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系用E-R图描述。
以初始数据流程图为基础进行回溯,完善初始的数据流程图。
对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。
以数据流程图为核心,辅以数据字典和处理说明,将整个软件的功能要求、数据要求和运行要求和扩展要求逐一确认。
画出软件功能结构图。
修正开发计划。
编写需求规格说明书和初始的用户手册。
7. 需求规格说明书的主要内容:软件功能说明,软件性能要求、设计限制、外部接口要求。
第6章包括选择题和应用题。
1. 软件设计的主要原则:模块独立性和信息隐藏。
2. 反映模块独立性有两个标准:内聚和耦合。
内聚衡量一个模块内部各个元素彼此结合的紧密程度,耦合衡量模块之间彼此依赖的程度。
3. 信息隐藏的核心内容是:一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。
4. 结构化设计是基于模块化的、自顶向下、逐步求精等概念上的设计方法。
5. 结构化设计方法的步骤:首先分析数据流的类型,将数据流程图映射为程序结构图,用“因子分解”方法定义软件的层次结构,优化设计结构。
6.应用题:画判定表第7章本章主要是选择题。
1结构化方法存在的主要问题:①分析阶段的主要模型是数据流模型,设计阶段的主要模型是软件模块结构,数据流程图和软件模块结构图之间需要进行转换,转换有一定的随意性。
②功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。
③结构化设计将数据定义与处理数据的过程相分离,不利于软件复用。
2. 什么是类?答:类是具有相同属性和相同行为的对象集合。
对象是类的一个实例。
对象之间通过发送消息相互通信。
3. 类封装了属性和方法,封装隐藏了对象内部的处理细节。
通过继承,子类拥有父类的所有属性和方法,并可以在继承父类的基础上进行扩展,添加新属性和方法;也可以改写父类的方法。
通过多态技术使同一操作作用于不同类的实例时,产生不同的执行结果。
4. UML是一种标准的图形化建模语言,它是面向对象分析与设计方法的表现手段。
其本质表现是:它是一种可视化的建模语言,不是可视化的程序设计语言,不是工具或知识库的规格说明,不是过程,也不是方法,但允许任何一种过程和方法使用它。
5. UML提供了5种视图(用例视图、逻辑视图、组件视图、并发视图和配置视图)6. UML有9种图(用例图、类图、对象图、状态图、顺序图、合作图、活动图、组件图、配置图)可以描述任何复杂的系统。
第8章本章包括选择题和应用题。
1. 向对象分析和设计用到的三个内容:一套完善的建模符号、一系列有效的分析步骤和一个方便易用的建模工具。
2. 面向对象的分析模型由功能模型、对象模型和动态模型三部分组成。
3. 功能模型由用例图和顺序图表示,对象模型由类图和对象图表示,动态模型由活动图、状态图和顺序图表示。
4. 在分析对象模型中,分析类是概念层次上的内容,分为实体类、边界类和控制类三种类型。
5. 应用题:给出一段需求描述,要求画出用例图和类图。
第9章本章主要是选择题。
1. 面向对象设计的内聚有:服务内聚和类内聚。
耦合有两类:交互耦合和继承耦合。
2. 面向对象的设计活动主要有:系统构架设计、用例设计、类设计、数据库设计和用户界面设计。
3. 构架设计是以分析模型为输入,生成系统的物理构架、逻辑构架(子系统)及其接口、概要的设计类。
根据分析阶段产生的高层类图和交互图,细化每个用例的类图,描述实现用例的类及其类之间的相互关系。
详细设计每个类的属性、方法和关系。
第11章本章主要是选择题。
1. 选择程序设计语言考虑的因素:编程人员的水平和编程经历,待开发软件的类型,算法和计算复杂性,数据结构的复杂性,软件的开发成本和时间要求,软件的可移植性要求,可用的软件工具。
2. 程序设计的风格主要考虑:基本风格、可读性、正确性和容错性、可重用和可移植性、输入和输出风格。
3. 代码检查是一种有效的代码错误检测技术,通过阅读代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。
第13章本章包括选择题、简答题和应用题。
1. 软件测试的定义:是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
2. 单元测试集中于每一个独立的模块;集成测试集中于模块的组装;系统测试确保整个系统与系统的功能需求和非功能需求保持一致;验收测试是用户根据验收标准,在开发环境或模拟真实环境中执行的可用性、功能和性能测试。
3. 软件测试技术大体上可以分成白盒测试和黑盒测试。
白盒测试技术依据的是程序的逻辑结构,主要包括逻辑覆盖方法;黑盒测试技术依据的是软件行为的描述,主要包括等价类划分、边界值分析测试等方法。
4. 应用题:给出一段程序代码,要求做白盒测试用例的设计。
《软件工程》复习题一、选择题1.下列(C )是可行性研究的任务。
A 系统必须做什么B 自顶向下逐步求精C用最小的代价在尽可能短的时间内确定问题是否能够解决,是否有必要去解决D 以什么观点来研究问题并进行分析求解2.需求分析阶段的关键任务是确定(D )A、软件开发方法B、软件开发工具C、软件开发费D、软件系统的功能3.从( C )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代4.在软件结构化设计中,好的软件结构设计应该力求做到( B )A.顶层扇出较少,中间扇出较高,底层模块低扇入B.顶层扇出较高,中间扇出较少,底层模块高扇入C顶层扇入较少,中间扇出较高,底层模块高扇入D.顶层扇入较少,中间扇入较高,底层模块低扇入5.需求分析的主要任务是( A )A.确定软件系统的主要功能,即进行系统功能分析,提出软件系统的目标、范围与功能说明B.分析用户要求,将软件功能和性能描述为具体的规格说明书C.对问题定义阶段所确定的问题实现的可能性和必要性做出研究D.建立软件系统的总体结构,子系统划分,并提出软件结构图6.软件结构中,由一模块直接控制的其他模块数称为( D )A.深度B.宽度C.扇入数D.扇出数7.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A.程序的内部逻辑 B.程序的复杂结构C.使用说明书 D.程序的功能8.软件开发时,一个错误发现得越晚,为改正它所付出的代价就( A )。
A.越大 B.越小C.越不可捉摸 D.越接近平均水平9.模块的内聚是从功能的角度来度量模块内的联系,内聚度最强的是( B )A.通信内聚B.功能内聚C.顺序内聚D.逻辑内容10.提高测试的有效性非常重要,成功的测试是指( D )。
A.证明了被测程序正确无误 B.说明了被测程序符合相应的要求C.未发现被测程序的错误 D.发现了至今为止尚发现的错误11.面向数据流的软件设计方法,一般是把数据流图中的数据流划分为( B )两种A.数据流与事务流B.变换流与事务流C.信息流与控制流D.变换流与数据流12.模块本身的内聚是模块独立性的重要度量因素之一。