第三章 软件工程基础

合集下载

软件工程第三章

软件工程第三章

条目格式如下: 数据流名: 组成: 流量:
3.5 需求分析方法 SIT 来源: 去向: · 文件条目。 文件条目主要说明文件由哪些数据项组成,存储方式和
存取频率等。 条目格式如下: 文件名: 组成: 存储方式: 存储频率:
3.5 需求分析方法 SIT · 数据项条目。 数据项名: 类型: 长度: 取值范围: · 加工条目。 加工条目主要说明加工的输入数据、输出数据及其加工
3.2 需求分析任务 SIT
二、分析系统的数据要求 分析系统的数据要求通常采用建立概念模型的方法。
三、导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模
型,通常用数据流图、数据字典和主要的处理算法描述这个 逻辑模型。 四、修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解, 可以比较准确地估计系统的成本和进度,修正以前制定的开 发计划。 五、开发原型系统
3.3.2用户需求
用户需求是从用户角度来描述系统功能和非功能需求, 以便让不具备专业技术方面知识的用户能看懂。这样的需求 描述只描述系统的外部行为,要尽量避免对系统设计特性的 描述。
3.3 软件需求分析类型 SIT
3.3.3系统需求
系统需求是比用户需求更详细的需求描述,是系统实现 的基本依据,因此,是一个完全的和一致的系统描述,是软 件工程人员系统设计的起点。
需求描述的结构化是围绕三个主要内容进行的,一是系 统操作对象,二是系统运行的功能,三是系统处理的事件。
3.6 软件需求工程管理 SIT 软件需求管理指的是一个为系统的需求进行启发、组织、
建档的系统方法,一个建立和维护客户和项目团队之间关于 变更系统需求所达成的一致性的过程。
需求模型是指将软件需求的捕获与开发、管理作为一个 工程,以软件需求的捕获与开发、管理为研究对象,抽象化 的工程参考模型,用以指导软件需求的各项实践活动。

软件工程复习题

软件工程复习题

第三章软件工程基础习题部分一、选择题(1) 软件工程的出现是由于______。

A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(2) 下列描述中正确的是______。

A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题(3) 下列描述中正确的是______。

A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(4) 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做______。

A)软件投机B)软件危机C)软件工程D)软件产生(5) 软件开发的结构化生命周期方法将软件生命周期划分成______。

A. 定义、开发、运行维护B. 设计阶段、编程阶段、测试阶段C. 总体设计、详细设计、编程调试D. 需求分析、功能定义、系统设计(6) 需求分析阶段的任务是确定______。

A. 软件开发方法B. 软件开发工具C. 软件开发费用D. 软件系统功能(9) 需求分析中,开发人员要从用户那里了解______。

A)软件做什么B)用户使用界面C)输入的信息D)软件的规模(10) 软件生命周期中所花费用最多的阶段是______。

A)详细设计B)软件编码C)软件测试D)软件维护(11) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。

A. 阶段性报告B. 需求评审C. 总结D. 都不正确(12) 下面不属于软件工程的3个要素的是______。

A. 工具B. 过程C. 方法D. 环境(13) 下面不属于软件设计原则的是______。

A. 抽象B. 模块化C. 自底向上D. 信息隐蔽(16) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。

全国计算机等级考试二级公共基础知识要点汇总[规整]

全国计算机等级考试二级公共基础知识要点汇总[规整]

全国计算机等级考试二级公共基础知识要点汇总第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。

算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。

算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。

特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。

指令系统:一个计算机系统能执行的所有指令的集合。

基本运算包括:算术运算、逻辑运算、关系运算、数据传输。

算法的控制结构:顺序结构、选择结构、循环结构。

算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。

算法复杂度:算法时间复杂度和算法空间复杂度。

算法时间复杂度是指执行算法所需要的计算工作量。

算法空间复杂度是指执行这个算法所需要的内存空间。

1.2 数据结构的基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。

数据结构是指相互有关联的数据元素的集合。

数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。

数据的存储结构有顺序、链接、索引等。

线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。

非线性结构:不满足线性结构条件的数据结构。

1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。

在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。

软件工程基础

软件工程基础

软件工程基础软件工程是指应用工程原理、方法和工具来开发和维护高质量的软件系统。

作为计算机科学的重要分支,软件工程为我们理解和应用软件开发的基础提供了框架和指导。

