系统开发与运行常识(1)

软件工程基础知识
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。

软件工程概述
1968年在德国的NATO(North Atlantic Treaty Organization,北大西洋公约组织)会议上首次提出了“软件工程”这个名词,希望用工程化的原则和方法来克服软件危机。

软件的生存周期
软件的生存周期:一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段。
软件的生存周期包括:可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。

(1)可行性分析与项目开发计划
参加人:用户、项目负责人、系统分析师。
产生的文档:可行性分析报告和项目开发计划。

(2)需求分析
参加人:用户、项目负责人、系统分析师。
产生的文档:软件需求说明书。

(3)概要设计
开发人员把确定的各项功能需求转换成需要的体系结构。
参加人:系统分析师、软件设计师。
产生的文档:概要设计说明书。

(4)详细设计
主要任务是设计功能模块。
参加人:软件设计师与程序员。
产生的文档:详细设计文档。

(5)编码
主要任务是编写源程序。

(6)测试
参加人:软件设计师、系统分析师。
产生的文档:软件测试计划、软件测试报告。

(7)维护
软件维护是软件生存周期中时间最长的阶段。

软件生存周期模型
(1)瀑布模型
(2)演化模型
(3)螺旋模型(制定计划、风险分析、实施工程、用户评估)
(4)喷泉模型(适合面向对象的开发方法)

软件开发方法
(1)结构化方法
(2)Jackson方法
(3)维也纳开发方法(VDM)
(4)面向对象开发方法(面向对象分析、面向对象设计、面向对象实现)

软件需求分析
(1)需求分析的任务
  确定软件系统的综合要求
    系统界面要求
    系统功能要求
    系统性能要求
    安全性、保密生、可靠性方面的要求
    系统的运行要求
    异常处理要求
    将来可能提出的要求
  分析软件系统的数据要求
  导出系统的逻辑模型
  修正项目开发计划
  可开发一个原形系统

需求的分析
软件需求:功能需求、非功能需求、设计约束。

软件需求的分析方法
数据域有三种属性:数据流、数据内容和数据结构。

需求工程
需求工程就是包括创建和维护系统需求文档所必需的一切活动的过程,也就是指需求开发和需求管理两个工作。

软件开发项目管理
成本估算
  成本估算方法:
    自顶向下估算方法
    自底向上估算方法
    差别估算法
    专家估算法
    类推估算法
    算式估算法(用于估算的方法有两种基本类型:由理论导出和由经验导出)

  成本估算模型:
    (1)Putnam模型:动态多变量模型。
    (2)COCOMO模型:结构性成本模型。
      (1)基本COCOMO模型
      (2)中级COCOMO模型
      (3)详细COCOMO模型

风险分析
风险分析实际上是四个不同的活动:风险识别、风险预测、风险评估和风险控制。

(1)风险识别
  风险识别:是试图系统化地确定对项目计划的威胁。
  风险条目检查表:
    产品规模
    商业影响
    客户特性
    过程定义
    开发环境
    构建的技术
    人员数目及经验
(2)风险预测
  风险预测(风险估算):(1)风险发生的可能性及概率;(2)风险发生了所产生的后果。
  风险预测活动:
    (1)建立一个尺度或标准,以反映风险发生的可能性。
    (2)描述风险的后果。
    (3)估计风险对项目和产品的影响。
    (4)标注风险预测的整体精确度,以免产生误解。
(3)风险评估
  风险评估三无组:(ri,li,xi),ri基中表示风险;li表示风险发生的概率;xi表示风险产生的影响。
  一个对风险很有用的技术就是定义风险参考水准。对于大多数软件项目来说,成本、进度和性能就是3种典型的风险参考水准。
  风险评估中需要执行以下四个步骤:
  (1)定义项目的风险参考水平值。
  (2)建立每一组(ri,li,xi)与每一个参考水平值的关系。
  (3)预测一组临界点以定义项目终止区域,该区域由一条曲线或不确定区域所界定。
  (4)预测什么样的风险组合会影响参考水平值。
(4)风险控制
  风险控制的目的:辅助项目组建立风险控制的策略。
  有效的策略须考虑的三个问题:
  (1)风险避免
  (2)风险监控
  (3)风险管理及意外事件计划。

进度管理
(1)进度安排的方式
  系统最终交付日期已经确定,软件开发部门必须在规定期限内完成。
  系统交付日期只确定了大致年限,最后交付日期由软件开发部门确定。

