一、软件工程的本质
从现实空间到计算机空间的软件代码之间的映射与转换。
单步映射需求与软件实现的偏差要大于多步映射。
概念映射:问题空间的概念与解空间的模型化概念之间的映射。
业务逻辑映射:问题空间的处理逻辑与解空间处理逻辑之间的映射。
不同抽象层次之间的映射过程:
需求分析:在一个抽象层上建立需求模型的活动,产生需求规约,作为开发人员和客户之间合作的基础,并作为以后开发阶段的输入。
软件设计:定义了实现需求规约所需的系统内部结构与行为,包括软件体系结构、数据结构、详细的处理算法、用户界面等,即所谓的设计规约,给出了实现软件需求的软件解决方案。
实现:由设计规约到代码的转换,以某种特定的编程语言,对设计规约中的每一个软件功能进行编码。
验证/确认:一种评估性活动,确定一个阶段的产品是否达到前阶段确立的需求,或者确认开发的软件与需求是否一致。
二、软件工程所关注的目标
1. 软件工程所关注的对象
产品:各个抽象层次的产出物;
过程:在各个抽象层次之间进行映射与转换;
软件工程具有产品与过程二相性的特点,即必须将二者结合起来考虑,不能忽视其中的任一方。
功能性需求:软件所实现的功能达到它的设计规范和满足用户需求的程度(完备性、正确性、健壮性、可靠性)。
非功能性需求:系统能够完成所期望的工作的性能与质量(效率、可用性、可维护性、可