本文将介绍软件工程的基本概念、原则和方法,以及其在软件开发过程中的重要性。

一、软件工程概述软件工程是一门系统性的学科,旨在通过应用科学和工程原理,将计算机科学理论和方法应用于软件的开发和维护中。

与传统的工程领域不同,软件工程面临着特殊的挑战和复杂性,包括软件产品的不可见性、复杂性和易变性等。

软件工程的核心目标是提高软件的质量和效率,使其满足用户的需求并具备可维护性。

为了实现这一目标,软件工程引入了许多原则和方法,如需求分析、系统设计、编码和测试等。

这些方法和原则为软件开发过程提供了指导和规范,有助于提高开发团队的协作效率和开发质量。

二、软件工程原则软件工程根据实践总结出了许多重要的原则,在软件开发中起到了指导作用。

下面列举了其中几个重要的原则:1. 模块化:软件应该通过模块化的方式进行设计和开发。

模块化可以提高代码的复用性和可维护性,同时也降低了开发的复杂性。

2. 可重用性:软件应该促进可重用性。

通过开发可重用的组件和模块,可以提高软件开发的效率,并减少重复劳动。

3. 适应性:软件应该具备适应性,即能够满足用户的需求,并能够随着需求的变化进行调整和扩展。

4. 可测试性:软件应该具备可测试性,即能够进行有效的测试和验证。

通过测试,可以发现和修复潜在的问题,提高软件的质量。

5. 可维护性:软件应该具备可维护性,即能够方便地进行修改和维护。

良好的软件结构和文档可以降低维护成本,并延长软件的使用寿命。

三、软件开发方法软件工程提供了多种开发方法和过程,以帮助开发团队有效地管理和组织开发任务。

下面介绍几种常见的软件开发方法:1. 瀑布模型:瀑布模型是一种线性的开发过程模型,依次进行需求分析、系统设计、编码和测试。

每个阶段完成后,才能进入下一个阶段。

瀑布模型适用于需求变化较少的项目,但在需求变化频繁的项目中效果较差。

第3章 软件工程基础(习题答案).doc

第3章 软件工程基础(习题答案).doc

第3章习题答案3」什么是软件危机?为什么会岀现软件危机?解答:软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过稈屮出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。

(2)软件的正确性和可靠性难以保证。

(3)文档不全,导致软件维护难度加大。

总Z,可将软件危机归结为:成木、质量和生产率等问题。

到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作功”式的方法已经无法适应软件的开发。

软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。

3.2软件T程的概念是什么?软件T程的忖标和原则是什么?解答:软件工程是指导计算机软件开发和维护的一门学科。

软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。

软件工程的日标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。

软件工稈的原则,在软件开发各阶段,应遵循一些基木原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

3.3什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么?解答:软件从提出、开发、使用到退役的整个过稈称为软件生命周期,软件生命周期可划分为3个时期,共8个阶段,毎个阶段应完成的基本任务和产生的文档如下表所示。

时期阶段任务文档定义期(计划期)问题的定义理解用户要求,明确工作目标计划任务书可行性研究可行性方案分析需求分析软件系统的目标及应完成的任务需求规格说明书开发期概要设计(总体设计)(系统设计)系统逻辑设让,明确软件模块结构,及各模块间的调用关系软件概要设计说明书数据库/数据结构设计说明书集成测试计划详细设计系统的模块设计,对各模块进行功能说明,实现细节描述软件详细设计说明书编码编写程序代码程序、数据、详细注释测试和调试单元测试、集成测试测试大纲、方案,测试用例,测试结果维护期使用和维护运行和维护运行、修改记录3.4什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段?解答:结构化开发方法是现有软件开发方法屮最成熟、应用最广泛的方法。

03第3章软件工程基本概念

03第3章软件工程基本概念

二级公共基础知识第三章软件工程基本概念
重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等
一、 软件工程基本概念
1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的 文档 。

其中,程序 是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。

2. 下列叙述中,正确的是(D)。

A.软件就是程序清单 B.软件就是存放在计算机中的文件 C.软件应包括程序清单及运行结果 D.软件包括程序和文档
3. 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)
4. 软件工程的出现是由于(软件危机的出现)
5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(软件危机)
软件工程概念的出现源自软件危机。

所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

总之,可以将软件危机归结为成本、质量、生产率等问题。

6. 开发大型软件时,产生困难的根本原因是(大型系统的复杂性)。

