在《实用软件工程》一书中,从分析、设计、实现、测试和管理这5个方面,提出了5个面向理论:面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理。
面向流程分析
需求分析,就是要分析清楚用户的需求,而分析清楚了用户的业务流程,也就清楚了用户的需求。所以,需求分析就是要面向流程分析。
用户的业务流程,说到底,就是数据流,一个业务流程就是业务数据从一个软件部件流向另一个软件部件。分析清楚了业务数据的流向,也就分析清楚了用户的业务流程。
而且,计算机本质上也仅识别二进制数据流。抓住数据流,也就抓住了软件的本质。
面向数据设计
软件的概要设计,是建立软件模块间的静态和动态关系,进行软件的接口设计。模块间的调用和接口间传递的都是数据。面向数据设计,就是建立数据模型,再基于数据模型,建立软件的业务模型和功能模型(包括性能模型和接口模型),由此完成软件的设计。
面向对象实现
软件实现,是将已经设计好的模块使用程序语言进行编程,实现其功能的过程。软件实现的对象是软件模块。
目前,流行的大多数编程语言都是面向对象的语言。而且,随着软件工程的发展,软件的构件化开发已经大行其道,模型驱动开发也已经崭露头角。这些都表明了软件实现的面向对象思想。
面向功能测试
软件测试有黑盒测试和白盒测试两种测试方法,其中黑盒测试就是功能测试。虽然黑盒测试取代不了白盒测试,但是无论单元测试、集成测试还是配置项测试,功能测试都是主要的、不可或缺的。
随着构件技术的发展,软件测试更多的将是功能测试(因为白盒测试在形成构件时就已经完成了)。
面向流程管理
软件产品的质量,离不开软件开发过程的质量控制。只有将需求、设计、编码、测试这些阶段的质量控制住,最终交付软件的质量才有保证。因此,才有了CMM、ISO9000、敏捷等一些过程方法的涌现。它们的出现,都是为了加强软件过程的管理。如果只管产品,不管过程,那么要交付合格产品的代价将会十分巨大。
总之,这5个方面的理论,覆盖了软件需求分析、设计、实现、测试这4大阶段,与软件工程的基本原理——分段管理的要求是一致的。5个方面理论,如同5个手指,它们紧握成拳,方能形成强大战力,软件工程才能发挥巨大作用。
参考书目:《实用软件工程》
微信赞赏专用通道