软件需求描述方法的比较与分析.doc

上传人:laozhun 文档编号:2885268 上传时间:2023-03-01 格式:DOC 页数:7 大小:502.50KB
返回 下载 相关 举报
软件需求描述方法的比较与分析.doc_第1页
第1页 / 共7页
软件需求描述方法的比较与分析.doc_第2页
第2页 / 共7页
软件需求描述方法的比较与分析.doc_第3页
第3页 / 共7页
软件需求描述方法的比较与分析.doc_第4页
第4页 / 共7页
软件需求描述方法的比较与分析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《软件需求描述方法的比较与分析.doc》由会员分享,可在线阅读,更多相关《软件需求描述方法的比较与分析.doc(7页珍藏版)》请在三一办公上搜索。

1、软件需求描述方法的比较与分析王利(泸州职业技术学院 信息工程系, 四川 泸州646005)摘要软件需求分析过程是软件开发过程中的一个重要环节。如何描述系统需求对于软件开发过程而言是至关重要的。在不同的软件开发方式下,存在着不同的需求描述方法,针对不同的 需求描述方法进行分析和给出选择需求描述方法的建议。关键词软件工程;需求工程;需求描述方法1 软件需求分析概述软件开发过程总体上可以分为分析、设计、实 现、测试、部署和调试等几个阶段。需求分析是软件开发过程中的一个重要阶段,这一阶段的工作 结果将影响软件开发过程中后续各阶段的工作。在现代软件开发过程中,需求分析的地位重要,因 而成为一个独立的工程

2、过程称为需求工程。需求分析的任务是深入描述软件的功能和性 能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。通过 需求分析,逐步细化对软件的需求,描述软件要处理的数据域,并给软件开发提供一种可以转化为 数据设计、结构设计和过程设计的数据与功能表示。在软件开发完成后,制定的软件需求规格说 明还要为评价软件质量提供依据1。软件需求分析包括用户需求分析和系统需求 分析。用户需求由用户提出,表达用户对软件功能和性能的概述性描述。系统需求由软件开发者 提供,表达软件系统应该提供的服务的详细描述。软件系统需求包括2:(1)功能需求,描述系统所预期提供的功能或 服务。(2)非功

3、能需求,定义了系统的约束,比功能需求更为关键。非功能需求不只是与软件系统本 身有关,还与系统开发过程有关。(3)领域需求,起源于应用领域而不是系统的用户需求。软件需求分析的最终结果是完成软件需求文 档的编写。软件需求文档是对系统开发要求的正 式陈述。它应该包含系统的用户需求和系统需求 的详细描述。软件需求文档的用户广泛,包括:系 统客户,管理者,系统工程师,系统测试工程师,系 统维护工程师。Heringe(r 1980)的论文中对软件需求文档提 出了 6 点要求3:(1)应该只叙述系统外部行为;(2)应该定义对软件运行环境和软件功能、性 能的约束;(3)应该是容易改变的;(4)应该成为系统维护

4、人员的参考工具;(5)应该记录系统的整个生命周期;(6)应该对未料到的事件给出可接受的反应。2 需求描述方法的分类在需求分析的过程中,如何将获得的用户需 求分析结果和系统需求分析的结果以适当的方式表示出来,即对用户需求和系统需求的描述,是一 个重要的问题。需求的描述是软件需求文档中的重要组成部分。在不同的需求分析模型中采用了 不同的需求描述方式来表达软件需求。2.1 用户需求描述 用户需求是从用户角度来描述系统功能和非功能需求。为了让不具备相关专业技术知识的用作者简介:王利(1978 ),女,泸州职业技术学院信息工程系讲师。主要研究方向:数据库和软件技术。外部行为。用户需求要用自然语言,图表,