7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学 的原理来设计软件这就是软件工程诞生的基础。

8. 下列不属于软件工程的3个要素的是(D)A.工具 B.过程 C.方法 D.环境。

计算机软件使用的技能训练建议

计算机软件使用的技能训练建议

计算机软件使用的技能训练建议第一章:编程语言基础计算机软件的开发离不开编程语言,掌握一门编程语言是每个软件工程师的基本要求。

推荐初学者从Python开始学习,因为它具有简洁易懂的语法和强大的功能。

首先,学习Python的基本语法和数据类型,并掌握条件语句、循环语句等基本控制结构。

然后,深入了解Python的函数、列表、字典和文件操作等高级特性。

最后,学习Python的面向对象编程思想和模块化开发方法。

第二章:算法和数据结构算法和数据结构是计算机软件开发中的重要基础。

为了写出高效且可维护的软件,开发人员应该掌握常用的算法和数据结构。

建议从学习基本的排序和查找算法开始,如冒泡排序、快速排序、二分查找等。

然后,学习线性数据结构如数组、链表、栈和队列,并了解它们的应用场景和操作方法。

最后,学习树、图等非线性数据结构,并掌握它们的遍历和搜索算法。

第三章:软件工程基础软件工程是指将系统化、规范化的、可度量的方法应用于软件的开发、运行和维护的过程。

掌握软件工程基础有助于提高软件开发的质量和效率。

建议学习软件生命周期、需求工程和软件设计等基本概念。

了解软件项目管理工具如Git和JIRA,以及团队协作工具如Slack和Trello等。

同时,掌握软件测试的基本原理和技巧,如单元测试、集成测试和验收测试等。

第四章:数据库管理与SQL数据库是存储和管理数据的重要工具,掌握数据库管理和SQL语言是软件开发人员的基本能力。

学习关系型数据库如MySQL和Oracle的基本概念和操作方法。

了解数据库的设计原则,创建表和定义关系。

学习SQL语言,掌握增删改查等基本操作,并了解SQL优化技巧。

同时,了解NoSQL数据库如MongoDB和Redis的特点和使用场景,掌握它们的基本操作和优化技巧。

第五章:前端开发技术前端开发是制作和实现网页、网站和应用程序用户界面的技术。

推荐学习HTML、CSS和JavaScript作为开发前端的基础技术。

计算机二级理论知识精华版

计算机二级理论知识精华版

第一章数据结构与算法第一节算法一、算法的基本概念所谓算法是指解题方案的准确而完整的描述。