(2)进度安排常用图形描述方法
  Gantt图
  PERT图

人员管理
程序设计小组的组织形式:
(1)主程序员组
(2)无主程序员组
(3)层次式程序员组

软件配置管理
软件配置管理(SCM,Software Configure Management):主要目标是:标识变更、控制变更、确保变更正确的实现,报告有关变更。它是一组管理整个软件生存期各阶段的中变更的活动。

基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,便于检查与肯定阶段成果。

软件配置项
软件配置项(Software Configure Item,SCI)是软件工程中产生的信息项,它是配置管理的基本单位,对已经成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一个修改。

以下的SCI是SCM的对象,并可以形成基线:
(1)系统规格说明书。
(2)软件项目实施计划书。
(3)软件需求规格说明书。
(4)设计规格说明书。
(5)源代码清单。
(6)测试计划和过程、测试用例和测试结果记录。
(7)操作和安装手册。
(8)可执行程序。
(9)数据库描述。
(10)用户手册。
(11)维护文档。
(12)软件工程标准。
(13)项目开发小结。

版本控制
软件的每一个版本都是SCI的一个汇集,且各个版本都可能由不同的变种组成。

变更控制
为有效地实现变更控制需要借助于配置数据库和基线的概念,配置数据库可以分为3类:
(1)开发库
(2)受控库(软件配置库)
(3)产品库

软件工具与软件开发环境
软件工具:通常也称为CASE(Computer Aided Software Engineering,计算机辅助软件程)工具。是用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件。
软件开发环境:是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。
工具集:应包括软件开发相关过程、活动、任务的软件工个,以对软件开发以提供全面的支持。
环境集成机制:为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成、界面集成。

软件工具
软件工具的分类:
(1)软件开发工具
  (1)需求分析工具
  (2)设计工具
  (3)编码与排错工具
(2)软件维护工具
  (1)版本管理工具
  (2)文档分析工具
  (3)开发信息库工具
  (4)逆向工程工具
  (5)再工程工具
(3)软件管理和软件支持工具
  (1)项目管理工具
  (2)配置管理工具
  (3)软件评价工具

软件开发环境
软件开发环境(Software Development Environment)是支持软件产品开发的软件系统。由软件工具集和环境集成机制构成,前者用来支持软件开发的相关过程、活动和任务;后者为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。
软件开发环境的特征:
(1)环境的服务是集成的。
(2)环境应支持小组工作方式,并为其提供配置管理。
(3)环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、测试、调试、文档等。

软件过程管理
软件过程:是软件生存周期中的一系列相关活动,即用于开发和维护软件及相关产品的一系列活动。
软件产品的质量取决于软件的开发过程,具有良好软件过程的软件机构能够开发出高质量的软件产品。

软件过程评估的意义
(1)软件过程改进的需求
  软件过程不断改进是软件工程的基本原理之一
    软件工程七原理:
    按软件的生存周期分阶段指定计划并认真实施;
    逐阶段进行确认;
    坚持严格的产品控制;
    使用现代程序设计技术;
    明确责任;
    用人少而精;
    不断改进开发过程。
  软件过程的改进是软件生存周期的基本过程之一
(2)降低软件风险的需要
  软件采购者的需要
  软件承制者的需要

软件能力成熟度模型CMM简介
软件能力成熟度模型共分五级:
  初始级
  可重复级
  已定义级
  已管理级
  优化级

统一过程(UP)

极限编程(XP)

软件质量管理与质量保证
软件质量是反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。
软件质量保证是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。

软件质量特性
用来描述软件质量特性的软件质量模型:
(1)ISO/IEC 9126软件质量模型
  功能性(适应性、准确性、互用性、依从性、安全性)
  可靠性(成熟性、容错性、可恢复性)
  易使用性(易理解性、易学性、易操作性)
  效率(时间特性、资源特性)
  可维护性(易分析性、易改变性、稳定性、易测试性)
  可移植性(适应性、易安装性、一致性、易替换性)
(2)Mc Call软件质量模型
Mc Call软件质量模型从软件产品的运行、修正、转移三个方面确定了11个质量特性。
Mc Call给出了一个三层模型框架,第一层是质量特性,第二层是评价准则、第三层是度量指标。

软件质量保证
软件质量的三个要点:
(1)满足用户需求。
(2)遵循规定的标准。
(3)满足某些隐含需求。

