第3章 软件工程基础(公共)

合集下载

公共基础知识软件工程基础

公共基础知识软件工程基础

公共基础知识软件工程基础汇报人:日期:•软件工程概述•软件开发生命周期•软件开发模型•软件需求工程•软件设计基础•软件工程管理基础•软件工程工具与技术目录软件工程概述软件的定义软件的特点软件的定义与特点软件工程的目标是实现软件的可靠性、可维护性、可扩展性和可重用性,同时满足用户的需求和期望。

软件工程的定义与目标软件工程的目标软件工程的定义提高软件质量降低软件开发成本增强软件的可维护性满足用户需求软件工程的重要性软件开发生命周期需求分析阶段01020304设计阶段编码与测试阶段进行单元测试、集成测试和系统测试。

部署与维护阶段01020304软件开发模型线性开发流程文档驱动适用于稳定环境030201瀑布模型迭代开发每个迭代周期都包含需求分析、设计、编码、测试等阶段,逐步完善软件的功能和性能。

逐步完善适用范围广迭代模型快速响应轻文档跨职能团队敏捷开发模型类和继承面向对象开发模型使用类和继承的概念,通过定义类来创建对象,并通过继承来共享属性和方法。

对象导向面向对象开发模型是一种以对象为导向的开发方法,将现实世界中的事物抽象成对象,并定义对象的属性和方法。

适用于复杂系统面向对象开发模型适用于复杂系统的开发,特别是涉及多个模块和组件的项目。

面向对象开发模型软件需求工程01020304访谈问卷调查焦点小组观察原型法螺旋模型敏捷方法面向对象方法确定系统目标划分系统功能定义数据结构制定接口标准需求规格说明书编制软件设计基础软件设计的概念软件设计的原则软件设计的基本原则和概念软件设计的任务软件设计的过程软件设计的主要任务和过程软件质量要素软件设计中的质量要素包括可靠性、可用性、可维护性、可扩展性等,以确保软件产品能够满足用户需求并稳定运行。

关键技术软件设计中的关键技术包括面向对象编程、设计模式、架构模式等,以提高软件产品的质量和开发效率。

软件设计中的质量要素和关键技术软件工程管理基础任务分解资源估算估算方法软件项目估算基础制定进度计划确定关键路径监控与调整软件项目进度计划制定风险识别识别项目中可能出现的风险,如需求变更、技术难题、人员流失等。

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

第3章 软件工程基础(习题答案)
需求分析要应得到如下内容:功能需求、性能需求、环境需求、界面需求、用户或人的因素、文档要求、数据需求、资源需求、安全保密要求、软件成本消耗与开发进度需求、质量保证。
需求分析的方法很多,如功能分析法、结构化分析法、信息建模法以及面向对象分析法等。最常用的是基于功能分析的结构化分析法。
结构化分析法常用工具有数据流图、数据字典、结构化英语、判定表和判定树等工具。
3.19什么是快速原型开发方法?它与传统的瀑布模型比较有什么优点?
解答:
快速原型法鼓励用户和软件开发人员紧密合作,共同工作,用户参与软件开发的每一个阶段的工作。这样,在软件开发的全过程中,都能及时反映用户的要求,不断缩小开发人员与用户之间对问题理解的差距,以提高最终软件产品的质量。
原型法是对瀑布模型的改进。在瀑布模型中,将软件的生命周期划分成3个时期8个阶段,用户仅参与起始的软件定义阶段和最后的软件测试阶段,而实际的软件开发过程比较漫长,是由开发人员独立完成的,用户不参与。但在开发过程中,用户的实际需求可能发生变化,却得不到反映,因此当开发人员把系统交付给用户时,用户对产品不满意的现象经常发生,对软件的修改又导致维护工作量和开发费用的增加。
3.18什么是软件维护?有几种维护?每种维护完成的任务是什么?
解答:
软件维护是对已交付使用的软件进行排错、修改和扩充的工作。维护工作类型包括:纠错性维护、完善性维护、适应性维护和预防性维护。
纠错性维护,对程序中出现的错误进行查找、定位、修改和重新测试。
完善性维护,对原有系统进行修改和扩充,如扩充新功能、完善操作方式。
黑盒测试也称为功能测试或数据驱动测试,是针对软件已经实现的功能是否满足需求进行的测试和验证。黑盒测试不考虑程序内部的结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。所以,黑盒测试是在软件接口处进行,完成功能验证的。