1、算法的基本特征:(1)可行性(2)确定性(3)有穷性(4)拥有足够的情报2、算法的基本要素(1)算法中对数据的运算和操作算术运算,逻辑运算,关系运算,数据传输(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。

一个算法可以用顺序、选择、循环三种基本控制结构组合而成。

2、算法设计的基本方法(1)列举法(2)归纳法(3)递推(4)递归(5)减半递推技术二、算法复杂度1、算法的时间复杂度:指执行算法所需要的计算工作量。

用算法在执行过程中所需基本运算的次数来衡量算法的工作量。

方法:平均性态,最坏情况复杂性2、算法的空间复杂度:指执行这个算法所需的内存空间。

第二节数据结构的基本概念一、什么是数据结构数据结构是指相互有关联的数据元素的集合。

如:(1)春、夏、秋、冬(2)父亲、儿子、女儿(1)数据元素有共同的特征(2)各个元素之间存在着某种关系(联系)。

用前后件关系来描述。

如:夏是秋的前件,秋是夏的后件。

父亲是儿子和女儿的前件儿子和女儿都是父亲的后件1、数据的逻辑结构数据结构是指带有结构的数据元素的集合。

一个数据结构应包含以下两方面的信息:(1)表示数据元素的信息(2)表示各数据元素之间的前后件关系,前后件关系是逻辑关系,与它们在计算机中的存储位置无关。

数据的逻辑结构反映数据元素之间的逻辑关系。

2、数据的存储结构数据的逻辑结构在计算机中的存放形式称为数据的存储结构,也称数据的物理结构。

采用不同的存储结构,数据处理的效率不同。

一般情况下,数据的逻辑结构和存储结构是不同的。

二、数据结构的图形表示每一个数据元素用中间标有元素值的方框表示,称为数据结点,简称结点。

用一条有向线段从前件结点指向后件结点。

父亲丨在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结—午—点(也称为叶子结点)。

其他结点一儿子女儿般称为内部结点。

软件工程基础知识教程

软件工程基础知识教程

软件需求分析
需求获取与分析
详细了解客户需求
需求验证与确认
确保需求与客户期 望一致
需求规格说明书
明确需求细节和规 范
软件设计
结构化设计
按照模块划分软件 结构
软件设计原则
设计原则指导设计 过程
面向对象设计
基于对象和类的设 计方法
软件编码与测试
编码规范
遵循代码规范 注重代码可读性
单元测试
测情况 验证模块间接口
系统测试
对整个系统进行测试 验证系统功能和性能
总结
重要性
软件开发过程中各个阶段都至关重要
注意事项
遵循规范、注重测试是软件开发的关键
持续学习
不断学习新的开发方法和技术
第三章 软件质量保证
● 03
质量保证概述
质量保证是软件工程中确保产品质量的过程。 其目标是确保软件开发和维护过程中的质量 标准得以满足,保证软件产品能够满足用户 需求和期望。质量保证在软件开发中至关重 要,能够提高产品质量、减少风险并提高用 户满意度。
最后,祝您学习愉快,不断提 升软件工程技能。
软件工程基础知识教程
软件工程基础知识教程涵盖了软件工程的基 础概念、原则、方法和工具,旨在帮助学习 者建立扎实的软件工程知识基础,提升软件 开发能力。
软件工程基础知识教程
需求分析
软件工程的第一步, 确定需求方向
软件开发流程
软件工程中的开发 流程及方法论
缺陷管理流程
包括缺陷发现、记录、分析、修复和验证等阶段
缺陷分析与修复
通过分析缺陷原因,制定解决方案及验证修复效果
质量保证工具
静态分析工具
动态测试工具
自动化测试工具

计算机2级公共基础知识课件-软件工程

计算机2级公共基础知识课件-软件工程
程序调试的任务是诊断和改正程序中的错误, 主要在开发阶段进行。 软件调试 静态调试主要是指通过人的思维来分析源程 序代码和排错,是主要的设计手段。 动态调试是辅助静态调试。主要调试方法有: (1)强行排错法; (2)回溯法; (3)原因排除法。
第25页
软件工程方面的考题:
(1) 下面叙述中错误的是 A A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (2) 软件测试可分为白盒测试和黑盒测试。基本路径测试属于【白盒】 测试。 单元 测试之后进行。 (3) 按照软件测试的一般步骤,集成测试应在_____
确定开发目标和总的要求,给出功能、可靠性 等可能方案,制定实施计划. 对软件需求进行分析并给出详细定义,编写软件 规格说明书及初步的用户手册,提交评审。 给出软件的结构、模块和功能的划分等,确定算法。 编写概要设计、详细设计说明书和测试计划初稿。 源程序编码,把软件设计转换成计算机 可以接受的程序代码。编写用户手册、 操作手册和单元测试计划。 设计测试用例,检验软件各 个组成部分。编写测试分析 报告。 将已交付的软件投入运行, 并在运行使用中不断地维护, 根据新提出的需求进行必要 而且可能的扩充和删改。
第5页
软件危机 (Software
Crisis)
落后的软件生产方式无法满足迅速增长的计算机软件 需求,从而导致软件开发与维护过程中出现一系列严 重问题的现象。 软件危机主要表现在: 软件开发费用和进度失控。费用超支、进度拖延的 情况屡屡发生。有时为了赶进度或压成本不得不采 取一些权宜之计,这样又往往严重损害了软件产品 的质量。 软件的可靠性差。尽管耗费了大量的人力物力,而 系统的正确性却越来越难以保证,出错率大大增加 ,由于软件错误而造成的损失十分惊人。 第6页 ……

软件工程基础

软件工程基础

软件工程基础软件工程是一门涉及开发、维护和管理软件项目的学科。

它涵盖了软件开发的各个阶段,从需求分析到设计、编码、测试和部署。

软件工程的目标是通过系统化和规范化的方法开发出高质量的软件产品。

1. 软件开发生命周期软件开发生命周期是指软件项目从开始到结束的整个过程。

它通常包括以下阶段:1.1 需求分析需求分析是软件开发的第一阶段,目的是确定用户需求和系统功能。

在这个阶段,软件工程师与用户进行沟通,了解用户的需求和期望,并将其转化为可执行的任务。

1.2 设计设计阶段是根据需求分析,创建一个软件系统的整体框架和结构。

在这个阶段,软件工程师会制定详细的设计规范,包括软件模块的组成、接口设计、数据库设计等。

1.3 编码编码阶段是将设计好的系统转化为可执行的程序代码。

软件工程师使用编程语言将设计规范转化为具体的代码实现。

1.4 测试测试阶段是对软件系统进行功能和性能的验证。

软件工程师会编写测试用例,并对系统的各个功能进行测试。

测试可以帮助发现潜在的问题和错误,并及时进行修复。

1.5 部署部署阶段是将开发好的软件系统部署到用户环境中。

软件工程师会进行系统的安装、配置和集成,确保软件能够正确运行。

1.6 维护维护阶段是软件系统发布后的运营和维护阶段。

在这个阶段,软件工程师会对系统进行定期的更新和维护,以确保系统的稳定性和安全性。

2. 软件质量控制软件质量控制是指通过一系列的方法和技术,确保软件产品满足用户需求和质量标准。

以下是一些常用的质量控制方法:2.1 静态分析静态分析是通过对源代码、设计文档等进行分析,发现潜在的问题和错误。

常见的静态分析方法包括代码审查、代码静态检查、模型检查等。

2.2 动态测试动态测试是通过执行软件系统,模拟用户操作和各种环境条件,验证系统的正确性和可靠性。

常见的动态测试方法包括单元测试、集成测试、系统测试等。

2.3 配置管理配置管理是通过规范化的方式管理软件开发过程中的各种配置项,包括源代码、文档、配置文件等。

软件工程第三章需求工程

软件工程第三章需求工程

软件工程第三章需求工程在软件工程中,需求工程是至关重要的一环。

它就像是一座建筑的蓝图,为后续的设计、开发、测试等工作指明了方向。

如果需求工程做得不好,就好比在没有清晰规划的情况下盲目施工,结果必然是混乱和低效的。

需求工程主要包括需求获取、需求分析、需求规格说明和需求验证这几个关键步骤。

需求获取是需求工程的起点。

这可不是一件简单的事情,它需要与各种利益相关者进行有效的沟通和交流。

这些利益相关者可能包括客户、用户、业务经理、技术专家等等。

他们对于软件系统的期望和需求各不相同,因此获取到全面、准确的需求信息是一个挑战。

在与利益相关者交流时,我们需要运用各种技巧。

比如,倾听是非常重要的。

要让他们能够畅所欲言,表达出自己的真实想法和需求。

同时,提问也是必不可少的。

通过有针对性的问题,可以引导他们深入思考,挖掘出一些潜在的需求。

此外,观察他们的工作流程和操作习惯,也能为获取需求提供有价值的线索。

需求分析是对获取到的需求进行深入理解和梳理的过程。

这就像是把一堆杂乱无章的拼图碎片整理成一幅完整的画面。

我们需要识别出需求中的关键元素,理解它们之间的关系,并且找出可能存在的冲突和不一致。

为了进行有效的需求分析,我们常常会使用一些工具和技术。

比如,用例图可以帮助我们清晰地描述系统的功能和用户与系统之间的交互。

数据流图则能够展示数据在系统中的流动和处理过程。

状态转换图可以用于描述系统中对象的状态变化。

通过这些工具,我们能够更直观地理解需求,发现潜在的问题。

需求规格说明是将分析后的需求以一种清晰、准确、无歧义的方式记录下来。

它就像是一份合同,明确了软件系统应该具备的功能和性能。

需求规格说明通常包括功能需求、非功能需求、约束条件等内容。

功能需求描述了系统应该完成的具体任务和操作。

非功能需求则关注系统的性能、可靠性、可维护性、安全性等方面的要求。

约束条件可能包括技术限制、预算限制、时间限制等。

在编写需求规格说明时,语言要简洁明了,避免使用模糊不清的词汇和语句。

《软件工程基础》习题集答案-2

《软件工程基础》习题集答案-2

《软件工程基础》习题集答案 -2第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开辟和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开辟软件,以满足日益增长、日益复杂的需要;如何维护数量不断膨胀的已有软件。

软件危机的典型表现主要有: a.开辟成本和进度不能准确估计b.开辟出来的软件不能满足用户的要求c.软件的可维护性差d.软件质量不可靠e.软件成本在系统中的比重逐年上升f.软件开辟生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。

软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开辟、维护的方法不正确有密切关系。

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

即采用工程化的原则和方法组织软件开辟是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开辟和维护的学科。

其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开辟技术,开辟与维护软件,以解决软件危机。

4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开辟和维护计算机软件,从源头上消除软件危机。

6.简述软件的定义。

软件=程序+数据+文档7.软件工程的目的是什么?为高质量的软件开辟提供一个科学的体系框架。

8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开辟技术方法的集合。

目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极其广泛,而分为三个分支:软件开辟技术、软件项目管理技术、软件质量管理技术。

9.简述软件工程的基本原理。

软件工程有 7 条基本原理:1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制4.采用先进的程序设计技术 5.结果应能清晰的审查 6.开辟小组成员应少而精7.承认不断改进软件工程实践的必要性10.软件工程的基本开辟原则有哪些?软件工程的基本开辟原则有: 1.模块化2.抽象和信息隐蔽3.模块的高内聚和低耦合 4.确定性 5.一致性 6.完备性11.构成软件工程的基本元素有哪些?除了前面给出的软件工程三大要素,还应该包括控制和质量保证。

软件工程第三章

软件工程第三章

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
2、数据流图 (1)、数据流图的组成 “ 四大组成部分:外部实体(也就是数据的源点或终 点)、处理、数据流和数据存储
3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
2、数据流图 (2)、数据流图的符号 “ a、基本符号 b、附加符号: * ——表示数据流之间是“与”的关系。 + ——表示数据流之间是“或”的关系。 ⊕ ——表示只能从中选一个(互斥关系)。
数据流图实例:××培训中心管理系统

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
数据流图实例:××培训中心管理系统

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
3、数据字典 数据字典是关于数据的信息的集合,也就是对数据 “ 流图中包含的所有元素的定义的集合。当数据流图 和对数据流图中每个元素的精确定义(数据字典)放 在一起时,才能共同构成系统的规格说明
1、Jackson系统开发方法 前期(20 世纪70 年代): “ 主要研究以处理数据为主的结构化程序设计,称 JSP(Jackson Structured Programming)方法 后期(20世纪80 年代): 集中研究软件系统的开发,称JSD(Jackson System Development)方法
3.2.4、Jackson系统开发方法 Warnier方法 3.2.4、Jackson系统开发方法、Warnier方法 系统开发方法、
1、Jackson系统开发方法 基本思想是从数据结构出发建立对应的程序结构, “ 适合于设计企事业事务管理类的数据处理系统。
3.2.4、Jackson系统开发方法 Warnier方法 3.2.4、Jackson系统开发方法、Warnier方法 系统开发方法、
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试
软件测试的目的:发现错误而执行程序的过程。
软件测试方法:静态测试和动态测试。
静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。
动态测试:是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。
白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本基路径测试。
系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。
ቤተ መጻሕፍቲ ባይዱ软件的调试
程序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。
软件测试与软件调试有何不同?
软件测试是尽可能多地发现软件中的错误,而软件调试的任务是诊断和改正程序中的错误。软件测试贯穿整个软件生命周期,调试主要在开发阶段。
(3)使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多社会因素。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
应用软件是为解决特定领域的应用而开发的软件;
系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;
软件结果设计图图符
一般模块数据信息控制信息
程序流程图图符
控制流加工步骤逻辑条件
程序流程图
N----S图
详细过程设计的常用工具有:
(1)图形工具:程序流程图,N-S,PAD,HIPO。
(2)表格工具:判定表。
(3)语言工具:PDL(伪码)。
过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言,类似编程语言。
软件规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一
软件需求规格说明书的特点:
(1)正确性;
(2)无岐义性;
(3)完整性;
(4)可验证性;
(5)一致性;
(6)可理解性;
(7)可追踪性
数据流
典型的数据流类型有两种:变换型和事务型
变换型系统结构图由输入、中心变换、输出三部分组成。
事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:
(1)P——软件规格说明;
(2)D——软件开发;
(3)C——软件确认;
(4)A——软件演进。
软件工程过程与软件生命周期
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,
(3)进行回归测试,防止引进新的错误。
答案:A)
【例8】在修改错误时应遵循的原则有_______。
A)注意修改错误本身而不仅仅是错误的征兆和表现
B)修改错误的是源代码而不是目标代码
C)遵循在程序设计过程中的各种方法和原则
D)以上3个都是
解析:修改错误原则:
(1)在出现错误的地方,很可能有别的错误;
(2)修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身;
确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确定的各种需求,包括软件配置是否完全、正确。确认测试的实施首先运用黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明确认的标准。
系统测试是通过测试确认软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。
(3)注意修正一个错误的同时有可能会引入新的错误;
(4)修改错误的过程将迫使人们暂时回到程序设计阶段;
(5)修改源代码程序,不要改变目标代码。
答案:D)
二、填空题
【例1】软件设计是软件工程的重要阶段,是一个把软件需求转换为_______的过程。
解析:软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。其基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
3.5例题详解
一、选择题
【例1】对软件的特点,下面描述正确的是_______。
A)软件是一种物理实体
B)软件在运行使用期间不存在老化问题
C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制
D)软件的生产有一个明显的制作过程
解析:软件在运行期间不会因为介质的磨损而老化,只可能因为适应硬件环境以及需求变化进行修改而引入错误,导致失效率升高从而软件退化,所以本题正确答案为B)。
C)结构设计、数据设计、文档设计、过程设计
D)结构设计、数据设计、文档设计、程序设计
解析:技术角度,要进行结构、接口、数据、过程的设计。结构设计是定义系统各部件关系,数据设计是根据分析模型转化数据结构,接口设计是描述如何通信,过程设计是把系统结构部件转化为软件的过程性描述。
答案:B)
【例4】以下哪个是软件测试的目的?_______
答案:B)
【例2】以下哪项是软件生命周期的主要活动阶段?_______
A)需求分析B)软件开发
C)软件确认D)软件演进
解析:B)、C)、D)项都是软件工程过程的基本活动,还有一个是软件规格说明。
答案:A)
【例3】从技术观点看,软件设计包括_______。
A)结构设计、数据设计、接口设计、程序设计
B)结构设计、数据设计、接口设计、过程设计
软件设计的基本原理
(1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低。
(2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
(3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
支撑软件是介于两者之间,协助用户开发软件的工具性软件。
软件危机主要表现在成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:方法、工具和过程。
方法是完成软件公曾项目的技术手段
工具支持软件的开发、管理、文档生成
过程支撑捐建开发的各个环节的控制、管理
PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。
程序流程图,N-S图,PAD图的控制结构的异同点是什么?
相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、UNTIL重复型而有后判断重复型和先判断重复型。
A)证明程序没有错误B)演示程序的正确性
C)发现程序中的错误D)改正程序中的错误
解析:关于测试目的的基本知识,IEEE的定义是:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别,所以正确答案是C)。
答案:C)
【例5】以下哪个测试要对接口测试?_______。
(4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。
答案:B)
【例7】以下哪些不是程序调试的基本步骤?_______
A)分析错误原因B)错误定位
C)修改设计代码以排除错误D)回归测试,防止引入新错误
解析:程序调试的基本步骤:
(1)错误定位。从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因。
(2)修改设计和代码,以排除错误。
A)单元测试B)集成测试
C)验收测试D)系统测试
解析:检查对测试实施各阶段的了解,集成测试时要进行接口测试、全局数据结构测试、边界条件测试和非法输入的测试等,所以正确答案是B)。
答案:B)
【例6】程序调试的主要任务是_______。
A)检查错误B)改正错误
C)发现错误D)以上都不是
解析:程序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。
解析:数据流图可以表达软件系统的数据存储、数据源点和终点、数据流向和数据加工。其中,用箭头表示数据流向,用圆或者椭圆表示数据加工,用双杠表示数据存储,用方框来表示数据源点和终点。
答案:数据存储
内聚性是度量一个模块功能强度的一个相对指标。内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系
详细设计
详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达表示工具算法和数据结构的细节。
结构化分析的常用工具(DFD)
加工数据流存储文件源,潭
数据字典DD
数据字典是结构化分析方法的核心
软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。
单元测试是对软件设计的最小单位--模块(程序单元)进行正确性检验测试。单元测试的技术可以采用静态分析和动态测试。
集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误,主要依据是概要设计说明书。集成测试所设计的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。集成测试时将模块组装成程序,通常采用两种方式:非增量方式组装和增量方式组装。
相关文档
最新文档