基本概念
软件是由程序,数据,文档组成。
软件的特点:1,软件是一种逻辑实体,具有抽象性;
2软件没有明显的制作过程;
3,软件在使用过程中不存在磨损、老化问题;
4,对硬件和环境具有依赖性;
5,软件复杂性高,成本昂贵;
6,软件开发涉及诸多的社会因素。
软件的分类分为系统软件,应用软件和支撑软件(工具软件)。
软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。
软件工程过程所进行的活动主要包括4种基本活动即:软件规格说明、软件开发、软件确认和软件演进。
软件生命周期:通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。其分为3个时期和8个阶段
1, 软件定义期:包括问题定义,可行性研究和需求分析。
2, 软件开发期:包括概要设计,详细设计,实现和测试。
3, 运行维护期:即运行维护。
结构化设计方法
1. 软件设计概述
软件开发是开发阶段最重要的步骤
软件设计基础:软件结构设计、数据设计、接口设计、过程设计、
软件设计的基本原理和准则:
模块化 模块化使程序结构清晰,容易阅读、理解、测试和调试
抽象
信息隐藏
模块独立性 模块独立性的高低是设计好坏的关键,而设计又是决定软件质量的关键环节。模块的独立性可以有两个定性标准度量。:
1. 耦合衡量不同模块彼此间互相依赖的紧密程度:
2. 内聚衡量一个模块内部各个元素彼此结合的紧密程度。
概要设计中的结构图,也称为程序结构图,结构图的基本形式有3种:顺序形式、选择形式和重复形式。
数据流
数据流图的信息流可分为两种类型,变换流和事务流。相应的,数据流图有两种典型的结构形式:变换型和事务型。
详细设计
常用的过程设计工具有 1.图形工具:程序流程N-S图、PAD图、HIPO;
2.表格工具:判定表;
3.语言工具:PDL(伪码)。
构成流程图的基本图符及含义:用方框表示一个加工步骤、用菱形表示一个逻辑条件、用箭头表示控制流。
程序流程图的5种基本控制结构分别为:顺序结构、选择结构、until型循环结构、while型循环结构和多分支选择结构。
N-S图的·基本控制结构与程序流程图相同
PAD图 用二维树形结构的图来表示程序的控制流。基本控制结构也与程序流程图相同
软件测试与调试
软件测试方法:依据软件是否需要被执行划分可以分为静态测试和动态测试;依照功能划分可以分为白盒测试和黑盒测试。
动态测试的关键是使用设计高效、合理的测试用例
测试用例就是为测试设计的数据。
测试用例的设计方法一般分为两类:黑盒测试和白盒测试
白盒测试又称为结构测试或逻辑驱动测试
白盒测试是在程序内部进行,主要用于完成软件内部操作的验证
主要技术有逻辑覆盖测试、基本路径测试等
黑盒测试完全不考虑程序内部的逻辑结构和处理过程,黑盒测试是在软件接口处进行,检查和验证程序的功能是否符合需求规格说明书的功能说明。
常用的黑盒测试方法和技术有:等价类划分法、边界值分析法、错误推测法和因果图等。
软件测试的实施过程主要有4个步骤:单元测试、集成测试、确认测试和系统测试。