公共基础之软件工程基础
计算机二级【公共基础知识】软件工程基础课件
需求优先级排序
根据项目目标和资源情况,对需 求进行优先级排序,确定哪些需 求是关键的、紧急的。
建立需求模型
使用合适的工具和技术,如原型 、流程图等,建立需求模型,帮 助团队更好地理解和管理需求。
需求规格说明
编写需求规格说明书
根据需求分析结果,编写详细的需求规格说明书,明 确各项需求的详细描述、功能要求和验收标准。
评审与确认
组织相关人员对需求规格说明书进行评审和确认,确 保其准确性和完整性。
发布与更新
将需求规格说明书发布给相关人员,并建立更新和维 护机制,确保其始终与项目实际情况保持一致。
需求验证与管理
验证需求
通过原型、测试用例等方式验证需求的正确 性和可行性,确保开发出来的软件能够满足 用户需求。
变更控制
02
需求获取
01
确定需求来源
识别并确定需求来源,包括用户、利益相关者和其他关 键干系人。
02
制定需求获取计划
制定详细的需求获取计划,包括时间、地点、人员和资 源等。
03
采集需求信息
通过访谈、问卷调查、原型演示等方式采集需求信息, 确保信息的准确性和完整性。
需求分析
需求分类
对获取的需求进行分类,明确哪 些是功能性需求,哪些是非功能 性需求。
需求分析
对软件需求进行重新审查和确认,确 保软件需求满足新的要求或变化。
设计修改
根据需求分析的结果,对软件的体系 结构、数据结构、接口等进行修改和 优化。
编码和测试
根据修改后的设计,进行代码编写和 测试,确保软件功能和性能的正确性 和稳定性。
软件可维护性
01
02
03
04
05
软件可维护性包 括四个方面
计算机二级【公共基础知识】软件工程基础【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:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
二级公共基础知识软件工程基础模拟题
[模拟] 二级公共基础知识软件工程基础单项选择题第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题:下面描述中,不属于软件危机表现的是______。
公共基础知识软件工程基础
公共基础知识软件工程基础汇报人:日期:•软件工程概述•软件开发生命周期•软件开发模型•软件需求工程•软件设计基础•软件工程管理基础•软件工程工具与技术目录软件工程概述软件的定义软件的特点软件的定义与特点软件工程的目标是实现软件的可靠性、可维护性、可扩展性和可重用性,同时满足用户的需求和期望。
软件工程的定义与目标软件工程的目标软件工程的定义提高软件质量降低软件开发成本增强软件的可维护性满足用户需求软件工程的重要性软件开发生命周期需求分析阶段01020304设计阶段编码与测试阶段进行单元测试、集成测试和系统测试。
部署与维护阶段01020304软件开发模型线性开发流程文档驱动适用于稳定环境030201瀑布模型迭代开发每个迭代周期都包含需求分析、设计、编码、测试等阶段,逐步完善软件的功能和性能。
逐步完善适用范围广迭代模型快速响应轻文档跨职能团队敏捷开发模型类和继承面向对象开发模型使用类和继承的概念,通过定义类来创建对象,并通过继承来共享属性和方法。
对象导向面向对象开发模型是一种以对象为导向的开发方法,将现实世界中的事物抽象成对象,并定义对象的属性和方法。
适用于复杂系统面向对象开发模型适用于复杂系统的开发,特别是涉及多个模块和组件的项目。
面向对象开发模型软件需求工程01020304访谈问卷调查焦点小组观察原型法螺旋模型敏捷方法面向对象方法确定系统目标划分系统功能定义数据结构制定接口标准需求规格说明书编制软件设计基础软件设计的概念软件设计的原则软件设计的基本原则和概念软件设计的任务软件设计的过程软件设计的主要任务和过程软件质量要素软件设计中的质量要素包括可靠性、可用性、可维护性、可扩展性等,以确保软件产品能够满足用户需求并稳定运行。
关键技术软件设计中的关键技术包括面向对象编程、设计模式、架构模式等,以提高软件产品的质量和开发效率。
软件设计中的质量要素和关键技术软件工程管理基础任务分解资源估算估算方法软件项目估算基础制定进度计划确定关键路径监控与调整软件项目进度计划制定风险识别识别项目中可能出现的风险,如需求变更、技术难题、人员流失等。
计算机二级【公共基础知识】软件工程基础课件
包括自顶向下设计和逐步细化设计两 个步骤,通过逐步分解系统,将复杂 问题分解为简单问题,便于开发人员 理解和实现。
面向对象设计方法
面向对象设计方法的概念
面向对象设计方法是一种基于对象的设计技术,将数据和操 作封装在对象中,通过对象之间的交互实现系统的功能。
面向对象设计方法的步骤
需求分析
需求分类
对获取的需求进行分类,明确哪些是功能性需求,哪些是非功能性 需求。
需求优先级排序
根据项目目标和利益相关者的关注点,对需求进行优先级排序,确 定哪些需求是必须满足的,哪些是可协商的。
建立需求模型
通过建立数据流图、实体关系图等模型,对需求进行详细分析和描 述。
需求规格说明书
编写需求规格说明书
测试执行是按照测试计划和测试用例执行测试的过程,而测试报告是记录测试结果和提供决策依据的重要文档。
在测试执行过程中,应按照测试计划和测试用例的要求,对软件系统进行逐项测试,并记录测试结果和发现的问题。测试报 告应详细记录测试过程、方法、结果和结论,并提供决策依据和建议。同时,测试报告还应包括问题跟踪和管理,以确保所 有发现的问题得到及时解决和验证。
迭代模型
在开发过程中不断迭代,逐步完善软件功能,逐步进行测试 和维护。
螺旋模型
强调风险分析,将瀑布模型和迭代模型相结合,逐步完善软 件功能。
敏捷开发方法
概念
敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作和灵活性。
常见方法
Scrum、极限编程等。
特点
快速响应变化,快速交付价值,持续改进和团队成员的高度协作。
软件工程的重要性
提高软件质量
通过采用工程化的方法和技术, 可以减少软件缺陷和漏洞,提高
计算机等级考试二级公共基础知识-3软件工程
3.1 基本概念
3.软件旳分类
根据应用目旳旳不同,软件可分应用软件、系统软 件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定 目旳服务旳一类软件。
(2)系统软件。它能与计算机硬件紧密配合在 一起,使计算机系统各个部分、有关旳软件和数据 协调、高效旳工作旳软件。例如:操作系统、数据 库管理系统。
4) 局部化:确保模块间具有涣散旳耦合关系,模块内部有较强旳内聚性。 5) 拟定性:软件开发过程中全部概念旳体现应是拟定、无歧义且规范旳。 6) 一致性:程序内外部接口应保持一致,系统规格阐明与系统行为应保持一致。 7) 完备性:软件系统不丢失任何主要成份,完全实现系统所需旳功能。
6. 软件工程旳目旳
3.2 构造化分析措施
基本思想
将系统分析看成工程项目,有计划、有环节地进行工作。
开发策略
自顶向下,逐层分解
分析成果
一套分层旳数据流图(DFD):用来描述数据流从输入到输出旳 变换流程
一种数据字典(DD):用来描述DFD中旳每个数据流、文件以 及构成数据流或文件旳数据项
一组小阐明(加工逻辑阐明):用来描述每个基本加工旳加 工逻辑
在给定旳成本、进度旳前提下,开发出具有有效性、 可靠性、可了解性、可维护性、可适应性、可移植性、 可追踪性和可互操作性且满足顾客需求旳产品
软件工程鼓励研制和采用多种先进旳软件开发措施、 工具和环境
7. 软件工具和软件开发环境
软件工具(CASE):用来辅助软件开、运营、维护、管理、 支持等过程中旳活动旳软件
编码:编程。高级程序员和程序员产生源程序清单
测试:由另一部门旳高级程序员或系统分析员产生 软件测试计划和软件测试报告
运营维护
公共基础知识软件工程基础
验证、规范、高可靠性
详细描述
V-Model是一种基于瀑布模型的软件开发 方法,它强调在每个阶段进行验证和确认 ,以确保最终产品的可靠性和质量。VModel将软件开发过程分为两个阶段:左 侧阶段和右侧阶段。左侧阶段包括需求分 析、系统设计、详细设计等阶段,右侧阶 段包括编码、测试、部署等阶段。
Spiral开发方法
软件工程的诞生和发展
为了解决软件危机,人们开始研究软件工程,提出了许多理论和方法,如结构化程序设计 、面向对象程序设计、设计模式等。这些理论和方法不断发展和完善,成为现代软件工程 的基础。
02
软件工程的基本原理
面向对象编程(OOP)
总结词:一种编程范式,将程序看作对象的集合 ,以对象的交互来实现功能。
软件工程的重要性
提高软件质量
软件工程提供了一套系统的方法和 工具来管理和维护软件,从而提高 软件的质量。
降低软件开发成本
通过有效的需求分析、设计、编码 、测试和维护,软件工程可以降低 软件开发成本。
提高软件可维护性
软件工程强调软件的可维护性,通 过模块化、封装和抽象等技术来提 高软件的可维护性。
提高软件开发效率
总结词:一种编程范式,关注程 序的执行流程和操作顺序。
1. 流程控制:使用条件语句、循 环语句等控制结构来组织程序流 程。
3. 函数:可调用的子程序,将功 能封装成独立的模块。
模块化原理
总结词:将系统划分 为独立的模块,每个 模块具有特定的功能 。
详细描述
1. 模块化设计:将系 统划分为独立的模块 ,每个模块具有特定 的功能,便于代码的 维护和扩展。
代码度量与质量保证
代码度量是指对代码的质量、复杂度和可维护性等方面进行 评估的过程。通过代码度量可以发现潜在的问题,及时进行 改进。
最新公共基础知识必背!软件工程
最新公共基础知识必背!软件工程在软件工程领域,掌握一些必备的公共基础知识对于各种软件开发和项目管理非常重要。
本文将介绍一些最新的公共基础知识,帮助软件工程师在工作中更加高效和成功。
1. 面向对象编程(Object-Oriented Programming,简称OOP)面向对象编程是一种软件开发方法,它将现实世界中的事物抽象为对象,并通过定义对象的属性和方法来描述其行为。
在软件工程中,面向对象编程可以提高代码的重用性、可维护性和可扩展性。
2. 数据库管理系统(Database Management System,简称DBMS)数据库管理系统是一种用于存储和管理数据的软件工具。
它可以提供数据的安全性、完整性和一致性,并且可以方便地进行数据的查询和操作。
掌握数据库管理系统的基本原理和常用操作是软件工程师必备的技能之一。
3. 软件测试(Software Testing)软件测试是一种确保软件质量的过程,其目的是发现软件中的错误和缺陷,并确保软件在各种条件下都能正常运行。
软件测试可以提高软件的稳定性和可靠性,减少软件上线后出现的问题。
4. 网络安全(Network Security)随着互联网的快速发展,网络安全问题越来越突出。
软件工程师需要掌握一些网络安全的基本概念和技术,以保护系统免受未经授权的访问、数据泄露和恶意攻击。
5. 项目管理(Project Management)在软件工程领域,项目管理是必不可少的一项技能。
项目管理涉及计划、组织、控制和监督项目的各个阶段,以确保项目按时、按预算和按质量要求完成。
掌握项目管理的基本原理和方法,可以提高团队合作和项目交付的效率。
以上是一些最新的公共基础知识,软件工程师在日常工作中应该掌握和了解。
通过学习和实践这些知识,可以帮助软件工程师提高工作技能和解决问题的能力,从而取得更好的工作业绩。
公共基础之软件工程基础(最全)word资料
公共基础之软件工程基础(最全)word资料第三章软件工程基础1.下列叙述中,正确的是( D )。
A)软件就是程序清单B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果D)软件包括程序和文档2.软件是程序、数据和文档的集合。
3.软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)4.软件工程的出现是由于(C )A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展5.软件工程研究的内容主要包括:软件开发技术和软件工程管理。
6.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(B)A)软件投机B)软件危机C)软件工程D)软件产生7.开发大型软件时,产生困难的根本原因是( A )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重8.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件,这就是软件工程诞生的基础。
9.下列不属于软件工程的3个要素的是(D )A)工具B)过程C)方法D)环境10.软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
11.软件生命周期中所花费用最多的阶段是(D )A)详细设计B)软件编码C)软件测试D)软件维护12.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D )A)概要设计B)详细设计C)可行性分析D)需求分析13.软件开发的结构化生命周期方法将软件生命周期划分成( A )。
A) 定义、开发、运行维护B)设计阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计14.软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
15.软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
C语言公共基础知识之软件工程
详细设计
模块设计要完成的工作包括:
• 详细的算法过程设计 • 内部数据结构设计
• 程序逻辑结构设计
当前流行的表示程序逻辑结构的主要方式有: • 图形描述(程序流程图、N-S图及PAD图) • 语言描述(PDL)
详细设计
程序流程图:
程序流程图(Program Flow Chart)又称为程序
框图,是软件设计中经常使用的一种算法表达工
常用软件结构设计工具:结构图(SC)
一般模块 数据信息 控制信息
概要设计
2.面向数据流的设计方法
(1)数据流的类型:
变换型:取得数据、变换数据、输出数据 事务型:接受事务、分析确定其类型、选取活动通路
(2. )设计过程:
第一,分析、确认数据流图的类型; 第二,说明数据流的边界; 第三,把数据流映射为程序结构; 第四,根据设计准则对产生的结构进行细化和求精。
3.1.3软件工程过程与软件生命周期
• 软件工程过程:把输入转化为输出的一组彼此相关的
资源和活动。(通常把用户的要求转变为软件产品的过程 也叫做软件开发过程).
• 软件生命周期:将软件产品从提出、实现、使用维护到
停止使用退役的过程称为软件生命周期。
• 软件生命周期的三个阶段:
定义阶段(可行性研究、需求分析) 开发阶段(概要设计、详细设计、编码、测试) 运行维护阶段(使用、维护、退役)
返回
3.1.4软件工程的目标与原则
• 软件工程的目标:在给定成本、进度的前提下,开发出
具有有效性、可靠性、可理解性、可维护性、可重用性、 可适应性、可移植性、可追踪性和可互操作性且满足用户 需求的产品。
• 软件工程的原则:
抽象、信息隐蔽、模块化、局部化、确定性、一致性、完 备性、可验证性
第3章_公共基础软件工程基础-54页PPT资料
•结构化分析方法的实质:着眼于数据流,自顶向下, 逐层分解,建立系统的处理流程,以数据流图和数据 字典为主要工具,建立系统的逻辑模型。 •结构化分析的常用工具:1)数据流图(DFD);2) 数据字典(DD);3)判定树;4)判定表。 数据流图以图形的方式描绘数据在系统中流动和处理 的过程,它反映了系统必须完成的逻辑功能,是结构 化分析方法中用于表示系统逻辑模型的一种工具。
测试用例设计,软件测试的实施,单元测 试、集成测试和系统测试。 • 程序的调试,静态调试与动态调试。
计算机基础中心
第3章 软件工程基础
3.1 软件工程基本概念 3.2 结构化分析方法 3.3 结构化设计方法 3.4 软件测试 3.5 软件调试
计算机基础中心
例题
3.1 软件工程基本概念
• 3)模块化:模块是程序中相对独立的成分,一个独立的编程单位,应 有良好的接口定义。模块的大小要适中,模块过大会使模块内部的复 杂性增加,不利于模块的理解和修改,也不利于模块的调试和重用; 模块太小会导致整个系统表示过于复杂,不利于控制系统的复杂性。
• 4)局部化:保证模块间具有松散的耦合关系,模块内部有较强的内聚 性。
• 7. 软件工具和软件开发环境
– 软件工具(CASE):用来辅助软件开、运行、 维护、管理、支持等过程中的活动的软件
– 软件开发环境:支持软件产品开发的软件系统, 它由软件工具集和环境集成机制构成
计算机基础中心
3.2 结构化分析方法
• 基本思想 – 将系统分析看成工程项目,有计划、有步骤地进行工作。
计算机基础中心
例题
• 3. 软件生命周期
公共基础——软件工程基础
公共基础——软件工程基础软件工程基础知识1、构成计算机软件的是()。
A、源代码B、程序和数据C、程序和文档D、程序、数据及相关文档参考答案:D【解析】软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。
2、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A、编译程序B、操作系统C、教务管理系统D、汇编程序参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。
3、. 软件生命周期中的活动不包括()。
A、市场调研B、需求分析C、软件测试D、软件维护参考答案:A【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。
主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护,所以选择A。
4、负责数据库中查询操作的数据库语言是()。
A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言参考答案:C【解析】数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
5、软件生命周期是指()。
A、软件产品从提出、实现、使用维护到停止使用退役的过程B、软件从需求分析、设计、实现到测试完成的过程C、软件的开发过程D、软件的运行维护过程参考答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
6、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A、外模式B、内模式C、概念模式D、逻辑模式参考答案:B【解析】数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
二级-公共基础知识-第3章-软件工程基础ppt课件
本章考纲中要求的考试内容
1. 软件工程基本概念,软件生命周期概念,软件 工具与软件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件 需求规格说明书。
3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试 用例设计,软件测试的实施,单元测试、集成测试和 系统测试。 5. 程序的调试,静态调试与动态调试。
3
软件指的是计算机系统中与硬件相互依 存的另一部分,包括程序、数据和相关文档 的完整集合。
程序是软件开发人员根据用户需求开发 的、用程序设计语言描述的、适合计算机执 行的指令序列。数据是使程序能正常操纵信 息的数据结构。文档是与程序的开发、维护 和使用有关的图文资料。
4
可见,软件由两部分组成: 机器可执行的程序和数据; 机器不可执行的,与软件开发、运行、
8
1.3.2 软件危机与软件工程 软件危机:是泛指在计算机软件的开发和
维护过程中所遇到的一系列严重问题。 可以将软件危机归结为成本、质量、生产
率等问题。 软件工程概念的出现源自软件危机。 软件工程:就是试图用工程、科学和数学
的原理与方法研制、维护计算机软件的有关技 术及管理方法。
9
软件工程的主要思想就是强调在软件开发过 程中需要应用工程化原则。 软件工程包括3个要素,即方法、工具和过程。
19
定义阶段(或称分析阶段)是保证软件质量 的第一步,它的任务是复杂的,如何分析用户 要求,软件需求规格说明书用什么形式表示等 都需要有一定的技术来指导。由于在分析阶段 软件人员需要同用户进行讨论,这个阶段的方 法、模型、语言和工具都必须考虑到用户的特 点,既能完整精确地描述用户要求,又简单易 懂可以被广大用户接受。
公共基础 软件工程
第三章软件工程3.1 软件工程基本概念软件:包括程序、数据及相关文档的集合。
软件的特点:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件危机指计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件工程概念源自软件危机。
软件工程:是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
什么是软件工程?软件工程的3要素:方法、工具和过程。
方法:完成软件的技术手段;工具:支持软件的开发、管理、文档生成;过程:支持软件开发的各个环节的控制、管理。
软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(2)需求分析;对待开发软件的需求进行分析给出详细的定义。
(3)软件设计;给出软件的结构、模块划分、功能分配、处理流程。
(4)软件实现;把软件设计转换为计算机可以接受的代码。
(5)软件测试;检验软件的各个部分。
(6)运行和维护。
在运行中维护,根据新的需求进行必要的改进。
软件工程的目标和与原则:目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
软件工程研究的内容主要包括:软件开发技术和软件工程管理。
3.2 结构化分析方法结构化方法的核心和基础是结构化程序设计理论。
需求分析阶段的工作:(1)需求获取(2)需求分析(3)编写需求规格说明书(4)需求评审需求分析方法:(1)结构化分析方法:面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)(2)面向对象的分析方法。
二级公共基础课件4软件工程基础
6. 软件工程的目标
在给定的成本、进度的前提下,开发出具有有效 性、可靠性、可理解性、可维护性、可适应性、 可移植性、可追踪性和可互操作性且满足用户需 求的产品。
软件工程鼓励研制和采用各种先进的软件开发方 法、工具和环境。
7. 软件工具和软件开发环境
软件工具(CASE):用来辅助软件开发、运行、 维护、管理、支持等过程中的活动的软件。
代码设计 输入设计 输出设计 处理过程设计 用户界面设计 安全控制设计
13 详细设计工具
1.图形工具: (1)程序流程图:传统的软件设计工具。 (2)N-S:即由Nossi和Shneiderman提出的 一种方框图。 (3)PAD :问题分析图。
2.表格工具: 判定表. 3.语言工具:PDL(伪码 ),它是一种非形式
化的比较灵活的语言。
4.4 软件测试
4.4.1 意义目的
为了发现错误。测试只能证明程序中有错误, 不能证明程序中无错误。
希望能以最少的人力和时间发现潜在的各种 错误和缺陷。
保证系统质量和可靠性的关键步骤。
4.4.2 测试方法
动态测试:为发现错误而执行程序的过程。 静态测试:包括代码检查、静态结构分析、
组成数据流或文件的数据项。 判定树:以树型结构形式来分别处理问题。 判定表:类同判定树,只是以表格形式来表示。
4.3 结构化设计方法、总体设计和详细设计
4.3.1 结构化设计方法
结构图
基本成分:模块、调用、输入输出数据。 模块用矩形表示,模块间用线段连接,表示调用关系,输
入输出数据可写在调用线段的旁边。
软件开发环境:支持软件产品开发的软件系统, 它由软件工具集和环境集成机制构成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章软件工程基础1.下列叙述中,正确的是( D )。
A)软件就是程序清单B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果D)软件包括程序和文档2.软件是程序、数据和文档的集合。
3.软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)4.软件工程的出现是由于(C )A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展5.软件工程研究的内容主要包括:软件开发技术和软件工程管理。
6.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(B)A)软件投机B)软件危机C)软件工程D)软件产生7.开发大型软件时,产生困难的根本原因是( A )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重8.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件,这就是软件工程诞生的基础。
9.下列不属于软件工程的3个要素的是(D )A)工具B)过程C)方法D)环境10.软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
11.软件生命周期中所花费用最多的阶段是( D )A)详细设计B)软件编码C)软件测试D)软件维护12.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( D )A)概要设计B)详细设计C)可行性分析D)需求分析13.软件开发的结构化生命周期方法将软件生命周期划分成( A )。
A) 定义、开发、运行维护B)设计阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计14.软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
15.软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,主体内容是软件开发方法学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
16.软件工程的理论和技术性研究的内容主要包括软件开发技术和( B )A)消除软件危机B)软件工程管理C)程序设计自动化D)实现软件可重用17.软件工程的原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
18.开发软件时对提高开发人员工作效率至关重要的是( B )A)操作系统的资源管理功能B)先进的软件开发工具和环境C)程序人员的数量D)计算机的并行处理能力19.软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。
20.在软件生产过程中,需求信息的给出是( D )。
A)程序员B)项目管理者C)软件分析设计人员D)软件用户21.需求分析中,开发人员要从用户那里了解( A )。
A)软件做什么B)用户使用界面C)输入的信息D)软件的规模22.需求分析阶段的任务是确定( D )A) 软件开发方法B)软件开发工具C)软件开发费用D) 软件系统功能23.下列工具中为需求分析常用工具的是( D )。
A)PAD B)PFD C)N—S D)DFD24.需求分析的任务是发现需求、求精、建模和定义需求的过程。
需求分析将创建所需的数据模型、功能模型和控制模型。
25.需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书、需求评审。
26.结构化方法的核心和基础是结构化程序设计理论。
27.下列不属于结构化分析的常用工具的是( D )。
A)数据流图B)数据字典C)判定树D)PAD图28.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是( B )A)可行性分析B)需求分析C)详细设计D)程序编码29.数据流图用于抽象描述一个软件的逻辑模型.数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是( A )。
A)控制流B)加工C)数据存储D)源和潭30.在数据流图(DFD)中的箭头代表的是( A )A)数据流B)控制流C)调用关系D)组成关系31.在数据流图(DFD)中,带有名字的箭头表示( D )。
A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向32.数据流图的类型有变换型和事务型。
33.Jackson方法是一种面向数据流的结构化方法。
34.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。
35.软件需求规格说明书是需求分析阶段的最后结果。
36.下列叙述中,不属于软件需求规格说明书的作用的是( D )A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析37.( C )是对软件系统所必须解决的问题做出的详细说明。
A)功能描述B)性能描述C)数据描述D)参考文献目录38.在软件开发中,下面任务不属于设计阶段的是( D )A)数据结构设计B) 给出系统模块结构C)定义模块算法D)定义需求并建立系统模型39.软件设计包括软件的结构、数据、接口和过程设计,其中软件的过程设计是指( B )。
A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程40.下面不属于软件设计原则的是(C )A)抽象B)模块化C)自底向上D)信息隐藏41.耦合和内聚是评价模块独立性的两个主要标准,其中内聚反映了模块内各成分之间的联系,耦合反映了模块间互相连接的紧密程度。
42.内聚性是信息隐蔽和局部化概念的自然扩展,一个模块的内聚性越强,则该模块的模块独立性越强。
一个模块与其它模块的耦合性越强,则它的模块独立性越弱。
43.下列叙述中,正确的是(C )A)接口复杂的模块,其耦合程度一定低B)耦合程度弱的模块,其内聚程度一定低C)耦合程度弱的模块,其内聚程度一定高D)以上都不对44.下列选项中,不属于模块间耦合的是( B )。
A)数据耦合B)同构耦合C)异构耦合D)公用耦合45.软件设计中,有利于提高模块独立性的一个准则是( C )。
A)低内聚低耦合B)低内聚高耦合C)高内聚低耦合D)高内聚高耦合46.软件的概要设计又称为总体结构设计,其主要任务是建立软件系统的总体结构,设计数据结构及数据库,编写概要设计文档,概要设计文档评审。
47.在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C)A)详细设计B)需求分析C)总体设计D)编程调试48.在概要设计阶段,常用的软件结构设计工具是结构图(sc),也称程序结构图。
生成的结构图中,带有箭头的连线表示( A ),矩形表示模块。
A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向49.在概要设计阶段,一般采用面向数据流的设计方法。
数据流的类型有变换型和事务型。
将变换型映射成结构图称为变换分析。
将事务型映射成结构图称为事务分析。
50.好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。
51.模块的控制范围包括它本身以及它所有的从属模块,模块的作用范围是指模块内一个判定的作用范围,凡是受到这个判定影响的所有模块都属于这个判定的作用范围。
理想的情况是( A )A)模块的作用范围应在控制范围内B)模块的控制范围应在作用范围之内C)模块的作用范围宇控制范围交叉D)模块的作用范围域控制范围分离52.详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用选定的表达工具表示算法和数据结构的细节。
确定怎样来具体实现所要求的系统。
53.程序流程图(PFD)中的箭头代表的是( B )。
A)数据流B)控制流C)调用关系D)组成关系54.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为( B )。
A)PAD图B)N—S图C)结构图D)数据流图55.详细设计的结果基本决定了最终程序的( C )。
A)代码的规模B)运行速度C)质量D)可维护性56.软件设计模块化的目的是降低复杂性。
57.详细设计的典型语言描述工具是( B )A)C B)PDL C)VB D)PB58.在软件测试设计中,软件测试的主要目的是( D )。
A)实验性运行软件B)证明软件正确C)找出软件中全部错误D)发现软件错误而执行程序(注意:不是为了证明软件的正确性,也不是为了找出全部错误)59.下列叙述中.不属于测试的特征的是( C )。
A)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)测试的经济性60.下列不属于静态测试方法的是( B )。
A)代码检查B)白盒法C)静态结构分析D)代码质量度量61.在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看做是( A )。
A)路径的集合B)循环的集合C)目标的集台D)地址的集合62.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是( A )A)黑箱测试法B)白箱测试法C)错误推测法D)安装测试法63.黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,不考虑程序内部的逻辑结构,在软件接口处进行。
常用的黑箱测试有等价分类法、边界值分析法、因果图法和错误推测法4种。
64.软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。
65.检查软件产品是否符合需求定义的过程称为( A )A)确认测试B)集成测试C)验证测试D)验收测试66.软件开发离不开系统环境资源的支持.其中必要的测试数据属于( D )。
A)硬件资源B)通信资源C)支持软件D)辅助资源67.为了提高测试的效率,应该( D )A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序68.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
69.程序调试的基本步骤:错误定位、修改和设计代码以排除错误、进行回归测试,防止引进新的错误。
70.下列叙述中,正确的是(D )A)测试和调试工作必须由程序编制者自己完成B)测试用例和调试用例必须完全一致C)一个程序经调试改正错误后,一般不必再进行测试D)上述三种说法都不对71.软件调试的目的是( B )。
A)发现错误B)改正错误C)改善软件的性能D)挖掘软件的潜能72.下列不属于软件调试技术的是( B )。
A)强行排错法B)集成测试法C)回溯法D)原因排除法73.软件维护活动包括以下几类:校正性维护、适应性维护、完善性维护和预防性维护。