软件质量保证7个主要活动相关的各种任务:
(1)应用技术方法
(2)进行正式的技术评审
(3)测试软件
(4)标准的实施
(5)控制变更
(6)度量
(7)记录保存和报告

软件复杂性
软件度量的一个重要分支就是软件的复杂性度量。
软件复杂性度量的主要参数:规模、难度、结构、智能度。

程序复杂性主要有以下几种度量方法:
(1)代码行度量法:源代码的行数
(2)McCabe度量法:控制流的复杂性

软件评审
质量:通常可以理解为“用户满意程度”。为了使用用户满意,有两个必要条件:设计质量、程序质量。
设计质量:设计的规格说明书附合用户的要求。
程序质量:程序按规格说明书所规定的情况正确执行。

设计质量的评审内容
  (1)评价软件的规格说明书是否合乎用户的要求。
  (2)评审可靠性。
  (3)评审保密措施实现情况。
  (4)评审操作特性实现情况。
  (5)评审性能实现情况
  (6)评审软件是否具有可修改性、可扩充性、可互换性和可移植性。
  (7)评审软件是否具有可测试性。
  (8)评审软件是否具有复用性。

程序质量的评审内容
(1)软件的结构
  功能结构
    数据结构
    功能结构
    数据结构与功能结构的对应关系
  功能的通用性
  模块的层次
  模块结构
    控制流结构
    数据流结构
    模块结构与功能结构的对应关系
  处理过程的结构

(2)与运行环境的接口
  与硬件接口
  与用户接口

软件容错技术
提高软件质量和可靠性的技术大致可分为两类:
  (1)避开错误
  (2)容错技术

容错软件的定义
(1)规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。
(2)规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。
(3)规定功能的软件,在一定程序上能从错误状态自动恢复到正常状态,则称之为容错软件。
(4)规定功能的软件,在一定程序上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。

容错的一般方法
实现容错的主要手段是冗余。
冗余技术的分类:
  (1)结构冗余
    静态冗余
    动态冗余
    混合冗余
  (2)信息冗余
  (3)时间冗余

冗余附加技术
冗余附加技术是为实现冗余技术所需的资源和技术。
在屏蔽硬件错误的容错技术中,冗余附加技术包括:
  (1)关键程序和数据的冗余存储和调用。
  (2)检测、表决、切换、重构、纠错和复算的实现。
在屏蔽软件错误的容错系统中,冗余附加技术的构成包括:
  (1)冗余备份程序的存储及调用。
  (2)实现错误检测和错误恢复的程序。
  (3)实现容错软件所需的固化程序。

系统分析基础知识
系统分析概述
系统分析的目的和任务
系统分析的主要任务:对现行系统进一步详细调查,将调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需资料,并提交系统方案说明书。

系统分析的主要步骤
系统分析过程如下:
(1)认识、理解当前的现实环境,获取当前系统的“物理模型”。
(2)从当前系统的“物理模型”抽象出当前系统的“逻辑模型”。
(3)从当前系统的“逻辑模型”进行分析和优化,建立目标系统的“逻辑模型”。
(4)对目标系统的逻辑模型具体化(物理化),建立目标系统的“物理模型”。

系统分析阶段的主要工作步骤分为:
(1)对当前系统进行详细调查,收集数据。
(2)建立当前系统的逻辑模型。
(3)对现状进行分析,提出改进意见和新系统应达到的目标。
(4)建立新系统的逻辑模型。
(5)编写系统方案说明书。

结构化分析方法
结构化分析(Structured Analysis,SA):是一种面向数据流的需求分析方法,适用于分析大型数据处理系统。
结构化分析方法的基本思想是自顶向下逐层分解。
分析和抽象是人们控制问题复杂性的两个基本手段。
SA分析方法的结果:一套分层的数据流图、一本数据词典、一组小说明(也称为加工逻辑说明)、补充材料。

数据流图
数据流图(数据流程图,Data Flow Diagram,DFD):是一种便于用户理解、分析系统数据流程的图形工具。

DFD的基本成分
(1)外部实体:存在于软件系统之外的人员或组织。它指出了系统所需数据的发源地和系统产生数据的归宿地。
(2)加工:描述了输入数据流到输出数据流的转换。
(3)数据存储:表示暂时存储的数据,每个数据存储都要命名。
(4)数据流:有一组固定成分的数据组成,表示数据的流向。除了流入或流出数据存储的数据流,都要对它进行命名。

 

