2)适应性维护:为与变化的环境适当配合而进行的修改软件的活动。 3)完善性维护:为了满足用户提出的增加新功能或修改已有功能的建议而进行维护。
4)预防性维护:为了改进未来的可维护性和可靠性。
软件开发时期要完成设计和实现两大任务,其中设计任务用需求分析和软件设计两个阶段完成,实现任务用编码和测试两个阶段完成。 开发任务完成的好与坏,关系到软件产品的质量,完成开发任务的关键是选择好的软件开发方法。
目前,软件开发方法主要有结构化开发方法和面向对象开发方法
知识点4软件设计的基本原理
软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。 1、模块化:指解决问题时自顶向下的方法逐层把软件系统划分成若干个模块的过程
2、抽象:认识复杂过程中使用的思维工具,即抽出事务的本质的共同的特性而暂不考虑它的细节和其他因素。
3、信息隐蔽:旨在设计和确定模块式的时候,是的一个模块内包含的信息,对于不需要这些信息的其他模块来说不可访问
4、模块独立性:指每个模块只完成系统要求的独立的功能,并且与其他模块联系最少且接口简单
模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。
6 / 14
1)内聚性:是对模块功能强度的度量,即对一个模块内部各个元素(语句之间、程序段)间彼此结合的紧密程度的度量。
2)耦合性:是模块间互相连接的紧密程度的度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
一个设计良好的软件系统应具有高内聚、低耦合的特征。
在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。 软件设计有两个步骤:
(1)概要设计(又称结构设计)是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;
(2)详细设计是确定每个模块的实现算法和局部数据结构,通过对结构表示进行细化,得到软件的详细数据结构和算法。
知识点5 结构化分析方法
结构化方法的软件开发过程
软件计划后 编码并测试
结构化分析 结构化设计 结构化程序设计
软件测试 面向对象方法的软件开发过程 软件计划后 面向对象分析 面向对象设计 面向对象编程
1、结构化分析(简称SA)方法是面向数据流进行需求分析的方法。 7 / 14
2、结构化分析方法的常用工具:数据流图、数据字典、结构化语言、判定树、判定表 3、SA的基本步骤如下:
① 自顶向下对系统进行功能分解,画出分层的数据流图 ② 由后向前定义系统的数据和加工,编制数据字典和加工说明 ③ 写出需求规格说明书(SRS)
4、数据流图是以图形的方式描绘数据在软件系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。 数据流图由数据流、加工(又称数据处理)、数据存储(又称文件)、数据源点或终点四种基本成分组成。 数据流图(简称DFD)图形元素:
① 数据流:是数据在系统内传播的路径。使用箭头代表数据的流向,数据名称标在箭头的边上
② 加工:输入数据经过加工变换产生输出。使用圆框代表加工 ③ 数据存储:指处理过程中存放各种数据。使用双杠(或单杠)表示数据文件或数据库。文件与加工之间用箭头线连接,单向表示只读或只写,双向表示可读可写
8 / 14
④ 数据源点或终点:指软件系统外部环境中的实体(包括人员、组织或其他软件系统,统称为外部实体)。使用方框表示数据的源点和终点
5、建立数据流图的步骤:
第一步:由外向里:先画系统的输入输出,然后画系统的内部。 第二步:自顶向下:顺序完成顶层、中间层、底层数据流图。 第三步:逐层分解。
6、DFD图的数据流可分为两种类型:变换流和事务流
变换流:信息沿着输入通路进入系统,同时将信息的外部形式转换成内部形式,通过变换中心处理之后,再沿着输出通路转换成外部形式输出
事务流:信息沿着输入通路到达一个事务中心,事务中心根据输入信息的类型在若干个动作序列中选择一个来执行,这种信息流称为事务流
7、数据字典就是用来定义数据流图中的各个成分的具体含义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。是结构化分析方法的核心。 数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的。
数据字典有四类条目:数据流、数据项、数据存储和基本加工。 8、SD方法的中心任务就是把用DFD图表示的系统分析模型方便地转换为软件结构的设计模型。
9 / 14
识点6软件测试的目的和准则
1、软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命周期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试、验证软件是否合格、能否交付给用户使用。软件测试就是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。 2、软件测试的原则: 1)所有测试都应追溯到需求
2)严格执行测试计划,排除测试的随意性 3)避免由软件开发人员测试自己的程序 4)充分注意测试中的群集性现象
5)除了很小的程序外,“彻底”的穷举测试是不可能的 6)妥善保存测试计划、测试用例、出错统计和最终的分析报告,为维护提供方便
软件测试的每一次测试都需要准备好一些测试数据,与被测程序一起输入到计算机中执行;
知识点7软件测试的方法和实施
10 / 14