第3章_公共基础软件工程基础

第3章_公共基础软件工程基础
• 软件需求规格说明书(SRS)
• 软件需求规格说明书是需求分析阶段的最后成果, 通过建立完整的信息描述、详细的功能和行为描述、 性能需求和设计约束的说明、合适的验收标准,给 出对目标软件的各种需求。
PPT文档演模板
第3章_公共基础软件工程基础
•例题
3.3 结构化设计方法
• 1、软件设计的基础 • 从技术观点来看,软件设计包括软件结构设计、
完善求精。
PPT文档演模板
第3章_公共基础软件工程基础
• 数据字典:对所有与系统相关的数据元素的一个有 组织的列表,以及精确的、严格的定义,使得用户 和系统分析员对于输入、输出、存储成分和中间计 算结果有共同的理解。
• *:数据字典的作用是对数据流图中出现的被命名 的图形元素的确切解释。 *:数据字典是结构化分析方法的核心。
• 软件测试方法:静态测试和动态测试。
• 静态测试:包括代码检查、静态结构分析、 代码质量度量。不实际运行软件,主要通 过人工进行。
• 动态测试:是基于计算机的测试,主要包 括白盒测试方法和黑盒测试方法。
PPT文档演模板
第3章_公共基础软件工程基础
• 3 白盒测试
•例题
– 结构测试
– 将软件看成透明的白盒,根据程序的内部结构和逻辑结 构来设计测试例子,对程序的路径和过程进行测试,检
第3章_公共基础软件工程基础
• 7. 软件工具和软件开发环境
– 软件工具(CASE):用来辅助软件开、运行、 维护、管理、支持等过程中的活动的软件
– 软件开发环境:支持软件产品开发的软件系统, 它由软件工具集和环境集成机制构成
PPT文档演模板
第3章_公共基础软件工程基础
3.2 结构化分析方法

计算机二级公共基础知识高频考点归纳总结

计算机二级公共基础知识高频考点归纳总结

第一章数据结构与算法算法1、算法:是指解题方案的准确而完整的描述。

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

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