分层数据流的画法
(1)画系统的输入和输出
(2)画系统的内部
  确定加工:数据流的组成或值发生变化的地方,或是根据系统的功能。
  确定数据流:当用户把若干个数据看作一个单位来处理时,可把这些数据看成一个数据流。
  确定数据存储:对于一些以后某个时间要使用的数据可以组织成数据存储。
(3)画加工的内部
(4)重复分解子图

对图和加工进行编号
(1)父图与子图
(2)编号
  顶层图只有一张,不编号
  0层图只有一张,其中的加工号可编为:0.1、0.2、……,或是1、2、……。
  子图号就是父图中被分解的加工号。
  子图的加工号由图号、圆点、序号组成。

应注意的问题:
(1)适当地为数据流、加工、数据存储、外部实体命名(名字应反映该成分的实际含义,避免空洞的名字)。
(2)画数据流而不要画控制流。
(3)一个加工的输出数据流不应与输入数据流同名(即使他们的组成成分相同)。
(4)允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个的加工。
(5)保持父图与子图平衡(父图中某加工的输入/输出数据流必须与它的子图的输入/输出数据流在数量上和名字上相同)。
(6)在自顶向下的分解过程中,若一个数据存储首次出现时只与一个加工有关,那么这个数据存储应作为这个加工的内部文件而不必画出。
(7)保持数据守恒(一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据)。
(8)每个加工必须既有输入数据流,又有输出数据流。
(9)在整套数据流图中,每一个数据存储必须既有读的数据流,又有写的数据流(在某一张子图中可能只有读没有写,或者只有写没有读)。

数据词典
数据词典就是为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项作出说明。其中对加工的描述称为“小说明”,也可称为“加工逻辑说明”。

数据词典的内容
数据词典有:数据流、数据项、数据存储和基本加工4类。
数据项:是组成数据流和数据存储的最小元素。
源点、终点不在系统之内,故一般不在词典中说明。
(1)数据流条目:数据流条目给出了DFD中数据流的定义,通常列出该数据流的各组成数据项。
(2)数据存储条目:数据存储条目是对数据存储的定义。
(3)数据项条目:数据项条目是不可再分的数据单位。
(4)加工条目:加工条目是用来说明DFD中基本加工的处理逻辑的。

数据词典
词典管理:主要是把词典条目按照某种格式组织后存储在词典中,并提供排序、查找、统计等功能。

加工逻辑的描述
加工逻辑也称为“小说明”。
常用的加工逻辑描述方法有三种:结构化语言、判定表和判定树。
(1)结构化语言
  结构化语言的结构:
    (1)外层:顺序结构、选择结构、重复结构。
    (2)内层:自然语言。
(2)判定表
  判定表能清楚地表示复杂的条件组合与应做的动作之间的对应关系。
  判定表由四个部分组成四个区域,判定表的结构如下:
条件定义 || 条件取值的组合
===================================
动作定义 || 在各种取值的组合下应执行的动作

系统分析报告
系统分析报告中,数据流图、数据字典和加工说明这3部分是主体,是系统分析报告中必不可少的部分。
系统分析报告必须简明扼要、抓住本质,反映出目标系统的全貌和开发人员的思想。

系统分析报告的主要作用
(1)描述了目标系统的逻辑模型,作为开发人员进行系统设计和实施的基础。
(2)作为用户和开发人员之间的协议或合同,为双方的交流和监督提供基础。
(3)作为目标系统验收和评价的依据。

系统分析报告的主要内容
(1)组织情况概述。
(2)现行系统概述。
(3)系统逻辑模型。
(4)新系统在各个业务处理缓解拟采用的管理方法、算法或模型。
(5)与新系统相配套的管理制度和运行体制的建立。
(6)系统设计与实施的初步计划。
(7)用户领导审批意见。

系统设计知识
系统的基本任务大体上分为概要设计和详细设计两个步骤。
概要设计的基本任务
(1)设计软件系统总体结构
(2)数据结构与数据库设计
(3)编写概要设计文档
(4)评审

详细设计的基本任务
(1)对每个模块进行详细的算法设计。
(2)对模块内的数据结构进行设计。
(3)对数据库进行物理设计,即确定数据库的物理结构。
(4)其它设计。
(5)编写详细设计说明书。
(6)评审。

系统设计的基本原理
(1)抽象
(2)模块化
(3)信息隐藏
(4)模块独立(藕合性和内聚性)