5、和直观的图形来叙述。编写用户需求的时候,为尽量减 少理解偏差,应遵守一些简单原则2:(1)设计一个标准的格式,保证所有的需求定 义都按照该格式来书写。(2)使用一致的语言,尤其是区别强制性和希望性的需求。(3)对文本加亮 (或用黑体或斜体) 来突出显 示关键性的需求。(4)尽量避免使用计算机专业术语。2.2 系统需求描述 系统需求是比用户需求更详细的需求描述,是一个完全的和一致的系统描述,是软件设计人 员进行系统设计的起点。系统需求描述包括许多不同的模型,如对象模型与数据流模型。原则上 系统需求应陈述系统应该做什么而不包括系统应该如何实现。系统需求常用的描述方式有以下四(1)结构化自然语言(2

6、)设计描述语言(3)图形化符号(4)数学描述在后面的各节中将对这几类需求描述方式行讨论,由于数学描述的系统需求应用得并不泛,因而在本文中不作讨论。3 常用需求描述方法分析3.1 结构化自然语言描述和设计语言描述结构化自然语言是较早使用的系统需求描方式。自然语言便于理解,但容易产生二义性结构化自然语言是对自然语言进行严格的格式束,在保持了自然语言的表现能力和易懂性的础上进行了一致性约束。在 Heringe(r 1980)的文中使用结构化自然语言对战斗机A-7 项目的件系统需求进行了描述3。下面是其中一个功模块的示例:(图 1)图 1 结构化自然语言需求描述的示例从这个示例中可以看出,专用的格式文

7、本用来描述系统的输入、输出和功能。在使用格式化 自然语言来描述系统需求时,格式化的文本应该 提供如下信息2:(1)实体或功能描述。(2)输入及输出去向描述。(3)输入及输出的来源描述。(4)其他被引用的实体的索引。Demand Function Name: Change scale factorModes in which function required:*Lautocal*, *Sautocal*, *Lsndaln*, *SINSal”*, *HUDaln*, *Airaln* Output data item: /IMSSCAL/Function Request and Output

8、 Description:Event Table: When the Scale Factor Is ChangedMODES EVENTSACTION /IMSSCAL/:=$Fine$ /IMSSCAL/:=$Coarse$*Lautocal*Landaln*T(In mode) WHEN X(/ IMSSCAL/=$Coarse$)X*HUDaln*T(In made) WHEN T(In mode) WHEN(/IMSMODE/=$Gdal$AND /IMSSCAL/=$Coarse$)T(In mode)WHEN (NOT(/IMSMODE/=$Gndal$) AND/IMSSCAL

9、/=$Fine$)*$autocal*$INSaln*Airaln*XT(In mode)WHEN (/IMSSCAL/=$Fine$)(5)如果一个功能性方法被用到,前置条件设定在什么逻辑子句为真时执行该功能;后置条件 设定该功能执行之后什么逻辑子句应该为真。(6)对操作的副作用(如果有的话)的描述。 使用格式化自然语言能够去除自然语言描述中存在的一些问题,但是仍然存在一些二义 性问题。于是,有一些开发项目采用了另外一种更为形式化的类似于编程语言的方式来描述系统需求,这就是 PDL(程序设计语言)的描述方 式。PDL 语言起源于类似于 Java 或 Ada 的程 序设计语言。这样的描述方式比

10、结构化自然语 言更形式化。下面举出一个使用类 Java 语言的 PDL 语言描述的打印服务器接口的 PDL 描述2(图 2)。图 2 用类 Java 语言进行需求描述的示例3.2 结构化分析方法中的数据流图描述结构化分析方法是在 20 世纪 70 年代由 Yourdon E. ,Constantine L., DeMarco T . 等人提 出。结构化分析方法在软件工程领域中得到了广泛的应用,同时结构化分析方法中的一些重要概 念也渗透到其他的软件开发方法中。结构化分析方法适合于数据处理类型的需求 分析。结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到

11、找到满足功能要求的所有可实现的 软件为止。结构化分析方法中使用数据流图 (DFD,Data Flow Diagram) 作为主要需求描述方 式1。DFD 是非常方便的工具,特别是在开发事务 处理系统方面实用性很强。下面举出了一个使用 DFD 描述的系统需求的例子4( 图 3)。interface PrintServer/defines an abstract printer server/requires:interface Printer , interface PrintDoc/provider: initialize,print , displayPrintQueue, cancelPr