特征包括:(1)可行性;(2)确定性(3)有穷性(4)拥有足够的情报。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、非空线性表的结构特征:(1)且只有一个根结点al,它无前件:(2)有且只有一个终端结点an.它无后件:(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。

全国计算机等级考试二级_公共基础知识精品PPT课件

全国计算机等级考试二级_公共基础知识精品PPT课件
4.数据的运算:检索、排序、插入、删除、修改等。
14
三、线性表 线性表是最简单的、最常用的一种线性结构。 1.线性表的定义:线性表是n个元素的有限序列,它们
之间的关系可以排成一个线性序列:a1,a2,…… ,ai,…… ,an ,其中n称作表的长度,当n=0 时,称作空表。 线性表(非空线性表)必须同时满足以下3个条件: (1)有且只有一个根结点a1,它无前件。 (2)有且只有一个终端结点an,它无后件。 (3)除根结点与终端结点外,其他所有结点有且只 有一个前件,也有且只有一个后件。
线性表的定义、线性表的顺序存储结构及其插入与删除运算。
栈和队列的定义、栈和队列的顺序存储结构及其基本运算。
线性单链表、双向链表与循环链表的结构及其基本运算。
树的基本概念,二叉树的定义及其存储结构,二叉树的前序、 中序和后序遍历。
顺序查找与二分法查找算法、基本排序算法(交换类排序、选 择类排序与插入类)。
8
A.二元关系表示方法:一个数据结构可以表示为B=( D、R),其中R用二元组来表示(a、b)。 a表示前 件, b表示后件。 例如,一年四季的数据结构可以表示成: B=(D、R) D={春,夏,秋,冬} R={(春,夏),(夏,秋),(秋,冬)}
B.在图形表示方法中,用中间标有元素值的方框来表示 数据元素,称为数据结点,简称为结点;用一条有 向线段从前件结点指向后件结点(注意:有时可以 省略箭头)来表示元素之间的前后关系。
16
例:正确表示线性表(A1,A2,A3,A4)的顺序结 构是( )
二级公共基础知识
二级公共基础知识
第一章 算法与数据结构 第二章 程序设计基础 第三章 软件工程基础 第四章 数据库设计基础
2
本章要求

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.环境。

计算机二级考试选择题必背知识点(公共基础+计算机基础)

计算机二级考试选择题必背知识点(公共基础+计算机基础)

计算机二级考试选择题必背知识点公共基础第一章数据结构与算法§1.1 算法1.算法的定义:是指解题方案的准确而完整的描述。

(算法不等于程序,程序的设计不可能优于算法的设计)2.算法的基本特征:可行性、确定性、有穷性、足够的情报。

3.算法的基本要素:4.算法的时间和空间复杂度:算法的时间复杂度和算法的空间复杂度相互独立。

§1.2 数据结构的基本概念1.数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征。

(1)数据元素是数据的基本单位,即数据集合中的个体。

(2)有时一个数据元素可有若干数据项组成。

数据项是数据的最小单位。

2.结构:是集合中各个数据元素之间存在的某种关系(或联系)。

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

4.数据结构的分类:(1)逻辑结构:线性结构(线性表、栈、队列);非线性结构(树、图)。

(2)存储结构:顺序存储;链式存储。

(3)运算:插入、删除、查找、排序。

5.逻辑结构:反应数据元素间的逻辑关系(即前后件关系)的数据结构。

(1)线性结构(线性表):(举例:春→夏→秋→冬)a.有且只有一个根节点,它无前件;b.每一个节点最多有一个前件,也最多有一个后件。

(2)非线性结构:a.不满足以上两个条件的数据结构就称为非线性结构;b.非线性结构主要是指树形结构和网状结构。

6.存储结构:又称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式(1)顺序存储结构:主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里。

(2)链式存储结构:每一个结点至少包含一个指针域,用指针的指向来体现数据元素之间在逻辑上的联系。

§1.3 线性表及其顺序存储结构1.线性表:线性表是n(n≥0)个数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。

举例:英文字母表、地理学中的四向、表格2.线性表的顺序存储结构:通常线性表可以采用顺序存储和链式存储,但一般使用顺序存储结构。

公共基础——软件工程基础

公共基础——软件工程基础

公共基础——软件工程基础软件工程基础知识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【解析】数据库系统的三级模式是概念模式、外模式和内模式。

概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。

全国计算机等级考试二级公共基础知识课后习题集答案

全国计算机等级考试二级公共基础知识课后习题集答案
#include
main(
{ FILE * fp;
char ch,fname [10];
printf("Input the name of file ";
gets(fname;
gets(fname;
if((fp=[5]= =NULL
A.在队列中只能插入数据
B.在队列中只能删除数据
C.队列是先进先出的线性表
D.队列是先进后出的线性表
6.下列关于栈的叙述中正确的是(
A.在栈中只能插入数据
B.在栈中只能删除数据
C.栈是先进先出的线性表
D.栈是先进后出的线性表
8.在深度为5的满二叉树中,叶子结点的个数为(
A. 32
B. 31
C. 16
A整型、实型、逻辑型B整型、实型、字符型
C整型、字符型、逻辑型D整型、实型、逻辑型、字符型
(4为表示关系x大于等于y大于等于z,应使用C语言表达式
A(x>=Y&&(Y>=z B(x>=YAND(y>=z C(x>=Y>=z D(x> =Y&(Y>=z
(5下列对C语言字符数组的描述中错误的是
A字符数组可以存放字符串B字符数组中的字符串可以整体输入、输出
2.数据独立性分为逻辑独立性和物理独立性.当数据的存储结构改变时,其逻辑结构可以不变。因此,基于逻辑结构的应用程序不必修改,称为(
3.数据库系统中实现各种数据管理功能的核心软件称为(
4.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、(和自定义完整性.
5.在关系模型中,把数据看成一个二维表,每一个二维表称为一个(
D.算法执行过程中所需要的存储空间

软件工程基础第3章

软件工程基础第3章

第2章 需求分析
2.判定表 在某些数据处理中,某数据流图的加工需要依 赖于多个逻辑条件的取值,就是说完成这一加工 的一组动作是由于某一组条件取值的组合而引发 的。这时使用判定表来描述比较合适。 一张判定表通常由四部分组成,左上部列出的 是所有的条件,左下部为所有可能的操作,右上 部分表示各种条件组合的一个矩阵,右下部分是 对应于每种条件组合应有的操作。
(7)原型细部的说明 对于所有那些不能通过原型说明的项目,仍 需通过文件加以说明。严格说明的成份要作为原 型化方法的模型编入字典,以得到—个统一、连 贯的规格说明。
第2章 需求分析
(8)判定原型效果 考察用户新加入的需求信息和细部说明信息, 看其对模型效果有什么影响?是否会影响模块的 有效性?如果使模型效果受到影响,甚至导致模 型失效,则要进行修正和改进。 (9)整理原型和提供文档 整理原型的目的是为进一步开发提供依据。 原型的初期需求模型是一个自动的文档。
第2章 需求分析
(3) 书写需求分析的文档
把分析的结果用正式的文档记录下来,作 为最终软件配置的一个组成成分。应该完成下 述四份文档资料:系统规格说明 、数据需求 、 用户系统描述 、修正的开发计划 。 (4) 需求分析评审 作为需求分析阶段的复查手段,在需求分析 的最后一步,应该对功能的正确性、完整性和 清晰性,以及其他需求给予评价。
(5)判定原型完成 经过修改或改进的原型,如果获得参与者一 致认可,则原型开发的迭代过程可以结束。为此, 应判断有关应用的实质是否已经掌握,迭代周期 是否可以结束等。
第2章 需求分析
(6)判断原型细部是否说明
判断组成原型的细部是否需要严格地加以说 明。原型化方法允许对系统必要成份进行严格的 详细的说明,例如将需求转化为报表、给出统计 数字等。对于这些不能通过模型进行说明的成份, 如果必要,需提供说明,并利用屏幕等工具进行 讨论和确定。

公共基础知识软件工程基础

公共基础知识软件工程基础
总结词
验证、规范、高可靠性
详细描述
V-Model是一种基于瀑布模型的软件开发 方法,它强调在每个阶段进行验证和确认 ,以确保最终产品的可靠性和质量。VModel将软件开发过程分为两个阶段:左 侧阶段和右侧阶段。左侧阶段包括需求分 析、系统设计、详细设计等阶段,右侧阶 段包括编码、测试、部署等阶段。
Spiral开发方法
软件工程的诞生和发展
为了解决软件危机,人们开始研究软件工程,提出了许多理论和方法,如结构化程序设计 、面向对象程序设计、设计模式等。这些理论和方法不断发展和完善,成为现代软件工程 的基础。
02
软件工程的基本原理
面向对象编程(OOP)
总结词:一种编程范式,将程序看作对象的集合 ,以对象的交互来实现功能。
软件工程的重要性
提高软件质量
软件工程提供了一套系统的方法和 工具来管理和维护软件,从而提高 软件的质量。
降低软件开发成本
通过有效的需求分析、设计、编码 、测试和维护,软件工程可以降低 软件开发成本。
提高软件可维护性
软件工程强调软件的可维护性,通 过模块化、封装和抽象等技术来提 高软件的可维护性。
提高软件开发效率
总结词:一种编程范式,关注程 序的执行流程和操作顺序。
1. 流程控制:使用条件语句、循 环语句等控制结构来组织程序流 程。
3. 函数:可调用的子程序,将功 能封装成独立的模块。
模块化原理
总结词:将系统划分 为独立的模块,每个 模块具有特定的功能 。
详细描述
1. 模块化设计:将系 统划分为独立的模块 ,每个模块具有特定 的功能,便于代码的 维护和扩展。
代码度量与质量保证
代码度量是指对代码的质量、复杂度和可维护性等方面进行 评估的过程。通过代码度量可以发现潜在的问题,及时进行 改进。

第3章软件工程基础

第3章软件工程基础

第3章软件工程基础【考点精讲】1.软件定义与软件特点软件指的是计算机系统中与硬件相互依存的另一局部,包括顺序、数据和相关文档的完整集合。

顺序是软件开发人员依据用户需求开发的、用顺序设计言语描画的、适宜计算机执行的指令序列。

数据是使顺序能正常操纵信息的数据结构。

文档是与顺序的开发、维护和运用有关的图文资料。

可见,软件由两局部组成:〔1〕机器可执行的顺序和数据;〔2〕机器不可执行的,与软件开发、运转、维护、运用等有关的文档。

依据运用目的的不同,软件可分运用软件、系统软件和支撑软件〔或工具软件〕。

称号描画运用软件为处置特定范围的运用而开发的软件系统软件计算机管理自身资源,提高计算机运用效率并为计算机用户提供各种效劳的软件支撑软件〔或工具软件〕支撑软件是介于两者之间,协助用户开发软件的工具性软件2.软件工程为了摆脱软件危机,提出了软件工程的概念。

软件工程学是研讨软件开发和维护的普遍原理与技术的一门工程学科。

所谓软件工程是指,采用工程的概念、原理、技术和方法指点软件的开发与维护。

软件工程学的主要研讨对象包括软件开发与维护的技术、方法、工具和管理等方面。

软件工程包括3个要素:方法、工具和进程。

称号描画方法方法是完成软件工程项目的技术手腕工具工具支持软件的开发、管理、文档生成进程进程支持软件开发的各个环节的控制、管理考点2 软件生命周期【考点精讲】1.软件生命周期概念软件产品从提出、完成、运用维护到中止运用退役的进程称为软件生命周期。

普通包括可行性剖析研讨与需求剖析、设计、完成、测试、交付运用以及维护等活动,如图3-1所示。

软件生命周期分为3个时期共8个阶段,〔1〕软件定义期:包括效果定义、可行性研讨和需求剖析3个阶段;〔2〕软件开发期:包括概要设计、详细设计、完成和测试4个阶段;〔3〕运转维护期:即运转维护阶段。

软件生命周期各个阶段的活动可以有重复,执行时也可以有迭代,如图3-1所示。

2.软件生命周期各阶段的主要义务图3-1 软件生命周期在图3-1中的软件生命周期各阶段的主要义务是:考点3 软件设计基本概念【考点精讲】从技术观念上看,软件设计包括软件结构设计、数据设计、接口设计、进程设计。

公共知识部分_软件工程基础

公共知识部分_软件工程基础

(二)软件工程是应用于计算机软件的定义、开发和维护的一 整套方法、工具、文档、实践标准和工序。 软件工程包括3个要素:方法、工具和过程。 软件工程过程是把软件转化为输出的一组彼此相关的资 源和活动,包含4种基本活动: (1)P——软件规格说明;规定软件的功能及其运行时的限制 (2)D——软件开发;产生满足规格说明的软件 (3)C——软件确认;确认软件能满足客户提出的要求 (4)A——软件演进。 为满足客户的变更要求,软件必须在使 用的过程中演进 软件开发过程:把用户的需求转变成软件产品 对用户的要求进行分析——解释成软件需求——需求变换是设 计——设计用代码实现并测试——代码安装、交付运行。
软件需求规格说明书的特点: (1)正确性; (2)无岐义性; (3)完整性; (4)可验证性; (5)一致性; (6)可理解性; (7)可追踪性

(二)结构化设计方法 软件设计的基本目标是用比较抽象概括的方式确定 目标系统如何完成预定的任务,软件设计是确定系统的 物理模型。 软件设计是开发阶段最重要的步骤,是将需求准确地转 化为完整的软件产品或系统的唯一途径。 从技术观点来看,软件设计包括软件结构设计、数 据设计、接口设计、过程设计。 结构设计:定义软件系统各主要部件之间的关系。 数据设计:将分析时创建的模型转化为数据结构的 定义。 接口设计:描述软件内部、软件和协作系统之间以 及软件与人之间如何通信。 过程设计:把系统结构部件转换成软件的过程描述。 从工程管理角度来看:概要设计和详细设计。
六、软件开发方法(P56) 软件开发方法是软件开发过程所遵循的方法 和步骤,其目的在于有效地得到一些工作产 品,即程序和文档,并满足质量要求。软件 开发方法包括分析方法、设计方法和程序设 计方法。 (一)需求分析与需求分析方法 需求分析方法有(1)结构化需求分析方(2) 面向对象的分析的方法。 从需求分析建立的模型的特性来分:静态分 析和动态分析
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软 件和支撑软件(或工具软件)。
【例2】以下哪项是软件生命周期的主要活动阶段? _______(考点2) A)需求分析 B)软件开发 C)软件确认 D)软件演进 解析:B)、C)、D)项都是软件工程过程的基本活动。 答案:A)
软件测试与软件调试有何不同? 软件测试是尽可能多地发现软件中的错误,而软 件调试的任务是诊断和改正程序中的错误。软件测试 贯穿整个软件生命周期,调试主要在开发阶段。
【例1】对软件的特点,下面描述正确的是_______。 (考点1) A)软件是一种物理实体 B)软件在运行使用期间不存在老化问题 C)软件开发、运行对计算机没有依赖性,不受计算机 系统的限制 D)软件的生产有一个明显的制作过程 解析:软件在运行期间不会因为介质的磨损而老化,只 可能因为适应硬件环境以及需求变化进行修改而引入错 误,导致失效率升高从而软件退化,所以本题正确答案 为B)。 答案:B)
从工程管理的角度来看,软件设计分两步完成:概要设计和详细设计。 (1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全 局数据结构或数据库模式; (2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法 表示算法和数据结构的细节。 2.软件设计的基本原理 (1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级 别。抽象的层次从概要设计到详细设计逐步降低。 (2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部 分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若 干模块的过程。 (3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数 据),对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的 子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评 价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚 性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。 一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模 块的耦合性越强则该模块的模块独立性越弱。
调试原则可以从以下两个方面考虑: (1)确定错误的性质和位置时的注意事项 分析思考与错误征兆有关的信息;避开死胡同;只把 调试工具当作辅助手段来使用;避免用试探法,最多只能 把它当作最后手段。 (2)修改错误原则 在出现错误的地方,很可能有别的错误;修改错误的 一个常见失误是只修改了这个错误的征兆或这个错误的表 现,而没有修改错误本身;注意修正一个错误的同时有可 能会引入新的错误;修改错误的过程将迫使人们暂时回到 程序设计阶段;修改源代码程序,不要改变目标代码。
确认测试的任务是验证软件的功能和性能,以及其 他特性是否满足了需求规格说明中确定的各种需求,包 括软件配置是否完全、正确。确认测试的实施首先运用 黑盒测试方法,对软件进行有效性测试,即验证被测软 件是否满足需求规格说明确认的标准。 系统测试是通过测试确认软件,作为整个基于计算 机系统的一个元素,与计算机硬件、外设、支撑软件、 数据和人员等其他系统元素组合在一起,在实际运行 (使用)环境下对计算机系统进行一系列的集成测试和 确认测试。 系统测试的具体实施一般包括:功能测试、性能测 试、操作测试、配置测试、外部接口测试、安全性测试 等。
详细设计的任务是为软件结构图中的每个模块确定实现算法和局部 数据结构,用某种选定的表达工具表示算法和数据结构的细节。详细过 程设计的常用工具有: (1)图形工具:程序流程图,N-S图,问题分析图PAD,HIPO。 (2)表格工具:判定表。 (3)语言工具:PDL(又称为伪码或结构化语言)。 程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后 判断重复型和多分支选择型。 方框图(N-S图)中仅含5种基本的控制结构,即顺序型、选择型、 多分支选择型、WHILE重复型和UNTIL重复型。 PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、 WHILE重复型和UNTIL重复型。 过程设计语言(PDL)是一种混合语言,采用英语的词汇和结构化 程序设计语言,类似编程语言。PDL可以由编程语言转换得到,也可以 是专门为过程描述而设计的。
内聚性是度量一个模块功能强度的一个相对指标。内聚是从功 能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚 有如下种类,它们之间的内聚度由弱到强排列:偶然内聚、逻辑 内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。 耦合性是模块之间互相连接的紧密程度的度量。耦合性取决于 各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。 耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容 耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、 非直接耦合。 在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较 优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间 的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
1.软件设计的基础 从技术观点上看,软件设计包括软件结构设计、数据设计、接口设 计、过程设计。 (1)结构设计定义软件系统各主要部件之间的关系; (2)数据设计将分析时创建的模型转化为数据结构的定义; (3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之 间如何通信; (4)过程设计则是把系统结构部件转换为软件的过程性描述。
注:应用软件是为解决特定领域的应用而开发的软件;系统软件 是计算机管理自身资源,提高计算机使用效率并为计算机用户提 供各种服务的软件;支撑软件是介于两者之间,协助用户开发软 件的工具性软件。
考点2 软件工程过程与软件生命周期
考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择 题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生 命周期的定义,主要活动阶段及其任务。
3.2 结构化设计方法
考点3 软件设计的基本概念
考试链接: 考点3在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选 择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立 性中的耦合性和内聚性。 误区警示: 在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高 内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高 模块的独立性。
在对程序进行了成功的测试之后将进入程序调试(通常称Debug, 即排错)。程序的调试任务是诊断和改正程序中的错误。调试主要在 开发阶段进行。 程序调试活动由两部分组成,一是根据错误的迹象确定程序中错 误的确切性质、原因和位置;二是对程序进行修改,排除这个错误。 程序调试的基本步骤: (1)错误定位。从错误的外部表现形式入手,研究有关部分的程序, 确定程序中出错位置,找出错误的内在原因; (2)修改设计和代码,以排除错误; (3)进行回归测试,防止引进新的错误。
3.3软件测试
考点5 软件测试的目的
考试链接: 考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%, 主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测 试是为了发现错误。
软件测试是在软件投入运行前对软件需求、设计、编码 的最后审核。其工作量、成本占总工作量、总成本的40%以 上,而且具有较高的组织管理和技术难度。 (1)软件测试是为了发现错误而执行程序的过程; (2)一个好的测试用例是能够发现至今尚未发现的错误的 用例; (3)一个成功的测试是发现了至今尚未发现的错误的测试。
考点6 软件测试的实施
考试链接: 考点6在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分, 此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两种测 试方式。
软件测试过程分4个步骤,即单元测试、集成测试、验 收测试和系统测试。 单元测试是对软件设计的最小单位—模块(程序单元) 进行正确性检验测试。单元测试的技术可以采用静态分析和 动态测试。 集成测试是测试和组装软件的过程,主要目的是发现与 接口有关的错误,主要依据是概要设计说明书。集成测试所 设计的内容包括:软件单元的接口测试、全局数据结构测试、 边界条件和非法输入的测试等。集成测试时将模块组装成程 序,通常采用两种方式:非增量方式组装和增量方式组装。
软件产品从提出、实现、使用维护到停止使用退 役的过程称为软件生命周期。一般包括可行性分析研 究与需求分析、设计、实现、测试、交付使用以及维 护等活动,如下图所示。
系统设计
编码
运行
还可以将软件生命周期分为如上图所示的软件定义、 软件开发和软件运行维护3个阶段。
生命周期的主要活动阶段是:可行性研究与计划制 定、需求分析、软件设计、软件实施、软件测试及运行 与维护。
程序流程图,N-S图,PAD图的控制结构的异同点 是什么? 相同点是三种图都有顺序结构,选择结构和多 分支选择,并且N-S图和PAD图还有相同的WHILE 重复型、UNTIL重复型;不同点是程序流程图没有 WHILE重复型、UNTIL重复型而有后判断重复型和 先判断重复型。
注:N-S图是由若干基本框图构成的流程图,其特点是没 有流程线;PAD是一种由左往右展开的二维树型结构;程 序流程图用于描述问题解决的过程和步骤,其中椭圆形表 示事实描述,方框表示处理步骤,菱形框表示逻辑判断, 箭头表示控制流向;
注:上面仅是对耦合机制进行的一个分类。可见一个模块与其他模块的耦 合性越强则该模块独立性越弱。原则上讲,模块化设计总是希望模块之间 的耦合表现为非直接耦合方式。但是,由于问题所固有的复杂性和结构化 设计的原则,非直接耦合是不存在的。
考点4 详细设计
考试链接: 考点4在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分, 此考点为识记内容,读者应该识记过程设计包括哪些常用工具。
相关文档
最新文档