系统总体结构设计
系统总体结构设计的原则
(1)分解—协调原则。
(2)自顶向下的原则。
(3)信息隐蔽、抽象的原则。
(4)一致性原则。
(5)明确性原则。
(6)模块之间的耦合性尽可能小,模块内部的内聚度尽可能高。
(7)模块的扇入系数与扇出系数要合理。
(8)模块的规模适当。

子系统划分
子系统划分的原则
(1)子系统要具有相对独立性。
(2)子系统之间数据的依赖性尽量小。
(3)子系统的划分的结果应使数据冗余较小。
(4)子系统的设置就考虑今后管理发展的需要。
(5)子系统的划分应便于系统分阶段实现。
(6)子系统的划分就考虑到各类资源的充分利用。

子系统结构设计
(1)每个子系统如何划分成多个模块。
(2)如何确定了系统之间、模块之间传送的数据及其调用关系。
(3)如何评价并改进模块结构的质量。
(4)如何从数据流图导出模块结构图。

系统模块结构设计
模块:是组成系统的基本单位,特点是可以组合、分解和更换。
根据模块功能的具体化程序可分为:逻辑模块、物理模块。
模块应具备的四个要素:
(1)输入和输出。
(2)处理功能。
(3)内部数据
(4)程序代码

模块结构图
结构设计的原则:
(1)凝聚性强,独立性强。
(2)模块的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。
(3)整个系统呈树状结构,不允许网状结构或交叉结构关系出现。
(4)所有的模块都必须严格地分类编码并建立档案文件。
模块结构的组成:模块、调用、数据、控制信息、转接符号。

数据存储设计

结构化设计的方法
信息流的类型:变换流、事务流。

变换分析
(1)确定输入流和输出流,分离出变换中心。
(2)第一级分解。
(3)第二级分解。
(4)事务分析。
(5)SD方法的设计步骤。

面向数据结构的设计方法
Jackson图
Jackson方法的设计步骤
(1)分析并确定输入和输出数据的逻辑结构。
(2)找出输入数据结构与输出数据结构间有对应关系的数据单元。
(3)从描述数据结构的Jackson图到描述程序结构的Jackson图。
(4)列出所有操作,并把他们分配到程序结构图的适当位置。
(5)用伪码表示程序。

系统详细设计
代码设计
代码设计的基本原则:唯一性、合理性、可扩充性、简单性、适用性、规范性、系统性。

代码设计步骤:
(1)确定输出内容。
(2)选择输出设备与介质。
(3)确定输出格式。

最终输出方式常用的有两种:报表输出、图形输出。

输入设计
输入设计就遵循的原则:
(1)最小量原则
(2)简单性原则
(3)早检验原则
(4)少转换原则

输入设计的内容
(1)确定输入数据的内容
(2)输入方式设计
(3)输入格式设计
(4)校对方式设计

处理过程设计
(1)程序流程图
(2)流图(NS图)
(3)形式语言
(4)决策树
(5)决策表

用户界面设计
(1)菜单方式
(2)会话管理方式
(3)提示方式与权限管理方式

安全控制设计
影响系统安全因素有:
(1)环境性因素
(2)数据处理因素

系统实施的知识
系统实施概述
系统实施的目的和任务
系统实施阶段的主要任务:
(1)按总体设计方案购置和安装计算机网络系统。
(2)软件准备。
(3)培训。
(4)数据准备。
(5)投入切换和试运行。

系统实施的步骤
(1)按总体设计方案购置和安装计算机网络系统。
(2)建立数据库系统。
(3)程序设计。
(4)收集有关数据并进行录入工作,然后进行系统测试。
(5)人员培训、系统转换和试运行。

程序设计
程序设计方法
程序设计方法:结构化方法、原型方法、面向对象方法。

程序设计的基本模块
基本类型如下:
(1)控制模块
(2)输入模块
(3)输入数据校验模块
(4)输出模块
(5)处理模块

程序设计语言的选择

