二级公共基础知识第三章软件工程基本概念
计算机二级【公共基础知识】软件工程基础课件
包括自顶向下设计和逐步细化设计两 个步骤,通过逐步分解系统,将复杂 问题分解为简单问题,便于开发人员 理解和实现。
面向对象设计方法
面向对象设计方法的概念
面向对象设计方法是一种基于对象的设计技术,将数据和操 作封装在对象中,通过对象之间的交互实现系统的功能。
面向对象设计方法的步骤
需求分析
需求分类
对获取的需求进行分类,明确哪些是功能性需求,哪些是非功能性 需求。
需求优先级排序
根据项目目标和利益相关者的关注点,对需求进行优先级排序,确 定哪些需求是必须满足的,哪些是可协商的。
建立需求模型
通过建立数据流图、实体关系图等模型,对需求进行详细分析和描 述。
需求规格说明书
编写需求规格说明书
测试执行是按照测试计划和测试用例执行测试的过程,而测试报告是记录测试结果和提供决策依据的重要文档。
在测试执行过程中,应按照测试计划和测试用例的要求,对软件系统进行逐项测试,并记录测试结果和发现的问题。测试报 告应详细记录测试过程、方法、结果和结论,并提供决策依据和建议。同时,测试报告还应包括问题跟踪和管理,以确保所 有发现的问题得到及时解决和验证。
迭代模型
在开发过程中不断迭代,逐步完善软件功能,逐步进行测试 和维护。
螺旋模型
强调风险分析,将瀑布模型和迭代模型相结合,逐步完善软 件功能。
敏捷开发方法
概念
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作和灵活性。
常见方法
Scrum、极限编程等。
特点
快速响应变化,快速交付价值,持续改进和团队成员的高度协作。
软件工程的重要性
提高软件质量
通过采用工程化的方法和技术, 可以减少软件缺陷和漏洞,提高
公共基础知识3软件工程基础
3.3 结构化设计方法
1.软件设计的基本概念: 软件设计是把软件需求转换为软件表示的过 程。 软件设计的基本原理是: (1)抽象; (2)模块化; (3)信息隐蔽和局部化; (4)模块独立性。
3.3 结构化设计方法
4.软件设计中划分模块的一个准则是( 。 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 )
3.3 结构化设计方法
5.在软件设计中不使用的工具是( A) 系统结构图 B) PAD图 C) 数据流图(DFD图) D) 程序流程图 )。
3.3 结构化设计方法
3.3 结构化设计方法
12.某系统结构图如下图所示 该系统结构图的最大扇出数是 A) n B) 1 C) 3 D) 4
3.3 结构化设计方法
13.某系统结构图如下图所示 该系统结构图的宽度是 A) 2 B) 3 C) 4 D) n
3.3 结构化设计方法
14.某系统结构图如下图所示 该系统结构图的深度是 A) 1 B) 2 C) 3 D) 4
3.4 软件测试
软件测试定义:使用人工或自动手段来运行 或测定某个系统的过程,其目的在于检验它 是否满足规定的需求或是弄清预期结果与实 际结果之间的差别。 软件测试的目的:发现软件中的错误。 从是否要执行被测软件的角度,软件测试的 方法可以分为静态测试和动态测试。 从功能上,软件测试分为白盒测试和黑盒测 试。
3.1 软件工程基本概念
2.软件危机和软件工程: 软件危机主要表现在成本、质量、生产率等问 题。 软件工程是应用于计算机软件的定义、开发和 维护的一整套方法、工具、文档、实践标准和 工序。简单的说就是使软件走向工程化。软件 工程的核心思想是把软件产品看作是一个工程 产品来处理。 软件工程包括3个要素:方法、工具和过程。
计算机二级基础软件工程基础
软件工程基础3.1软件工程基本概念1.软件的定义计算机软件是计算机系统中与硬件系统相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
程序是一组指令序列,数据是使程序能正常操纵的数据结构,文档则是与程序开发、维护和使用等有关的图文资料。
可见软件由两部分组成:一是机器可执行的程序和数据,二是机器不可执行的,与软件开发、运行、维护使用相关的文档。
2.软件的特点①软件是一种逻辑实体,不是物理实体,具有抽象性。
②软件的生产与硬件不同,它没有明显的制作过程。
一旦开发成功,可大量复制使用。
③软件在运行、使用期间不存在磨损、老化问题。
但为适应硬件、环境及需求的变化,要进行必须的修改,而这些修改无可避免的会引入错误,导致软件失效率升高,从而使得软件退化。
④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题。
⑤软件复杂性高,成本昂贵。
⑥软件开发涉及诸多的社会因素。
3.软件的分类①应用软件:是为了解决特定领域的应用而开发的软件,如音频视频播放软件、图像处理软件、文字排版软件等。
②系统软件:是计算机管理自身资源,提高计算机使用效率并为用户提供各种服务的软件,如操作系统、编译程序、数据库管理系统等。
③支撑软件:是介于系统软件与应用软件之间,协助用户开发软件的工具软件,如需求分析工具软件、设计工具软件、编码工具软件、测试工具软件等。
4.软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要表现在:①软件需求的增长得不到满足,用户对系统不满意情况经常发生。
②软件开发成本和进度无法控制,质量难以保证。
③所开发的软件不可维护或维护性较低。
④软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
5.软件工程软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
其核心思想是把软件产品看作是一个工程产品来处理。
6.软件工程的基本目标软件工程需要达到的基本目标是付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发软件易于移植,需要较低的费用,能按时完成开发,及时交付使用。
全国计算机等级考试二级公共基础知识-软件工程
3.2 软件生命周期
1.软件生命周期概念 软件产品从提出、实现、使用、维护到停 止使用退役的过程称为软件生命周期。软件生 命周期分为3个时期共8个阶段, (1)软件定义期:包括问题定义、可行性 研究和需求分析3个阶段; (2)软件开发期:包括概要设计、详细设 计、实现和测试4个阶段; (3)运行维护期:即运行维护阶段。
1.下列工具中,不属于结构化分析的常用工
具是( )。
A)数据流图
B)数据字典
C)判定树
D)N-S图
2.软件开发中,需求分析阶段产生的主要
文档是( )。
A)数据字典
B)详细设计说明书
C)数据流图说明书 D)需求规格说明书
3.下列叙述中,正确的是( )。
A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令
2、衡量软件模块独立性使用耦合性和内聚 性两个定性的度量标准
内聚性是度量一个模块功能强度的一个相 对指标。它描述的是模块内的功能联系。
耦合性是模块之间互相连接的紧密程度的 度量。
在程序结构中,各模块的内聚性越强,则 耦合性越弱。一般较优秀的软件设计,应尽量 做到高内聚,低耦合,即减弱模块之间的耦合 性和提高模块内的内聚性,有利于提高模块的 独立性。
软件设计的基本原理
1、软件设计中应该遵循的基本原理和与软件 设计有关的概念
(1)抽象;(2)模块化;(3)信息隐蔽; (4)模块独立性:模块的独立程度是评价设 计好坏的重要度量标准。衡量软件的模块独立性 使用耦合性和内聚性两个定性的度量标准。一个 模块的内聚性越强则该模块的模块独立性越强。 一个模块与其他模块的耦合性越强则该模块的模 块独立性越弱。
二级_公共基础知识_第3章_软件工程基础
金额≤500
未过期----发出批准单、提货单
40
说明:
没有一个统一的构造判定树的方法和步骤,而 且也不可能有统一的方法,因为它所依据的原始资
料是用自然语言写成的叙述文。但判定树常常用图
形表示,这样更容易被用户理解。
41
3.2.3 软件需求规格说明书 软件需求规格说明书是需求分析阶段的最后成果,
是软件开发中的重要文档之一。
30
对数据流图中出现的每一个数据流名、每一个文件 名和每一个基本加工名进行定义,它们所组成的集合 就是数据字典(或称数据词典)。每个定义是数据字典中 的一个条目。
数据流图是系统的大框架,而数据字典是对数据
流图中的每一个元素的精确描述。
31
编写数据词典的准则: (1)数据流图中出现的每一个数据流名、每一个文 件名和每一个基本加工名在词典中都应有一个条目给 出这个名字的定义。每一个组成部分在词典中也应有
还可以将软件生命周期分为如上图所示的 软件定义、软件开发和软件运行维护3个阶段。 生命周期的主要活动阶段是:可行性研究
与计划制定、需求分析、软件设计、软件实施、
软件测试、运行与维护。
14
3.1.4 软件工程的目标与原则 1. 软件工程的目标 软件工程的目标是:在给定成本、进
度的前提下,开发出具有有效性、可靠性、
术及管理方法。
9
软件工程的主要思想就是强调在软件开发过 程中需要应用工程化原则。
软件工程包括3个要素,即方法、工具和过程。
方法是完成软件工程项目的技术手段; 工具支持软件的开发、管理、文档生成;
过程支持软件开发的各个环节的控制、管理。
10
3.1.3 考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的
计算机2级公共基础知识课件-软件工程
第25页
软件工程方面的考题:
(1) 下面叙述中错误的是 A A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (2) 软件测试可分为白盒测试和黑盒测试。基本路径测试属于【白盒】 测试。 单元 测试之后进行。 (3) 按照软件测试的一般步骤,集成测试应在_____
确定开发目标和总的要求,给出功能、可靠性 等可能方案,制定实施计划. 对软件需求进行分析并给出详细定义,编写软件 规格说明书及初步的用户手册,提交评审。 给出软件的结构、模块和功能的划分等,确定算法。 编写概要设计、详细设计说明书和测试计划初稿。 源程序编码,把软件设计转换成计算机 可以接受的程序代码。编写用户手册、 操作手册和单元测试计划。 设计测试用例,检验软件各 个组成部分。编写测试分析 报告。 将已交付的软件投入运行, 并在运行使用中不断地维护, 根据新提出的需求进行必要 而且可能的扩充和删改。
第5页
软件危机 (Software
Crisis)
落后的软件生产方式无法满足迅速增长的计算机软件 需求,从而导致软件开发与维护过程中出现一系列严 重问题的现象。 软件危机主要表现在: 软件开发费用和进度失控。费用超支、进度拖延的 情况屡屡发生。有时为了赶进度或压成本不得不采 取一些权宜之计,这样又往往严重损害了软件产品 的质量。 软件的可靠性差。尽管耗费了大量的人力物力,而 系统的正确性却越来越难以保证,出错率大大增加 ,由于软件错误而造成的损失十分惊人。 第6页 ……
二级公共基础知识精品文档
3.1 软件工程基本概念
3.1.1 软件定义与软件特点
• 1.软件的定义和组成
– 定义:
• 计算机软件(Software)是计算机系统中与硬件相 互依赖的另一部分。
– 组成:
• 程序 • 数据 • 文档
– 国标(GB)定义
• 与计算机系统的操作有关的计算机程序、规程、规 则,以及可能有的文件、文档及数据。
– 面向对象分析方法(OOA)
• 静态分析方法 • 动态分析方法
3.2.2 结构化分析方法
• 1.关于结构化分析方法
– 结构化程序设计理论在需求分析阶段的运用 – 面向数据流进行需求分析的方法 – 自顶向下、逐层分解 – 主要工具:数据流图、数据字典
3.2.2 结构化分析方法
• 2.结构化分析的常用工具
• 1.软件工程过程
– P(Plan)——软件规格说明 – D(Do)——软件开发 – C(Check)——软件确认 – A(Action)——软件演进
3.1.3 软件工程过程与软件生命 周期
• 软件产品从提出、实 现、使用维护、停止 使用到退役的过程
– 3个阶段
– 6个阶段工作
可行性研究 初步项目计划
3.1.4 软件工程的目标与原则
• 2.软件工程学的范畴
软件工程
软件开发技术 软件工程管理
软件开发方法学 软件开发过程 软件开发工具 软件工程环境 软件管理学 软件工程经济学 软件心理学
3.1.4 软件工程的目标与原则
• 3.软件工程的原则
– 抽象 – 信息隐蔽 – 模块化 – 局部化
– 确定性 – 一致性 – 完备性 – 可验证性
逐级分解,直至分解到基本功能; – 对每个模块写一个简要的说明 – 利用软件的设计原则对软件结构透一步转化
全国计算机等级考试二级公共基础知识_3软件工程
全国计算机等级考试二级公共基 础知识_3软件工程
软件工程基本概念,软件生命周期概念,软 件工具与软件开发环境。
结构化分析方法,数据流图,数据字典,软 件需求规格说明书。
结构化设计方法,总体设计与详细设计。 软件测试的方法,白盒测试与黑盒测试,测
试用例设计,软件测试的实施,单元测试、 集成测试和系统测试。 程序的调试,静态调试与动态调试。
(1)软件开发技术,主要有软件开发方法学、开发过 程、软件工具、软件工程环境,其主体内容是软件开 发方法学。 (2)软件工程管理,主要有软件管理、软件工程经济 学、软件心理学。
软件工程的主要思想是将工程化原则运用到软件开发 过程,它包括3个要素:方法、工具和过程。方法是完 成软件工程项目的技术手段;工具是支持软件的开发 、管理、文档生成;过程支持软件开发的各个环节的 控制、管理。
3. 软件生命周期
将软件产品从提出、实现、使用维护到停止使用退役 的过程称为软件生命周期
分为软件定义、软件开发及软件运行维护3个阶段。维 护是持续时间最长,花费代价最大的一个阶段,软件 工程学的一个目的就是提高软件的可维护性,降低维 护代价
6个活动阶段
可行性研究与计划制定:确定系统的总体目标。参加人员有用 户、项目负责人和系统分析员,产生文档有可行性分析报告、 项目计划书等
全国计算机等级考试二级公共基 础知识_3软件工程
在笔试考试中,是一个经常考查的内容,考核的几 率为70%,主要是以选择题的形式出现,分值为2分 ,此考点为识记内容,读者应该识记软件的定义, 特点及其分类。
全国计算机等级考试二级公共基 础知识_3软件工程
1.软件的定义与组成
软件指的是计算机系统中与硬件相互依存的另一部 分,包括程序、数据和相关文档的完整集合。程序 是软件开发人员根据用户需求开发的、用程序设计 语言描述的、适合计算机执行的指令序列。数据是 使程序能正常操纵信息的数据结构。文档是与程序 的开发、维护和使用有关的图文资料。
二级公共基础总结第三章软件工程基础
二级公共基础总结第三章软件工程基础第三章软件工程基础3.1 软件工程基本概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件危机主要表现在成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:方法、工具和过程。
软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P--软件规格说明;(2)D--软件开发;(3)C--软件确认;(4)A--软件演进。
软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(1)可行性研究与计划制定;(2)需求分析;(3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。
软件工程的目标和与原则:目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,及时交付使用。
基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
二级基础知识第三章 软件工程基础
3.3 结构化设计方法ቤተ መጻሕፍቲ ባይዱ
1、软件设计的基本概念 软件设计:软件需求转换为软件表示 原则:抽象、信息隐蔽、模块化独立性(内聚、 耦合)高内聚,低耦合 结构化的设计方法 2、概要设计 任务:设计软件系统结构、数据结构与数据库设 计、编定概要设计文档、文档评审
常用工具:结构图(sc) 扇入、扇出、原子模块(叶) 面向数据流的设计方法 数据流类型:变换型(重结果)、事务型(看 处理) 3、详细设计 程序流程图、N-S图、PAD图、PDL伪码
3.4 软件测试
1、软件测试的目的 发现错误而执行程序的过程 2、软件测试的准则 3、软件测试技术与方法 静态测试与动态测试 白盒法穷举路径测试 逻辑覆盖(语句、路径、判定、条件、判断-条 件、基本路径) 黑盒法:等价类划分法(有效、无效)、边界值 分析法、错误推测法
4、软件测试的实施 单元测试、集成测试(桩模块;自顶向下的增 量方式、自底向上的增量方式)、确认测试、 系统测试
3、软件工程过程与软件生命周期 可行性分析、需求分析、概要设计、详细设计、 实现、测试、使用、维护、退役 4、软件工程的目标与原则 目标:满足用户需求(有效性、可靠性、可理 解性、可维护性、可重用性、可适应性、可 移植性、可追踪性和可操作性)两个方面开 发技术和工程管理 原则:抽象、信息隐蔽、模块化、局部化、确 定性、一致性、完备性、可验证性
3.5 程序的调试
1、基本概念 调试即排错(定位、修改、回归测试) 2、软件调试的方法 强行排错法、回溯法、原因排除法(归纳、演 绎、二分法)
5、软件开发工具与软件开发环境 工具 环境:工具的集合 Case:计算机辅助软件工程
3.2 结构化分析方法
1、需求分析与方法 需求分析:需求获取、需求分析、需求规格说 明书、需求评审 方法:结构化sa、jsd、dssd 面向对象 ooa 2、结构化分析方法 工具:数据流图、数据字典、判定树、判定表 3、软件需求规格说明书(srs)
二级公共基础知识第3章
环路复杂度=程序流程图中的判断框个数+1
a
A>2
Tc
F
B=1
T
b
Fd
e
输出A
输出B 输出A与B
f
end
测试用例
通过路径
A=1,B=0,(输出略) abf
A=3,B=1,(输出略) acef
A=3,B=3,(输出略) acdf
▪ 软件测试方法
▪ 黑盒测试:功能测试或数据驱动测试
▪ 1)等价类划分法
▪ 先把程序的所有可能的输入划分成假设干个等价 类,然后根据等价类选取相应的测试用例
户开发软件的工具型软件。
例:Dephi、PowerBuider等
应用软件 应用软件 应用软件 应用软件 应用软件
支撑软件
支撑软件
支撑软件
系统软件
4. 软件危机
指计算机软件的开发和维护过程中所遇到的一系列 严重问题。
5. 软件工程定义
是指应用计算机软件的定义、开发和维护的一整套 方法、工具、文档、实践标准和工序。
(4, 3, 1) (9, 5, 9)
F
i≥j and j<8 T 测试用例7 (3, 9, 0)
(3, 9, 9)
F i>8 T
x=j
x=i
输出i, j, x
end
2)根本路径测试
根据软件过程性描述中控制流程确定程序的环路复杂性
度量,用此度量定义根本路径集合,并由此导出一组测试
用例对每一条独立执行路径进展测试。
通道,一般在旁边标注 数据流名
加工(process)
又称转换,输入数据经 加工、变换产生输出
又称数据源,表示处理
存储文件(file)
2019年计算机二级公共基础辅导讲义:软件工程基本概念
2019年计算机二级公共基础辅导讲义:软件工程基本概念3.1 软件工程基本概念1、软件的相关概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性(注释1);2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存有磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素(注释2)。
2、软件危机与软件工程软件工程源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
具体的说,在软件开发和维护过程中,软件危机主要表现在:1)软件需求的增长得不到满足。
用户对系统不满意的情况经常发生。
2)软件开发成本和进度无法控制。
开发成本超出预算,开发周期大大超过规定日期的情况经常发生。
3)软件质量难以保证。
4)软件不可维护或维护水准非常低。
5)软件的成本持续提升。
6)软件开发生产率的提升跟不上硬件的发展和应用需求的增长。
总之,能够将软件危机能够归结为成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程的目的就是要建造一个优良的软件系统,它所包含的内容概括为以下两点:1)软件开发技术,主要有软件开发方法学、软件工具、软件工程环境。
2)软件工程管理,主要有软件管理、软件工程经济学。
软件工程的主要思想是将工程化原则使用到软件开发过程,它包括3个要素:方法、工具和过程。
方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
3、软件生命周期软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期分为软件定义、软件开发及软件运行维护三个阶段:1)软件定义阶段:包括制定计划和需求分析。
转 二级公基知识点2 科实
转二级公基知识点2 科实第三章软件工程基础1.计算机软件(Software)是计算机系统与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
2.1968年在北大西洋公约组织会议(NATO会议)上,讨论摆脱软件危机的办法,软件工程(softwareengineering)作为一个概念首次被提出,这在软件技术发展史上是一件大事。
3.将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。
4.软件工程主要思想都是强调在软件开发过程中需要应用工程化原则。
5.软件工程包括3个要素,即方法、工具和过程。
方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
6.软件工程的核心思想是把软件产品(就像其他工业产品一样)看作一个工程产品来处理。
7.软件工程通常包括4种基本活动:P(Plan)--软件规格说明、D(DO)--软件开发、C(Check)--软件确认、A(Action)--软件演进8.软件周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实现、软件测试、运行和维护。
9.软件工程需要达到的基本目标是:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时开发,及时交付使用10.软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
11.软件开发技术包括:软件开发方法学,开发过程,开发工具和软件工程环境,其主体内容是软件开发方法学。
12.软件工程管理包括:软件管理学,软件工程经济学,软件心里学等内容13.软件工程的原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性可验证性。
14.软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
15.需求分析的任务是发展需求、求精、建模和定义需求的过程。
需求分析将创建所需的数据模型、功能模型和控制模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级公共基础知识第三章软件工程基本概念重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等一、软件工程基本概念1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的文档。
其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2. 下列叙述中,正确的是(D)。
A.软件就是程序清单 B.软件就是存放在计算机中的文件C.软件应包括程序清单及运行结果D.软件包括程序和文档3. 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)4. 软件工程的出现是由于(软件危机的出现)5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(软件危机)软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
6. 开发大型软件时,产生困难的根本原因是(大型系统的复杂性)。
7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件这就是软件工程诞生的基础。
8. 下列不属于软件工程的3个要素的是(D)A.工具B.过程C.方法D.环境软件工程过程与软件生命周期9. 软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期10.软件生命周期中所花费用最多的阶段是(软件维护)11.软件开发的结构化生命周期方法将软件生命周期划分成(定义、开发、运行维护)。
12. 软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
软件工程的目标与原则13. 软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,主体内容是软件开发方法学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
14. 软件工程的理论和技术性研究的内容主要包括软件开发技术和(软件工程管理)15. 软件工程的原则包括抽象、信息隐藏、模块化、局部化、确定性、一致性、完备性和可验证性。
软件开发工具与软件开发环境16. 开发软件时对提高开发人员工作效率至关重要的是(先进的软件开发工具和环境)17. 软件开发环境是全面支持软件开发全过程的软件工具集合。
常用的软件开发方法和技术可以分为三大类:瀑布型、增量型和变换型。
瀑布型开发方法将软件生命周期的各项活动规定为按固定顺序连接的若干阶段,强调早期的需求分析和开发的阶段性,强调产品测试;但是不能适应需求的变化。
增量型则先建立一个不完全的系统,通过对需求的理解再进一步扩充和完善。
例:瀑布模型突出的缺点是不适应(D)的变动A.算法B.平台C)程序语言D.用户需求二、结构化分析方法需求分析与需求分析方法18. 在软件生产过程中,需求信息的给出是(软件用户)。
19. 需求分析中,开发人员要从用户那里了解(软件做什么)。
20. 需求分析阶段的任务是确定(软件系统功能)21. 需求分析的任务是发现需求、求精、建模和定义需求的过程。
需求分析将创建所需的数据模型、功能模型和控制模型22. 需求分析阶段的工作:需求获取、需求分析、编写需求规格说明书、需求评审下列工具中属于需求分析常用工具的是(D)。
A)PAD B)PFD C)N—S D)DFD结构化分析方法常用的需求分析方法:(1)结构化分析方法。
主要包括:面向数据流的结构化分析方法(SA),面向数据结构的Jackson方法(JSD)和面向数据结构的结构化数据系统开发方法(DSSD)(2)面向对象的分析方法(OOA)23. 结构化方法的核心和基础是结构化程序设计理论24. 下列不属于结构化分析的常用工具的是(D)。
A)数据流图B)数据字典C)判定树D)PAD图25. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A)可行性分析B)需求分析C)详细设计D)程序编码26. 数据流图用于抽象描述一个软件的逻辑模型.数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是(A)。
A)控制流B)加工C)数据存储D)源和潭说明:数据流图中的主要图形元素与说明:27. 在数据流图(DFD)中的箭头代表的是(数据流)28. 在数据流图(DFD)中,带有名字的箭头表示(数据的流向)。
29. 在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典软件需求规格说明书30. 软件需求规格说明书是需求分析阶段的最后结果31. 下列叙述中,不属于软件需求规格说明书的作用的是(D)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析32. (数据描述)是对软件系统所必须解决的问题做出的详细说明说明:需求规格说明书一般包括以下内容:概述、数据描述、性能描述、功能描述、参考文献目录等。
其中概述从系统角度描述软件的目标和任务;功能描述中描述了为解决用户问题所需要的每一项功能的过程细节;性能描述说明系统应达到的性能和应该满足的限制条件、检测的方法和标准。
三、结构化设计方法软件设计的基本概念33. 在软件开发中,下面任务不属于设计阶段的是(D)A)数据结构设计B) 给出系统模块结构四、C)定义模块算法D)定义需求并建立系统模型34. 软件设计包括软件的结构、数据、接口和过程设计,其中软件的过程设计是指(系统结构部件转换成软件的过程描述)。
说明:结构设计:定义软件系统各主要部件之间的关系;数据设计:将分析时创建的模型转化为数据结构的定义;接口定义:描述软件内部、软件和协作系统之间以及软件与人之间如何通信;过程设计:把系统结构部件转换成软件的过程性描述。
35. 下面不属于软件设计原则的是(C)A.抽象B.模块化C.自底向上D.信息隐藏36. 耦合和内聚是评价模块独立性的两个主要标准,其中内聚反映了模块内各成分之间的联系,耦合反映了模块间互相连接的紧密程度。
37. 内聚性是信息隐蔽和局部化概念的自然扩展,一个模块的内聚性越强,则该模块的模块独立性越强。
一个模块与其它模块的耦合性越强,则它的模块独立性越弱。
38. 下列叙述中,正确的是(C)A.接口复杂的模块,其耦合程度一定低B.耦合程度弱的模块,其内聚程度一定低C.耦合程度弱的模块,其内聚程度一定高D.以上都不对39.下列选项中,不属于模块间耦合的是(B)。
A.数据耦合B.同构耦合C.异构耦D.公用耦合40.软件设计中,有利于提高模块独立性的一个准则是( C)。
A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合来源:概要设计41. 软件的概要设计又称为总体结构设计,其主要任务是建立软件系统的总体结构,设计数据结构及数据库,编写概要设计文档,概要设计文档评审。
42. 在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C)A.详细设计B.需求分析C.总体设计D.编程调试43. 在概要设计阶段,常用的软件结构设计工具是结构图(sc),也称程序结构图。
生成的结构图中,带有箭头的连线表示(模块之间的调用关系),矩形表示模块。
44. 在概要设计阶段,一般采用面向数据流的设计方法。
数据流的类型有变换型和事务型。
将变换型映射成结构图称为变换分析。
将事务型映射成结构图称为事务分析。
45. 好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。
46. 模块的控制范围包括它本身以及它所有的从属模块,模块的作用范围是指模块内一个判定的作用范围,凡是受到这个判定影响的所有模块都属于这个判定的作用范围。
理想的情况是(模块的作用范围应在控制范围内)详细设计47. 详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用选定的表达工具表示算法和数据结构的细节。
确定怎样来具体实现所要求的系统。
48. 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为(N—S图)。
49. 详细设计的结果基本决定了最终程序的(质量)。
50. 软件设计模块化的目的是降低复杂性。
51. 详细设计的典型语言描述工具是(PDL)结构化分析(需求阶段)的常用工具有:数据流图(DFD)、数据字典(DD)、判定树和判定表结构设计(概要设计阶段)工具是:结构图(SC, structure chart)过程设计(详细设计阶段)常见的工具有:程序流程图、N—S图、PAD图(问题分析图,)和PDL( 过程设计语言)四、软件测试软件测试的目的52. 在软件测试设计中,软件测试的主要目的是(D)。
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.发现软件错误而执行程序(注意:不是为了证明软件的正确性,也不是为了找出全部错误)软件测试的准则53. 下列叙述中.不属于测试的特征的是(C)。
A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性软件测试技术与方法软件测试方法从是否需要执行被测试软件的角度,可以分为静态测试和动态测试;按功能划分为白盒测试和黑盒测试。
静态测试包括代码检查、静态结构分析、代码质量量度等白盒测试和黑盒测试都属于动态测试白盒测试的主要方法:逻辑覆盖、基本路径测试等黑盒测试的主要方法:等价类划分法、边界值分析法、错误推测法、因果图等54. 下列不属于静态测试方法的是(B)。
A.代码检查B.白盒法C.静态结构分析D.代码质量度量55. 在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看做是(A)。
A.路径的集合B.循环的集合C.目标的集台D.地址的集合56. 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是(A)A.黑箱测试法B.白箱测试法C.错误推测法D.安装测试法来源:57. 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,不考虑程序内部的逻辑结构,在软件接口处进行。
常用的黑箱测试有等价分类法、边界值分析法、因果图法和错误推测法4种。
软件测试的实施58. 软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试58.检查软件产品是否符合需求定义的过程称为(A)A.确认测试B.集成测试C.验证测试D.验收测试说明:软件的测试过程一般按4个步骤进行:单元测试:对软件设计的最小单位—模块进行正确性检验的测试,发现模块内部可能存在的错误。
由于模块通常不是一个独立的程序,不能单独运行,所以常常需要用到模拟环境。
可以采用静态测试和动态测试(以白盒测试为主)。