3.1.2 需求的种类
需求的种类很多,很多软件分析人员都有一种十分片面的认识:软件需求就是功能需求。事实上,功能需求很重要,但它不是构成软件需求的唯一要素,软件中的需求通常还包含以下几个方面,有时,它们的地位也很重要。故作为软件分析人员应该根据实际的用户需要综合、全面、细致、准确地来分析软件的需求。
一、功能需求
功能需求指目标软件系统必须完成的全部功能。例如,某“学生信息管理系统”必须完成“学生信息录入”“学生信息查询”“学生信息维护”“学生信息的数据备份/恢复”等功能,这其中的每个功能都是软件工程师必须在需求分析阶段通过收集用户对软件的实际需要,而最终分析出来的。“设计一个软件总是先考虑让它能正确地运行起来,然后再对其性能进行优化”,所以功能需求在软件需求分析过程中的地位非常重要。
二、性能需求
性能需求指目标软件系统的响应时间、CPU的使用率、内外存的使用率、网络传送速率、系统安全性、系统的吞吐等方面的需求。软件工程师在面对这些需求时要结合目标软件系统的特点进行分析。不同应用背景行业内的软件可能有着不同的性能需求,软件分析人员应该能准确地把握这些需求。
例如,实时的搜索引擎软件对响应时间有严格的要求,一般精确到毫秒级。再如一些游戏软件对显示存储容量以及CPU时间都有非常严格的要求。
图3.1 系统性能的例子
可靠性需求指软件系统在给定的时间间隔内可以成功运行的概率的度量。例如,小敏笔记本上的操作系统WindowsXP在两个月内不能出现三次以上的故障。
可用性需求指软件系统在给定的时间点可以成功运行的概率的度量,它量化了用户可以使用软件的程度。例如,学生信息管理系统的数据库(不论是原数据库或备份数据库)在任何给定的时间都应该是可用的。
可靠性强调在一段时间范围内的系统可使用性情况,而可用性则强调在一个时刻点的系统可使用性情况。
四、出错处理的需求
出错处理需求指当目标软件发现系统犯下了一个错误时所采取的行动。例如,学生信息管理系统中,软件错误地删除了学生的基本信息。作为软件工程师应该能正确认识错误的性质,分析出现错误的可能原因,根据错误的特点具体地进行出错的处理。错误可大致分为硬件错误、支撑系统(如操作系统)错误、软件程序错误、数据库系统错误等,软件工程师在正确分析了错误的特性后就可“对症下药”,合理地处理这些错误。但是,软件工程师也不能把精力全部置于错误的处理过程中,应以系统实现它的全部功能需求为前提。
五、各种接口需求
接口需求指目标软件与它的运行环境进行通信的格式。它包括硬件接口需求、用户接口需求、软件接口需求、网络通信接口需求等。
例如,开发一个基于图像采集卡的视频处理软件系统,软件工程师需要对图像采集卡与计算机系统之间的硬件接口需求展开分析,包括图像采集卡与计算机主板之间的接口需求、图像采集卡与摄像头之间的接口需求、图像采集卡与其他视频存储设备之间的接口需求等。
例如,开发一个图形绘制软件系统,软件工程师需要对软件呈现给用户的交互界面(即用户接口)展开需求分析,包括图形显示界面、图形的类别、绘制图形的工具等。
六、安装运行需求
安装运行需求指目标软件在安装、正常运行过程中所需要的基本软硬件环境。包括计算机的最低硬件配置、操作系统类型及其版本、数据库管理系统、通信协议等。
例如,开发一个单机版本的“学生信息管理系统”,它的安装运行需求如下:最低硬件配置是迅驰二代CPU、2G内存、200G硬盘、32M显卡,操作系统选择Win-dowsXP Professional及以上版本,数据库管理系统选择Microsoft SQL Server2005。
七、未来可能提出来的需求
未来可能提出来的需求指把不属于当前系统开发范畴,但根据分析将来很有可能会提出的相关要求考虑到当前系统的开发过程中。这些需求的提出可以使系统更好地适应未来的修改,提高系统的可扩展性。
例如,某图像处理软件系统目前仅处理灰度图像,但作为系统可扩展性的体现,未来可能需要处理各种彩色图像(包括真彩图像、伪彩图像),因此,软件工程师应该提出这样的“未来需求”:软件系统能处理包括灰度图像和彩色图像在内的各种类型的图像,这样,软件在设计过程中就可为处理彩色图像做好数据结构和处理算法等方面的准备。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。