12、intJob, switchPrint void initialize ( Printer p);void print( Printer p, PrintDoc p);void displayPrintQueue( Printer p);void canalPrintJob (Printer p, PrintDoc d);void switchPrinter (Printer p1, Printer p2 , PrintDoc d);/PrintServer面向对象的软件开发方法是现在最流行的软件开发方法,其中最著名的工具就是UML(Unified Modeling Language)。UML

13、 用例分析技术是一项 得到业界公认的需求获取和分析技术,结合适当求。UML 中使用用例图来描述系统需求。下举出一个在教材管理系统的需求分析过程中使UML 用例图进行需求描述的例子。图中描述与教职工这一参与者有关的系统用例。(图 4System登录系统查询教材基本信息教职工查询教材详细信息修改个人信息图 4 使用 UML 用例图需求描述的示例在用例分析中,除了使用用例图来进行需求描述外,还需要使用用例描述和非功能需求的说 明来对用例图进行补充:(1)对于每个用例,在需求文档中应该提供用 例说明;(2)对于非功能性需求,在需求文档中需要供非功能性需求描述。下面列举一个用例说明的例子,该用例说是对图

14、 4 所示的用例图中登录系统用例的用例明。图 5 对图 4 中登录系统用例的用例说明的示例1. 用例名称:登录系统2. 简要描述:任何参与教材管理的教职工都需要进行登录。登录时用户需要输入用户帐户名 和密码等信息,通过身份身份认证的用户将进入不同的用户界面和根据身份的不同将获得不 同访问权限和完成不同的工作。3. 主要参与者:教职工4. 事件流程4.1 基本流程(1)进入登录界面,包括 Web 页面或者桌面程序界面。(2)输入用户名、密码、身份等信息。(3)系统进行登录信息的验证。(4)完成登录,进入工作界面。4.2 可选流程4.2.1 用户信息错误。(1)提示信息输入错误。(2)重试或者放弃

15、登录。5. 特殊需求:无6. 前置条件: 下列前置条件至少具备其一:1. 用户能够打开系统的 Web 访问界面。2. 用户能够打开教材管理系统客户端程序。7. 后置条件: 当用户完成登录系统用例之后,用户根据身份的不同将进入不同的用户界面。8. 扩展点:无在需求分析阶段还需要使用概念类图来建立领域模型,使用顺序图来描述系统与外界的交互过程,在此基础上确定系统边界和系统的接口。下面是为图 4 的用例图建立的概念类模型(图 6)。图 6 从图 4 的用例图中所建立的概念类图在用例分析的同时,还要进行领域分析,建立领域模型,绘制出系统顺序图,进一步描述系统静态结构、行为和执行结果,如下图所示:4 不

16、同需求描述方法的比较和选择建议sd 用户登录顺序图: CtrlLogin: UILogin: E User:教职工1:InitialLoginInterface ()2:SubmitLoginInformation ()3:Login ()4:GetPersonalInformation ()5:/ReturnVerifyUserResult6:VerifyUserInformation ()7 用户登录信息校验通过:GuideToUserWorkInterface ()8 用户登录信息校验未通过:ReInitialLoginInterface ()图 7 为图 4 所示用例图建立的行为模型

17、E_Teacher#InDepartment#InStaffRoom#type E_User#userId#userName#accountName#eMail#telephone#password+GetPersonalInformation()+ModifyPersonalInformation()开发过程中使用过。对于提高软件开发的效率和中对这些描述方法从多个方面进行了比较。(表表 1不同需求分析方法的比较表解求。存在二义性,在结果不够直观,但是模块,适合于事务处象程和开发工具。在需求工程中,对于需求描述方法的选择依赖于以下的一些条件:(1)软件项目的规模,是大型、中型、小型或者 微型。

18、(2)软件开发所采用的开发模型,是结构化模型的还是面向对象模型。(3)软件项目的类型,是科学计算型还是事务 处理型,或者其它。(4)所采用的 CASE 工具对需求描述方法的支持。(5)用户对软件需求的理解能力。 因此,在软件开发过程中,对需求描述分析方法的选择应该从以下几个方面来考虑:(1)需求描述方法应该与软件开发模型相适 应,能够与软件开发中的前导过程和后续过程无 缝连接。(2)需求描述方法应该便于系统开发者和系 统用户理解和交流,有利于系统开发者之间的协 作。(3)需求描述方法应该得到所选择的 CASE 工具的支持,能够通过 CASE 工具进行可视化描 述和自动导出后续的设计模型。(4)

19、需求描述方法的应该与软件项目的类规模和开发成本相适应。在软件开发过程中,需要软件开发者从上的条件中根据实际情况来决定。现在,面向对软件开发方法是主流的开发方式,基于 UML用例技术的需求描述是使用的很广泛的方式5 小结在软件需求分析过程中,开发者可以根据际情况选择适合于所要开发的系统的需求描述法。当选择了某种具体的需求描述方法之后进行需求描述时,下面的这些原则是共同的。然这些原则在 30 年前就已经提出来了,但是现看来仍然很有意义3。(1) 在回答问题前,要对所要回答的问题进明确的表述,排除二义性;(2)将关注点分散,从全局考虑问题;(3)使用精确的符号进行描述。在文中所举出的需求描述方法并不

20、是仅有需求描述方法。在实际的软件开发过程中,开者可以根据自己的需要,对上述描述进行改进者提出新的需求描述方法。67这一切的目的都为软件开发过程服务的。适用的软件 开发模型描述 方式可视化可理解性描述的 严谨性是否适合描 述大型软件 系统特 点结构化自然 语言描述结构化开发 方法文字和 表格否存在一定难 度存在二义 性否便于使用,容易理 对使用者没有特殊述时比较繁琐。PDL 描述结构化开发 方法、面向 对象开发方 法PDL否要求使用者 能够理解程 序语言消除了二 义性否用户不容易理解,描 利于转换为程序。数据流图描 述结构化开发 方法图符、 文字是容易消除了二 义性是图示直观,在结构化 法中容易

21、转变为设软件的开发。用例描述结构化开发 方法、面向 对象开发方 法图符、 文字是容易消除了二 义性是图示直观,面向对 可视化,独立于开发参考文献:1 郑人杰,殷人昆,陶永实用软件工程(第二版)M北京:清华大学出版社,1997,chap3.2 Ian Sommerville软件工程(第六版 程一剑 陈霞 译)M北京:机械工业出版社,2005,chap3,chap5. 3 Specifying Software Requirements for Complex Systems: New Techniques and Their ApplicationJL. HeningerIEEE Trans.

22、Software Engineering, Vol.SE-6,No.1 ,1980, p. 2-134 张凯软件工程规范技术M北京:科学出版社,2005,chap 2.4.25 王养廷,李磊,宋汉珍UML 基础与应用M北京:清华大学出版社,2006,chap 76 郑跃斌基于企业流程的需求分析方法的图形描述机制J计算机应用与工程,2003,26:2152177 周宁,许沪敏一种扩展 UML /UP 的需求分析方法J计算机应用与软件,2007,24 :3KathrynA Comparison and Analysis of Software RequirementsSpecification M

23、ethodWang Li(Electronic Information Engineering Department, Luzhou VocationalTechnical College, Luzhou, Sichuan, 646005)Abstract:Software requirements analysis process is an important part in software development. The way todescribe system requirements is of utmost importance. Different software dev

24、elopment patterns need different requirements specification methods. The paper puts forward proposals of selectiong different requirements specification methods.Key words:software engineering; requirement engineering; requirements specification method(上接第 14 页)Definition of Exponential Function and

25、Its ApplicationXiong Kaiming(Luzhou Vocational and Technical College, Luzhou, Sichuan, 646005)Abstract:The reason why students find it hard to learn exponential function is that they do not give strictdefinitio to it. The mastery of exponential function will be the mastery of its logarithmic functio

26、n. The paper discusses the description of function in middle schools, the way to define logarithmic function using power series and the brief application of logarithmic function, which will be quite helpful in the solution of mathematic questions and the improvement of teaching quality.Key words:logarithmic function; power series; absolute convergence; kernel function

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号