2011年计算机等级考试二级公共基础知识_软件工程基础
计算机二级【公共基础知识】软件工程基础课件
需求优先级排序
根据项目目标和资源情况,对需 求进行优先级排序,确定哪些需 求是关键的、紧急的。
建立需求模型
使用合适的工具和技术,如原型 、流程图等,建立需求模型,帮 助团队更好地理解和管理需求。
需求规格说明
编写需求规格说明书
根据需求分析结果,编写详细的需求规格说明书,明 确各项需求的详细描述、功能要求和验收标准。
评审与确认
组织相关人员对需求规格说明书进行评审和确认,确 保其准确性和完整性。
发布与更新
将需求规格说明书发布给相关人员,并建立更新和维 护机制,确保其始终与项目实际情况保持一致。
需求验证与管理
验证需求
通过原型、测试用例等方式验证需求的正确 性和可行性,确保开发出来的软件能够满足 用户需求。
变更控制
02
需求获取
01
确定需求来源
识别并确定需求来源,包括用户、利益相关者和其他关 键干系人。
02
制定需求获取计划
制定详细的需求获取计划,包括时间、地点、人员和资 源等。
03
采集需求信息
通过访谈、问卷调查、原型演示等方式采集需求信息, 确保信息的准确性和完整性。
需求分析
需求分类
对获取的需求进行分类,明确哪 些是功能性需求,哪些是非功能 性需求。
需求分析
对软件需求进行重新审查和确认,确 保软件需求满足新的要求或变化。
设计修改
根据需求分析的结果,对软件的体系 结构、数据结构、接口等进行修改和 优化。
编码和测试
根据修改后的设计,进行代码编写和 测试,确保软件功能和性能的正确性 和稳定性。
软件可维护性
01
02
03
04
05
软件可维护性包 括四个方面
二级公共基础知识软件工程基础模拟题
[模拟] 二级公共基础知识软件工程基础单项选择题第1题:软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件),下面属于应用软件的是______。
A.编译程序B.操作系统C.教务管理系统D.汇编程序参考答案:C操作系统属于系统软件,编泽程序与汇编程序都属于支撑软件,而教务管理系统是属于应用软件的。
第2题:软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是______。
A.编辑软件B.操作系统C.教务管理系统D.浏览器参考答案:B本题考查的知识点是软件的分类。
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
操作系统是系统软件。
即本题的答案为B。
第3题:软件是指______。
A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档参考答案:D计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
可见软件由两大部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护和使用等有关的文档。
第4题:下列选项中不属于软件生命周期开发阶段任务的是______。
A.软件测试B.概要设计C.软件维护D.详细设计软件生命周期分为软件定义、软件开发及软件维护。
其中软件开发阶段的任务中软件设计阶段可分解成概要设计阶段和详细设计阶段;软件维护不属于软件开发阶段。
第5题:下列描述中正确的是______。
A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题参考答案:C软件工程是计算机软件开发和维护的工程学科,它采用工程的概念原理、技术和方法来开发和维护软件,它把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来。
第6题:下面描述中,不属于软件危机表现的是______。
计算机二级【公共基础知识】软件工程基础课件
包括自顶向下设计和逐步细化设计两 个步骤,通过逐步分解系统,将复杂 问题分解为简单问题,便于开发人员 理解和实现。
面向对象设计方法
面向对象设计方法的概念
面向对象设计方法是一种基于对象的设计技术,将数据和操 作封装在对象中,通过对象之间的交互实现系统的功能。
面向对象设计方法的步骤
需求分析
需求分类
对获取的需求进行分类,明确哪些是功能性需求,哪些是非功能性 需求。
需求优先级排序
根据项目目标和利益相关者的关注点,对需求进行优先级排序,确 定哪些需求是必须满足的,哪些是可协商的。
建立需求模型
通过建立数据流图、实体关系图等模型,对需求进行详细分析和描 述。
需求规格说明书
编写需求规格说明书
测试执行是按照测试计划和测试用例执行测试的过程,而测试报告是记录测试结果和提供决策依据的重要文档。
在测试执行过程中,应按照测试计划和测试用例的要求,对软件系统进行逐项测试,并记录测试结果和发现的问题。测试报 告应详细记录测试过程、方法、结果和结论,并提供决策依据和建议。同时,测试报告还应包括问题跟踪和管理,以确保所 有发现的问题得到及时解决和验证。
迭代模型
在开发过程中不断迭代,逐步完善软件功能,逐步进行测试 和维护。
螺旋模型
强调风险分析,将瀑布模型和迭代模型相结合,逐步完善软 件功能。
敏捷开发方法
概念
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作和灵活性。
常见方法
Scrum、极限编程等。
特点
快速响应变化,快速交付价值,持续改进和团队成员的高度协作。
软件工程的重要性
提高软件质量
通过采用工程化的方法和技术, 可以减少软件缺陷和漏洞,提高
计算机二级公共基础背诵资料
2011年3月第32次二级考试公共基础考前背诵版下面分为四个部分进行罗列。
文中标注了三个星号★★★的,表示非常重要,基本每次考试都是必考;标注了两个星号或一个星号的也较重要,很容易考到。
出现在【】括号中的内容,表示要很精确的背下来的。
整个文档中的五页,建议考前一周开始认真的记忆。
第一部分算法与数据结构(历年比例41%)1、算法★问题处理方案的正确而完整的描述称为【算法】。
算法分析的目的是,分析算法的效率以求改进。
算法的基本特征是【可行性】、【确定性】、【有穷性】和拥有足够情报。
◆算法的有穷性是指:算法程序的运行时间是有限的。
◆算法的复杂度是衡量算法好坏的度量,分为【时间复杂度】和【空间复杂度】。
★★时间复杂度是指执行算法所需要的【计算工作量】;算法的空间复杂度是指算法执行过程中所需的【存储空间】。
陈述“时间复杂度是执行算法程序所需的时间”错误。
◆算法时间复杂度或空间复杂度中的一项的值,没有办法推出另一项的值。
2、数据结构★数据结构分为【逻辑结构】和【存储结构】。
线性结构和非线性结构属于逻辑结构;顺序、链式、索引属于存储结构(物理结构)。
循环队列属于【存储结构】。
★数据的【存储结构】又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。
◆一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
程序执行的效率与数据的存储结构密切相关。
◆数据结构分为线性结构和非线性结构,带链的队列属于【线性结构】。
◆线性表的存储结构主要分为顺序存储结构和链式存储结构。
顺序存储结构的存储一定是连续的,链式存储的存储空间不一定是连续的。
◆有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
◆数据的独立性分为【物理独立】性和【逻辑独立】性。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序可以不用修改,称为【物理独立】性。
3、栈和队列★★栈是一种特殊的线性表,是只能在一端进行插入和删除的线性表,特点是FILO(First In Last Out)。
全国计算机等级考试二级公共基础知识-软件工程
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)模块独立性:模块的独立程度是评价设 计好坏的重要度量标准。衡量软件的模块独立性 使用耦合性和内聚性两个定性的度量标准。一个 模块的内聚性越强则该模块的模块独立性越强。 一个模块与其他模块的耦合性越强则该模块的模 块独立性越弱。
2011年全国计算机等级考试二级公共基础复习...
二级公共基础知识总结第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
计算机2级公共基础知识课件-软件工程
第25页
软件工程方面的考题:
(1) 下面叙述中错误的是 A A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (2) 软件测试可分为白盒测试和黑盒测试。基本路径测试属于【白盒】 测试。 单元 测试之后进行。 (3) 按照软件测试的一般步骤,集成测试应在_____
确定开发目标和总的要求,给出功能、可靠性 等可能方案,制定实施计划. 对软件需求进行分析并给出详细定义,编写软件 规格说明书及初步的用户手册,提交评审。 给出软件的结构、模块和功能的划分等,确定算法。 编写概要设计、详细设计说明书和测试计划初稿。 源程序编码,把软件设计转换成计算机 可以接受的程序代码。编写用户手册、 操作手册和单元测试计划。 设计测试用例,检验软件各 个组成部分。编写测试分析 报告。 将已交付的软件投入运行, 并在运行使用中不断地维护, 根据新提出的需求进行必要 而且可能的扩充和删改。
第5页
软件危机 (Software
Crisis)
落后的软件生产方式无法满足迅速增长的计算机软件 需求,从而导致软件开发与维护过程中出现一系列严 重问题的现象。 软件危机主要表现在: 软件开发费用和进度失控。费用超支、进度拖延的 情况屡屡发生。有时为了赶进度或压成本不得不采 取一些权宜之计,这样又往往严重损害了软件产品 的质量。 软件的可靠性差。尽管耗费了大量的人力物力,而 系统的正确性却越来越难以保证,出错率大大增加 ,由于软件错误而造成的损失十分惊人。 第6页 ……
全国计算机二级考试公共基础知识2011_赵辅
全国计算机二级考试公共基础知识(全)1数据结构与算法1.算法的概念、算法时间复杂度(计算工作量)及空间复杂度(内存空间)的概念描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
2.数据结构的定义、数据逻辑结构(逻辑关系)及物理结构(存储结构)的定义3.栈的定义及其运算、线性链表的存储方式如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。
栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
栈是按照"先进后出"或"后进先出"的原则组织数据的。
4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历具有以下两个特点:①非空二叉树只有一个根结点;②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。
二叉树具有以下几个性质:性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点;性质2:深度为m的二叉树最多有2m-1个结点;性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
性质4:具有n个结点的二叉树,其深度至少为〔log2n〕+1,其中〔log2n〕表示取log2n的整数部分。
性质5:具有n个结点的完全二叉树的深度为〔log2n〕+1。
小技巧:在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉树的叶子结点的先后顺序都是不变的。
3、满二叉树与完全二叉树满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。
在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m -1个结点。
完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
全国计算机等级考试二级公共基础知识_3软件工程
全国计算机等级考试二级公共基 础知识_3软件工程
软件工程基本概念,软件生命周期概念,软 件工具与软件开发环境。
结构化分析方法,数据流图,数据字典,软 件需求规格说明书。
结构化设计方法,总体设计与详细设计。 软件测试的方法,白盒测试与黑盒测试,测
试用例设计,软件测试的实施,单元测试、 集成测试和系统测试。 程序的调试,静态调试与动态调试。
(1)软件开发技术,主要有软件开发方法学、开发过 程、软件工具、软件工程环境,其主体内容是软件开 发方法学。 (2)软件工程管理,主要有软件管理、软件工程经济 学、软件心理学。
软件工程的主要思想是将工程化原则运用到软件开发 过程,它包括3个要素:方法、工具和过程。方法是完 成软件工程项目的技术手段;工具是支持软件的开发 、管理、文档生成;过程支持软件开发的各个环节的 控制、管理。
3. 软件生命周期
将软件产品从提出、实现、使用维护到停止使用退役 的过程称为软件生命周期
分为软件定义、软件开发及软件运行维护3个阶段。维 护是持续时间最长,花费代价最大的一个阶段,软件 工程学的一个目的就是提高软件的可维护性,降低维 护代价
6个活动阶段
可行性研究与计划制定:确定系统的总体目标。参加人员有用 户、项目负责人和系统分析员,产生文档有可行性分析报告、 项目计划书等
全国计算机等级考试二级公共基 础知识_3软件工程
在笔试考试中,是一个经常考查的内容,考核的几 率为70%,主要是以选择题的形式出现,分值为2分 ,此考点为识记内容,读者应该识记软件的定义, 特点及其分类。
全国计算机等级考试二级公共基 础知识_3软件工程
1.软件的定义与组成
软件指的是计算机系统中与硬件相互依存的另一部 分,包括程序、数据和相关文档的完整集合。程序 是软件开发人员根据用户需求开发的、用程序设计 语言描述的、适合计算机执行的指令序列。数据是 使程序能正常操纵信息的数据结构。文档是与程序 的开发、维护和使用有关的图文资料。
2011年计算机二级公共基础知识教程(3)
第三章软件工程基础一、学习目标与要求1.了解软件工程的基本概念;2.了解软件工程过程与软件的生命周期,以及软件工程的目标和原则;3.了解利用结构化分析法进行软件工程中的需求分析的方法,并了解需求分析的方法和需要完成的任务;4.了解数据流图的使用方法;5.了解如何利用结构化设计方法进行软件设计,并了解软件设计的一些常用用工具;6.了解软件测试的目的和方法,以及软件测试的准则,了解常用的软件测试方法的区别和各自的功能与特点;7.了解程序调试的方法和原则。
二、内容要点(一)软件工程基本概念1.软件定义与软件特点1)软件的定义与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
2)软件的特点(1)软件是一种逻辑实体,而不是物理实体,具有抽象性;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;但为了适应硬件、环境以及需求的变化要进行修改,会导致一些错误的引入,导致软件失效率升高,从而使得软件退化;(4)软件的开发、运行对计算机系统具有依赖性,受到计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵。
软件开发需要投入大量、高强度的脑力劳动,成本高,风险大;(6)软件开发涉及诸多的社会因素。
许多软件的开发和运行涉及软件用户的机构设置,体制问题以及管理方式等,甚至涉及到人们的观念和心理,软件知识产权及法律等问题。
3)软件的分类按功能分,可分为:应用软件:为解决特定领域的应用而开发的软件系统软件:是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件支撑软件(或工具软件):介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件2.软件危机与软件工程1)软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
它主要表现在:(1)软件需求的增长得不到满足,用户对系统不满意的情况经常发生;(2)软件开发成本和进度无法控制。
计算机二级考试msoffice知识积累:软件工程基础优选份
计算机二级考试msoffice知识积累:软件工程基础优选份计算机二级考试msoffice知识积累:软件工程基础 11.软件的定义与特点(1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。
(2)特点。
-是逻辑实体,有抽象性。
-生产没有明显的制作过程。
-运行使用期间不存在磨损、老化问题。
-开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。
-复杂性较高,成本昂贵。
-开发涉及诸多社会因素。
2.软件的分类软件可分应用软件、系统软件和支撑软件3类。
(1)应用软件是特定应用领域内专用的软件。
(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
(3)支撑软件介于系统软件和应用软件之间,是支援其它软件的开发与维护的软件。
3.软件危机与软件工程软件危机指在计算机软件的开发和维护中遇到的一系列严重问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序,包括软件开发技术和软件工程管理。
4.软件生命周期软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。
在国家标准中,软件生命周期划分为8个阶段①软件定义期:包括问题定义、可行性研究和需求分析3个阶段。
②软件开发期:包括概要设计、详细设计、实现和测试4个阶段。
③运行维护期:即运行维护阶段。
5.软件工程的原则软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2结构化分析方法需求分析的任务是发现需求、求精、建模和定义需求的过程,可概括为:需求获取、需求分析、编写需求规格说明书和需求评审。
1.常用的分析方法-结构化分析方法:其实质着眼于数据流,自顶向下,逐层分解,建立系统的处理流程。
-面向对象分析方法。
2.结构化分析常用工具结构化分析常用工具包括数据流图、数字字典(核心方法)、判断树和判断表。
2011年全国计算机等级考试公共基础
2011年全国计算机等级考试第一章数据结构与算法考点1:算法1.算法的时间复杂度是指算法执行过程中所需要的基本运算次数。
2.算法的空间复杂度是指算法执行过程中所需要的存储空间。
3.算法通常由两种基本要素组成,一是对数据对象的运算和操作,二是算法的控制结构。
4.在同一个问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用平均性态和最坏情况复杂性两种方法来分析算法的工作量。
5.算法设计基本方法主要有列举法、归纳法、递推、递归和减半递推技术。
考点2:数据结构的基本概念1.数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
一般说来,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
2.所谓数据处理,是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。
3.数据结构是指相互有关联的数据元素的集合。
4.数据元素之间的任何关系都可以用前驱和后继关系来描述。
5.在数据结构中,没有前驱的结点称为根结点,没有后继的结点称为终端结点(也称为叶子结点)。
数据结构中除了根结点与终端结点外的其他结点一般称为内部结点。
6.在数据结构中,结点及结点间的相互关系是数据的逻辑结构。
数据结构按逻辑关系的不同,通常可分为线性结构和非线性结构两类。
7.一个非空的数据结构满足以下两点:有且只有一个根结点;每一个结点最多有一个前驱,也最多有一个后继,则称该数据结构为线性结构,线性结构又称线性表。
线性结构与非线性结构都可以是空的数据结构,一个空的数据结构究竟属于线性结构还是非线性结构,根据具体情况来确定。
考点3:线性表及其顺序存储结构1.给定一个有n个元素的线性表,若采用顺序存储结构,则在等概率前提下,向其插入一个元素需要移动的元素个数平均为n/2。
2.在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录。
计算机等级考试二级公共基础知识-3软件工程
3.1 基本概念
3.软件旳分类
根据应用目旳旳不同,软件可分应用软件、系统软 件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定 目旳服务旳一类软件。
(2)系统软件。它能与计算机硬件紧密配合在 一起,使计算机系统各个部分、有关旳软件和数据 协调、高效旳工作旳软件。例如:操作系统、数据 库管理系统。
4) 局部化:确保模块间具有涣散旳耦合关系,模块内部有较强旳内聚性。 5) 拟定性:软件开发过程中全部概念旳体现应是拟定、无歧义且规范旳。 6) 一致性:程序内外部接口应保持一致,系统规格阐明与系统行为应保持一致。 7) 完备性:软件系统不丢失任何主要成份,完全实现系统所需旳功能。
6. 软件工程旳目旳
3.2 构造化分析措施
基本思想
将系统分析看成工程项目,有计划、有环节地进行工作。
开发策略
自顶向下,逐层分解
分析成果
一套分层旳数据流图(DFD):用来描述数据流从输入到输出旳 变换流程
一种数据字典(DD):用来描述DFD中旳每个数据流、文件以 及构成数据流或文件旳数据项
一组小阐明(加工逻辑阐明):用来描述每个基本加工旳加 工逻辑
在给定旳成本、进度旳前提下,开发出具有有效性、 可靠性、可了解性、可维护性、可适应性、可移植性、 可追踪性和可互操作性且满足顾客需求旳产品
软件工程鼓励研制和采用多种先进旳软件开发措施、 工具和环境
7. 软件工具和软件开发环境
软件工具(CASE):用来辅助软件开、运营、维护、管理、 支持等过程中旳活动旳软件
编码:编程。高级程序员和程序员产生源程序清单
测试:由另一部门旳高级程序员或系统分析员产生 软件测试计划和软件测试报告
运营维护
二级公共基础知识--软件基础
软件工程目标与原则
软件工程的目标是在给定成本、进度的前提下,开发 出具有有效性、可靠性、可理解性、可维护性、可重 用性、可适应性、可移植性、可追踪性和可互操作性 且满足用户需求的软件产品。 为达到上述目标,在软件开发的过程中,必须遵循软 件工程的基本原则:
抽象 信息隐蔽 模块化 局部化 确定性 一致性 完备性 可验证性
数据流图(DFD):描述数据在系统中如何被传送或变换以及 描述如何对数据流进行变换的功能,用于功能建模。 数据字典 判定树 判定表
数据流图
数据流图是描述数据处理过程的工具,它从数 据传递和加工的角度,来刻画数据流从输入系 统到从系统输入的移动变换过程。 数据流图的基本元素
测试技术与方法综述
按照功能划分,可将软件测试分为黑盒测试和白盒测 试。 黑盒测试将测试对象看作一个黑盒,不考虑程序内部 的逻辑结构和内部特性,只依据程序的需求规格说明, 检查程序的功能是否符合它的功能说明。这种测试又 称为功能测试或数据驱动测试。 白盒测试把测试对象看作一个透明的盒子,利用程序 内部的逻辑机构及有关信息,设计或选择测试用例, 对程序的所有逻辑路径进行测试。通过在不同点检查 程序的状态,确定实际的状态是否与预期的一致。这 种测试又称为结构测试或逻辑驱动测试。
程序设计风格
除了程序设计设计方法和技术之外,程 序风格也是非常重要的。良好的程序设 计风格概括起来包括以下及格方面:
源程序文档化 数据说明的方法 语句的结构 输入和输出
程序设计风格
源程序文档化
标识符的命名 程序的注释
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年全国计算机等级考试二级公共基础知识总结:软件工程基础3.1 软件工程基本概念1、软件的相关概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素。
2、软件危机与软件工程软件工程源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:方法、工具和过程。
方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
3、软件生命周期软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期分为软件定义、软件开发及软件运行维护三个阶段:1)软件定义阶段:包括制定计划和需求分析。
制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。
需求分析:对待开发软件提出的需求进行分析并给出详细的定义。
2)软件开发阶段:软件设计:分为概要设计和详细设计两个部分。
软件实现:把软件设计转换成计算机可以接受的程序代码。
软件测试:在设计测试用例的基础上检验软件的各个组成部分。
3)软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。
4、软件工程的目标和与原则(1)软件工程目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
(2)软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。
(3)软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
1)抽象:2)信息隐蔽:3)模块化:4)局部化:5)确定性:6)一致性:7)完备性:8)可验证性:3.2 结构化分析方法1、需求分析需求分析方法有:1)结构化需求分析方法;2)面向对象的分析方法。
2、结构化分析方法结构化分析方法是结构化程序设计理论在软件需求分析阶段的应用。
结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具:1)数据流图(DFD);2)数据字典(DD);3)判定树;4)判定表。
数据流图的基本图形元素:加工(转换):输入数据经加工变换产生输出。
数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。
存储文件(数据源):表示处理过程中存放各种数据的文件。
源,潭:表示系统和环境的接口,属系统之外的实体。
3.3 结构化设计方法1、软件设计的基础从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
从工程角度来看,软件设计分两步完成,即概要设计和详细设计。
概要设计:又称结构设计,将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。
详细设计:确定每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。
1)抽象。
抽象是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。
2)模块化。
解决一个复杂问题时自顶向下逐步把软件系统划分成一个个较小的、相对独立但又不相互关联的模块的过程。
3)信息隐蔽。
每个模块的实施细节对于其他模块来说是隐蔽的。
4)模块独立性。
软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
*:模块分解的主要指导思想是信息隐蔽和模块独立性。
模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。
内聚性:是一个模块内部各个元素间彼此结合的紧密程度的度量。
*:按内聚性由弱到强排列,内聚可以分为以下几种:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚及功能内聚。
耦合性:是模块间互相连接的紧密程度的度量。
*:按耦合性由高到低排列,耦合可以分为以下几种:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合以及非直接耦合。
一个设计良好的软件系统应具有高内聚、低耦合的特征。
在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。
2、总体设计(概要设计)和详细设计(1)总体设计(概要设计)软件概要设计的基本任务是:1)设计软件系统结构;2)数据结构及数据库设计;3)编写概要设计文档;4)概要设计文档评审。
常用的软件结构设计工具是结构图,也称程序结构图。
程序结构图的基本图符:模块用一个矩形表示,箭头表示模块间的调用关系。
在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。
还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据信息。
(2)详细设计详细设计是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
常用的过程设计(即详细设计)工具有以下几种:图形工具:程序流程图、N-S(方盒图)、PAD(问题分析图)和HIPO(层次图+输入/处理/输出图)。
表格工具:判定表。
语言工具:PDL(伪码)3.4 软件测试1、软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误。
软件测试的关键是设计测试用例,一个好的测试用例能找到迄今为止尚未发现的错误。
2、软件测试方法:静态测试和动态测试。
静态测试:包括代码检查、静态结构分析、代码质量度量。
不实际运行软件,主要通过人工进行。
动态测试:是基于计算机的测试,主要包括白盒测试方法和黑盒测试方法。
(1)白盒测试白盒测试方法也称为结构测试或逻辑驱动测试。
它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。
白盒测试的基本原则:保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。
*:白盒测试法的测试用例是根据程序的内部逻辑来设计的,主要用软件的单元测试,主要方法有逻辑覆盖、基本路径测试等。
A、逻辑覆盖。
逻辑覆盖泛指一系列以程序内部的逻辑结构为基础的测试用例设计技术。
通常程序中的逻辑表示有判断、分支、条件等几种表示方法。
语句覆盖:选择足够的测试用例,使得程序中每一个语句至少都能被执行一次。
路径覆盖:执行足够的测试用例,使程序中所有的可能的路径都至少经历一次。
判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支(T或F)至少经历一次。
条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。
判断-条件覆盖:设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执行一次。
*:逻辑覆盖的强度依次是:语句覆盖<路径覆盖<判定覆盖<条件覆盖<判断-条件覆盖。
B、基本路径测试。
其思想和步骤是,根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例,对每一条独立执行路径进行测试。
(2)黑盒测试黑盒测试方法也称为功能测试或数据驱动测试。
黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。
黑盒测试主要诊断功能不对或遗漏、接口错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错误。
黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例,主要方法有等价类划分法、边界值分析法、错误推测法等,主要用软件的确认测试。
3、软件测试过程一般按4个步骤进行:单元测试、集成测试、确认测试和系统测试。
3.5 程序的调试程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行,调试程序应该由编制源程序的程序员来完成。
程序调试的基本步骤:(1)错误定位;(2)纠正错误;(3)回归测试。
软件的调试后要进行回归测试,防止引进新的错误。
软件调试可分为静态调试和动态调试。
静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的调试手段,而动态调试是辅助静态调试。
对软件主要的调试方法可以采用:(1)强行排错法。
(2)回溯法。
(3)原因排除法。