计算机二级考试复习----软件工程基础
计算机二级考试软件工程题库及答案
计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。
答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。
答案:分析3. 软件测试的目的是为了发现软件中的_________。
答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。
答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。
主要阶段包括需求分析、设计、编码、测试和维护。
需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。
2. 请简要说明软件工程的重要性。
答案:软件工程的重要性体现在以下几个方面。
首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。
其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。
最后,软件工程可以提高软件的开发效率,节省时间和资源。
以上是计算机二级考试软件工程题库及答案的内容。
希望对您有所帮助!。
计算机二级【公共基础知识】软件工程基础课件
需求优先级排序
根据项目目标和资源情况,对需 求进行优先级排序,确定哪些需 求是关键的、紧急的。
建立需求模型
使用合适的工具和技术,如原型 、流程图等,建立需求模型,帮 助团队更好地理解和管理需求。
需求规格说明
编写需求规格说明书
根据需求分析结果,编写详细的需求规格说明书,明 确各项需求的详细描述、功能要求和验收标准。
评审与确认
组织相关人员对需求规格说明书进行评审和确认,确 保其准确性和完整性。
发布与更新
将需求规格说明书发布给相关人员,并建立更新和维 护机制,确保其始终与项目实际情况保持一致。
需求验证与管理
验证需求
通过原型、测试用例等方式验证需求的正确 性和可行性,确保开发出来的软件能够满足 用户需求。
变更控制
02
需求获取
01
确定需求来源
识别并确定需求来源,包括用户、利益相关者和其他关 键干系人。
02
制定需求获取计划
制定详细的需求获取计划,包括时间、地点、人员和资 源等。
03
采集需求信息
通过访谈、问卷调查、原型演示等方式采集需求信息, 确保信息的准确性和完整性。
需求分析
需求分类
对获取的需求进行分类,明确哪 些是功能性需求,哪些是非功能 性需求。
需求分析
对软件需求进行重新审查和确认,确 保软件需求满足新的要求或变化。
设计修改
根据需求分析的结果,对软件的体系 结构、数据结构、接口等进行修改和 优化。
编码和测试
根据修改后的设计,进行代码编写和 测试,确保软件功能和性能的正确性 和稳定性。
软件可维护性
01
02
03
04
05
软件可维护性包 括四个方面
计算机二级考试软件工程题库及答案
计算机二级考试软件工程题库及答案为了帮助考生更好地备考计算机二级考试,我们精心整理了一份软件工程题库及答案,涵盖了大量实际问题与案例分析,旨在帮助考生深入理解软件工程的基本概念、原理和技术。
以下是题库的部分内容。
一、选择题1. 软件工程的主要目标是()A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列关于软件需求分析的说法中,错误的是()A. 需求分析是软件开发过程中的重要环节B. 需求分析的主要任务是确定用户需求C. 需求分析的结果是软件需求规格说明书D. 需求分析应在软件设计之前完成答案:C3. 在软件开发过程中,项目管理的主要任务不包括()A. 人员组织与协调B. 进度控制C. 质量控制D. 软件测试答案:D4. 下列关于结构化分析方法的描述中,错误的是()A. 结构化分析方法是一种面向数据的分析方法B. 结构化分析方法主要包括数据流图、实体关系图等工具C. 结构化分析方法适用于大型复杂系统的分析D. 结构化分析方法不适用于小型系统的分析答案:D5. 在软件测试过程中,下列说法正确的是()A. 测试应贯穿整个软件开发过程B. 测试的目的是发现并修复软件缺陷C. 测试过程应遵循逐步细化、逐步展开的原则D. 测试用例的设计应考虑输入条件、操作步骤和预期结果答案:D二、填空题1. 软件工程的三级生命周期模型包括________、________和________。
答案:需求分析、设计、实现与维护2. 软件需求规格说明书是________阶段的成果,其主要作用是________。
答案:需求分析;描述软件的功能、性能和约束条件3. 结构化分析方法的核心思想是________,其基本工具包括________和________。
答案:模块化;数据流图、实体关系图4. 软件测试的过程分为________、________、________和________四个阶段。
计算机二级【公共基础知识】软件工程基础【2024版】
(2)数据字典是结构化分析方法的核心,定义
了数据流图中每一个图形元素,使得用户和系 统分析员对于输入、输出、存储成分和中间结 果有共同的理解。
5.软件需求规格说明书
是需求分析的最后结果,是软件开发中重要的文档之一。 软件需求规格说明书的特点: (1)正确性; (2)无岐义性(最重要) ; (3)完整性; (4)可验证性; (5)一致性; (6)可理解性; (7)可追踪性。
软件生命周期是指软件产品从提出、实现、使
用维护到停止使用退役的过程。
3.软件生命周期:软件产品从提出、实现、使用
维护到停止使用退役的过程。包括软件定义、 软件开发、运行维护,主要活动阶段是:
(1)可行性研究与计划制定; (2)需求分析; (3)软件设计; (4)软件实现; (5)软件测试; (6)运行和维护。
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
计算机二级【公共基础知识】软件工程基础课件
包括自顶向下设计和逐步细化设计两 个步骤,通过逐步分解系统,将复杂 问题分解为简单问题,便于开发人员 理解和实现。
面向对象设计方法
面向对象设计方法的概念
面向对象设计方法是一种基于对象的设计技术,将数据和操 作封装在对象中,通过对象之间的交互实现系统的功能。
面向对象设计方法的步骤
需求分析
需求分类
对获取的需求进行分类,明确哪些是功能性需求,哪些是非功能性 需求。
需求优先级排序
根据项目目标和利益相关者的关注点,对需求进行优先级排序,确 定哪些需求是必须满足的,哪些是可协商的。
建立需求模型
通过建立数据流图、实体关系图等模型,对需求进行详细分析和描 述。
需求规格说明书
编写需求规格说明书
测试执行是按照测试计划和测试用例执行测试的过程,而测试报告是记录测试结果和提供决策依据的重要文档。
在测试执行过程中,应按照测试计划和测试用例的要求,对软件系统进行逐项测试,并记录测试结果和发现的问题。测试报 告应详细记录测试过程、方法、结果和结论,并提供决策依据和建议。同时,测试报告还应包括问题跟踪和管理,以确保所 有发现的问题得到及时解决和验证。
迭代模型
在开发过程中不断迭代,逐步完善软件功能,逐步进行测试 和维护。
螺旋模型
强调风险分析,将瀑布模型和迭代模型相结合,逐步完善软 件功能。
敏捷开发方法
概念
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作和灵活性。
常见方法
Scrum、极限编程等。
特点
快速响应变化,快速交付价值,持续改进和团队成员的高度协作。
软件工程的重要性
提高软件质量
通过采用工程化的方法和技术, 可以减少软件缺陷和漏洞,提高
计算机等级考试二级公共基础知识-3软件工程
3.1 基本概念
3.软件旳分类
根据应用目旳旳不同,软件可分应用软件、系统软 件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定 目旳服务旳一类软件。
(2)系统软件。它能与计算机硬件紧密配合在 一起,使计算机系统各个部分、有关旳软件和数据 协调、高效旳工作旳软件。例如:操作系统、数据 库管理系统。
4) 局部化:确保模块间具有涣散旳耦合关系,模块内部有较强旳内聚性。 5) 拟定性:软件开发过程中全部概念旳体现应是拟定、无歧义且规范旳。 6) 一致性:程序内外部接口应保持一致,系统规格阐明与系统行为应保持一致。 7) 完备性:软件系统不丢失任何主要成份,完全实现系统所需旳功能。
6. 软件工程旳目旳
3.2 构造化分析措施
基本思想
将系统分析看成工程项目,有计划、有环节地进行工作。
开发策略
自顶向下,逐层分解
分析成果
一套分层旳数据流图(DFD):用来描述数据流从输入到输出旳 变换流程
一种数据字典(DD):用来描述DFD中旳每个数据流、文件以 及构成数据流或文件旳数据项
一组小阐明(加工逻辑阐明):用来描述每个基本加工旳加 工逻辑
在给定旳成本、进度旳前提下,开发出具有有效性、 可靠性、可了解性、可维护性、可适应性、可移植性、 可追踪性和可互操作性且满足顾客需求旳产品
软件工程鼓励研制和采用多种先进旳软件开发措施、 工具和环境
7. 软件工具和软件开发环境
软件工具(CASE):用来辅助软件开、运营、维护、管理、 支持等过程中旳活动旳软件
编码:编程。高级程序员和程序员产生源程序清单
测试:由另一部门旳高级程序员或系统分析员产生 软件测试计划和软件测试报告
运营维护
计算机二级软件工程
计算机辅助软件工程(CASE Computer Aided Software Engineering)是当前软件开发环境中富有特 色的研究工作和发展方向。
2 结构化分析方法
需求分析与需求分析方法 结构化分析方法 软件需求规格说明书
效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移 植性、可追踪性和可互操作性且满足用户需求的产品。
软件工程的原则:
抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可 验证性
软件开发工具与软件开发环境
软件开发工具:为软件工程方法提供了自动的或半自动的软件
支撑环境。
软件开发环境:是全面支持软件开发全过程的软件工具集合。
详细设计
PDL(Procedure Design Language) PDL是一种用于描述功能模块的算法设计和
加工细节的语言,称为过程设计语言。它是一 种混合语言,采用英语的词汇和结构化程序设 计语言的语法,类似编程语言。
4 软件测试
软件测试的目的 软件测试的准则 软件测试技术与方法 软件测试的实施
软件工程基础
1 软件工程的基本概念 2 结构化分析方法 3 结构化设计方法 4 软件测试 5 程序的调试
1 软件工程基本概念
软件定义与软件特点 软件危机与软件工程 软件工程过程与软件生命周期 软件工程的目标与原则 软件开发工具与开发环境
软件定义
软件定义:软件是计算机系统中与硬件相互依存的另一部分, 是包括程序、数据及其相关文档组成的完整集合。 软件=程序+数据+文档
白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一 次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。
计算机二级(软件工程基础)
公共基础知识
历年真题 从工程管理角度,软件设计一般分为两步 完成,它们是()。(2006.09)
概要设计与详细设计 数据设计与接口设计 软件结构设计与数据设计 过程设计与数据设计
公共基础知识
历年真题 两个或两个以上模块之间关联的紧密程度 称为()。(2006.04)
耦合度 内聚度 复杂度 数据传输特性
集成测试
• 集成测试是测试和组装软件的过程
确认测试
• 任务是用户根据合同进行,确定系统功能和性能的可接受性
系统测试
• 将软件系统与硬件、外设或其他元素结合在一起,对整个软件 系统进行测试。
公共基础知识
历年真题 下列叙述中正确的是()。(2007.04)
软件测试的主要目的是发现程序中的错误 软件测试的主要目的是确认程序中错误的位置 为了提高软件测试的效率,最好由程序编制者 自己来完成软件测试的工作 软件测试是证明软件没有错误
公共基础知识
在两种基本测试方法中,( )测试的原则之一 是保证所测模块中每一个独立路径至少要执行一 次。(2007.09) 程序测试分为静态分析和动态测试。其中( ) 是指不执行程序,而只是对程序文本进行检查, 通过阅读和讨论,分析和发现程序中的错误。 (2006.04) 再进行模块测试是,要为每个被测试的模块另外 设计两类模块:驱动模块和承接模块(桩模块)。 其中( )的作用是将测试数据传送给被测试的 模块,并显示被测试模块所产生的结果。 (2005.09)
软件生命周期可分为多个阶段,一般分为 定义阶段、开发阶段和维护阶段。编码和 测试属于()阶段。(2007.04)
公共基础知识
考点2:结构化分析方法 需求分析和需求分析方法
需求分析
计算机二级考试-基础知识复习
第一章数据结构与算法考点一:算法1.算法是指解题方案的准确而完整的描述。
它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。
2.算法的复杂度主要包括时间复杂度和空间复杂度算法的时间复杂度是指执行算法所需要的计算所需要的计算工作量(或算法执行过程中所需要的基本运算次数)算法的空间复杂度是指执行这个算法所需要的内存空间.考点二:数据结构的基本概念1.数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科.数据结构概念一般包括3个方面的内容:数据之间的逻辑关系(逻辑结构)、数据在计算机中的存储方式(存储结构)以及在这些数据上定义的运算的集合(数据的运算).数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。
在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
2.在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。
3.一般来说,一种数据结构根据需要可以表示成多种存储结构。
常用的存储结构有顺序、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。
4.线性结构是指各数据元素之间的逻辑关系可以用一个线性序列简单地表示出来。
否则称之为非线性结构。
考点三:线性表及其顺序存储结构1.当线性表采用顺序存储结构实现存储时,其主要特点是数据元素按线性表的逻辑次序,依次存放在一组地址连续的存储单元中。
在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。
考点四:栈和队列1.栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。
二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种"后进先出"的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种"先进先出"的线性表。
二级公共基础知识--软件基础
软件工程目标与原则
软件工程的目标是在给定成本、进度的前提下,开发 出具有有效性、可靠性、可理解性、可维护性、可重 用性、可适应性、可移植性、可追踪性和可互操作性 且满足用户需求的软件产品。 为达到上述目标,在软件开发的过程中,必须遵循软 件工程的基本原则:
抽象 信息隐蔽 模块化 局部化 确定性 一致性 完备性 可验证性
数据流图(DFD):描述数据在系统中如何被传送或变换以及 描述如何对数据流进行变换的功能,用于功能建模。 数据字典 判定树 判定表
数据流图
数据流图是描述数据处理过程的工具,它从数 据传递和加工的角度,来刻画数据流从输入系 统到从系统输入的移动变换过程。 数据流图的基本元素
测试技术与方法综述
按照功能划分,可将软件测试分为黑盒测试和白盒测 试。 黑盒测试将测试对象看作一个黑盒,不考虑程序内部 的逻辑结构和内部特性,只依据程序的需求规格说明, 检查程序的功能是否符合它的功能说明。这种测试又 称为功能测试或数据驱动测试。 白盒测试把测试对象看作一个透明的盒子,利用程序 内部的逻辑机构及有关信息,设计或选择测试用例, 对程序的所有逻辑路径进行测试。通过在不同点检查 程序的状态,确定实际的状态是否与预期的一致。这 种测试又称为结构测试或逻辑驱动测试。
程序设计风格
除了程序设计设计方法和技术之外,程 序风格也是非常重要的。良好的程序设 计风格概括起来包括以下及格方面:
源程序文档化 数据说明的方法 语句的结构 输入和输出
程序设计风格
源程序文档化
标识符的命名 程序的注释
计算机二级选择题库-软件工程基础
软件工程基础软件工程基本概念1.确定软件项目是否进行开发的文档是______。
A 需求分析规格说明书B 软件开发计划C 测试报告D 可行性报告2.下面不属于软件工程的3个要素的是______。
A 工具B 过程C 方法D 环境3.下面属于系统软件的是______。
A 财务管理系统B 编译软件C 编辑软件WordD 杀毒软件4.下面不属于系统软件的是______。
A 编译程序B 操作系统C 杀毒软件D 数据库管理系统5.下面叙述中正确的是______。
A 软件是程序、数据及相关文档的集合B 软件中的程序和文档是可执行的C 软件中的程序和数据是不可执行的D 软件是程序和数据的集合6.下面对软件描述错误的是______。
A 程序和数据是可执行的B 软件文档是与程序开发、维护和应用无关的资料C 文档是不可执行的D 软件是程序、数据及相关文档的集合7.下面属于应用软件的是______。
A C++编译系统B 数据库管理系统C 人事管理系统D 安卓操作系统8.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面属于定义阶段任务的是______。
A 数据库设计B 软件测试C 软件设计D 可行性研究9.下列叙述中正确的是______。
A 软件过程是软件开发过程和软件维护过程B 软件过程是软件开发过程C 软件过程是软件维护过程D 软件过程是把输入转化为输出的一组彼此相关的资源和活动10.软件的三要素是______。
A 程序、数据和运行环境B 程序、数据和配置C 程序、数据和工具D 程序、数据及相关文档11.下面属于系统软件的是______。
A 浏览器B 数据库管理系统C 人事管理系统D 天气预报的app12.下面属于系统软件的是______。
A Oracle数据库管理系统B 人事管理系统C WPS编辑软件D 杀毒软件13.下面对软件特点描述正确的是______。
A 软件的运行存在磨损和老化问题B 软件不具有抽象性C 软件具有明显的制作过程D 软件是一种逻辑实体而不是物理实体14.下列叙述中正确的是______。
全国计算机等级考试二级-计算机二级公共基础知识点汇总
计算机二级公共基础知识重点讲解汇总章节名称内容简介第一章数据结构与算法本章主要介绍算法的基本概念、数据结构的定义、线性表、树等重点知识的讲解。
第二章程序设计基础本章主要介绍程序设计风格、结构化程序设计、面向对象程序设计等重点知识的讲解。
第三章软件工程基础本章主要介绍软件工程的基本概念、结构化分析方法、软件设计等重点知识的讲解。
第四章数据库设计基础本章主要介绍数据库、数据库管理系统(DBMS)、数据库系统、数据模型、关系运算、专门关系运算、数据库设计步骤等重点知识的讲解。
第一章数据机构与算法数据结构与算法◆算法的基本概念1. 算法:是对问题处理方案的正确而完整的描述,是求解问题的方法,是指令的有效序列。
2. 具有5个特性:(1)有穷性(在有穷步后完成)算法程序的运行时间是有限的(2)确定性(每一步都有确定的含义)(3)可行性(4)输入(一个算法有零个或多个输入)(5)输出(一个算法有一个或多个输出)3. 算法的复杂度包括:时间复杂度和空间复杂度。
二者没有必然的联系。
时间复杂度:执行算法所需要的计算工作量或基本运算次数。
空间复杂度:算法所需要的空间的度量。
◆数据结构的定义1. 数据结构包括数据的逻辑结构、数据的存储结构、数据的操作数据的逻辑结构:数据的外部结构,指各数据元素之间的逻辑关系,反映人们对数据含义的解释。
包括:线性结构(线性表、栈、队列)和非线性结构(树和图)数据的存储结构:数据的物理结构,指数据的逻辑结构在计算机中的表示。
一个逻辑结构可以有多种存储结构。
◆线性表:线性表中元素的个数n(n>=0)定义为线性表的长度。
顺序存储是线性表的一种最常用的存储方式。
线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构和顺序存取的存储结构。
1.栈:是限定在表尾进行插入和删除操作的线性表。
具有记忆功能只能顺序存储(错)允许插入和删除的一端叫栈顶。
另一端叫栈底。
后进先出的线性表2队列:是限定在一端插入而在另一端删除,插入端叫队尾,删除端叫对头。
计算机二级考试msoffice知识积累:软件工程基础优选份
计算机二级考试msoffice知识积累:软件工程基础优选份计算机二级考试msoffice知识积累:软件工程基础 11.软件的定义与特点(1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。
(2)特点。
-是逻辑实体,有抽象性。
-生产没有明显的制作过程。
-运行使用期间不存在磨损、老化问题。
-开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。
-复杂性较高,成本昂贵。
-开发涉及诸多社会因素。
2.软件的分类软件可分应用软件、系统软件和支撑软件3类。
(1)应用软件是特定应用领域内专用的软件。
(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
(3)支撑软件介于系统软件和应用软件之间,是支援其它软件的开发与维护的软件。
3.软件危机与软件工程软件危机指在计算机软件的开发和维护中遇到的一系列严重问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序,包括软件开发技术和软件工程管理。
4.软件生命周期软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。
在国家标准中,软件生命周期划分为8个阶段①软件定义期:包括问题定义、可行性研究和需求分析3个阶段。
②软件开发期:包括概要设计、详细设计、实现和测试4个阶段。
③运行维护期:即运行维护阶段。
5.软件工程的原则软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2结构化分析方法需求分析的任务是发现需求、求精、建模和定义需求的过程,可概括为:需求获取、需求分析、编写需求规格说明书和需求评审。
1.常用的分析方法-结构化分析方法:其实质着眼于数据流,自顶向下,逐层分解,建立系统的处理流程。
-面向对象分析方法。
2.结构化分析常用工具结构化分析常用工具包括数据流图、数字字典(核心方法)、判断树和判断表。
国家计算机二级-软件设计基础
软件设计基础第一节软件工程基础一.1.软件是指在计算机上运行的程序,数据,相关文档的集合2.软件经历三个阶段程序设计阶段,软件设计阶段,软件工程阶段3.软件危机:落后的软件生产方式和迅速增长的计算机软件需求之间的矛盾4.软件工程三要素;方法,工具,过程5.软件工程目标;在给定成本,进度的前提下,开发出具有有效性,可靠性,可理解性,可维护性,可重用性,可适应性,可移植性,可追踪性和可互操作性且满足用户需求的产品6.软件工程研究的内容:软件开发技术和软件工程管理7.软件开发技术遵循原则:抽象,信息隐蔽,模块化,局部化,确定性,一致性,完备性和可验证性8.软件生命周期:3个时期:软件计划时期,软件开发时期,软件维护时期时期阶段任务文档软件计划问题定义理解用户需求,进行项目定义计划任务书可行性分析可行性方案及代价需求分析确定新系统的功能及目标需求规格说明书概要设计划分仔细统计功能模块概要设计说明书详细设计模块设计详细设计说明书软件开发软件编码编写程序代码程序设计相关资料系统测试完成各种测试测试方案及结果软件维护系统维护运行与维护运行及维护记录模型:瀑布模型,增量模型,快速原型模型,螺旋模型,喷泉模型,交换模型,面向对象生存期模型9.软件开发工具是为支持软件人员开发和维护活动而使用的软件软件开发(工程)环境是为全面支持软件开发全过程的软件工程集合二结构化方法(软件生命周期法)1.开发三阶段:软件计划,软件开发,软件运行和维护2.结构化分析法是一种面向数据流,自顶向下,逐步求精进行需求分析的方法结构化分析法常用工具:数据流图(DFD),数据字典(DD),判定树和判定表符号表达含义○加工(转换)→数据流= 存储文件(数据源)源,潭是系统和环境的接口,属系统之外的实体□3.模块独立性耦合性:是模块间互相连接的紧密程度的度量(低耦合)好内聚性;是一个模块内部各元素间彼此结合的紧密程度的度量(高内聚)4.软件结构两种方法:以变换为中心——变换型软件结构以事物为中心——事务性软件结构5.软件详细设计的常用工具:程序流程图(→控制流),N-S图,PAD 图,过程设计语言(PDL)6.软件测试:尽可能的发现软件中存在的错误软件测试方法:静态测试和动态测试(1)静态测试包括代码检查,静态结构分析,代码质量度量(2)静态测试不实际运行软件,主要通过人工进行(3)动态测试是为了发现错误而执行程序的过程白盒测试:跟综测试。
计算机二级考试复习----软件工程基础
计算机二级考试复习—-软件工程基础随着时代的不断发展,计算机已经成为现代社会的重要工具。
在这个过程中,软件工程已经成为一个非常重要的领域。
软件工程基础是计算机专业学习的一项必修课程,涵盖了软件工程的基本概念、模型和基本工程方法等知识点。
计算机二级考试中也常常会有软件工程基础相关的考题。
本文将会详细讲解软件工程基础这一重要课程,以及备考计算机二级考试中有关软件工程基础考题的注意事项和学习方法。
软件工程基础软件工程概述软件工程是将工程的原则和方法应用于软件开发的过程。
它包括软件开发的管理、过程、工具、方法和质量控制,目的是以更加系统化和效率化的方式进行软件开发,并最终产出高质量、可靠、易维护、易扩展的软件系统。
软件开发生命周期软件开发生命周期指的是软件产品从开始开发到交付、运行和维护的全部过程。
常见的软件开发生命周期有“瀑布模型”、“原型模型”、“螺旋模型”、“敏捷开发模型”等。
其中,“瀑布模型”是最常见的软件开发模型,它将软件开发过程分成需求分析、设计、编程、测试和维护等阶段。
在软件开发生命周期中,测试是非常重要的一个环节。
软件质量与测试软件质量是衡量软件是否为用户提供满意服务的标准。
对于软件工程师来说,要想开发出高质量的软件,就需要关注软件的可靠性、可维护性、可扩展性、可重用性和易用性等方面。
其中,软件测试是保证软件质量的最有效手段。
测试的目的是为了发现软件中存在的问题,并且帮助解决问题。
软件工程项目管理软件工程项目管理是软件工程师在软件开发过程中非常重要的一项工作。
它主要包括项目计划、风险管理、进度控制、资源分配、成本管理和质量管理等方面。
通过合理的项目管理,可以提高软件开发的效率和质量。
计算机二级考试备考指南针对软件工程基础考点的复习建议软件工程基础作为计算机二级考试的一部分,其考点较为明确。
在备考时,需要着重掌握软件开发生命周期、软件质量与测试、软件工程项目管理等基本原理以及实际操作技能。
计算机等级考试中的软件工程知识点解析
计算机等级考试中的软件工程知识点解析计算机等级考试是一项评估个人计算机技能水平的证书考试。
在这项考试中,软件工程是一个重要的知识点,涵盖了软件开发的各个方面。
本文将解析计算机等级考试中的软件工程知识点,帮助考生更好地准备和理解该知识领域。
第一部分:软件工程概述软件工程是指将系统化、规范化的方法应用于软件的开发、运行、维护和管理的过程。
它旨在提高软件开发的效率和质量,确保软件项目能够按时交付,并满足用户需求。
在计算机等级考试中,考生需要掌握软件工程的基本概念、原则和方法。
第二部分:软件生命周期软件生命周期是指软件从开发到维护的整个过程,包括需求分析、设计、编码、测试、部署和维护等阶段。
考生需要了解各个阶段的主要任务和重要工作成果,以及不同阶段之间的关系和转换。
第三部分:需求工程需求工程是软件开发过程中的关键环节,它主要涉及与用户沟通、需求获取、需求分析和需求规格等活动。
考生需要了解需求工程的基本概念、需求获取的方法和技巧,以及如何编写准确、完整的需求规格说明书。
第四部分:软件设计软件设计是将需求转化为软件系统结构的过程,包括模块划分、接口设计、数据设计和算法设计等活动。
考生需要了解常用的软件设计方法和技术,如结构化设计、面向对象设计等,以及如何应用这些方法进行软件设计。
第五部分:软件编码与测试软件编码是根据软件设计的要求进行具体代码实现的过程,而软件测试是验证软件是否符合需求和设计要求的过程。
考生需要了解常用的编码规范和测试方法,以及如何编写可靠、健壮的代码和进行有效的测试。
第六部分:软件配置管理软件配置管理是对软件进行版本控制、变更管理和发布管理的过程。
考生需要了解软件配置管理的目标和原则,以及常用的配置管理工具和技术。
第七部分:软件质量管理软件质量管理是保证软件质量和满足用户需求的过程,包括质量计划、质量保证和质量控制等活动。
考生需要了解软件质量管理的基本要素和方法,以及如何进行软件质量评估和改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章软件工程基础经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。
详细重点学习知识点:1.软件的概念、软件生命周期的概念及各阶段所包含的活动2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具3.软件测试的目的、软件测试的4个步骤、4.软件调试的任务3.1软件工程基本概念考点1 软件定义与软件特点考试链接:考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序的开发、维护和使用有关的图文资料。
可见,软件由两部分组成:(1)机器可执行的程序和数据;(2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件的特点:(1)软件是逻辑实体,而不是物理实体,具有抽象性;(2)没有明显的制作过程,可进行大量的复制;(3)使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多社会因素。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。
考点2 软件工程过程与软件生命周期考试链接:考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图3-1所示。
图3-1软件生命周期还可以将软件生命周期分为如上图所示的软件定义、软件开发和软件运行维护3个阶段。
生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试及运行与维护。
3.2结构化设计方法考点3 软件设计的基本概念考试链接:考点3在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立性中的耦合性和内聚性。
误区警示:在程序结构中,各模块的内聚性越强,则耦合性越弱。
软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
1.软件设计的基础从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
(1)结构设计定义软件系统各主要部件之间的关系;(2)数据设计将分析时创建的模型转化为数据结构的定义;(3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信;(4)过程设计则是把系统结构部件转换为软件的过程性描述。
从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。
(1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;(2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
2.软件设计的基本原理(1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。
抽象的层次从概要设计到详细设计逐步降低。
(2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
(3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
(4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块的独立程度是评价设计好坏的重要度量标准。
衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
内聚性是信息隐蔽和局部化概念的自然扩展。
一个模块的内聚性越强则该模块的模块独立性越强。
一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。
内聚性是度量一个模块功能强度的一个相对指标。
内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。
内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
耦合性是模块之间互相连接的紧密程度的度量。
耦合性取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。
在程序结构中,各模块的内聚性越强,则耦合性越弱。
一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
小提示:上面仅是对耦合机制进行的一个分类。
可见一个模块与其他模块的耦合性越强则该模块独立性越弱。
原则上讲,模块化设计总是希望模块之间的耦合表现为非直接耦合方式。
但是,由于问题所固有的复杂性和结构化设计的原则,非直接耦合是不存在的。
考点4 详细设计考试链接:考点4在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记过程设计包括哪些常用工具。
详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达表示工具算法和数据结构的细节。
详细过程设计的常用工具有:(1)图形工具:程序流程图,N-S,PAD,HIPO。
(2)表格工具:判定表。
(3)语言工具:PDL(伪码)。
程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后判断重复型和多分支选择型。
方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。
PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。
过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言,类似编程语言。
PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。
疑难解答:程序流程图,N-S图,PAD图的控制结构的异同相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、UNTIL重复型而有后判断重复型和先判断重复型。
3.3软件测试考点5 软件测试的目的考试链接:考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测试是为了发现错误。
软件测试是在软件投入运行前对软件需求、设计、编码的最后审核。
其工作量、成本占总工作量、总成本的40%以上,而且具有较高的组织管理和技术难度。
(1)软件测试是为了发现错误而执行程序的过程;(2)一个好的测试用例是能够发现至今尚未发现的错误的用例;(3)一个成功的测试是发现了至今尚未发现的错误的测试。
考点6 软件测试的实施考试链接:考点6在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两种测试方式。
软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。
单元测试是对软件设计的最小单位--模块(程序单元)进行正确性检验测试。
单元测试的技术可以采用静态分析和动态测试。
集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误,主要依据是概要设计说明书。
集成测试所设计的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。
集成测试时将模块组装成程序,通常采用两种方式:非增量方式组装和增量方式组装。
确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确定的各种需求,包括软件配置是否完全、正确。
确认测试的实施首先运用黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明确认的标准。
系统测试是通过测试确认软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。
系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。
3.4软件的调试考点7 软件调试的基本概念考试链接:考点7在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记软件调试的概念。
误区警示:程序经调试改错后还应进行再测试,因为经调试后有可能产生新的错误,而且测试是贯穿生命周期的整个过程。
在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。
程序的调试任务是诊断和改正程序中的错误。
调试主要在开发阶段进行。
程序调试活动由两部分组成,一是根据错误的迹象确定程序中错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误。
程序调试的基本步骤:(1)错误定位。
从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因;(2)修改设计和代码,以排除错误;(3)进行回归测试,防止引进新的错误。
调试原则可以从以下两个方面考虑:(1)确定错误的性质和位置时的注意事项分析思考与错误征兆有关的信息;避开死胡同;只把调试工具当作辅助手段来使用;避免用试探法,最多只能把它当作最后手段。
(2)修改错误原则在出现错误的地方,很可能有别的错误;修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身;注意修正一个错误的同时有可能会引入新的错误;修改错误的过程将迫使人们暂时回到程序设计阶段;修改源代码程序,不要改变目标代码。
疑难解答:软件测试与软件调试有何不同?3.5 例题详解一、选择题【例1】对软件的特点,下面描述正确的是_______。
(考点1)A)软件是一种物理实体B)软件在运行使用期间不存在老化问题C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制D)软件的生产有一个明显的制作过程解析:软件在运行期间不会因为介质的磨损而老化,只可能因为适应硬件环境以及需求变化进行修改而引入错误,导致失效率升高从而软件退化,所以本题正确答案为B)。