第3章 软件工程基础
3.1软件工程基本概念
1.软件的定义与特点
(1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。
(2)特点。
•是逻辑实体,有抽象性。
•生产没有明显的制作过程。
•运行使用期间不存在磨损、老化问题。
•开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。
•复杂性较高,成本昂贵。
•开发涉及诸多社会因素。
2.软件的分类
软件可分应用软件、系统软件和支撑软件3类。
(1)应用软件是特定应用领域内专用的软件。
(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
(3)支撑软件介于系统软件和应用软件之间,是支援其它软件的开发与维护的软件。
3.软件危机与软件工程
软件危机指在计算机软件的开发和维护中遇到的一系列严重问题。软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序,包括软件开发技术和软件工程管理。
4.软件生命周期
软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。
在国家标准中,软件生命周期划分为8个阶段①软件定义期:包括问题定义、可行性研究和需求分析3个阶段。②软件开发期:包括概要设计、详细设计、实现和测试4个阶段。③运行维护期:即运行维护阶段。
5.软件工程的原则
软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2结构化分析方法
需求分析的任务是发现需求、求精、建模和定义需求的过程,可概括为:需求获取、需求分析、编写需求规格说明书和需求评审。
1.常用的分析方法
•结构化分析方法:其实质着眼于数据流,自顶向下,逐层分解,建立系统的处理流程。
•面向对象分析方法。
2.结构化分析常用工具
结构化分析常用工具包括数据流图、数字字典(核心方法)、判断树和判断表。
(1)数据流图:即DFD图,以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能。是一种功能模型。
符号名称作用:
•箭头代表数据流,沿箭头方向传送数据的通道
•圆或椭圆代表加工,输入数据经加工变换产生输出
•双杠代表存储文件,表示处理过程中存放各种数据文件
•方框代表源和潭,表示系统和环境的接口
(2)数据字典:结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表。以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
(3)判定树:使用判定树进行描述时,应先从问题定义的文字描述中分清判定的条件和判定的结论,根据描述材料中的连接词找出判定条件之问的从属关系、并列关系、选择关系,根据它们构造判定树。
(4)判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合引发的,使用判定表比较适宜。
3.软件需求规格说明书
软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。
(1)软件需求规格说明书的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
(2)软件需求规格说明书的内容:①概述;②数据描述;③功能描述;④性能描述;⑤参考文献;⑥附录。
(3)软件需求规格说明书的特点:①正确性;②无歧义性;③完整性;④可验证性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追踪性。
3.3结构化设计方法
1.软件设计的基本概念和方法
软件没计是一个把软件需求转换为软件表示的过程。
(1)基本原理:抽象、模块化、信息隐藏、模块独立性(度量标准:耦合性和内聚性,高耦合、低内聚)。
(2)基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。
2.概要设计
(1)4个任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。
(2)面向数据流的设计方法:数据流图的信息分为交换流和事物流,结构形式有交换型和事务型。
3.详细设计的工具
详细设计的工具包括:
•图形工具:程序流程图、N-S、PAD、HIPO。
•表格工具:判定表。
•语言工具:PDL(伪码)。
3.4软件测试
1.目的
为了发现错误而执行程序的过程。
2.准则
•所有测试应追溯到用户需求。
•严格执行测试计划,排除测试的随意性。
•充分注意测试中的群集现象。
•程序员应避免检查自己的程序。
•穷举测试不可能。
•妥善保存设计计划、测试用例、出错统计和最终分析报告。
3.软件测试技术和方法
软件测试的方法按是否需要执行被测软件的角度,可分为静态测试和动态测试,按功能分为白盒测试和黑盒测试。
(1)白盒测试:根据程序的内部逻辑设计测试用例,主要方法有逻辑覆盖测试、基本路径测试等。
(2)黑盒测试:根据规格说明书的功能来设计测试用例,主要诊断方法有等价划分法、边界值分析法、错误推测法、因果图法等,主要用于软件确认测试。
4.软件测试的实施
软件测试是保证软件质量的重要手段,软件测试是一个过程,其测试流程是该过程规定的程序,目的是使软件测试工作系统化。
软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。
单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测试。
单元测试的目的是发现各模块内部可能存在的各种错误。
单元测试的依据是详细的设计说明书和源程序。
单元测试的技术可以采用静态分析和动态测试。
3.5程序的调试
(1)任务:诊断和改正程序中的错误。
(2)调试方法:强行排错法、回溯法和原因排除法。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |