数据流图:
数据字典:
数据字典的作用是软件分析和设计的工程中给人提供关于数据的描述信息;
数据字典由4个元素定义组成的:
{}是重复 ,()是可选
数据字典最重要的作用是作为分析阶段的工具;
START
INPUT(A,B,C)
IF A>5
THEN X=1
ELSE
Y=2
END IF
IF B>10
THEN Y=20
ELSE
Y=2
END IF
IF C>15
THEN Z=30
ELSE
Z=3
END IF
PRINT(X,Y,Z)
STOP
语句覆盖:
每条语句都执行一次;(两条正确判定语句)(俩次都正确)
A=2. B =0 ,X =4 执行路径:1452673
判定覆盖:
每个判定的分支至少执行一次;(一次正确,一次不正确)
A=3,B=0,X=1 执行路径:14523
A=2,B=1,X=2 执行路径:12673
条件覆盖:
每条语句都要执行;(全部为正确,全部为不正确)
A=2,B=0,X=4 执行路径:1452673
A=1,B=1,X=1 执行路径:123
判定条件覆盖:
A=2,B=0,X=4 执行路径:1452673
A=1,B=1,X=1 执行路径:123
判定覆盖不一定是条件覆盖,条件覆盖不一定是判定覆盖;
条件组合覆盖:
8种可能的组合:
(1)A>1,B=0
(2)A>1,B!=0
(3)A<=1,B=0
(4)A<=1,B!=0
(5)A=2,X>1
(6)A=2,X<=1
(7)A!=2,X>1
(8)A!=2,X<=1
(1)(5)组合:A=2,B=0,X=4 执行路径:1452673
(2)(6)组合:A=2,B=1,X=1 执行路径:12673
(3)(7)组合:A=1,B=0,X=2 执行路径:12673
(4)(8)组合:A=1,B=1,X=1 执行路径:123
满足条件组合覆盖标准的测试数据,也一定满足判定条件覆盖,条件覆盖和判定覆盖;
满足条件组合覆盖的不一定执行全部测试路径;
在设计人机交互界面时,总会遇到4个问题:
瀑布模型:
特点:
优点:
缺点:
增量模型:
优点:
缺点:
螺旋模型:
可以看作每个阶段增加风险分析工程的快速开发模型;
优点:
缺点:
RUP软件开发周期是一个二维的生命周期模型;
纵轴代表核心工作流,横轴代表时间
敏捷开发:
4个声明:
静态模型 类图 类之间的四个关系
动态模型 状态图 状态图
功能模型 用例图 用例图
对象模型;
对象模型表示“静态”的,结构化系统的“数据”性质,它是对模拟客观世界实体的对象以及对象彼此之间的关系的映射;
类图描述类与类之间的静态关系;
类之间的4个关系:
关联,映射,依赖和细化
动态模型:
动态模型表示瞬时性的,行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;
状态图描述对象的状态,触发和状态转换的事件以及对象的行为;
动态模型是基于事件共享而相互关联的一组状态图的集合;
功能模型:
功能模型是由一组数据流图组成的;
用例图是进行需求分析和建立功能模型的强有力工具;
在UML中,把用例图建立起来的系统模型称为用例模型;
用例图包含元有系统,行为者,用例以及用例之间的关系;
对象模型是最基本最重要的;
软件重用分为3个层次:
面对对象计师中的”类“,就是比较理想的可重用软构件,称为类构件;
类构件的3个重用方式:
提高可重用性:
需求分析阶段是软件定义阶段的最后一个阶段,它的基本任务是准确地回答”系统必须要做什么的“问题;
获取需求的方法:
4个方面验证软件需求的正确性
软件维护就是软件交互使用后,为了改正错误或满足新的需求而修改软件的过程;
改正性维护;
适应性维护;
完善性维护;(一半以上的时间)
预防性维护;
决定软件可维护性的因素有:
文档是决定软件可维护性的决定因素;
测试的目的是在软件投入生产运行之前,尽可能的发现软件中的错误;
软件测试的准则:
测试的步骤:
集成测试:
确认测试
Alpha测试是在受控的环境中进行的;
Beta测试时在不受控的环境中进行的;
白盒测试技术:
逻辑覆盖:
控制结构测试
黑盒测试技术:
等价划分
边界值分析
错误推测
调试:
调试是在测试发现错误之后,排除错误的过程;
软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率;
软件的可用性是在程序给定的时间点,按照规格说明书的观规定,成功运行的概率;
MTTF 估算平均无故障时间
软件危机典型的表现:
软件危机的原因:
一方面于软件本身的特点有关;
另一方面也和软件开发和维护的方法不正确有关;
软件工程是:
文档是影响软件可维护性的决定因素。
由于长期使用的大型软件系统在使用过程中必然经受多次修改,所以文档比程序代码要重要;
==========================================================================
代码行技术 是比较简单的定量的估算软件规模的方法。
工作量估算常用的模型有 :
COCOMO2模型,Putnam模型是用来 工作量估算
软件工程方法学包含3个元素: