计算机软件工程复习要点(计算机科学与技术)
软件工程复习要点
1、软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。
软件=程序+规程+文档+数据2、软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的、软件质量难以稳定。
3、软件的质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
4、软件工程是为了经济地获得可靠的且能在实际机器上高效运行的软件而确立和使用的完善的工程原理。
5、软件工程以关注软件质量为目标,包括过程、方法和工具三个要素。
6、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
7、软件工程知识体系:(1)软件需求:需求是真实世界问题而必须展示的特性;(2)软件设计:定义一个系统或组件的体系结构、组件、接口和其他特征的过程;(3)软件构造:指通过编码、验证、单元测试、集成测试和排错的组合,具体创建一个可以工作的、有意义的软件;(4) 软件测试:在有限测试用例集合上,根据期望的行为,对程序进行的动态验证;(5)软件维护:在软件运行过程中,对可能出现的异常,运行环境的改变,作出处理,以保证软件正常运行;(6)软件配置管理:为了系统地控制配置的变更和维护在整个系统生命周期中的完整性和可追踪性,而标志软件在时间上不同点的配置的学科;(7)软件工程管理:处理软件工程的管理与度量,虽然度量是所有知识域的一个重要方面,但是这里涉及的是度量程序的专题;(8)软件工程过程:涉及软件工程过程本身的定义、实现、评定、度量、管理、变更和改进;(9)软件工程工具和方法;(10)软件质量。
8、软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。
9、软件过程的目标:标准化、预见性、生产率、高质量、计划进度和预算的能力。
10、瀑布模型特点:阶段间具有顺序性和依赖性;采用推迟实现的观点;质量保证的观点。
瀑布模型适用:在开发的早期阶段软件需求被完整确定瀑布模型缺点:在项目各阶段之间极少有反馈;只有在项目后期才能看到结果;过多的强制性里程碑缺少弹性。
计算机软件技术复习知识点2011
2011.12
第1章 绪论
计算机发展4个阶段的特点(从软件、硬件和操作 系统三个方面) 冯.诺依曼计算机的五大组成部分:输入设备、输 出设备、存储器、控制器和运算器。 计算机的三类总线:数据、地址和控制总线 软件的定义:软件=程序+数据+文档 根据工作方式可将软件分为:实时软件、分时软 件、交互式软件和批处理软件 从软件开发使用的编程语言及其开发工具来看, 软件开发技术经历了哪三个发展阶段?(机器语 言、汇编语言、高级语言)
• • • • 数据的查询 数据的插入 数据的更新 数据的删除
概念题
数据结构的描述为S=(D, R):D={di | 1≤i≤5}, R={(di , dj ), i<j},则此结构是什么结构? 用n个关键字值构造一棵二叉排序树,最少的深度为 [ log2n + 1] 一个栈输入序列为1,2,3,4,5,则下列序列中不 可能是栈的输出序列是( )。 A. 1 2 3 4 5 B. 2 3 4 5 1 C. 5 4 3 2 1 D. 4 1 2 3 5
第3章 数据结构
数据结构的定义 数据结构的分类:数据的逻辑结构和存储结构 逻辑数据结构四种基本类型及其特点 算法的定义和特性:有穷性-在有限时间内完成 算法的时间复杂度的计算 线性表的存储:顺序存储和链式存储 顺序表和链表的比较(链表不能随机访问) 单链表head为空的判定条件?(带头结点的和不 带头结点的) 栈和队的异同点(操作受限的线性表)
第4章 操作系统
什么是操作系统、裸机和虚拟机 ? 操作系统的功能:处理器管理、存储管理、设备管理、文件管 理、用户接口管理 三级存储结构及其特点(高速缓存、主存和外存) 常用的虚拟存储技术:分页、分段和段页存储管理,三者之间 有何优缺点? 处理器管理的基本任务:作业调度、进程调度和并发程序设计 进程状态转换的特点:处于阻塞/等待状态不能直接进入运行 状态 进程由程序、数据和PCB三部分组成 并发程序设计:进程间的同步和互斥 死锁产生的根本原因及其解决方法 设备的输入和输出方式及其特点有哪些:询问、中断、通道、 缓冲
软件工程复习要点
软件工程复习要点软件工程是一门研究如何高效地开发、维护和管理软件的学科。
对于学习软件工程的同学来说,熟练掌握复习要点是非常重要的。
本文将为大家总结并分享软件工程的复习要点,希望能够帮助大家更好地掌握和应用软件工程知识。
一、软件开发过程软件开发过程是指从需求分析到交付软件产品的整个过程。
常用的软件开发过程模型有瀑布模型、迭代模型、敏捷模型等。
要理解和掌握软件开发过程,需要熟悉各个阶段的任务和活动,包括需求分析、设计、编码、测试、交付等环节。
1. 需求分析:确定用户需求,明确软件系统的功能和性能要求。
2. 设计:根据需求分析的结果,进行软件系统的整体设计和详细设计。
3. 编码:将设计好的软件系统转化为具体的实现代码。
4. 测试:对编码完成的软件系统进行测试,发现和纠正其中的问题。
5. 交付:经过测试合格的软件系统交付给用户使用。
二、软件工程方法与工具为了提高软件开发的效率和质量,软件工程使用了一系列方法与工具。
掌握软件工程方法与工具的使用对于软件开发人员来说是非常重要的。
1. 需求管理工具:用于帮助开发团队和用户共同管理和追踪需求,常用的有JIRA、TFS等。
2. 设计工具:用于辅助进行软件系统的设计,常用的有UML工具、Axure等。
3. 编码工具:用于提高编码效率和质量,常用的有IDE集成开发环境、代码托管平台等。
4. 测试工具:用于自动化测试和代码覆盖率分析,常用的有Junit、Selenium等。
5. 配置管理工具:用于管理和控制软件系统的配置,常用的有Git、SVN等。
三、软件质量保证软件质量保证是指通过一系列的措施和活动来确保软件产品的质量。
在软件工程中,软件质量保证是一个非常重要的环节,它直接关系到软件系统能否满足用户的需求。
1. 静态质量保证:通过代码审查、代码规范等手段来预防和发现问题。
2. 动态质量保证:通过测试等手段来发现和解决软件系统中的问题。
3. 配置管理:通过配置管理工具来确保软件系统配置的正确性和一致性。
计算机技术与软件专业知识点梳理
计算机技术与软件专业知识点梳理计算机技术与软件专业是现代社会中重要的学科方向之一,掌握相关知识点对于求职、项目开发和创新研究都具有重要意义。
本文将对计算机技术与软件专业中的一些关键知识点进行梳理,帮助读者更好地理解和应用这些知识。
一、计算机基础知识1.1 计算机硬件组成计算机硬件包括中央处理器(CPU)、内存(RAM)、硬盘、显示器等重要组成部分。
CPU负责执行计算机指令,内存用于存储数据和指令,硬盘用于长期存储数据,显示器用于显示图像和文字。
1.2 计算机网络计算机网络是将多台计算机互联起来,实现数据传输和共享资源的系统。
常见的计算机网络包括局域网(LAN)、广域网(WAN)和互联网。
读者应该了解网络结构、协议以及网络安全等相关知识。
二、数据结构与算法2.1 数据结构数据结构是计算机中组织和存储数据的方式,常见的数据结构包括数组、链表、栈、队列、树和图等。
不同的数据结构适用于不同的应用场景,读者应熟悉它们的原理和应用。
2.2 算法算法是解决问题的步骤或方法,它可以运用在各个领域,从简单的排序算法到复杂的图算法。
有时候同一个问题可以有多种不同的算法解决方案,读者应该熟悉常见的算法和其时间复杂度。
三、编程语言与开发技术3.1 编程语言计算机软件开发中常用的编程语言包括C、C++、Java、Python、JavaScript等。
每种编程语言都有其特点和适用场景,读者应熟悉并掌握一种或多种编程语言。
3.2 开发技术随着技术的不断发展,出现了许多开发技术和框架,例如Web开发中的HTML、CSS、前端框架,移动开发中的Android、iOS开发等。
读者应该了解并学习这些开发技术,以适应行业发展。
四、软件工程与项目管理4.1 软件开发周期软件开发周期包括需求分析、设计、编码、测试和维护等阶段。
了解软件开发周期的不同阶段和相应的工作内容,有助于合理规划和组织软件开发项目。
4.2 软件测试与质量保证软件测试是确保软件质量的重要环节,包括功能测试、性能测试、安全测试等。
重点复习软工
重点复习软工软工(软件工程)是计算机科学与工程领域的一门重要学科,旨在研究以科学原理与工程技术为基础,以经济、可靠和高质量为目标,开发和维护复杂软件系统的学科体系。
对于计算机相关专业的学生来说,软工是一门必不可少的课程。
本文将介绍关于软工的重点复习内容,以帮助读者更好地准备软工考试。
一、软件开发生命周期软件开发生命周期指的是从软件项目的规划到最终交付使用的整个过程。
它包含了需求分析、设计、编码、测试、维护等阶段。
在复习软工时,需要了解各个阶段的主要任务和活动,以及它们之间的关系和依赖。
1. 需求分析阶段:需求分析是软件开发的第一步,目的是识别出用户需求并定义功能和性能要求。
在这个阶段,需要学习如何进行需求获取、需求分析和需求建模等技术和方法。
2. 设计阶段:设计阶段是将需求转化为可执行的规划和设计方案的阶段。
这个阶段包括系统架构设计、详细设计、数据库设计等。
在复习软工时,需要了解常用的设计原则和设计模式,如单一职责原则、开放封闭原则、工厂模式、观察者模式等。
3. 编码阶段:编码阶段是将设计好的方案转化为计算机可执行代码的阶段。
在复习软工时,需要熟悉常用的编程语言和开发工具,如Java、C++、Eclipse、IntelliJ IDEA等。
同时,还需要了解编码规范和代码质量管理的重要性。
4. 测试阶段:测试阶段是为了发现和修复软件中存在的问题和错误。
在复习软工时,需要熟悉各种测试方法和技术,如单元测试、集成测试、系统测试、性能测试等。
此外,还需要了解测试用例的设计和执行,以及错误跟踪和修复的方法。
5. 维护阶段:维护阶段是软件开发生命周期中最后一个阶段。
它主要涉及对软件进行改进和修复。
在复习软工时,需要了解维护活动的类型和方法,如改正性维护、适应性维护、完善性维护等。
二、软件开发方法论软件开发方法论是指在软件开发过程中使用的一套规范和约束,它们可以指导和帮助开发团队更好地组织和管理软件项目。
在复习软工时,需要了解以下几种常见的软件开发方法论。
软件工程复习要点
软件工程导论复习要点总结 信息0701惟楚有才,于斯为盛一、 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括的说,软件危机包含以下两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
二、 软件危机的典型表现:1,对软件开发成本和进度的估计常常很不准确;2,用户对“已完成的”软件系统不满意的现象经常发生;3,软件产品的质量往往靠不住;4,软件常常是不可维护的;5,软件通常没有适当的文档资料;6,软件成本在计算机系统总成本中所占比例逐年上升;7,软件开发生产率提高的速度,远远跟不上计算机应用迅速普及及深入的趋势。
三、 软件工程:(是指导计算机软件开发和维护的一门工程学科)采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它,这就是软件工程。
四、 软件工程的本质特性:1,软件工程关注于大型程序的构造;2,软件工程的中心课题是控制复杂性;3,软件经常变化;4,开发软件的效率非常重要;5,和谐地合作是开发软件的关键;6,软件必须有效地支持它的用户;7,在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
五、 软件工程的基本原理:1,用分阶段的生命周期计划严格管理;2,坚持进行阶段评审;3,实行严格的产品控制;4,采用现代程序设计技术;5,结果应能清楚地审查;6,开发小组的人员应该少而精;7,承认不断改进软件工程实践的必要性。
六、 软件生命周期:由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干阶段。
七、 软件生命周期每个阶段的基本任务:1,问题定义;2,可行性研究;3,需求分析;4,总体设计;5,详细设计;6,编码和单元测试;7,综合测试;8,软件维护。
八、 瀑布模型: 1970年温斯顿•罗伊斯(Winston Royce )提出了著名的“瀑布模型”。
研究生计算机科学软件工程知识点归纳总结
研究生计算机科学软件工程知识点归纳总结计算机科学软件工程是研究生阶段计算机科学领域的重要专业课程,本文对研究生软件工程的知识点进行归纳总结。
以下内容将按照软件工程的不同阶段,从需求分析、设计、编码、测试、维护等方面进行介绍。
一、需求分析1. 需求定义:明确对软件系统的功能、性能、约束等需求进行详细定义。
2. 需求获取:通过与用户的沟通、文献调研等方式获取需求信息。
3. 需求分析:对需求进行分析、梳理,形成清晰、完整的需求文档。
4. 需求验证:通过需求评审、模型验证等手段验证需求的正确性和一致性。
二、设计阶段1. 架构设计:确定软件系统的整体结构,包括模块划分、接口设计等。
2. 详细设计:对软件系统进行更加细致的设计,包括数据结构、算法、模块接口等。
3. 用户界面设计:设计友好、易用的用户界面,提高用户体验。
4. 数据库设计:设计合理的数据库结构,保证数据的一致性、完整性等。
5. 安全性设计:考虑软件系统的安全性需求,防止信息泄露、攻击等问题。
三、编码阶段1. 编程语言:掌握主流的编程语言,如Java、C++等。
2. 编码规范:遵循良好的编码规范,提高代码的可读性和可维护性。
3. 开发工具:熟悉使用常用的开发工具,如IDE、版本管理工具等。
4. 软件设计模式:掌握常用的软件设计模式,提高代码的复用性和可扩展性。
四、测试阶段1. 测试计划:制定测试计划,明确测试的目标和方法。
2. 单元测试:对软件系统的各个组件进行测试,保证其功能的正确性。
3. 集成测试:对软件系统的各个模块进行集成测试,验证模块间的正确交互。
4. 系统测试:对整个软件系统进行全面的测试,验证其满足需求。
5. 性能测试:测试软件系统在不同负载下的性能,保证其稳定性和可扩展性。
五、维护阶段1. 缺陷管理:及时发现并修复软件系统中的缺陷。
2. 更新迭代:根据用户的反馈和新的需求,对软件系统进行持续的更新和迭代。
3. 版本控制:使用版本管理工具对软件系统进行控制和管理。
软工复习要点
软工复习要点软件工程是现代计算机科学的重要分支,致力于开发高质量的软件系统。
在软件工程的学习过程中,掌握并熟悉相关的复习要点是非常重要的。
本文将总结软件工程的复习要点,帮助读者更好地准备考试,并取得好的成绩。
一、软件生命周期1. 需求分析阶段- 需求获取:通过面谈、问卷调查等方式获取用户需求。
- 需求分析:对收集到的需求进行分析、整理和规格说明。
- 需求验证:与用户确认需求是否准确并理解一致。
2. 设计阶段- 概要设计:定义系统的总体结构和模块划分,确定系统的主要功能。
- 详细设计:对每个模块进行详细设计,包括定义数据结构、算法等。
3. 编码阶段- 编写程序:将设计的模块转化为具体的编程代码。
- 单元测试:对每个模块进行测试,确保代码的正确性。
4. 测试阶段- 集成测试:将各个模块进行整合,进行系统级别的测试。
- 系统测试:对整个系统进行测试,检查系统是否满足预期功能和性能。
5. 运维阶段- 安装部署:将软件部署到实际应用环境中。
- 系统维护:对已部署的软件进行维护和更新。
二、软件开发过程模型1. 瀑布模型:按照线性顺序依次完成各阶段的开发流程。
2. 增量模型:将开发过程划分为多个增量,逐步迭代开发。
3. 原型模型:通过快速开发原型来验证需求和设计方案。
4. 敏捷模型:强调快速响应变化需求的开发方法。
三、软件需求工程1. 需求分类:功能需求和非功能需求的划分和描述。
2. 需求获取:通过场景分析、访谈、面谈等方式收集用户需求。
3. 需求分析:对需求进行整理、归类和建模,明确需求的范围和边界。
4. 需求规格说明:使用工具(如用例图、活动图)对需求进行形式化的描述和建模。
5. 需求验证:与用户进行需求确认和变更管理,保证需求的正确性和一致性。
四、软件设计1. 结构设计:确定软件的整体结构和模块之间的关系。
2. 数据设计:定义数据模型和数据库的结构。
3. 接口设计:定义模块间的接口,确保模块之间的良好交互。
计算机技术与软件工程资格考试的重要考点梳理
计算机技术与软件工程资格考试的重要考点梳理随着信息技术的快速发展,计算机技术与软件工程领域的人才需求日益增长。
为了评估和筛选合格的人才,许多企业和机构都会组织计算机技术与软件工程资格考试。
这些考试不仅对应聘者的基础知识和技能进行考核,也是衡量其在实际工作中能否胜任的重要标准。
本文将对计算机技术与软件工程资格考试的重要考点进行梳理,帮助考生更好地备考。
一、计算机基础知识计算机基础知识是计算机技术与软件工程资格考试的基础,也是考生必须掌握的内容。
这部分内容包括计算机硬件、操作系统、网络基础、数据库等方面的知识。
考生需要了解计算机的基本组成部分、存储器的类型和特点、操作系统的功能和分类、网络的基本概念和协议、数据库的基本原理和操作等。
同时,考生还需要熟悉常用的计算机软件和工具,如办公软件、编程工具等。
掌握这些基础知识不仅有助于考生理解计算机技术与软件工程的工作原理,也能为后续的专业知识学习打下坚实的基础。
二、编程语言与开发工具编程语言和开发工具是计算机技术与软件工程资格考试的重要考点之一。
不同的编程语言适用于不同的应用场景,考生需要了解各种编程语言的特点、语法规则和常用的编程技巧。
常见的编程语言包括C、C++、Java、Python等。
此外,考生还需要熟悉各种开发工具的使用,如集成开发环境(IDE)、调试工具、版本控制工具等。
掌握编程语言和开发工具的使用,能够提高开发效率,提升软件工程的质量。
三、软件工程原理与方法软件工程原理与方法是计算机技术与软件工程资格考试的重要考点之一。
软件工程是一门研究如何以系统化、规范化、可靠化地开发和维护软件的学科。
考生需要了解软件工程的基本原理和方法,如软件开发生命周期、需求分析与规格说明、软件设计与实现、软件测试与调试、软件维护与管理等。
此外,考生还需要了解常用的软件开发模型,如瀑布模型、迭代模型、敏捷开发等。
掌握软件工程原理与方法,能够有效地组织和管理软件开发过程,提高软件工程的效率和质量。
软件工程复习要点
题型1、名词说明2、问答题3、应用题(看图题,分析题,计算题)学问点:1、什么是软件及软件特点,软件的分类软件是计算机系统中和硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合软件的特点(1)软件是一种逻辑实体。
(2)软件的开发,是人的智力的高度发挥,而不是传统意义上的硬件制造。
(3)软件维护和硬件的修理有着本质的差别。
(4)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依靠性。
(5)软件的开发至今尚未完全摆脱手工艺的开发方式,使软件的开发效率受到很大限制。
(6)软件的开发是一个困难的过程。
(7)软件的成本特殊昂扬软件的分类1.基于软件功能的划分系统软应用软件支撑软件2.基于软件工作方式的划分实时处理软件分时软件交互式软件批处理软件2、什么是软件危机,起因一方面软件特殊困难,价格昂贵,供需差日益增大,另一方面软件开发时又常常受挫,质量差,指定的进度表和完成日期很少能按时实现,研制过程很难管理,即软件的研制往往失去限制。
我们称软件开发和维护过程中所中遇到的这一系列严峻问题为软件危机。
软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
3、什么是软件工程,它的基本目标,要素,原则(1)软件工程是指探讨软件生产的一门学科,也就是将完善的工程原理应用于经济地生产既牢靠又能在实际机器上有效运行的软件。
(2)软件工程学探讨的基本目标是:定义良好的方法学,面对支配,开发维护整个软件生存周期的方法学;确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹;可预料的结果,在生存周期中,每隔确定时间可以进行复审(3)软件工程的原则:分解;抽象和信息隐藏;一样性;确定性4、什么是软件生命周期,每个阶段的意义理解如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,一般称之为计算机软件的生命周期。
1.软件定义时期(1)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。
软件工程复习知识点
1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题;概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件;软件危机产生的原因:软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确;消除软件危机的途径:1对计算机软件应当有一个正确的认识;2应当有组织、有计划、通过严格的管理手段进行软件的开发;3及时总结软件开发的成功技术和方法并加以推广;4开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施;2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科;基本原理:软件工程的7条基本原理:1用分阶段的生命周期计划严格管理2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应该少而精7承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型;软件工程方法学包含3个要素:方法、工具和过程;内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学;传统方法学也称为生命周期方法学或结构化范型;4.软件生命周期的具体内容,每一个阶段的任务是什么结合具体的工程例子来理解做软件项目主要分那几个个阶段;①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法;④概要设计:概括回答怎样实现目标系统;概要设计又叫逻辑设计、总体设计、高层设计;⑤详细设计:把解法具体化,设计出程序的详细规格说明;详细设计也叫模块设计、底层设计;⑥编码和单元测试:编写程序的工作量只占软件开发全部工作量的10%-20%;⑦综合测试:软件测试的工作量通常占软件开发全部工作量的40%-50%;⑧软件维护:软件维护的费用通常占软件总费用的55%-70%;①②③为软件定义时期,④⑤⑥⑦为软件开发阶段;④⑤为系统设计,⑥⑦为系统实现;5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的;优点:1可强迫开发人员采用的规范的方法结构化技术;2严格地规定了每个阶段必须提交的文档;3要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;缺点:瀑布模型是由文档驱动的;1开发过程一般不可逆,否则代价太大;2实际的项目开发过程很难严格按照模型进行;3客户往往很难清楚地给出所有需求,而该模型却要求如此;4软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心;快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集;不带反馈环优点:软件产品的开发基本上是线性顺序进行的;1可以得到比较良好的需求定义,容易适应需求的变化;2有利于开发与培训的同步;3开发费用低、开发周期短且对用户更友好;缺点:1客户与开发者对原型理解不同;2准确的原型设计比较困难;3不利于开发人员的创新;增量模型也称为渐增模型;使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试;优点:在较短时间内可以向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有比较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;1人员分配灵活,刚开始不用投入大量资源;2如果核心产品很受欢迎,则可增加人力实现下一增量;3可先发布部分功能给客户,对客户起到镇定剂的作用;缺点:1并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构2增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程失去整体性;螺旋模型的基本思想是使用原型及其他方法来尽量降低风险;理解这种模型的一种简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型;优点:1设计上的灵活性,可以在项目的每个阶段进行变更;2以笑得分段来构建大型系统,使成本计算变得简单容易;3客户始终参与每个阶段的开发,保证项目不偏离正确的方向一击项目的可控性;4随着项目的推进,客户始终掌握项目的最新信息,从而他能够和管理层有效地交互;缺点:1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标示风险,势必造成重大损失;2过多的迭代次数会增加开发成本,延迟提交时间;喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各阶段可以相互重叠和多次反复,而且项目的整个生存期中还可以嵌入子生存期;就像水喷上去又可以落下来,可以落在中间,还可以落在底部;6.了解可行性研究中的任务和过程;用最小的代价在尽可能短的时间内确定问题是否能够解决;不是解决问题,而是确定问题是否值得去解决;可行性研究的根本任务:对以后的行动方案提出建议;实质:一次大大压缩简化了的系统分析和设计;任务:1.初步确定项目的规模,目标,约束和限制;2.在澄清了问题定义之后,分析员应该导出系统的逻辑模型;3.从系统逻辑模型出发,探索若干种可供选择的主要解法即系统实现方案;4.对每种解决方法都要研究它的可行性;技术可行性、经济可行性、操作可行性过程:1.复查系统规模和目标访问关键人员,描述目标系统的限制和约束;2.研究目前正在使用的系统:现有系统的问题;3.导出新系统的高层逻辑模型;4.进一步定义问题;5.导出和评价供选择的解法;6.推荐行动方针;7.草拟开发计划;8.书写文档提交审查;7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图p388.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图P409.掌握数据字典的内容、方法、用户和实现p47内容:数据字典由4类元素定义组成;1数据流;2数据流分量即数据元素;3数据存储;4处理;定义数据的方法:数据字典中的定义就是对数据自顶向下的分解;由数据元素组成数据的方式只有下述3种基本类型:顺序选择重复用途:作为分析阶段的工具;实现:P4910.了解成本/效益分析方法p50货币的时间价值投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间纯收入:整个生存周期之内的累计经济效益折成现在值-投资;投资回收率:现在的投资额P和估算出的将来每年的收益Fn,假设系统的使用寿命为n年;11.了解需求分析过程中任务是什么.p471.确定对系统的综合要求功能需求;指定系统必须提供的服务性能需求;指定系统必须满足的定时约束或容量约束可靠性和可用性需求;应定量指定出错处理需求;指环境错误,非系统本身的错误;2.分析系统的数据要求接口需求;常见的接口需求有:用户接口需求、硬件接口需求、软件接口需求、通信接口需求; 约束;常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台;逆向需求;说明软件系统不应该做什么;将来可能提出的要求;3.导出系统的逻辑模型;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;4.修正系统开发计划;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;12.理解面向数据流自顶向下逐步求精的方法和意义;p59结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法;通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级;方法:为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素;意义:1对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了; 2对这组新数据流图的分析追踪可能产生新的问题,这些问题的答案可能又在数据字典中增加一些新条目,并且可能导致新的或精化的算法描述;3随着分析过程的进展,经过提问和解答的反复循环,分析员越来越深入具体地定义目标系统,最终得到对系统数据和功能要求的满意了解;13.理解分析及建模的意义,需求分析中应该建立哪三种模型有哪些工具来帮助建立这些模型14.需求分析需要建立三种模型:1.数据模型:实体-联系图E-R数据对象即实体之间的关系2.功能模型:数据流图DFD系统对数据进行变换的功能3.行为模型:状态转换图系统的各种状态行为模式及状态之间的转换15.掌握实体关系E-R图的概念,内容和实现方法,能结合具体实例建立实体关系图;P6216.掌握状态图的概念,内容,实现方法和作用;p6517.掌握层次方框图、warnier图、IPO图的概念,内容和作用p6818.有穷状态机的概念和内容;Petri的概念;P77有穷状态机:状态集、输入集、转换函数、初始态、终态集Petri:P8219.总体设计是做什么总体设计的过程是怎样的P9120.总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求;总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构;典型的设计过程包括:1.设想选择的方案2.选取理想的方案3.推荐最佳方案4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档9.省查和复审21.掌握软件设计的几个设计原理,理解他们的内容和意义;p941模块化就是把程序划分成独立命名且可独立访问的;2抽象;3逐步求精;4信息隐藏和局部化;5模块独立;它有两个定性标准度量:内聚和耦合;22.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;耦合:耦合是对一个软件结构内不同模块之间互连程度;内聚:内聚标志着一个模块内各个元素彼此结合的紧密;耦合是影响软件复杂程度的一个重要因素;设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性;23.耦合包含了哪些类型每个类型的具体内容是什么由低到高24.1非直接耦合:就是没有耦合;2数据耦合:就是参数传递耦合,它属于低级别耦合;3标记耦合:标记耦合指两个模块之间传递的是数据结构;4控制耦合:它属于中级别耦合,比如调度程序与进程之间的耦合,就是控制耦合;5外部耦合:属于高级别耦合6公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合;7内容耦合:属于最高级别耦合,例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合;25.启发性规则的内容及部分概念;1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测26.层次图、HIPO图和结构图的内容;p10227.掌握面向数据流的设计方法,怎样用变换分析法基于数据流图设计出软件总体结构了解其中涉及到的概念,结合例子理解具体是怎么做的;p104概念:面向数据流的设计方法把信息流映射成软件结构,信息流决定了映射的方法,信息流有两种类型:1、信息沿输入通路进入系统,同时由外部形式变换成内部,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统;当数据流图具有这些特征时,这种信息流就叫做变换流;2、数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行;这类数据流应该划为一类特殊的数据流,称为事务流;28.详细设计是做什么p117详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,即经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某些程序设计语言书写的程序;29.什么是结构程序设计p117结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句;30.人机界面设计问题包含哪些p1221、系统响应时间;2、用户帮助设施;3、出错信息处理;4、命令交互31.掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD图的概念和内容;掌握判定表的概念和内容;要结合实例来掌握它们;P12432.结合Jackson图来掌握面向数据结构的设计方法;p13033.如何度量程序算法的复杂性p13634.掌握几种测试:单元测试、集成测试、确认测试、白盒测试技术和黑盒测试技术;掌握它们的概念,内容和方法;P14635.理解软件维护的定义、特点和维护过程;P189定义:在软件已交付使用之后,为了改正错误或满足新的需要而修改软件的过程;特点:1结构化维护与非结构化维护差别巨大2维护的代价高昂3维护的问题很多维护过程:1、维护组织2、维护报告3、维护的事件流4、保存维护记录5、评价维护活动;36.掌握面向对象方法学的要点,理解面向对象方法学的优点;P203四个要点:对象、类、继承、消息优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好6、掌握面向对象的概念;37.掌握面向对象的概念;P209对象对象的形象表示,对象的定义,对象的特点其他概念类,实例,消息,方法,属性,封装,继承,多态性,重载38.面向对象建模是建立哪三个模型它们的具体内容是什么P21539.1、描述系统数据结构的对象模型类图:表示静态的、结构化的系统的“数据”性质;它是对模拟客观世界实体的对象彼此间的关系的映射,描述了系统的静态结构;2、描述系统控制结构的动态模型状态转换图:动态模型表示瞬时的,行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;3、描述系统功能的功能模型用例图,数据流图:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求;40.建立对象模型的内容是什么P235建立对象模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则;也就是说,需要用适当的建模语言来表达模型,建模语言由记号即模型中使用的符号和使用记号的规则语义、语法和语用组成;41.掌握用UML提供的类图来建立对象模型的方法;理解类图的定义、基本符号和具体内容;类图建立对象模型的方法:1、定义类2、定义属性3、定义服务4、定义类与类之间的各种关系关联、泛化、依赖和细化;类图的定义:类图描述类与类之间的静态关系;类图是一种静态模型,它是创建其他UML图的基础;基本符号:UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域下面两个区域可省略3个区域分别放类的名字、属性和服务;42.能结合实例掌握类图中类与类之间的关系:关联、泛化继承、依赖和细化;能根据实例情况正确判断出类与类之间的具体关系类型;关联:关联表示两个类的对象之间存在某种语义上的联系;泛化继承:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系;具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息;泛化关系指出类与类之间存在“一般-特殊”关系;泛化可进一步分成普通泛化和受限泛化;依赖:描述两个模型元素类、用例等之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它是依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素;细化:当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系;43.动态模型的概念、内容;P223概念:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;内容:动态模型是基于事件共享而互相关联的一组状态图的集合;44.功能模型的概念、内容和建立功能模型的方法;P224概念:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此直接地反应用户对目标系统的需求;内容:功能模型由一组数据流图组成;用例图也是进行需求分析和建立功能模型的强有力工具;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;45.掌握用例图的概念、内容和方法;P224概念:用例图包括模型元素有系统、行为者、用例和用例之间的关系;内容:系统、用例、行为者、用例之间的关系;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;46.掌握面向对象分析的基本过程:三个子模型与5个层次;P232三个子模型:静态结构对象模型交互次序动态模型数据变换功能模型复杂问题大型系统的对象模型通常由5个层次组成:主题层、类与对象层、结构层、属性层和服务层;47.结合实例来掌握面向对象分析过程中建立对象模型的方法包含哪些步骤;P231 1.首先,系统分析员要对需求文档进行分析;发现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确;2.然后,是需求建模;系统分析员根据提取的用户需求,即用面向对象观点建立对象模型、动态模型和功能模型;3.最后,是需求评审;通过用户、领域专家、系统分析员和系统设计人员的评审,并进行反复修改后,确定需求规格说明;48.结合实例来掌握面向对象分析过程中建立动态模型的方法包含哪些步骤;P24749.结合实例来掌握面向对象分析过程中建立功能模型的方法包含哪些步骤;P25350.能结合实例画事件跟踪图P24951.能结合实例画类的状态图P25052.能结合实例画出0层数据流图与功能级数据流图;P42。
山东省考研计算机科学与技术全科复习资料数据库与软件工程重点梳理
山东省考研计算机科学与技术全科复习资料数据库与软件工程重点梳理计算机科学与技术是应用于信息技术行业的学科,其重要性不言而喻。
在山东省考研中,计算机科学与技术作为一个全科,需要我们掌握广泛的知识点。
其中,数据库与软件工程是重点内容。
本文将对这两个重点进行梳理,为考生提供复习资料。
一、数据库数据库是计算机科学中非常重要的概念,广泛应用于各个领域。
在山东省考研计算机科学与技术中,数据库是一个必考的重点。
以下是数据库方面的主要内容:1. 数据库系统基础知识数据库系统的基础知识包括数据模型、数据结构、查询语言、事务处理等。
考生需要全面了解关系数据库的基本概念和原理,掌握SQL 语言的使用方法,能够进行数据库的设计与规范化。
2. 数据库管理系统数据库管理系统(DBMS)是数据库的核心组成部分,用于管理和操作数据库。
考生需要熟悉主流的DBMS,如Oracle、MySQL、SQL Server等,了解它们的特点和使用方法,能够进行数据库的创建、维护和查询。
3. 数据库设计与优化数据库设计是数据库系统的关键环节,合理的数据库设计能够提高系统的性能和效率。
考生需要了解数据库设计的方法与原则,掌握ER 图、关系模型等工具的使用,能够进行数据库的设计和优化。
4. 数据库安全与备份数据库的安全性和可用性是非常重要的,考生需要了解数据库安全的相关知识,包括用户权限管理、数据加密、防止SQL注入等。
同时,备份与恢复也是数据库管理的重要内容,考生需要熟悉数据库的备份与恢复策略,能够进行数据的备份与恢复操作。
二、软件工程软件工程是计算机科学的重要分支,它研究软件开发过程中的方法与技术,帮助构建高质量的软件系统。
在山东省考研计算机科学与技术中,软件工程也是一个重要的考点。
以下是软件工程方面的主要内容:1. 软件开发过程模型软件开发过程模型是软件工程的基础,包括瀑布模型、迭代模型、敏捷开发等。
考生需要了解不同的开发模型的特点和适用场景,能够根据项目需求选择和应用合适的开发模型。
软件工程复习知识要点
1 软件和软件工程概念软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。
2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序和数据是分别的。
程序的最小单位是类。
3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。
4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。
5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。
接受工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。
功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。
可移植性是指软件从某一环境转移到另一环境时所作努力得程度。
7.软件生存期由软件定义、软件开发和运行维护三个时期组成。
开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。
开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。
8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求微小环节。
(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提交管理机构进行分析评审。
2 软件工程方法和工具1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类相识问题和解决问题的方法和过程,从而使描述问题的问题空间和其解空间在结构上尽可能一样。
2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。
通过一系列变换将形式的规格说明细化成为程序。
3.面对对象 = 对象 + 类 + 继承 + 消息通信。
山西省考研计算机科学复习资料软件工程理论与实践重点总结
山西省考研计算机科学复习资料软件工程理论与实践重点总结山西省考研计算机科学复习资料-软件工程理论与实践重点总结软件工程理论与实践是计算机科学考研中的重要科目,它涵盖了软件工程的基本理论、原则和方法,以及软件开发的实际操作技巧。
掌握软件工程理论与实践的重点内容,对于考生备战山西省考研计算机科学考试至关重要。
在本文中,将对软件工程理论与实践的重点进行总结,并给出相应的复习资料。
一、软件工程基本理论软件工程是一门综合性的学科,它在计算机科学的基础上,研究软件开发的工程化方法和过程。
掌握软件工程的基本理论是考生备战考试的基础。
以下是软件工程基本理论的几个重点:1. 软件生命周期模型:包括瀑布模型、迭代模型、敏捷开发等,了解各个模型的优缺点以及适用场景;2. 需求工程:掌握需求获取、需求分析、需求验证的基本原则和方法;3. 软件设计原则:包括高内聚低耦合、开放封闭原则等,了解设计原则在软件开发中的作用;4. 软件测试与调试:了解软件测试的目的和方法,以及常见的缺陷调试技巧;5. 软件项目管理:掌握软件项目管理的基本知识,包括进度管理、风险管理等。
二、软件开发方法与工具软件开发方法与工具是实际开发过程中的操作技巧和工具的应用。
以下是软件开发方法与工具的几个重点:1. 面向对象分析与设计:掌握面向对象分析与设计的基本概念、原则和方法,如用例建模、类图设计等;2. 软件构建:了解软件构建的过程和方法,包括编码、调试、集成等;3. 配置管理:了解配置管理的基本原理和方法,如版本控制、变更管理等;4. 软件度量与评估:掌握软件度量和评估的基本指标和方法,了解如何评估软件质量;5. 高级软件开发工具:熟悉一种或多种高级软件开发工具的使用,如Eclipse、Visual Studio等。
三、软件质量保障与测试软件质量保障与测试是保证软件开发质量的重要环节。
以下是软件质量保障与测试的几个重点:1. 软件质量管理:了解软件质量管理的基本原则和方法,掌握如何制定软件质量计划和质量标准;2. 软件测试基础:掌握软件测试的基本概念和分类,了解测试用例设计和执行的基本方法;3. 自动化测试:了解自动化测试的原理和方法,掌握至少一种自动化测试工具的使用;4. 软件故障诊断与调优:了解软件故障的诊断和调优方法,掌握常见性能测试工具的使用;5. 用户体验与界面设计:了解用户体验和界面设计的基本原则,掌握常用的界面设计工具和方法。
计算机软件技术基础复习要点概要
计算机软件技术基础复习要点第二章基本数据结构及其运算1.数据结构的分类,线性结构与非线性结构,线型结构又名线性表。
P202. 栈的定义:栈是限定在一端进行插入与删除的线性表。
对栈的插入与删除运算不需要移动表中其它数据元素。
“先进后出”或“后进先出” 。
P314. 队列:定义,队列的操作原则:先进先出。
P405. 带链的栈的类实现(代码。
P616. 循环链表的类的实现(代码 P677. 稀疏矩阵的三列二维数组的表示。
给出一个稀疏阵,能写稀疏矩阵中的每个非零元素的三元组表示。
P86-878. 二叉树的性质 1、性质 2. P1159. 二叉树的遍历分三种:前序遍历、中序遍历、后序遍历。
P118.10. 图的基本概念。
P13711. 图的遍历方法有:纵向优先搜索发和法和横向优先搜索法。
第四章资源管理技术1. 第一个分时操作系统是 UNIX 操作系统。
P2302. 进程与程序的区别是:静态和动态、…… P12352. 进程的组成:数据、程序、进程控制块。
P2353. 进程的三种状态是什么?怎么互相转换的。
P236运行转就绪, 运行转等待、就绪转运行、等待转就绪,各自转换的原因。
单 CPU 情况下,任意时刻,处于运行状态的进程只有一个。
一个进程对应一个进程控制块,每个进程控制块记录进程的状态、名称等信息,每个进程控制块应是互不相同的。
4. 创建原语 :在实际系统中创建一个进程有两种方法:一是由操作系统建立, 0#进程就是由操作系统建立的; 二是由其他进程创建一个新的进程。
基本操作都是一样的。
创建进程原语总是先为新建进程申请一空白 PCB ,并为之分配唯一的数字表示符,使之获得 PCB 的内部名称, 若该进程所对应的程序不在内存中, 则应将它从外存储器调入内存, 并将该进程有关信息填入 PCB 中,然后置该进程为就绪状态,并将它排入就绪队列和进程家族队列中。
5. 何为死锁,发生死锁的四个必要条件。
软件工程期末复习要点归纳总结
软件工程期末复习要点归纳总结软件工程是指在软件开发的全过程中,应用工程的原理、方法和经验对软件进行开发、运行和维护的过程。
在软件工程这个学科中,包括了软件需求、软件设计、软件构建、软件测试、软件维护等多个阶段和技术。
下面是软件工程期末复习的要点归纳总结:1.软件开发过程模型-瀑布模型:各个阶段按顺序进行,每个阶段完成后不可回溯。
-增量模型:将软件划分为多个增量,每个增量独立进行开发。
-螺旋模型:将软件开发过程分为多个循环,每个循环都包括需求分析、设计、开发和测试。
-迭代模型:将软件开发过程分为多个迭代,每个迭代包括需求分析、设计、开发和测试。
2.软件需求工程-需求获取:通过需求采集、用户访谈、问卷调查等方式获取需求。
-需求分析:对需求进行整理、分类、抽象和规范化,得出系统需求。
-需求规格说明:将需求规格化为需求文档,包括用例、用例图、领域模型等。
-需求验证:通过评审、原型验证等方式验证需求的正确性和完整性。
3.软件设计-结构化设计:通过模块化、自顶向下、逐步求精的方式进行软件设计。
-面向对象设计:通过类、继承、多态等面向对象的概念进行软件设计。
-架构设计:设计软件的整体框架和组件之间的关系。
-接口设计:设计软件的各个组件之间的接口。
4.软件构建-编码:根据设计文档进行编码,可以使用编程语言、集成开发环境等工具。
-调试:通过调试工具,对程序进行调试,找出存在的问题并进行修复。
-集成:将各个模块集成到一起,进行整体测试,确保功能的正确性。
-部署:将软件部署到目标环境中,确保软件能够正常运行。
5.软件测试-单元测试:对软件的最小单元进行测试,如函数、方法等。
-集成测试:对软件的各个模块进行整合测试,确保模块之间的协调性。
-系统测试:对整个系统进行测试,确保系统满足用户需求。
-验收测试:由用户对软件进行测试,验证软件是否满足用户需求。
6.软件维护-改正性维护:修复软件中的错误。
-适应性维护:根据用户需求,对软件进行功能扩展。
贵州省考研计算机科学与技术复习资料软件工程基本原理解析
贵州省考研计算机科学与技术复习资料软件工程基本原理解析贵州省考研计算机科学与技术复习资料:软件工程基本原理解析软件工程是研究如何高效地开发和维护软件系统的一门学科,它主要关注软件开发过程中的方法和工具。
在贵州省考研计算机科学与技术的复习资料中,软件工程基本原理是一个重要的知识点。
本文将对软件工程基本原理进行解析,帮助考生全面理解和掌握这一知识点。
一、软件工程概述软件工程是一个综合性的学科,它结合了计算机科学、数学、管理学等多个领域的知识,旨在解决软件开发中的各种问题。
软件工程关注软件开发生命周期的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。
二、软件工程的原则和方法1. 需求分析需求分析是软件工程的基础。
它涉及对用户需求的调研和分析,确定软件的功能和性能要求。
在贵州省考研中,考生需要了解需求分析的基本原理和方法,如用例图、数据流图等。
2. 软件设计软件设计是根据需求分析的结果来构建软件系统的蓝图。
在软件设计中,考虑到系统的模块划分、接口定义、数据结构和算法设计等方面。
在考研中,需要掌握软件设计的基本原理和常用方法,如面向对象设计、结构化设计等。
3. 软件开发软件开发是根据软件设计的要求进行编码实现的过程。
在软件开发中,需要选择合适的编程语言和开发工具,保证代码的质量和可维护性。
在贵州省考研中,考生需要了解软件开发的基本原理和常用技术,如面向对象编程、版本控制等。
4. 软件测试软件测试是为了验证软件系统的正确性和稳定性。
它包括单元测试、集成测试、系统测试等。
在软件测试中,需要设计测试用例,执行测试并分析测试结果。
在考研中,需要熟悉软件测试的基本原理和方法,如黑盒测试、白盒测试等。
5. 软件部署与维护软件部署和维护是将软件系统部署到目标环境并进行后续的维护工作。
在软件部署和维护过程中,需要关注系统的安装、配置、数据备份等。
在考研中,需要了解软件部署和维护的基本原理和技术,如自动化部署、故障排除等。
软件工程复习
软件工程复习软件工程是计算机科学的一个分支,旨在开发和维护高质量的软件系统。
在软件工程的学习过程中,我们需要掌握各种概念、原理和方法,以便能够设计、开发和管理软件项目。
本文将对软件工程的基本概念和重要内容进行复习总结。
一、概述软件工程是一门涉及软件开发生命周期的学科,它涵盖了需求分析、设计、编码、测试、维护等步骤。
其目标是通过系统化的过程和方法来提高软件开发的效率和质量。
二、软件开发生命周期1. 需求分析:确定软件系统的功能需求和性能需求,为后续开发提供基础。
2. 设计:根据需求分析的结果,进行系统架构设计和模块设计,确定软件的整体结构和各个模块的功能。
3. 编码:根据设计文档进行具体编码工作,实现软件功能。
4. 测试:对编码完成的软件进行功能测试、性能测试和安全性测试,确保软件的质量。
5. 维护:在软件发布后,对其进行修复漏洞、改进功能等维护工作,使软件能够持续发挥价值。
三、软件需求工程1. 需求获取:通过与用户和相关利益相关者的沟通,收集软件系统的需求信息。
2. 需求分析与规格说明:对需求进行分析,明确需求的优先级和约束条件,撰写需求规格说明文档。
3. 需求验证:通过需求验证技术和方法,确认需求规格说明文档的正确性和完整性。
四、软件设计原则与模式1. 单一职责原则(SRP):一个类或模块应该有且只有一个责任。
2. 开放封闭原则(OCP):一个软件实体应该对扩展是开放的,对修改是封闭的。
3. 里氏替换原则(LSP):所有使用基类对象的地方,都可以用其子类对象来替换。
4. 依赖倒置原则(DIP):高层模块不应该依赖底层模块,二者都应该依赖其抽象。
5. 接口隔离原则(ISP):使用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。
6. 迪米特法则(LoD):一个对象应该对其他对象保持最少的了解。
五、软件质量与测试1. 功能测试:验证软件是否满足用户需求。
2. 性能测试:验证软件在预期负载下的性能表现。
软件工程期末复习要点归纳总结
第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升;3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关忽略需求分析,轻视软件维护5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现什么是软件危机1、成本高:2、软件质量得不到保证:软件质量问题导致失败的软件项目非常多3、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成4、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机1、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等2、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程;1、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件;2、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程;他借鉴传统工程的原理、方法,以提高质量,降低成本为目的;5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期1、概念:软件生命周期由软件定义、软件开发和运行维护也成软件维护3个时期组成;2、内容:1、问题定义回答“要解决的问题是什么“,写出关于问题性质、工程目标和工程规模的书面报告2、可行性分析回答”对于问题是否有行得通的解决办法“,即探索问题是否值得去解,是否有可行的办法3、需求分析确定”为了解决这个问题,目标系统必须做什么“,确定目标系统必须具备哪些功能,得到需求规格说明书;4、总体设计回答”概括地说,应该怎样实现目标系统“,确定程序由哪些模块组成以及模间的关系5、详细设计回答”应该怎样具体地实现这个系统呢”,确定实现模块功能所需要的算法与数据结构6、编码和单元测试写出正确的容易理解、容易维护的程序模块,然后仔细测试每个模块7、综合测试通过各种类型的测试及相应的调试是软件达到预定要求8、软件维护通过各种必要活动是系统持久地满足用户需求8、生命周期模型1、瀑布模型传统瀑布模型特点:1、阶段间具有顺序性与依赖性2、推迟实现的观点3、质量保证的观点瀑布模型优点:1、可强迫开发人员使用规范的方法例如:结构化技术;2、严格规定每个阶段必须提交的文档;3、要求每个阶段交出的所有产品都必须通过验证;缺点:1、“瀑布模型是由文档驱动的”成为主要缺点适用范围:适合于用户需求明确、完整、无重大变化的软件项目开发;2、快速原型模型适用范围:用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等情况;3、增量模型特点:1、反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运行的产品;2、早期的版本实现用户的基本需求,并提供给用户评估的平台;优点:1、在较短时间内向用户提交可完成部分工作的产品;2、逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;缺点:1、软件体系结构必须是开放的;2、开发人员既要把软件系统看作整体;又要看成可独立的构件,相互矛盾;3、多个构件并行开发,具有无法集成的风险;4、螺旋模型基本思想:使用原型或其他方法来降低风险;适用范围:适用于内部开发大规模软件项目;优点:1、对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件发的一个重要目标2、减少了过多测试或测试不足3、维护和开发之间并没有本质区别缺点:1、风险驱动,需要相当丰富的风险评估经验和专门知识,否则风险更大2、随着迭代次数的增加,工作量加大,软件开发成本增加5、喷泉模型特点:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目;该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性;6、Rational统一过程RUP重复一系列周期,每个周期由一个交付给用户的产品结束;每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流需求、分析、设计、实现、测试分别迭代;第二章可行性研究1、概念目的用最小的代价在尽可能短的时间内确定问题是否能够解决,不是解决问题,而是确定问题是否值得去解决;2、可行性研究任务了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划;即对软件开发以后的行动方针提出建议;3、研究内容(1)技术可行性使用现有的技术能实现这个系统吗(2)经济可行性这个系统的经济效益能超过它的开发成本吗(3)操作可行性系统的操作方式在这个用户组织内行得通吗(4)法律可行性新系统开发是否会侵犯法藤、集体或国家利益4、数据字典1、内容1、数据流2、数据流分量即数据元素3、数据存储4、处理2、作用对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素都有一个确切的定义;第三章需求分析1、需求分析的任务(1)确定对系统的综合要求(2)分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统的开发步骤2、获取需求的方法(1)访谈(2)面向数据流自顶向下(3)简易的应用规模说明技术(4)快速建立软件模型3、实体-关系图P63、层次方框图P68和IPO图P694、结构化分析模型●数据流图:描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的基础●实体-联系图:描绘数据对象及数据对象之间的关系,用于建立数据模型;●状态转换图:指明了作为外部事件结果的系统行为;描绘了系统的各种行为模式称为“状态”和在不同状态间转换的方式;是行为建模的基础第四章总体设计1、模块独立性与耦合性P97(1)模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求模块化的优点:1.使软件结构清晰,容易设计也容易阅读与理解2.容易测试与调试,提高可靠性3.提高软件的可修改性4.有助于软件开发工程的组织管理(2)模块独立的重要性○有效的模块化即具有独立的模块的软件比较容易开发出来○独立的模块比较容易测试和维护(3)耦合衡量不同模块彼此间互相依赖连接的紧密程度,耦合要低,即每个模块和其他模块之间的关系要简单1、数据耦合:两个模块之间通过参数交换信息,而且交换的信息仅仅是数据2、控制耦合:传递的信息中有控制信息3、特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素4、公共环境耦合:两个或多个模块通过一个公共环境相互作用5、内容耦合:出现一下情况之一,则为内容耦合:1、一个模块访问另一个模块的内部数据2、一个模块不通过正常入口而转到另一个模块的内部3、两个模块有一部分代码重叠4、一个模块有多个入口数据耦合<控制耦合<特征耦合<公共环境耦合<内容耦合(4)内聚P99衡量一个模块内部各个元素彼此结合的紧密程度;内聚要高,每个模块完成一个相对独立的特定子功能信息隐藏P96应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的2、启发规则1、改进软件结构提高模块独立性2、模块规模应该适中3、深度、宽度、扇入、扇出都应适中4、模块的作用域应该在控制域之内5、力争降低模块接口的复杂度6、设计单入口、单出口模块7、模块功能应该可以预测3、层次图和HIPO图P1024、面向数据流的设计方法P104(1)概念面向数据流设计就是把信息流映射成软件结构,信息流的类型决定了映射的方法;信息流包括变换流、事物流;(2)变换分析与事务分析P1055、小结i.进行软件结构设计遵循的最主要的原理是模块独立原理ii.抽象和求精是一对互补概念iii.软件工程师在实践中总结经验得出一些很有参考价值的启发式规则iv.自顶向下逐步求精是进行软件结构设计的常用途径v.用形式化的方法由数据流图映射出软件结构第五章实现1、选择程序设计语言为了使程序容易测试和维护以减少软件的总成本,所选用的高级语言程序应该有理想的模块化机制,以及可读性好的控制结构和数据结构:为了便于调试和提高软件可靠性,语言特点应该是编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制;第六章软件测试2、测试的概念(1)测试是为了发现程序中的错误而执行程序的过程(2)好的测试方案是极可能发现了至今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试;3、测试的过程与步骤P153大型软件的测试过程基本由下述几个步骤组成(1)模块测试单元测试发现编码和详细设计的错误(2)子系统测试(3)系统测试集成测试(4)验收测试确认测试(5)平行运行4、单元测试P153着重从下述5个模块进行测试主要使用白盒测试技术(1)模块接口(2)局部数据结构(3)重要的执行通路(4)出错处理通路(5)边界条件5、集成测试P156集成测试就是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题;有两种集成策咯(1)自顶向下集成(2)自底向上集成6、确认测试P160也称验收测试,它的目标是验证软件的有效性;通常使用黑盒测试法;7、白盒测试技术P162白盒方法测试软件时设计测试数据的典型技术(1)逻辑覆盖1、语句覆盖2、判定覆盖3、条件覆盖4、判定/条件覆盖5、条件组合覆盖6、点覆盖7、边覆盖8、路径覆盖(2)控制结构测试1、基本路径测试2、条件测试3、循环测试8、黑盒测试技术P171黑盒测试力图发现下述类型的错误:(1)功能不正确或遗漏了功能;(2)界面错误;(3)数据结构错误或外部访问数据库错误(4)性能错误(5)初始化和终止错误黑盒测试用到的技术(1)等价划分(2)边界值分析(3)错误推测第七章维护1、维护的定义P189所谓软件维护就是在软件已经交付使用周,为了改正错误或满足新的需要而修改软件的过程;根据交付使用之后可能进行的4项活动具体定义软件维护(1)改正性维护纠正在使用过程中暴露出来的错误;诊断和改正错误的过程,(2)适应性维护为了和变化了的环境适当地配合而进行的修改软件活动(3)完善性维护在使用软件的过程中增加新的功能或修改已有功能,还可能提出一般性的改进意见的过程(4)预防性维护为了改进未来的可维护性与可靠性,或为了给未来的改进奠定更好的基础而修改软件的过程;2、维护的过程P192(1)维护组织(2)维护报告(3)维护的事件流(4)保存维护记录(5)评价维护活动3、小结1、软件生命周期每个阶段的工作都和软件可维护性有密切关系;2、再工程过程可以在完成任意一个活动之后中止第八章面向对象技术1、面向对象方法学要点(P203面向对象方法学的出发点和基本原则,是尽可能模拟人类思维方法,是开发软件尽可能接近人类认识世界解决问题的方法与过程;2、面向对象方法学优点1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好3、对象模型(P216对象模型表示静态的,结构化的系统的“数据”性质;它是对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构;4、动态模型(P223动态模型表示瞬时的、行为化的系统的”控制“性质,它规定了对象模型中的对象的合法序列;5、功能模型(P224功能模型表示变化的系统的”功能“性质,他指明了系统应该”做什么”,因此更直接反映了用户对目标系统的需求;6、 三种模型之间的关系(P 228功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候即在何种状况下接受什么时间的触发做;对象模型则定义了做事情的实体;在面向对象方法学中,对象模型是最基本的,它为其他两种模型奠定了基础,人们依靠对象模型完成了3中模型的集成;下面扼要地叙述3种模型之间的关系; 三种模型描述了系统的不同方面: 对象模型 动态模型 功能模型 对象的静态结构及相互关系与时间和顺序有关的系统性质 与值的变化有关的系统性质 描述系统的数据结构控制结构 系统的功能 “干事的主体”“什么时候干” “干什么”7、 其他复杂问题大型系统的对象模型通常由下述5个层次组成:主题层、类与对象层、结构层、属性层、服务层主题层类与对象层结构层属性层服务层功能模型与对象模型的关系--对象模型描述了功能模型中的动作对象,数据存储以及数据流结构 --功能模型中的处理对应于对象模型中的操作 动态模型与对象模型的关系 --状态转换驱使行为发生,这些行为在DFD 中被映射成处理,它们同时与对象模型的操作相对应 --针对每个建立的动态模型描述了类实例的生命周期或运行周期动态模型与功能模型的关系--功能模型中的处理可能产生动态模型中的事件;面向对象开发方法包括OOA面向对象分析、OOD面向对象设计、OOP面向对象实现三个部分第九章软件项目管理1、估算软件规模P305(1)代码行技术每个人了估计程序的最小规模a,最大规模b和最可能规模m,分别算出这3中规模的平均值a̅、b̅和m̅之后,用下面公式计算程序规模:L=a̅+4m̅+b̅6(2)功能点技术2、项目进度Gantt图3、质量保证概括得说,软件质量就是“软件与明确地和隐含地定义的需要相一致的程度”;更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度;4、软件配置管理软件配置管理事是在软件的整个生命周期内管理变化的一组活动;具体地说,这组活动用来:(1)标识变化(2)控制变化(3)确保适当地实现了变化(4)向需要知道这类信息的人报告变化5、基线基线是一个软件配置管理概念,它有助于人们在不严重合理变化的前提下来控制变化,简而言之,基线就是通过了正式复审的软件配置项;;在软件配置项变成基线之前,可以迅速而非正式地修改它;其他复习简答题1、简述文档在软件工程中的作用;1 提高软件开发过程的能见度2 提高开发效率3 作为开发人员阶段工作成果和结束标志4 记录开发过程的有关信息便于使用与维护;5 提供软件运行、维护和培训有关资料;6 便于用户了解软件功能、性能;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、术语解释
软件工程、需求工程、软件生命周期、测试用例、软件复用、软件可维护性、CASE、软件工程过程
二、基本知识要点
1. 软件危机的主要表现。
软件工程主要研究与软件开发和维护有关的四个方面的内容:
方法和技术、工具和环境、管理技术、标准和规范。
2. 生命周期模型。
典型瀑布模型生命周期的六个阶段。
各阶段产生的文档的名称及承
担的人员。
螺旋模型综合了传统瀑布模型直线式的特点和快速原型模型的迭代思想,同时增加了一个重要特征,即风险分析。
螺旋模型在4个象限定义了4个主要活动。
螺旋模型的基本思想和主要特点。
原型模型的基本思想及分类。
喷泉模型是面向对象的模型,体现了迭代和无间隙的特点。
3. 需求分析的主要方法(结构化方法SA、面向对象的方法OOA、形式化方法等)。
结
构化分析方法SA、结构化设计方法SD的主要任务、结束文档及内容。
SA得到分层DFD及DD;SD得到模块结构图SC及模块功能说明书。
SD是实现了DFD→SC。
需求规格说明书的主要内容。
软件设计的分类。
E-R图的基本构成要素。
软件系统需求的分类,需求管理的主要任务。
4. DFD的四个构成要素及各自可以表达的内容。
常用加工说明的描述工具(结构化语
言、判定表、判定树)。
根据问题结构的不同,可以使用变换分析及事务分析得到初始的SC(分别对应变换型DFD和事务型DFD)。
画DFD的基本原则。
5. 分解、信息隐藏和模块独立性是实现模块化设计的重要指导思想。
模块化设计的核
心——模块独立性,由内聚和耦合度量(熟练掌握七种内聚、七种耦合以及控制软件耦合度的方法)。
扇入、扇出。
作用域控制域原则。
程序模块优化的启发式规则。
6. 对象的三个构成要素(对象标识、属性和方法)。
面向对象分析过程中,系统的问题
域由概念模型描述,即使用类图表示概念模型;使用用例图描述角色可见的系统功能;使用顺序图和协作图描述对象的行为。
顺序图和协作图的区别。
7. UML的缩写,来自于三个方法(Booch、OMT、OOSE)。
OOA建立的三种基本模
型(对象模型/静态模型、动态模型、功能模型),OMT方法使用的三种模型。
UML 由视图、图、模型元素和通用机制构成。
用例图由哪四部份构成(用例、角色/活动者、系统边界、关系)。
在用例图中使用的四种关系:关联、扩展、用例概括、包含(及各自的含义)。
UML静态建模机制。
顺序图和协作图的区别。
类之间的关系。
Coad/Yourdon方法的OOA过程。
8. 软件测试:测试的目的,静态测试和动态测试的区别,动态测试(机器测试)的分
类——白盒测试和黑盒测试,前者以程序内部逻辑结构为依据,后者依据被测程序的外部特征/功能为依据。
把条件组合覆盖和路径覆盖结合起来可以实现差错能力最强的白盒测试。
软件工程测试步骤一般分为单元测试、集成测试、确认测试和系统测试。
这四个步骤分别针对于分析和设计的编码和详细设计、概要设计、需求分析等阶段(也就是说只有《项目实施计划》文档与测试无关)。
单元测试采用白盒测试为主的测试技术,其余以黑盒测试为主。
集成测试的两种渐增式测试策略。
确认测试的目的,系统测试的主要内容(恢复测试、安全性测试、强度测试等)。
9. 软件维护的种类。
各类维护所占的比重。
三、简答及综合应用。
1. 试画出螺旋模型或喷泉模型,并说明其基本思想和特点。
试说明原型模型的基本思
想、分类及基本原理。
2. 定义并举例说明泛化关系和关联关系。
组成和聚集关联各有何特点?试举例说明。
3. 软件结构设计的调整(根据程序模块优化的启发式规则,主要从内聚性、耦合性、
扇入、扇出、作用域/控制域等方面说明)。
4. 平衡DFD(子图与父图I/O的一致性)。
5. DFD→SC。
6. 面向对象给定实例要求画用例图、类/对象图。
题型主要有:术语解释、填空题、单项选择题、判断题和问答题。