软件工程
软件的生命周期: 问题定义、可行性研究、需求分析、概要设计、编码和单元测试、综合测试、软件维护。
软件特点:复杂性、不可见性、演化性。
软件危机的主要原因是
软件本身的特点及开发的方法。
软件危机:
开发和维护过程中的一系列问题。
软件工程的三要素:
过程、方法、工具。
软件工程:一门交叉学科。目的消除软件危机。
可行性任务:经济可行性、技术可行性、操作可行性、法律可行性。
需求分析方法:功能模型(DFD数据流图)、数据模型(ER图实体关系图)、行为模型(状态转换图)、模型核心(数据字典)。
根据ISO/IEC9126定义,软件的六大质量特性:易用性、安全性、可靠性 、可用性、可维护性、可移植性。
ER图的基本要素:实体、属性、联系。
软件设计的两个定性度量标准(模块独立):耦合和内聚。
体系结构设计图形工具—层次图
数据流图分为变换型数据流图和事务型数据流图。
变换型数据流图基本呈线性形状,由输入、变换、输出三部分组成。
事务型数据流图
测试分类:单元测试、集成测试、系统测试、验收测试。
单元测试:一般由开发人员执行,采用白盒测试(结构测试)。
集成测试:一般由测试人员执行,采用黑盒测试(功能测试)。
系统测试:在实际运行环境或模拟实际运行环境下,针对系统非功能特性所做的测试。
验收测试是目的验证软件的功能和性能是否满足用户预期的要求。
回归测试:是指修改了旧代码,重新进行测试,已经确认修改没有引入新的错误。
黑盒测试主要测试功能,方法为等价类划分法,正交实验法,因果法,边界值分析、场景法、决策表法等。
状态转化图的组成:状态(初态、终态、中间终态)、事件。
非功能需求:性能需求(速度、容量、负载、及时性)、质量属性、对外接口(硬件接口,软件接口等)、约束。
数据流图是结构化分析的工具,结构化方法就是采用自顶向下逐层分解的思想进行分析建模的。随着分解层次的增加,抽象的级别也越来越低,即越来越接近问题的解。数据流图建模应遵循:自顶向下、从抽象到具体的原则。
模块结构图的主要组成有:模块、调用、数据、控制信息和转接符号。
结构图的基本成分:模块、调用、控制。
程序设计语言的基本成分包括数据、运算、控制和传输等。程序设计语言的控制成分包括顺序、选择和循环3种结构。
原型模式不能用来指导代码优化。
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。
逻辑内聚:完成逻辑上相关的一组任务。
顺序内聚:处理元素相关,而且必须顺序执行。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构