1-3 软件工程基础
大学一年级软件工程课教案软件工程基础与软件开发方法论
大学一年级软件工程课教案软件工程基础与软件开发方法论【大学一年级软件工程课教案】【软件工程基础与软件开发方法论】一、引言在当今信息时代,软件工程作为一门重要的学科,对于培养学生的创新能力和解决实际问题的能力具有重要意义。
本教案旨在帮助大学一年级软件工程课的学生全面了解软件工程基础与软件开发方法论的相关概念、原理和方法。
二、课程目标1. 理解软件工程的基本概念和发展历程;2. 掌握软件需求分析和规格说明的方法和技巧;3. 学习软件设计与架构的原则和实践;4. 熟悉软件测试和质量保证的方法和要点;5. 了解软件项目管理和团队合作的基本知识。
三、教学内容本课程将围绕以下几个主要内容进行教学:3.1 软件工程概述3.1.1 软件工程的定义及重要性3.1.2 软件工程的发展历程3.1.3 软件工程的相关概念和术语3.2 软件需求工程3.2.1 需求获取与分析的方法3.2.2 需求规格说明的技巧和规范要求3.2.3 需求验证和确认的方法3.3 软件设计与架构3.3.1 软件设计基本原则3.3.2 软件设计模式的应用3.3.3 软件架构的概念和分类3.4 软件测试与质量保证3.4.1 软件测试的基本方法和策略3.4.2 测试用例设计和执行技巧3.4.3 质量保证与缺陷管理3.5 软件项目管理与团队合作3.5.1 软件项目管理的基本知识和流程3.5.2 团队协作与沟通技巧3.5.3 敏捷开发方法与实践四、教学方法4.1 授课法本课程将采用讲授理论知识的方式,重点讲解软件工程的基本概念、原理和方法。
教师将通过案例分析、实例讲解等方式,帮助学生更好地理解和应用所学的知识。
4.2 实践法在理论教学的基础上,通过编程实践、软件开发项目等实际操作,让学生亲自参与软件工程的各个环节,提升其实际操作能力和团队合作意识。
4.3 讨论与互动教师将鼓励学生在课堂上积极参与讨论,提出问题,并与其他同学进行互动。
通过案例分析和小组讨论,激发学生的思维能力和创新意识。
软件工程的3要素
软件工程的3要素软件工程是一门兼具科学和艺术特征的学科,它以系统化的、规范化的方法进行软件开发、维护和管理。
在软件工程的实践中,有三个重要的要素,它们是:过程、方法和工具。
1. 过程软件开发过程是软件工程的核心,它是指通过一系列的活动和任务来规划、设计、开发、测试和维护软件。
合理的软件开发过程能够提高开发效率、确保软件质量,并使开发过程可复用和可持续。
软件开发过程可以遵循不同的模型,如瀑布模型、迭代模型、敏捷模型等,但无论采用何种模型,都需要包括项目规划、需求分析、系统设计、编码、测试、交付等基本步骤。
2. 方法软件开发方法是指在软件开发过程中采取的一系列技术和工具的组合,用于解决问题、实现需求。
它旨在提高软件的可重用性、可维护性和可扩展性。
常见的软件开发方法包括结构化方法、面向对象方法、敏捷开发方法等。
结构化方法强调自顶向下的模块化设计和系统分析,面向对象方法则侧重于将问题分解为对象,通过封装、继承和多态性来构建系统。
敏捷开发方法则强调快速迭代、持续集成和协作开发,适应快速变化的需求。
3. 工具软件工程依赖于各种工具来支持软件开发过程和方法的实施。
这些工具可以包括需求管理工具、设计工具、编码工具、测试工具等。
需求管理工具用于收集、跟踪和管理需求,设计工具用于辅助系统设计和建模,编码工具则提供了编写、调试和版本控制等功能,测试工具用于自动化测试和测试覆盖率分析。
通过合理使用这些工具,可以提高开发效率、降低成本和提升软件质量。
结语软件工程的3要素——过程、方法和工具,共同构成了软件开发的基础。
合理设计和实施软件开发过程,选择适合的开发方法,并灵活运用各种工具,是提高软件工程效果的关键。
随着技术的不断发展,软件工程的新方法、新技术和新工具将不断涌现,为软件工程师提供更多的选择和可能性。
通过不断的学习与实践,我们可以不断提升软件开发能力,为社会创造更优秀的软件产品。
第3章 软件工程基础(习题答案).doc
第3章习题答案3」什么是软件危机?为什么会岀现软件危机?解答:软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过稈屮出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。
(2)软件的正确性和可靠性难以保证。
(3)文档不全,导致软件维护难度加大。
总Z,可将软件危机归结为:成木、质量和生产率等问题。
到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作功”式的方法已经无法适应软件的开发。
软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。
3.2软件T程的概念是什么?软件T程的忖标和原则是什么?解答:软件工程是指导计算机软件开发和维护的一门学科。
软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。
软件工程的日标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
软件工稈的原则,在软件开发各阶段,应遵循一些基木原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.3什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么?解答:软件从提出、开发、使用到退役的整个过稈称为软件生命周期,软件生命周期可划分为3个时期,共8个阶段,毎个阶段应完成的基本任务和产生的文档如下表所示。
时期阶段任务文档定义期(计划期)问题的定义理解用户要求,明确工作目标计划任务书可行性研究可行性方案分析需求分析软件系统的目标及应完成的任务需求规格说明书开发期概要设计(总体设计)(系统设计)系统逻辑设让,明确软件模块结构,及各模块间的调用关系软件概要设计说明书数据库/数据结构设计说明书集成测试计划详细设计系统的模块设计,对各模块进行功能说明,实现细节描述软件详细设计说明书编码编写程序代码程序、数据、详细注释测试和调试单元测试、集成测试测试大纲、方案,测试用例,测试结果维护期使用和维护运行和维护运行、修改记录3.4什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段?解答:结构化开发方法是现有软件开发方法屮最成熟、应用最广泛的方法。
软件工程基础习题
软件⼯程基础习题习题11. 简述计算机系统的开发流程。
2. 系统分析和定义是计算机系统开发过程中的关键步骤,这⼀步应该做哪些⼯作?3. 系统规格说明书主要应包含哪些内容?为什么要进⾏系统复审?4. 如何理解软件概念?简述软件有哪些分类⽅法?5. 软件的发展经历了哪⼏个阶段?简述各阶段名称及特点。
6. 查阅⽂献写⼀篇1000字的短⽂,综述软件⼯程的发展。
7. 什么是软件危机?主要有哪些表现?8. 查阅最新⽂献写⼀篇2000字的短⽂,综述软件危机在当今的表现以及造成的危害。
9. 什么是软件的⽣命周期?10. 软件⽣存期模型主要有哪些?给出名称及特点。
习题21. 软件计划的任务主要有哪些?2. 在软件计划阶段应该考虑哪三类资源?对软件开发中的每⼀类资源可以⽤哪些特征来描述?什么是时间窗⼝?可再⽤软件资源主要有⼏种?给出名称及简单解释。
3. 软件⽣命周期中各阶段⼈⼒资源如何安排才合理?4. 简述代码⾏技术的基本思想。
5. 指出下列公式中每个量的含义。
∑=-±=ni d a b L 12)6(6. 什么是40-20-40规则?7. 当采⽤敏捷开发过程时,如何进⾏项⽬估算? 8. 如何对Web ⼯程项⽬进⾏估算? 9. 简述任务分解技术的基本思想。
10. Halstead 理论模型的主要依据有哪些?给出⽤Halstead 理论模型估算成本的公式以及公式的推导过程,说出各个量的取值依据。
11. 估计某PASCAL 程序中n1=70,n2=60,N1=14300,N2=400,取S=12,W=20000,估算开发该软件的总成本。
12. 估计⼀个C 语⾔程序系统⼤约⼀万⾏,W 取30000元,估算开发该系统的成本。
13. 开发⼀个Organic 类型的软件,经分析有45000⾏源代码,试⽤基本COCOMO 模型估算所需⼯作量、⽣产率、开发时间及投⼊该项⽬的最佳⼈员数。
14. 利⽤题13得出的⼯作量E ,根据Esterling 模型估算当团队⼈数n 为8时的软件成本,若n 为12时,成本⼜当如何?15. ⽤2年的时间开发⼀个应⽤软件系统,估计代码⾏数为5万⾏,Ck 取10000,试计算所需⼯作量。
软件工程3要素
软件工程3要素
软件工程的三个要素是:需求分析、设计和编码、测试与维护。
1. 需求分析:需求分析是软件工程的第一步,它涉及到了对用户需求的分析和理解。
在这个阶段,软件工程师与用户或客户进行交流,确定软件需要实现的功能和目标,并将这些需求转化为明确的、可执行的规范。
需求分析的目标是确定软件的功能和性能需求,为后续的设计和编码提供基础。
2. 设计和编码:设计和编码是软件工程的核心环节,它涉及到了如何将需求转化为具体的软件系统。
在设计阶段,软件工程师使用各种设计方法和工具来定义软件的结构、组织和行为,并确定合适的算法和数据结构。
在编码阶段,软件工程师将设计好的系统转化为计算机可执行的代码,使用编程语言来实现软件功能。
设计和编码的目标是按照需求规范,开发高质量、可维护、可扩展的软件系统。
3. 测试与维护:测试与维护是软件工程的最后一个阶段,它涉及到对已开发的软件系统进行测试和修复错误,以确保其质量和可靠性。
在测试阶段,软件工程师使用各种测试方法和工具对软件系统进行验收测试、功能测试、性能测试等,并修复测试中发现的问题。
在维护阶段,软件工程师监听用户的反馈和需求变化,对软件系统进行更新和修复,确保软件系统一直处于可运行和可用的状态。
测试与维护的目标是确保软件系统满足用户需求,并能持续运行和发展。
软件工程理论知识
软件工程第一部分传统软件开发方法1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件危机有哪些主要表现?⑴ 软件开发成本和进度的估计很不准确。
⑵ 用户对开发的软件系统常常不满意。
⑶ 软件产品的质量往往靠不住。
⑷ 软件没有适当的文档资料,软件不可维护。
⑸软件开发成本逐年上升,软件开发生产率跟不上计算机应用。
3、软件危机包含下述两方面的问题:①如何开发软件,以满足对软件日益增长的需求;②如何维护数量不断膨胀的已有软件。
4、软件生命周期一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为软件生命周期。
5、消除软件危机的途径(1)彻底消除“软件就是程序”的错误观念。
(2)必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
6、软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开发出高质量的软件并有效地进行维护,这就是软件工程。
7、软件工程目标和内容是什么?软件工程的目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程的内容:研究内容包括开发技术和开发管理两个方面。
开发技术主要研究:软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:软件管理学,软件经济学,软件心理学。
8、软件工程具有下述本质特性⑴软件工程关注于大型程序的构造⑵软件工程的中心课题是控制复杂性⑶软件经常变化⑷开发软件的效率非常重要⑸和谐地合作是开发软件的关键⑹软件必须有效地支持它的用户⑺软件工程师的领域知识影响其创造产品9、软件工程的7条基本原理(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性10、面向对象方法学具有下述4个要点。
软件工程生的学习计划
软件工程生的学习计划一、学习目标1. 熟练掌握常用的编程语言,包括Java、C++、Python等,能够进行独立的软件开发和设计。
2. 深入了解软件工程的理论和方法,掌握软件项目管理和软件质量保障的相关知识。
3. 提高自己的团队合作能力和沟通技巧,能够有效地与团队成员合作完成软件开发项目。
4. 学习并掌握软件测试、软件架构设计等方面的知识,提高自己的技术水平和工作能力。
二、学习计划1. 学习编程语言- 深入学习Java语言,包括面向对象编程、多线程编程、数据库操作等方面的知识。
- 学习C++语言,包括面向对象编程、STL等方面的知识。
- 学习Python语言,包括数据分析、人工智能等方面的知识。
2. 学习软件工程基础知识- 学习软件工程的基本概念和原理,包括软件生命周期、软件需求工程、软件设计等方面的知识。
- 学习软件项目管理的理论和方法,包括项目规划、需求分析、设计开发、测试交付等方面的知识。
3. 学习软件测试和质量保障- 学习软件测试的方法和工具,包括功能测试、性能测试、安全测试等方面的知识。
- 学习软件质量保障的理论和方法,包括代码审查、自动化测试、持续集成等方面的知识。
4. 学习软件架构设计- 学习软件架构设计的原则和方法,包括模块化设计、分层设计、微服务架构等方面的知识。
- 学习常用的软件架构模式和框架,包括MVC、MVVM、Spring等方面的知识。
5. 提高团队合作能力和沟通技巧- 参加团队项目实践,提高团队合作能力和项目管理技能。
- 加强沟通技巧的训练,包括书面沟通和口头表达等方面的能力。
三、学习方法1. 多练习编程- 多参加编程比赛和项目实践,不断提高编程能力和项目经验。
- 阅读经典的编程书籍,了解编程语言和算法的基本原理。
2. 多阅读相关书籍和文献- 阅读软件工程和计算机科学的经典著作和论文,了解软件工程的基本概念和发展方向。
- 关注软件工程领域的最新动态和研究成果,保持自己的学习状态和思考能力。
软件工程的三要素和四个原则(一)2024
软件工程的三要素和四个原则(一)引言概述:软件工程是一门关注软件开发过程的学科,通过应用工程原理、方法和技术来实现高质量的软件产品。
为了确保软件工程的有效实施,有三个重要的要素和四个原则需要被遵循。
本文将详细介绍软件工程的三要素和四个原则。
正文内容:一、软件工程的三要素1. 需求:需求是软件开发过程中的基础。
开发团队需要与客户充分沟通,明确和理解项目需求。
具体的需求分析包括功能需求和非功能需求的考虑。
2. 设计:软件设计是软件工程中的关键步骤。
设计阶段应该考虑软件的结构、模块化、接口设计等,以实现高效的系统架构。
3. 编码:编码是将设计转化为可执行代码的过程。
在编码阶段,需要遵循统一的编程规范,并进行代码审查,以确保代码的质量和可维护性。
二、软件工程的四个原则1. 模块化原则:将软件系统分割为若干相互独立、可独立开发和维护的模块。
模块化有助于提高代码的可复用性和可维护性。
2. 统一接口原则:定义统一的接口规范,以确保不同模块之间的协作和交互。
良好的接口设计能够提高软件系统的可扩展性和适应性。
3. 逐步精化原则:软件开发应该采用逐步精化的方式进行,即先完成基本功能,再进行功能的增强和优化。
4. 风险管理原则:软件项目中存在各种风险,包括技术风险、进度风险和人力资源风险等。
进行有效的风险管理能够帮助项目顺利进行并降低风险。
总结:软件工程的三要素和四个原则对于软件项目的成功实施起着重要的作用。
通过明确需求、合理设计和高质量编码,可以确保软件产品满足用户需求。
同时,通过模块化、定义统一接口、逐步精化和风险管理原则,可以提高软件系统的质量、可维护性和可扩展性。
软件工程的实践需要不断总结和完善,以适应不断变化的软件开发环境。
湖南省软件技术专业技能抽查考试标准
湖南省高等职业院校软件技术专业学生技能抽查考试标准目录前言 (1)一、目标 (2)二、考试对象 (2)三、考试方式 (2)四、岗位技能要求 (2)1. 程序员岗位技能要求一览表 (2)2. 测试员岗位技能要求一览表 (4)3. 配置管理员岗位技能要求一览表 (6)4. 软件实施员岗位技能要求一览表 (8)五、题库 (9)1. 命题原则 (9)2. 命题范围与要求 (10)3. 考题结构 (10)六、考试环境要求 (10)1.基本要求 (11)2. 各岗位附加要求 (11)七、考试组织实施 (12)前言本标准以检验学生的职业技能和职业素质、促进专业教学质量提高、引导并推动教育教学改革为目标,依据人力资源和社会保障部、工业和信息化部、IEEE等国际、国内相关标准、法规制订。
本标准的制订由湖南省教育厅提出,湖南科技职业学院联合9所高职院校、3家企业共同完成。
联合院校:长沙民政职业技术学院、湖南工业职业技术学院、湖南信息职业技术学院、湖南大众传媒职业技术学院、长沙航空职业技术学院、湖南工程职业技术学院、株洲职业技术学院、湖南铁路科技职业技术学院、湖南交通职业技术学院。
联合企业:拓维信息系统股份有限公司、湖南创智软件科技有限公司、湖南力唯中天科技发展有限公司。
高等职业院校软件技术专业主要面向IT类企业培养软件设计开发、软件测试、软件开发配置管理、软件实施的高素质技能型人才。
为检验学生的职业技能和职业素质、促进专业教学质量提高、引导并推动教育教学改革,特制定本标准。
一、目标1.检验并促进学生的职业技能和职业素质的提高通过技能抽查考试,检验软件技术专业学生的职业技能和职业素质,促进学生主动学习,提高学习积极性,鼓励学生了解社会行业业务,并通过试题的结构化及流程设计的演进,培养学生的发散性、开放性及创新性的思维方式。
2.促进专业教学质量的提高通过技能抽查考试,为评估高等职业院校软件技术专业技能教学水平提供依据,促进专业教学质量的提高。
软件工程导论参考文献
软件工程导论参考文献软件工程导论参考文献如下:一、软件工程基础理论1. 《软件工程导论》,张海藩,清华大学出版社,2013年。
2. 《软件工程基础》,李明,机械工业出版社,2015年。
3. 《软件工程:实践者的研究方法》,美国著,周苏译,机械工业出版社,2015年。
二、软件工程方法论1. 《敏捷软件开发:原则、模式与实践》,美国著,马丁著,清华大学出版社,2016年。
2. 《结构化软件工程:高级系统设计的分析方法和技术》,董黎芳、何丹、刘启华著,人民邮电出版社,2016年。
3. 《面向对象程序设计思想与对象分析》,胡小平、金坚如著,高等教育出版社,2015年。
三、软件工程实践经验1. 《软件开发案例研究与实践》,刘铁锰、刘秀梅著,人民邮电出版社,2016年。
2. 《软件工程实践案例教程》,杨秋辉、马梦启、曾翔等编著,电子工业出版社,2017年。
3. 《企业级软件开发实践指南》,王晓华、张岩著,清华大学出版社,2018年。
四、软件工程标准与规范1. 《软件工程国家标准指南》,杨春生等编著,中国标准出版社,2015年。
2. 《ISO 9001质量管理体系要求解读与应用指南》,王建平、张强编著,中国标准出版社,2016年。
3. 《软件工程规范与标准》,李明、张海藩编著,清华大学出版社,2017年。
五、软件工程领域专论1. 《数据库系统概论》,王珊、萨师煊著,高等教育出版社,2014年。
2. 《计算机网络技术与应用》,吴功宜编著,清华大学出版社,2016年。
3. 《人工智能导论》,王万良编著,高等教育出版社,2017年。
六、相关技术文献1. 《计算机科学导论》,张玉清等编著,清华大学出版社,2016年。
2. 《C语言程序设计》,李宁著,清华大学出版社,2018年。
3. 《Python语言程序设计教程》,马景涛著,人民邮电出版社,2018年。
七、其他相关文献1. 《现代软件开发项目管理知识体系与实践指南》,钟文丽等编著,中国电力出版社,2018年。
软件工程导论(第六版)部分课后习题答案
1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化型和面向对象型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学( 2种):1. 传统方法学:也称为生命周期方法学或结构化型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规的方法; 2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点: 1.在软件开发初期,指明用户全部需求是困难的; 2.需求确定后,经过一段时间才得到软件最初版本; 3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
软件工程基础(复习题及答案)
复习题一、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(对)2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(错)语言编译器是一个CASE工具。
(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
(错)5.软件模块之间的耦合性越弱越好。
(对)6.数据库设计说明书是一个软件配置项(对)7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(错)8.过程描述语言可以用于描述软件的系统结构。
(错)9.如果通过软件测试没有发现错误,则说明软件是正确的。
(错)10.快速原型模型可以有效地适应用户需求的动态变化。
(对)11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(对)12.集成测试主要由用户来完成。
(错)13.确认测试计划应该在可行性研究阶段制定(错)14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(错)15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)16.在可行性研究中最难决断和最关键的问题是经济可行性。
(╳)17.耦合是指一个模块内各个元素彼此结合的紧密程度。
(╳)18. 一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。
(√)19.概要设计阶段完成的主要文档是概要设计说明书。
(√)20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。
(╳)21.程序设计语言中应绝对禁止使用GOTO语句。
(╳)22.类是关于对象性质的描述,由方法和数据组成。
(√)23.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。
(√)25.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。
软件工程考试题一-(3)
软件工程考试题一一、选择题,请从四个可选项中选择正确答案。
(60分,每题3分)1.软件、程序和代码是()。
A. 相同的软件概念B.程序语言写的代码C.计算机代码和数据D. 三个不同的概念2.下面哪个选项不是软件工程研究的内容()。
A. 生产无故障的软件B. 精通一门编程语言C.生产满足用户需求的软件D.生产及时交付的软件3.SW-CMM是一种()规范。
A.编程规范B.软件工作通用模型C.软件设计模型D.软件成熟度模型4.可行性研究实质上是在较高层次上、以较抽象的方式进行()的过程。
A.详细软件设计B.简化需求分析过程C.深入的需求分析D.测试设计5.与传统行业的生产相比较,软件的需求具有()。
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.UML是一种()语言。
A.程序设计B.面向对象C.交互式建模D.过程描述11.面向对象分析过程中建立的模型有()。
A. 数据模型、功能模型、活动模型B. 对象模型、功能模型、测试模型C. 属性模型、功能模型、对象模型D. 对象模型、功能模型、动态模型12.下面建立功能模型的步骤哪个顺序是正确的()。
A.确定角色/确定用例模型/确定用例B.确定用例/确定用例模型/确定角色C.确定角色/确定用例/确定用例模型D.确定用例模型/确定角色/确定用例13.在图书馆信息管理系统中,已经构造了一个读者类,后来发现图书馆的学生和教师在借书中有不同要求。
软件工程基础知识点总结
软件工程基础部分知识点总结知识点一软件工程的基本概念1、软件定义:是计算机系统中与硬件相互依存的另一部分;是包括程序、数据以及相关文档的完整集合..1程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令语句序列..2数据是使程序能够正常操作信息的数据结构..3文档是与程序开发、维护和使用有关的图文资料..国标GB计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据..2、软件特点:1软件是一种逻辑实体;而不是物理实体;具有抽象性;是计算机的无形部分;2软件的生产与硬件不同;它没有明显的制作过程;3软件在运行、使用期间不存在磨损、老化问题;4软件的开发、运行对计算机系统具有依赖性;受计算机系统的限制;这导致了软件移植的问题;5软件复杂性高;成本昂贵;6软件开发涉及诸多的社会因素3、软件的分类:按照功能可以分为:应用软件、系统软件、支撑软件或工具软件1应用软件是为解决特定领域的应用而开发的软件..2系统软件是计算机管理自身资源;提高计算机使用效率并为计算机用户提供各种服务的软件..3支撑软件是介于系统软件和应用软件之间;协助用户开发软件的工具软件..4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题.. 软件危机主要体现在以下几个方面:①软件开发的实际成本和进度估计不准确②开发出来的软件常常不能使用户满意③软件产品的质量不高;存在漏洞;需要经常打补丁④大量已有的软件难以维护⑤软件缺少有关的文档资料⑥开发和维护成本不断提高;直接威胁计算机应用的扩大⑦软件生产技术进步缓慢;跟不上硬件的发展和人们需求增长5、软件工程:此概念的出现源自软件危机..软件工程是指应用计算机科学、数学及管理科学等原理;以工程化的原则和方法来开发与维护软件的学科.. 1研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统高质量是指错误率低、好用、易用、可移植、易维护等..2软件工程的三个要素:方法、工具和过程..①方法:完成软件工程项目的技术手段;②工具:支持软件的开发、管理、文档生成;③过程:支持软件开发的各个环节的控制、管理..3软件工程的核心思想:把软件产品看作是一个工程产品来处理..知识点二软件的生命周期1、软件生命周期概念:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期..2、软件生命周期一般划分为定义、开发和维护3个阶段:1定义阶段:可行性研究、需求分析2个阶段;软件定义阶段:包括制定计划和需求分析..①制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划..②需求分析:对待开发软件提出的需求进行分析并给出详细的定义..方法:1结构化需求分析方法;2面向对象的分析方法..任务:导出目标系统的逻辑模型;解决“做什么”的问题..步骤:需求分析一般分为需求获取、需求分析、编写需求规格说明书和需求评审四个步骤进行..2开发阶段:概要设计、详细设计、编码实现和测试4个阶段;①软件设计:分为概要设计和详细设计两个部分..②软件实现:把软件设计转换成计算机可以接受的程序代码..③软件测试:在设计测试用例的基础上检验软件的各个组成部分..3维护阶段:使用、维护、退役阶段..软件运行维护阶段:软件投入运行;并在使用中不断地维护;进行必要的扩充和删改..软件生命周期中所花费最多的阶段是软件运维护阶段..4软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性..5软件工具就是帮助开发软件的软件..它们对提高软件生产率;促进软件生产的自动化都有重要的作用..6软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具的集合;这些软件工具按照一定的方法和模式组合起来;共同支持软件生命周期内的各个阶段和各项任务的完成..知识点三软件设计基本概念1、软件工程过程:问题定义——可行性研究——需求分析——软件设计——软件编码——软件测试——软件维护2、软件设计分为总体设计和详细设计1总体设计目的:要解决的问题是“怎样实现目标系统”任务:确定软件的总体结构;进行模块划分;确定每个模块的功能、接口及模块之间的调用关系;并对全局数据结构进行设计;同时产生概要设计说明书2详细设计目的:要解决的问题是“应该怎样具体实现目标系统”任务:在概要设计的基础上;设计每个模块实现的细节及对局部数据进行设计包括模块的数据结构和所需的算法;同时产生详细设计说明书3、软件编码目的:产生能在计算机上执行的程序任务:根据系统的要求和开发环境;选用合适的程序设计语言;把详细设计的结果翻译成用该程序设计语言编写的程序代码源程序4、软件测试是为了发现程序中的错误而执行程序的过程目的和任务:通过在计算机上执行程序来尽可能多地发现软件产品中的错误和缺陷;并改正程序中的错误;以保证程序的可靠运行5、软件维护阶段是长期的过程;因为;经过测试的软件还可能有错;用户的要求还会发生变化;软件运行的环境也可能变化等等..因此;交付使用的软件仍然需要继续排错、修改和扩充;这就是软件维护..软件维护的目的是满足用户对已开发产品的性能与运行环境不断提高的需要;进而达到延长软件的寿命软件维护就是在软件交付使用之后;为了改正错误或满足新的需要而修改软件的过程..软件维护的类型有如下几种:1改正性维护:诊断和改进错误的过程..2适应性维护:为与变化的环境适当配合而进行的修改软件的活动..3完善性维护:为了满足用户提出的增加新功能或修改已有功能的建议而进行维护..4预防性维护:为了改进未来的可维护性和可靠性..软件开发时期要完成设计和实现两大任务;其中设计任务用需求分析和软件设计两个阶段完成;实现任务用编码和测试两个阶段完成..开发任务完成的好与坏;关系到软件产品的质量;完成开发任务的关键是选择好的软件开发方法..目前;软件开发方法主要有结构化开发方法和面向对象开发方法知识点4软件设计的基本原理软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性..1、模块化:指解决问题时自顶向下的方法逐层把软件系统划分成若干个模块的过程2、抽象:认识复杂过程中使用的思维工具;即抽出事务的本质的共同的特性而暂不考虑它的细节和其他因素..3、信息隐蔽:旨在设计和确定模块式的时候;是的一个模块内包含的信息;对于不需要这些信息的其他模块来说不可访问4、模块独立性:指每个模块只完成系统要求的独立的功能;并且与其他模块联系最少且接口简单模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标..1内聚性:是对模块功能强度的度量;即对一个模块内部各个元素语句之间、程序段间彼此结合的紧密程度的度量..2耦合性:是模块间互相连接的紧密程度的度量..模块之间联系越紧密;其耦合性就越强;模块的独立性则越差..一个设计良好的软件系统应具有高内聚、低耦合的特征..在结构化程序设计中;模块划分的原则是:模块内具有高内聚度;模块间具有低耦合度..软件设计有两个步骤:1概要设计又称结构设计是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;2详细设计是确定每个模块的实现算法和局部数据结构;通过对结构表示进行细化;得到软件的详细数据结构和算法..知识点5 结构化分析方法结构化方法的软件开发过程2、结构化分析方法的常用工具:数据流图、数据字典、结构化语言、判定树、判定表3、SA的基本步骤如下:①自顶向下对系统进行功能分解;画出分层的数据流图②由后向前定义系统的数据和加工;编制数据字典和加工说明③写出需求规格说明书SRS4、数据流图是以图形的方式描绘数据在软件系统中流动和处理的过程;由于它只反映系统必须完成的逻辑功能;所以它是一种功能模型.. 数据流图由数据流、加工又称数据处理、数据存储又称文件、数据源点或终点四种基本成分组成..数据流图简称DFD图形元素:①数据流:是数据在系统内传播的路径..使用箭头代表数据的流向;数据名称标在箭头的边上②加工:输入数据经过加工变换产生输出..使用圆框代表加工③数据存储:指处理过程中存放各种数据..使用双杠或单杠表示数据文件或数据库..文件与加工之间用箭头线连接;单向表示只读或只写;双向表示可读可写④数据源点或终点:指软件系统外部环境中的实体包括人员、组织或其他软件系统;统称为外部实体..使用方框表示数据的源点和终点5、建立数据流图的步骤:第一步:由外向里:先画系统的输入输出;然后画系统的内部..第二步:自顶向下:顺序完成顶层、中间层、底层数据流图..第三步:逐层分解..6、DFD图的数据流可分为两种类型:变换流和事务流变换流:信息沿着输入通路进入系统;同时将信息的外部形式转换成内部形式;通过变换中心处理之后;再沿着输出通路转换成外部形式输出事务流:信息沿着输入通路到达一个事务中心;事务中心根据输入信息的类型在若干个动作序列中选择一个来执行;这种信息流称为事务流7、数据字典就是用来定义数据流图中的各个成分的具体含义和详细的描述..它和数据流图共同构成了系统的逻辑模型;是需求规格说明书的主要组成部分..是结构化分析方法的核心.. 数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的..数据字典有四类条目:数据流、数据项、数据存储和基本加工..8、SD方法的中心任务就是把用DFD图表示的系统分析模型方便地转换为软件结构的设计模型..识点6软件测试的目的和准则1、软件测试是保证软件质量的重要手段;其主要过程涵盖了整个软件生命周期的过程;包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试、验证软件是否合格、能否交付给用户使用..软件测试就是使用人工或自动手段来运行或测定某个系统的过程;其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别..2、软件测试的原则:1所有测试都应追溯到需求2严格执行测试计划;排除测试的随意性3避免由软件开发人员测试自己的程序4充分注意测试中的群集性现象5除了很小的程序外;“彻底”的穷举测试是不可能的6妥善保存测试计划、测试用例、出错统计和最终的分析报告;为维护提供方便软件测试的每一次测试都需要准备好一些测试数据;与被测程序一起输入到计算机中执行;知识点7软件测试的方法和实施1、测试是对软件规格说明、设计和编码的最后的复审;所以软件测试贯穿在整个软件开发期的全过程..对于软件测试方法和技术;可以从不同的角度加以分类..①从是否需要执行被测软件的角度;软件测试分为静态分析和动态测试②按照功能划分;动态测试又分为白盒测试和黑盒测试2、静态测试一般是指人工评审软件文档或程序;借以发现其中的错误;由于被评审的文档或程序不必运行;所以称为静态的..静态测试包括代码检查、静态结构分析、代码质量度量等..3、动态测试是指通过运行软件来检查软件中的动态行为和运行结果的正确性;也就是常说的上机测试..动态测试一般包括两个基本要素:被测程序和测试数据4、测试能否发现错误取决于测试用例的设计..动态测试的设计测试用例的方法一般分为黑盒测试和白盒测试..①白盒测试也称结构测试;它与程序内部结构相关;要利用程序结构的实现细节设计测试用例;它涉及程序风格、控制方法、源程序、数据库设计和编码细节..②黑盒测试是测试者已经知道被测程序的功能;而对程序内部的逻辑结构和处理过程完全不用考虑;只是对它的每一个功能进行测试;将测试后的结果与期望的结果进行分析比较;检查程序的功能是否符合规格说明书的要求..黑盒测试是在程序接口进行的测试5、测试用例是由测试数据和期望结果组成..设计测试用例的目的就是用尽可能少的测试数据;达到尽可能大的程序覆盖面;发现尽可能多的软件错误和问题6、用白盒法设计测试用例常用以下几种技术:①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥路径覆盖7、用黑盒法设计测试用例常用以下几种技术:①等价类划分法②边界值分析法③错误推测法④因果图法8、软件测试的实施①单元测试:是对每一个编制好的模块进行测试;其目的在于发现和排除各模块内部可能存在的差错及详细设计中产生的错误..进行单元测试时;根据程序的内部结构设计测试用例;主要采用白盒测试法②集成测试..是在单元测试的基础上;将所有模块按照设计要求组装成为系统而进行的测试;它的任务是检查模块间的接口和通信、各子功能的组合能否达到预期要求的功能、全程数据结构是否有问题等..集成测试主要发现设计阶段产生的错误;通常采用黑盒测试法 ..集成测试时;将各个模块组装成系统的方法有:非增量组装方式是先分别对每个模块进行单元测试;再把所有模块按设计要求组装在一起进行测试;最终得到所要求的软件增量组装方式是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试;测试完以后再把下一个应该测试的模块结合进来测试③确认测试..确认测试是在集成测试通过后;在用户的参与下进行确认测试..这时通常使用实际数据进行测试;以验证系统是否能满足用户的实际需要..它的任务就是以需求规格说明书作为依据来验证软件的性能、功能及其他特征是否与用户的要求一致;通常采用黑盒测试④系统测试..系统测试是在更大范围内进行的测试..系统测试是把通过确认测试后的软件与计算机硬件、外设、某些支持软件、数据和人员等结合在一起;在实际运行环境下;对计算机系统进行的一系列集成测试和确认测试知识点八程序的调试1、调试也称排错或纠错..2、程序调试的任务:诊断和改正程序中错误..软件测试贯穿整个生命周期;调试主要在开发阶段..3、程序调试的基本步骤:1错误定位; 2纠正错误; 3回归测试..4、对软件主要的调试方法可以采用:1强行排错法.. 2回溯法.. 3原因排除法..5、软件调试可分为静态调试和动态调试..1静态调试就是指对源程序进行分析;然后确定可能出错的地方并进行排错..2动态调试是指对程序的运行进行跟踪并观察其出错点;然后进行排错..。
全国计算机等级考试《二级公共基础知识》【教材精讲+真题解析】讲义与视频课程【12小时高清视频】
递推算法在数值计算中是极为常见的。但是,对于数值型的递推算法必须要注意数值计算的稳定性问题。
4.递归
(1)基本思想
为了降低问题的复杂程度,将问题逐层分解,最后归结为一些最简单的问题,这种将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些最简单的问题后,再沿着原来分解的逆过程逐步进行综合。
表示家庭成员的各成员名:父亲、儿子、女儿
数据处理:对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。
【注意】作为某种处理,其中的数据元素一般具有某种共同特征,一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在有某种关系,这种关系反映了该集合中的数据元素所固有的一种结构。
【例4】一年四季的数据结构可以表示成
B=(D,R)
D={春,夏,秋,冬}
R={(春,夏),(夏,秋),(秋,冬)}
2.数据的存储结构
定义:数据的逻辑结构在计算机存储空间中的存放形式。
【注意】
①各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同。
②在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
(2)特点
在工程上,有些实际问题很难归纳出一组简单的递推公式或直观的求解步骤,并且也不能进行无限的列举。对于这类问题,一种有效的方法是“试”。
三、算法复杂度
主要包括时间复杂度和空间复杂度。
1.算法的时间复杂度
(1)定义
执行算法所需要的计算工作量。
(2)衡量标准
通常用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。算法所执行的基本运算次数还与问题的规模有关。
软考中级软件评测师考试大纲
软考中级软件评测师考试大纲
软考中级软件评测师考试大纲分为三个部分:理论知识、试题内容和考试要求。
一、理论知识:
1. 软件工程基础知识
2. 软件测试知识
3. 软件质量保证和质量控制知识
4. 软件评测知识
5. 软件评测报告和评测结论
二、试题内容:
1. 理论知识题:考察考生对理论知识的理解和运用能力。
2. 分析填空题:考察考生对软件开发和测试过程中的问题分析和解决能力。
3. 简答题:考察考生对软件评测常见问题的理解和解决能力。
4. 案例分析题:考察考生对实际软件评测过程中的问题分析和解决能力。
三、考试要求:
1. 考试方式为闭卷考试,考试时间为3小时。
2. 考试成绩由选择题和简答题的总分组成,选择题占70%,简答题占30%。
3. 考试成绩达到60分及以上为合格,80分及以上为优秀。
4. 考试内容以大纲为准,考生要重点掌握理论知识,并能够熟练运用到实际案例中进行分析和解决问题。
软件工程导论(第六版)张海藩课后习题答案(1-8章)
第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
考点3:软件工程基础
1.下面描述不属于软件特点的是()。
答案:DA)软件是一种逻辑实体,具有抽象性B)软件在使用中不存在磨损、老化问题C)软件复杂性高D)软件使用不涉及知识产权题目解析:软件是不像硬件一样具有实物的特性,而是一种逻辑实体,具有抽象性;开发复杂性高,成本昂贵并且在运行、使用期间不存在磨损、老化问题;故A、B和C选项正确。
由于软件是一种知识产品,受知识产权法的保护,所以D选项不正确。
2.程序测试的目的是()。
答案:CA)为被测程序设计正确的测试用例B)发现并改正程序中的错误C)发现程序中的错误D)改正程序中的错误题目解析:程序测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别,即为发现错误而执行程序的过程,而不是改正错误。
故正确答案为C。
3.下面不属于软件需求分析阶段工作的是()。
答案:BA)需求获取B)需求计划C)需求分析D)需求评审题目解析:软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素,可分为需求获取、需求分析及需求评审三个阶段。
故B选项不属于软件需求分析阶段工作。
4.软件设计中模块划分应遵循的准则是()。
答案:CA)高耦合低内聚B)高耦合高内聚C)低耦合高内聚D)低耦合低内聚题目解析:在程序结构中各模块的内聚性越强,则耦合性越弱。
优秀软件应高内聚,低耦合,有利于提高模块的独立性。
故正确选项为C。
5.下面不属于黑盒测试方法的是()。
答案:BA)边界值分析法B)基本路径测试C)等价类划分法D)错误推测法题目解析:黑盒测试也称功能测试或数据驱动测试。
是在软件接口处进行,完成功能验证。
黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的设计要求。
主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)错误推测法6.计算机软件包括()。
A)算法和数据B)程序和数据C)程序和文档D)程序、数据及相关文档7.下面描述中不属于软件需求分析阶段任务的是()。
A)撰写软件需求规格说明书B)软件的总体结构设计C)软件的需求分析D)软件的需求评审8.下面属于黑盒测试方法的是()。
A)边界值分析法B)路径测试C)条件覆盖D)语句覆盖9.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()。
A)软件测试B)软件实现C)软件总体设计D)可行性研究10.下面不能作为软件设计工具的是()。
A)PAD图B)程序流程图C)数据流程图(DFD图)D)总体结构图11.软件需求分析阶段的主要任务是()。
A)确定软件开发方法B)确定软件开发工具C)确定软件开发计划D)确定软件系统的功能12.下面能作为软件需求分析工具的是()。
A)PAD图B)程序流程图C)甘特图D)数据流程图(DFD图)13.下面对软件测试和软件调试叙述错误的是()。
A)严格执行测试计划,排除测试的随意性B)软件调试的目的是改正软件错误C)软件测试不需考虑测试成本D)正确的执行测试用例14.下面对软件特点描述正确的是()。
A)软件具有明显的制作过程B)软件在使用中存在磨损、老化问题C)软件复制不涉及知识产权D)软件是一种逻辑实体,具有抽象性15.使用白盒测试方法时,设计测试用例应根据()。
A)程序的内部逻辑B)程序的复杂结构C)程序的功能D)使用说明书16.软件按功能可分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A)编译程序B)Android操作系统C)汇编程序D)财务报表统计17.下面对软件特点描述错误的是()。
A)软件没有明显的制作过程B)软件是一种逻辑实体,不是物理实体,具有抽象性C)软件的开发、运行对计算机系统具有依赖性D)软件在使用中存在磨损、老化问题18.软件生命周期是指()。
A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件的需求分析、设计与实现C)软件的运行和维护D)软件的实现和维护19.下列叙述中正确的是()。
A)存储空间连续的数据结构一定是线性结构B)存储空间不连续的数据结构一定是非线性结构C)没有根结点的非空数据结构一定是线性结构D)具有两个根结点的数据结构一定是非线性结构20.下列叙述中正确的是()。
A)带链队列的存储空间可以不连续,但队头指针必须大于队尾指针B)带链队列的存储空间可以不连续,但队头指针必须小于队尾指针C)带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针D)以上说法都不对21.下面不能作为软件需求分析工具的是()。
A)PAD图B)数据字典(DD)C)数据流程图(DFD图)D)判定树22.下面不属于对象基本特点的是()。
A)标识唯一性B)可复用性C)多态性D)封装性23.在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于()。
答案:CA)逻辑设计阶段B)需求分析阶段C)概念设计阶段D)物理设计阶段24.关系数据模型()。
A)只能表示实体间1:1联系B)只能表示实体间1:m联系C)可以表示实体间m:n联系D)只能表示实体间m:n联系25.设循环队列为Q(1:m),其初始状态为front=rear=m。
经过一系列入队与退队运算后,front=20,rear=15。
现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为()。
A)5B)6C)m-5D)m-626.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为()。
A)EFGDCBAB)DCBEFGAC)BCDGFEAD)DCBGFEA27.下列叙述中正确的是()。
A)在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构B)在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构C)在链表中,如果每个结点有两个指针域,则该链表一定是线性结构D)在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是线性结构28.下列叙述中错误的是()。
A)在带链队列中,队头指针和队尾指针都是在动态变化的B)在带链栈中,栈顶指针和栈底指针都是在动态变化的C)在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D)在带链队列中,队头指针是在动态变化的,但队尾指针是不变的29.软件生命周期中,确定软件系统要做什么的阶段是()。
A)需求分析B)软件测试C)软件设计D)系统维护30.下面对软件测试和软件调试有关概念叙述错误的是()。
A)严格执行测试计划,排除测试的随意性B)程序调试通常也称为DebugC)软件测试的目的是发现错误和改正错误D)设计正确的测试用例31.下面属于系统软件的是()。
A)财务管理系统B)编译软件C)编辑软件WordD)杀毒软件32.将E-R图转换为关系模式时,E-R图中的实体和联系都可以表示为()。
A)属性B)键C)关系D)域33.在数据管理的三个发展阶段中,数据的共享性好且冗余度最小的是()。
答案:CA)人工管理阶段B)文件系统阶段C)数据库系统阶段D)以上说法都不对34.设数据元素的集合D={ 1,2,3,4,5 },则满足下列关系R的数据结构中为线性结构的是()。
A)R={ (1,2), (3,4), (5,1) }B)R={ (1,3), (4,1), (3,2), (5,4) }C)R={ (1,2), (2,3), (4,5) }D)R={ (1,3), (2,4), (3,5) }35.下列叙述中正确的是()。
A)链表结点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构B)线性表的链式存储结构中,每个结点必须有指向前件和指向后件的两个指针C)线性表的链式存储结构中,每个结点只能有一个指向后件的指针D)线性表的链式存储结构中,叶子结点的指针只能是空36.一个栈的初始状态为空,现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。
则元素退队的顺序为()。
A)ABCB)CBAC)EDCD)CDE37.某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。
A)5B)4D)238.软件生命周期是指()。
A)软件产品从提出、实现、使用、维护到停止使用退役的过程B)软件的需求分析、设计与实现C)软件的开发与管理D)软件的实现和维护39.下面属于应用软件的是()。
A)学生成绩管理系统B)UNIX操作系统C)汇编程序D)编译程序40.将E-R图转换为关系模式时,E-R图中的属性可以表示为()。
A)属性C)关系D)域41.优化数据库系统查询性能的索引设计属于数据库设计的()。
A)需求分析B)概念设计C)逻辑设计D)物理设计42.下列叙述中正确的是()。
A)所谓算法就是计算方法B)程序可以作为算法的一种描述方法C)算法设计只需考虑得到计算结果D)算法设计可以忽略算法的运算时间43.下列各序列中不是堆的是()。
A)(91,85,53,36,47,30,24,12)B)(91,85,53,47,36,30,24,12)C)(47,91,53,85,30,12,24,36)D)(91,85,53,47,30,12,24,36)44.深度为5的完全二叉树的结点数不可能是()。
A)15B)16C)17D)1845.下面描述不属于软件特点的是()。
A)软件是一种逻辑实体,具有抽象性B)软件在使用中不存在磨损、老化问题C)软件复杂性高D)软件使用不涉及知识产权46.程序测试的目的是()。
A)为被测程序设计正确的测试用例B)发现并改正程序中的错误C)发现程序中的错误D)改正程序中的错误47.下面对类-对象主要特征描述正确的是()。
A)对象唯一性B)对象无关性C)类的单一性D)类的依赖性48.在数据库中,数据模型包括数据结构、数据操作和()。
A)数据约束B)数据类型C)关系运算D)查询49.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是()。
A)一对多B)一对一C)多对一D)多对多50.下列叙述中正确的是()。
A)循环队列是顺序存储结构B)循环队列是链式存储结构C)循环队列是非线性结构D)循环队列的插入运算不会发生溢出现象51.下列叙述中正确的是()。
A)所有数据结构必须有根结点B)所有数据结构必须有终端结点(即叶子结点)C)只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D)没有根结点或没有叶子结点的数据结构一定是非线性结构52.下列关于算法的描述中错误的是()。
A)算法强调动态的执行过程,不同于静态的计算公式B)算法必须能在有限个步骤之后终止C)算法设计必须考虑算法的复杂度D)算法的优劣取决于运行算法程序的环境53.下面不属于软件需求分析阶段工作的是()。
A)需求获取B)需求计划C)需求分析D)需求评审54.软件设计中模块划分应遵循的准则是()。
A)高耦合低内聚B)高耦合高内聚C)低耦合高内聚D)低耦合低内聚55.下面不属于黑盒测试方法的是()。
A)边界值分析法B)基本路径测试C)等价类划分法D)错误推测法56.在数据库系统中,数据模型包括概念模型、逻辑模型和()。
A)物理模型B)空间模型C)时间模型D)以上说法都不对57.若实体A和B是一对一的联系,实体B和C是多对一的联系,则实体A和C的联系是()。
A)多对一B)一对多C)一对一D)多对多58.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有()。
A)节省存储空间B)插入与删除运算效率高C)便于查找D)排序时减少元素的比较次数59.深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为()。
A)62B)63C)64D)6560.下列叙述中正确的是()。
A)所谓有序表是指在顺序存储空间内连续存放的元素序列B)有序表只能顺序存储在连续的存储空间内C)有序表可以用链接存储方式存储在不连续的存储空间内D)任何存储方式的有序表均能采用二分法进行查找61.计算机软件包括()。