系统测试与调试
系统测试的意义、目的及原则
系统测试:是为了发现错误而执行程序的过程,成功的测试是发现尚未发现的错误的测试。
系统测试的目的:就是希望以最少的人力和时间发现潜在的各种错误和缺陷。
信息系统测试应包括:软件测试、硬件测试和网络测试。
信息系统测试的基本原则:
(1)尽早并不断地进行测试。
(2)测试工作应该避免由原开发软件的人或小组承担。
(3)设计测试方案的时候,不仅要确定输入数据,而且要根据系统功能确定预期输出结果。
(4)在设计测试实例时,不仅要设计有效合理的输入条件,也要包含不合理、失效的输入条件。
(5)在测试程序时,不仅要查检程序是否做了该做的事,还要检查程序是否做了不该做的事。
(6)严格按照测试计划进行,避免测试的随意性。
(7)妥善保存测试计划、测试例子,作为软件文档的组成部分,为维护提供方便。
(8)测试例子都是精心设计出来的,可以为重新测试或追加测试提供方便。

测试过程
一个规范化的测试过程通常包括以下测试活动:
(1)制定测试计划
(2)编制测试大纲
(3)根据测试大纲设计和生成测试用例
(4)实施测试
(5)生成测试报告

测试策略呼测试方法
软件测试分为:静态测试(人工检测、计算机辅助分析)、动态测试(黑盒测试法、白盒测试法)。

测试用例的设计
测试用例的组成:测试输入数据和与之对应的预期输出结果。在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

用黑盒法设计测试用例
黑盒测试(功能测试)不考虑内部结构和特性,测试软件的外部特征。
用黑盒法测试主要是为了发现以下的错误:
(1)错误的功能和遗漏的功能。
(2)界面错误、输入是否正确接收、输出是否正确。
(3)数据结构和外部数据库访问错误。
(4)性能是否能够接受。
(5)是否有初始化或终止性错误。

用白盒法设计测试用例
白盒测试(结构测试)根据程序的内部结构和逻辑来设计测试例子。
白盒测试常用的技术是逻辑覆盖和基本路径测试。
覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
白盒测试的原则:
(1)程序模块中的所有独立径至少执行一次。
(2)在所有的逻辑判断中,取“真”和取“假”的两种情况至少都执行一次。
(3)每个循环都应在边界条件和一般条件下各执行一次。
(4)测试程序内部数据结构的有效性等。

软件的测试步聚
(1)单元测试(模块测试)
(2)集成测试(增量式集成和非增量式集成)
(3)确认测试
(4)系统测试

调试
调试方法:
(1)试探法
(2)回溯法
(3)对分查找法
(4)归纳法
(5)演绎法

系统文档
系统文档的作用:
(1)用户与系统分析人员在系统规划和系统分析阶段通过文档进行沟通。
(2)系统开发人员与项目管理人员通过文档在项目期内进行沟通。
(3)系统测试人员与系统开发人员通过文档进行沟通。
(4)系统开发人员与用户在系统运行期间进行沟通。
(5)系统开发人员与系统维护人员通过文档进行沟通。
(6)用户与维修人员在运行期间进行沟通。

系统转换
系统试运行阶段的主要工作
(1)对系统进行初始化、输入各原始数据记录。
(2)核对新系统输出和旧系统输出的结果。
(3)对实际系统的输入方式进行考察。
(5)对系统实际运行、响应速度进行实际测试。

系统转换的方式
系统转换方式:直接转换、并行转换、分段转换。

系统转换实例
(1)初始阶段
(2)推广阶段
(3)控制阶段
(4)集成阶段
(5)管理阶段
(6)成熟阶段

系统运行和维护知识
系统维护概述
系统可维护性概念
系统的可维护性可以定性地定义为:维护人员理解、改正、改动、改进这个软件的难易程度。
系统可维护性的评价指标:
(1)可理解性
(2)可测试性
(3)可修改性

维护与软件文档
文档是软件可维护性的决定因素。
软件系统的文档可分为:用户文档、系统文档。

软件文档的修改
维护应该针对整个软件配置,不应该只修改源程序代码。

系统维护的内容及类型
系统维护主要包括:硬件设备的维护、应用软件的维护、数据的维护。
(1)硬件维护(定期的设备保养性维护、突发的故障维护)
(2)软件维护(正确性维护、适应性维护、完善性维护、预防性维护)
(3)数据维护

系统维护的管理和步骤
步骤:
(1)提出维护或修改要求。
(2)领导审查并做出答复,如同意则列入维护计划。
(3)领导分配任务,维护人员执行修改。
(4)验收维护成果并登记修改信息。

系统评价
系统评价的概述
系统评价的分类:(立项评价、中期评价、结项评价)
系统评价注意事项:
(1)数据采集问题
(2)信息系统并不是万能系统。

系统评价的指标

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值