《软件工程软件要求定义课件》由会员分享,可在线阅读,更多相关《软件工程软件要求定义课件(49页珍藏版)》请在金锄头文库上搜索。
1、第第2 2章章 软件要求定义软件要求定义 2.1 2.1 可行性研究可行性研究 2.2 2.2 项目开发计划项目开发计划2.3 2.3 软件需求分析软件需求分析2.4 IDEF2.4 IDEF方法方法2.5 2.5 小结小结软件工程软件要求定义2.1 2.1 可行性研究可行性研究 2.1.1 2.1.1 可行性研究的任务可行性研究的任务首首先先需需要要进进行行概概要要的的分分析析研研究究,初初步步确确定定项项目目的的规规模模和和目目标标,确确定定项项目目的的约约束束和和限限制制,把把它它们们清清楚楚地地列列举举出出来来。然然后后,分分析析员员进进行行简简要要的的需需求求分分析析,抽抽象象出出该
2、该项项目目的的逻逻辑辑结结构构,建建立立逻逻辑辑模模型型。从从逻逻辑辑模模型型出出发发,经经过过压压缩缩的的设设计计,探探索索出出若若干干种种可可供供选选择择的的主主要要解解决决办办法法,对对每每种种解解决决方方法法都都要要研研究究它它的的可可行行性性。可可从以下三方面分析研究每种解决方法的可行性。从以下三方面分析研究每种解决方法的可行性。软件工程软件要求定义1 1技术可行性技术可行性对对要要开开发发项项目目的的功功能能、性性能能和和限限制制条条件件进进行行分分析析,确确定定在在现现有有的的资资源源条条件件下下,技技术术风风险险有有多多大大,项项目目是是否否能能实实现现,这这些些即即为为技技术
3、术可可行行性性研研究究的的内内容容。这这里里的的资资源源包包括括已已有有的的或或可可以以搞搞到到的的硬硬件件、软软件件资资源源,现现有有技技术术人人员员的的技技术术水水平平和和已已有的工作基础。有的工作基础。技技术术可可行行性性常常常常是是最最难难解解决决的的方方面面,因因为为项项目目的的目目标标、功能和性能比较模糊。技术可行性一般要考虑的情况包括:功能和性能比较模糊。技术可行性一般要考虑的情况包括:(1)(1) 开开发发的的风风险险:在在给给出出的的限限制制范范围围内内,能能否否设设计计出出系系统统并实现必须的功能和性能。并实现必须的功能和性能。软件工程软件要求定义(2) (2) 资资源源的
4、的有有效效性性:可可用用于于开开发发的的人人员员是是否否存存在在问问题题。可可用用于于建建立立系统的其他资源是否具备。系统的其他资源是否具备。(3) (3) 技术技术:相关技术的发展是否支持这个系统。:相关技术的发展是否支持这个系统。开开发发人人员员在在评评估估技技术术可可行行性性时时,一一旦旦估估计计错错误误,将将会会出出现现灾灾难难性性后后果。果。2 2经济经济可行性可行性进进行行开开发发成成本本的的估估算算以以及及了了解解取取得得效效益益的的评评估估,确确定定要要开开发发的的项项目目是否是否值值得投得投资资开开发发,这这些即些即为经济为经济可行性研究的内容。可行性研究的内容。对对于于大大
5、多多数数系系统统,一一般般衡衡量量经经济济上上是是否否合合算算,应应考考虑虑一一个个“底底线线”,经经济济可可行行性性研研究究范范围围较较广广,包包括括成成本本效效益益分分析析、公公司司的的长长期期经经营营策策略略、开开发发所需的成本和所需的成本和资资源、潜在的市源、潜在的市场场前景前景。软件工程软件要求定义3 3社会可行性社会可行性研研究究要要开开发发的的项项目目是是否否存存在在任任何何侵侵犯犯、妨妨碍碍等等责责任任问问题题,要要开开发发项项目目的的运运行行方方式式在在用用户户组组织织内内是是否否行行得得通通,现现有有管管理理制制度度、人人员员素素质质和和操操作作方方式式是是否否可可行行,这
6、这些些即即为社会可行性研究的内容。为社会可行性研究的内容。 社社会会可可行行性性所所涉涉及及的的范范围围也也比比较较广广,它它包包括括合合同同、责责任任、侵侵权权、用用户户组组织织的的管管理理模模式式及及规规范范,其其他他一一些些技技术人员常常不了解的陷阱等。术人员常常不了解的陷阱等。软件工程软件要求定义2.1.2 2.1.2 可行性研究的具体步骤可行性研究的具体步骤典型的可行性研究有下列步骤:典型的可行性研究有下列步骤:(1) (1) 确确定定项项目目规规模模和和目目标标。分分析析员员对对有有关关人人员员进进行行调调查查访访问问,仔仔细细阅阅读读和和分分析析有有关关的的材材料料,对对项项目目
7、的的规规模模和和目目标标进进行行定定义义和和确确认认,清清晰晰地地描描述述项项目目的的一一切切限限制制和和约约束束,确确保保分分析员正在解决的问题确实是需要解决的问题。析员正在解决的问题确实是需要解决的问题。(2) (2) 研研究究正正在在运运行行的的系系统统。正正在在运运行行的的系系统统可可能能是是一一个个人人工工操操作作的的系系统统,也也可可能能是是旧旧的的计计算算机机系系统统,因因而而需需要要开开发发一一个个新新的的计计算算机机系系统统来来代代替替现现有有系系统统。现现有有的的系系统统是是信信息息的的重重要要来来源源。人人们们需需要要研研究究它它的的基基本本功功能能,存存在在什什么么问问
8、题题,运运行行现现有有系系统统需需要要多多少少费费用用,对对新新系系统统有有什什么么新新的的功功能能要要求求,新系统运行时能否减少使用费用等。新系统运行时能否减少使用费用等。软件工程软件要求定义应应该该收收集集、研研究究和和分分析析现现有有系系统统的的文文档档资资料料,实实地地考考察察现现有有系系统统,在在考考察察的的基基础础上上,访访问问有有关关人人员员,描描绘绘现现有有系系统统的的高高层层系系统统流流程程图图( (见见2.1.32.1.3节节) ),与与有有关关人人员员一一起起审审查查该该系系统统流流程程图图是是否否正正确确。系系统统流流程程图图反反映映了了现现有有系统的基本功能和处理流程
9、。系统的基本功能和处理流程。(3) (3) 建建立立新新系系统统的的高高层层逻逻辑辑模模型型。根根据据对对现现有有系系统统的的分分析析研研究究,逐逐渐渐明明确确新新系系统统的的功功能能、处处理理流流程程以以及及所所受受的的约约束束,然然后后使使用用建建立立逻逻辑辑模模型型的的工工具具数数据据流流图图和和数数据据字字典典( (见见8.38.3、8.48.4节节) )来来描描述述数数据据在在系系统统中中的的流流动动和和处处理理情情况况。注注意意,现现在在还还不不是是软软件件需需求求分分析析阶阶段段,不不是是完完整整、详详细细的的描描述述,只只是是概概括括地地描描述述高高层层的的数数据据处处理理和流
10、动。和流动。软件工程软件要求定义(4) (4) 导导出出和和评评价价各各种种方方案案。分分析析员员建建立立了了新新系系统统的的高高层层逻逻辑辑模模型型之之后后,要要从从技技术术角角度度出出发发,提提出出实实现现高高层层逻逻辑辑模模型型的的不不同同方方案案,即即导导出出若若干干较较高高层层次次的的物物理理解解法法。根根据据技技术术可可行行性性、经经济济可可行行性性和和社社会会可可行行性性对对各各种种方方案案进进行行评评估估,去去掉掉行行不不通通的的解解法法,就就得得到到了了可行的解法。可行的解法。(5) (5) 推推荐荐可可行行的的方方案案。根根据据上上述述可可行行性性研研究究的的结结果果,决决
11、定定该该项项目目是是否否值值得得去去开开发发。若若值值得得开开发发,那那么么可可行行的的解解决决方方案案是是什什么么,并并且且说说明明该该方方案案是是可可行行的的原原因因和和理理由由。该该项项目目是是否否值值得得开开发发的的主主要要因因素素是是从从经经济济上上看看是是否否合合算算,这这就就要要求求分分析析员员对对推推荐荐的的可可行行方方案案进进行成本行成本效益分析。效益分析。软件工程软件要求定义(6) (6) 编编写写可可行行性性研研究究报报告告。将将上上述述可可行行性性研研究究过过程程的的结结果果写写成成相相应应的的文文档档,即即可可行行性性研研究究报报告告,提提请请用用户户和和使使用用部部
12、门门仔仔细细审审查查,从从而而决决定定该该项项目目是是否否进进行行开开发发,是否接受可行的实现方案。是否接受可行的实现方案。2.1.3 2.1.3 系系统统流程流程图图1 1系系统统流程流程图图的作用的作用 系系统统流流程程图图是是描描述述物物理理系系统统的的工工具具。所所谓谓物物理理系系统统,就就是是一一个个具具体体实实现现的的系系统统,也也就就是是描描述述一一个个单单位位、组组织织的的信信息息处处理理的的具具体体实实现现的的系系统统。在在可可行行性性研研究究中中,可可以以通通过过画画出出系系统统流流程程图图来来了了解解要要开开发发的的项项目目的的大大概概处处理理流流程程、范范围围和和功功能
13、能等等。系系统统流流程程图图不不仅仅能能用用于于可可行行性性研研究究,还还能用于需求分析能用于需求分析阶阶段。段。软件工程软件要求定义系系统统流流程程图图可可用用图图形形符符号号来来表表示示系系统统中中的的各各个个元元素素,例例如如,人人工工处处理理、数数据据处处理理、数数据据库库、文文件件和和设设备备等等。它它表表达达了了系系统统中中各各个个元元素素之之间间的的信信息息流流动动的的情情况。况。画画系系统统流流程程图图时时,首首先先要要搞搞清清业业务务处处理理过过程程以以及及处处理理中中的的各各个个元元素素,同同时时要要理理解解系系统统的的流流程程图图的的各各个个符符号号的的含含义义,选选择择
14、相相应应的的符符号号来来代代表表系系统统中中的的各各个个元元素。所画的系素。所画的系统统流程流程图图要反映出系要反映出系统统的的处处理流程。理流程。软件工程软件要求定义2 2系系统统流程流程图图的符号的符号系系统统流程流程图图的符号如表的符号如表2-12-1所示。所示。软件工程软件要求定义表2-1 系统流程图的符号软件工程软件要求定义软件工程软件要求定义3 3系统流程图的示例系统流程图的示例下下面面以以某某工工厂厂的的库库房房管管理理为为例例,说说明明系系统统流流程程图图的使用。的使用。某某工工厂厂有有一一个个库库房房,存存放放该该厂厂生生产产需需要要的的物物品品,库库房房中中的的各各种种物物
15、品品的的数数量量及及各各种种物物品品库库存存量量临临界界值值等等数数据据记记录录在在库库存存文文件件上上,当当库库房房中中物物品品数数量量有有变变化化时时,应应更更新新库库存存文文件件。若若某某种种物物品品的的库库存存量量少少于于库库存存临临界界值值,则则报报告告采采购购部部门门以以便便其其订订货货,每每天天向向采采购购部部门门送送一份采购报告。一份采购报告。软件工程软件要求定义库库房房可可使使用用一一台台微微机机处处理理更更新新库库存存文文件件和和产产生生订订货货报报告告的的任任务务。物物品品的的发发放放和和接接收收称称为为变变更更记记录录,由由键键盘盘录录入入到到微微机机中中。系系统统中中
16、的的库库存存管管理理模模块块对对变变更更记记录录进进行行处处理理,更更新新存存储储在在磁磁盘盘上上的的库库存存文文件件,并并把把订订货货信信息息记记录录到到联联机机存存储储中中。每每天天由由报报告告生生成成模模块块读读一一次次订订货货信信息息,并并打打印印出出订订货货报报告告。图图2.12.1给给出出了了该该系系统统的系统流程图。的系统流程图。软件工程软件要求定义图2.1 库存管理系统的系统流程图软件工程软件要求定义例如:例如:可用系统流程图来分析下述问题。可用系统流程图来分析下述问题。 某图书馆闭架借书流程如下:读者须先被某图书馆闭架借书流程如下:读者须先被验明证件验明证件后后才能进入查询室
17、。读者在查询室内通过检书卡或利用才能进入查询室。读者在查询室内通过检书卡或利用终端检索图书数据库来查找自己所需的图书。找到所终端检索图书数据库来查找自己所需的图书。找到所需图书并填好索书单后到服务台借书。如果所借图书需图书并填好索书单后到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者。图交于读者。图2-2 的系统流程图描述了上述系统的概貌。的系统流程图描述了上述系统的概貌。图中的每个符号定义了组成系统的一个部件,而并没图中的每个符号定义了组成系统的一个部件,而并没有指明每个部件的具体工作过程。图中的箭头指定了有指明每
18、个部件的具体工作过程。图中的箭头指定了系统中信息的流动(逻辑)路径。系统中信息的流动(逻辑)路径。软件工程软件要求定义读 者验 证索书单图书查询检书卡图书数据库借书借书单取书软件工程软件要求定义2.1.4 2.1.4 成本成本效益分析效益分析成成本本效效益益分分析析的的目目的的是是从从经经济济角角度度评评价价开开发发一一个个新新的的软软件件项项目目是是否否可可行行。成成本本效效益益分分析析首首先先是是估估算算将将要要开开发发的的系系统统的的开开发发成成本本,然然后后与与可可能能取取得得效效益益进进行行比比较较和和权权衡衡。效效益益分分有有形形效效益益和和无无形形效效益益两两种种。有有形形效效益
19、益可可以以用用货货币币的的时时间间价价值值、回回收收投投资资期期和和纯纯收收入入等等指指标标进进行行度度量量;无无形形效效益益主主要要从从性性质质上上、心心理理上上进进行行衡衡量量,很很难难直直接接进进行行量量的的比比较较。系系统统的的经经济济效效益益等等于于因因使使用用新新的的系系统统而而增增加加的的收收入入加加上上使使用用新新的的系系统统可可以以节节省省的的运运行行费费用用。运运行行费费用用包包括括操操作作人人员员人人数数、工工作作时时间间和和消消耗耗的的物物资等。下面主要介绍有形效益的分析。资等。下面主要介绍有形效益的分析。软件工程软件要求定义F = P(1+ni)F = P(1+ni)
20、F F就就是是P P元元在在n n年年后后的的价价值值。反反之之,若若n n年年后后能能收收入入F F元,那么这些钱现在的价值为元,那么这些钱现在的价值为P = F/(1+ni)P = F/(1+ni)例例如如,库库房房管管理理系系统统,它它每每天天能能产产生生一一份份订订货货报报告告。假假定定开开发发该该系系统统共共需需5 5千千元元,系系统统建建成成后后及及时时订订货货,消消除除物物品品短短缺缺问问题题,估估计计每每年年能能节节约约2.52.5千千元元,5 5年年共共节节省省12.512.5千千元元。假假定定年年利利率率为为5%5%,利利用用上上面面计计算算货货币币现现在在价价值值的的公公
21、式式,可可以以算算出出建建立立库库房房管管理理系系统统后后,每每年预计节省的费用的现在价值,如表年预计节省的费用的现在价值,如表2-22-2所示。所示。软件工程软件要求定义表2-2 将来的收入折算成现在值软件工程软件要求定义2 2投资回收期投资回收期通通常常用用投投资资回回收收期期衡衡量量一一个个开开发发项项目目的的价价值值。投投资资回回收收期期就就是是使使累累计计的的经经济济效效益益等等于于最最初初的的投投资资费费用用所所需需的的时时间间。投投资资回回收收期期越越短短,就就越越快快获获得得利利润润,则则该项目就越值得开发。该项目就越值得开发。例例如如,库库房房管管理理系系统统两两年年后后可可
22、以以节节省省5.1045.104千千元元,比比最最初初的的投投资资还还多多0.1040.104千千元元。因因此此,投投资资回回收收期期是是2 2年。年。投投资资回回收收期期仅仅仅仅是是一一项项经经济济指指标标,为为了了衡衡量量一一个个开发项目的价值,还应考虑其他经济指标。开发项目的价值,还应考虑其他经济指标。软件工程软件要求定义3 3纯收入纯收入 衡衡量量项项目目价价值值的的另另一一个个经经济济指指标标是是项项目目的的纯纯收收入入,也也就就是是在在整整个个生生存存周周期期之之内内的的累累计计经经济济效效益益( (折折合合成成现现在在值值) )与与投投资资之之差差。这这相相当当于于投投资资开开发
23、发一一个个项项目目与与把把钱钱存存入入银银行行中中进进行行比比较较,看看这这两两种种方方案案的的优优劣劣。若若纯纯收收入入为为零零,则则项项目目的的预预期期效效益益和和在在银银行行存存款款一一样样,但但是是开开发发一一个个项项目目要要冒冒风风险险,因因此此,从从经经济济观观点点看看这这个个项项目目,可可能能是是不不值值得得投投资资开开发发的的。若若纯纯收收入入小小于于零零,那那么这个项目显然不值得投资开发。么这个项目显然不值得投资开发。对上述的库房管理系统,项目纯收入预计为对上述的库房管理系统,项目纯收入预计为10.911 - 5 = 5.911 (10.911 - 5 = 5.911 (千元
24、千元) )软件工程软件要求定义2.1.5 2.1.5 可行性研究的文档可行性研究的文档可可行行性性研研究究结结束束后后要要提提交交的的文文档档是是可可行行性性研研究究报报告告。一个可行性研究报告的主要内容如下:一个可行性研究报告的主要内容如下:(1) (1) 引引言言:说说明明编编写写本本文文档档的的目目的的,项项目目的的名名称称、背景,本文档用到的专门术语和参考资料。背景,本文档用到的专门术语和参考资料。(2) (2) 可可行行性性研研究究前前提提:说说明明开开发发项项目目的的功功能能、性性能能和和基基本本要要求求,达达到到的的目目标标,各各种种限限制制条条件件,可可行行性性研研究究方法和决
25、定可行性的主要因素。方法和决定可行性的主要因素。(3) (3) 对对现现有有系系统统的的分分析析:说说明明现现有有系系统统的的处处理理流流程程和和数数据据流流程程、工工作作负负荷荷、各各项项费费用用支支出出,所所需需各各类类专专业业技技术术人人员员和和数数量量,所所需需各各种种设设备备,现现有有系系统统存存在在什什么么问问题。题。软件工程软件要求定义(4) (4) 所所建建议议系系统统的的技技术术可可行行性性分分析析:对对所所建建议议系系统统的的简简要要说说明明,处处理理流流程程和和数数据据流流程程,与与现现有有系系统统比比较较的的优优越越性性,采采用用所所建建议议系系统统对对用用户户的的影影
26、响响,对对各各种种设设备备、现现有有软软件件、开开发发环环境境和和运运行行环环境境的的影影响响,对对经经费费支支出出的的影影响响,对对技技术术可可行行性性的的评评价价。( ( 技技 术术 实实 力力 ; ;已已 有有 工工 作作 基基 础础 设设 备备 条条 件件) )(5) (5) 所所建建议议系系统统的的经经济济可可行行性性分分析析:说说明明所所建建议议系系统统的各种支出,各种效益,收益的各种支出,各种效益,收益/ /投投资资比,投比,投资资回收周期。回收周期。(6) (6) 社社会会因因素素可可行行性性分分析析:说说明明法法律律因因素素对对合合同同责责任任、侵侵犯犯专专利利权权和和侵侵犯
27、犯版版权权等等问问题题的的分分析析,说说明明用用户户使使用用可可行行性性是是否否满满足用足用户户行政管理、工作制度和人行政管理、工作制度和人员员素素质质的要求。的要求。软件工程软件要求定义(7) (7) 可可供供其其他他选选择择方方案案:逐逐一一说说明明其其他他可可供供选选择择的方案,并的方案,并说说明未被推荐的理由。明未被推荐的理由。(8) (8) 结结论论意意见见:说说明明项项目目是是否否能能开开发发,还还需需什什么么条件才能开条件才能开发发,对项对项目目目目标标有何有何变动变动等。等。可行性文档基本格式可行性文档示例软件工程软件要求定义2.2 2.2 项目开发计划项目开发计划经经过过可可
28、行行性性研研究究后后,若若一一个个项项目目是是值值得得开开发发的的,则则接接下下来来应应制制定定项项目目开开发发计计划划。软软件件项项目目开开发发计计划划是是软软件件工工程程中中的的一一种种管管理理性性文文档档,主主要要是是对对开开发发的的软软件件项项目目的的费费用用、时时间间、进进度度、人人员员组组织织、硬硬件件设设备备的的配配置置、软软件件开开发发环环境境和和运运行行环环境境的的配配置置等等进进行行说说明明和和规规划划,是是项项目目管管理理人人员员对对项项目目进进行行管管理理的的依依据据,据据此此对对项目的费用、进度和资源进行控制和管理项目的费用、进度和资源进行控制和管理。软件工程软件要求
29、定义项目开发计划是一个管理性的文档,它的主要内容如下:项目开发计划是一个管理性的文档,它的主要内容如下: (1) (1) 项项目目概概述述:说说明明项项目目的的各各项项主主要要工工作作;说说明明软软件件的的功功能能、性性能能;为为完完成成项项目目应应具具备备的的条条件件;用用户户及及合合同同承承包包者者承承担担的的工工作作、完完成成期期限限及及其其他他条条件件限限制制;应应交交付付的的程程序序名名称称,所使用的语言及存储形式;应交付的文档。所使用的语言及存储形式;应交付的文档。(2) (2) 实实施施计计划划:说说明明任任务务的的划划分分,各各项项任任务务的的责责任任人人;说说明明项项目目开开
30、发发进进度度,按按阶阶段段应应完完成成的的任任务务,用用图图表表说说明明每每项项任任务务的的开开始始时时间间和和完完成成时时间间;说说明明项项目目的的预预算算,各各阶阶段段的的费费用支出预算。用支出预算。 (3) (3) 人人员员组组织织及及分分工工:说说明明开开发发该该项项目目所所需需人人员员的的类类型型、组成结构和数量等。组成结构和数量等。 (4) (4) 交付期限交付期限:说明项目最后完工交付的日期。:说明项目最后完工交付的日期。项目计划示例软件工程软件要求定义2.3 2.3 软件需求分析软件需求分析2.3.1 2.3.1 需求分析的特点需求分析的特点在在进进行行可可行行性性研研究究和和
31、项项目目开开发发计计划划以以后后,如如果果确确认认开开发发一一个个新新的的软软件件系系统统是是必必要要的的而而且且是是可可能能的的,那那么就可进入需求分析阶段。么就可进入需求分析阶段。需需求求分分析析是是指指开开发发人人员员要要准准确确理理解解用用户户的的要要求求,进进行行细细致致的的调调查查分分析析,将将用用户户非非形形式式的的需需求求陈陈述述转转化化为为完完整整的的需需求求定定义义,再再由由需需求求定定义义转转换换到到相相应应的的形形式式功功能能规规约约( (需需求求规规格格说说明明) )的的过过程程。需需求求分分析析虽虽处处于于软软件件开开发发过过程程的的开开始始阶阶段段,但但它它对对于
32、于整整个个软软件件开开发发过过程程以及软件产品质量是至关重要的。以及软件产品质量是至关重要的。软件工程软件要求定义在在计计算算机机发发展展的的早早期期,所所求求解解问问题题的的规规模模较较小小,需需求求分分析析被被忽忽视视。随随着着软软件件系系统统复复杂杂性性的的提提高高及及规规模模的的扩扩大大,需需求求分分析析在在软软件件开开发发中中所所处处的的地地位位愈愈加加突突出出,从从而而也愈加困难,它的难点主要体现在以下几个方面:也愈加困难,它的难点主要体现在以下几个方面:(1) (1) 问问题题的的复复杂杂性性。这这是是由由用用户户需需求求所所涉涉及及的的因因素素繁多引起的,如运行繁多引起的,如运
33、行环环境和系境和系统统功能等。功能等。(2) (2) 交交流流障障碍碍。需需求求分分析析涉涉及及人人员员较较多多,如如软软件件系系统统用用户户、问问题题领领域域专专家家、需需求求工工程程师师和和项项目目管管理理员员等等,这这些些人人具具备备不不同同的的背背景景知知识识,处处于于不不同同的的角角度度,扮扮演演不不同角色,造成了相互之同角色,造成了相互之间间交流的困交流的困难难。软件工程软件要求定义(3) (3) 不不完完备备性性和和不不一一致致性性:由由于于各各种种原原因因,用用户户对对问问题题的的陈陈述述往往往往是是不不完完备备的的,其其各各方方面面的的需需求求还还可可能能存存在在着着矛矛盾盾
34、,需需求求分分析析要要消消除除其其矛矛盾盾,形形成成完完备备及及一致的定义。一致的定义。(4) (4) 需需求求易易变变性性。用用户户需需求求的的变变动动是是一一个个极极为为普普遍遍的的问问题题,即即使使是是部部分分变变动动,也也往往往往会会影影响响到到需需求求分分析的全部,导致不一致性和不完备性。析的全部,导致不一致性和不完备性。为为了了克克服服上上述述困困难难,人人们们主主要要围围绕绕着着需需求求分分析析的的方法及自动化工具方法及自动化工具( (如如CASECASE技术技术) )等方面进行研究。等方面进行研究。软件工程软件要求定义2.3.2 2.3.2 需求分析的原则需求分析的原则近近几几
35、年年来来已已提提出出许许多多软软件件需需求求分分析析与与说说明明的的方方法法( (如如结结构构化化分分析析方方法法和和面面向向对对象象分分析析方方法法) ),每每一一种种分分析析方方法法都有独特的观点和表示法,但都适用下面的基本原则:都有独特的观点和表示法,但都适用下面的基本原则:(1) (1) 必必须须能能够够表表达达和和理理解解问问题题的的数数据据域域和和功功能能域域。数数据据域域包包括括数数据据流流( (即即数数据据通通过过一一个个系系统统时时的的变变化化方方式式) )、数数据内容和数据结构,而功能域反映上述三方面的控制信息。据内容和数据结构,而功能域反映上述三方面的控制信息。(2) (
36、2) 可可以以把把一一个个复复杂杂问问题题按按功功能能进进行行分分解解并并可可逐逐层层细细化化。通通常常软软件件要要处处理理的的问问题题如如果果太太大大太太复复杂杂就就很很难难理理解解,若若划划分分成成几几部部分分,并并确确定定各各部部分分间间的的接接口口,就就可可完完成成整整体体功功能能。在在需需求求分分析析过过程程中中,软软件件领领域域中中的的数数据据、功功能能和和行行为都可以划分。为都可以划分。软件工程软件要求定义(3) (3) 建建模模。模模型型可可以以帮帮助助分分析析人人员员更更好好地地理理解解软软件件系系统统的的信信息息、功功能能和和行行为为,这这些些模模型型也也是是软软件件设设计
37、计的基础。的基础。结结构构化化分分析析方方法法( (见见8.28.2节节) )和和面面向向对对象象分分析析方方法法都都遵循以上原则。遵循以上原则。2.3.3 2.3.3 需求分析的任需求分析的任务务需需求求分分析析的的基基本本任任务务是是要要准准确确地地定定义义新新系系统统的的目目标标,为为了了满满足足用用户户需需要要,回回答答系系统统必必须须“做做什什么么”的的问问题题。在在可可行行性性研研究究和和项项目目开开发发计计划划阶阶段段对对这这个个问问题题的的回答是概括的、粗略的。回答是概括的、粗略的。软件工程软件要求定义1 1问题识别问题识别双方确定双方确定对问题对问题的的综综合需求。合需求。这
38、这些需求包括:些需求包括: (1) (1) 功功能能需需求求:指指所所开开发发的的软软件件必必须须具具备备的的功功能能,这这是最重要的。是最重要的。 (2) (2) 性性能能需需求求:指指待待开开发发的的软软件件的的技技术术性性能能指指标标,如存如存储储容量、运行容量、运行时间时间等限制。等限制。软件工程软件要求定义(3) (3) 环环境境需需求求:指指软软件件运运行行时时所所需需要要的的软软、硬硬件件( (如如机机型型、外外设设、操操作作系系统统和和数数据据库库管管理理系系统统等等) )的的要要求。求。(4) (4) 用用户户界界面面需需求求:即即人人机机交交互互方方式式、输输入入/ /输输
39、出出数据格式等。数据格式等。另另外外还还有有可可靠靠性性、安安全全性性、保保密密性性、可可移移植植性性和和可可维维护护性性等等方方面面的的需需求求,这这些些需需求求一一般般通通过过双双方方交交流流、调查研究来获取,并达到共同的理解。调查研究来获取,并达到共同的理解。软件工程软件要求定义2 2分析与分析与综综合,合,导导出出软软件的件的逻辑逻辑模型模型 分分析析人人员员对对获获取取的的需需求求,进进行行一一致致性性的的分分析析检检查查,在在分分析析、综综合合中中逐逐步步细细化化软软件件功功能能,划划分分成成各各个个子子功功能能。这这里里也也包包括括对对数数据据域域进进行行分分解解,并并分分配配到
40、到各各个个子子功功能能上上,以以确确定定系系统统的的构构成成及及主主要要成成分分,并并用用图图文文结结合的形式,建立起新系统的合的形式,建立起新系统的逻辑逻辑模型模型。3 3编编写文档写文档编写文档的步骤如下:编写文档的步骤如下:(1) (1) 编编写写“需需求求说说明明书书”,把把双双方方共共同同的的理理解解与与分分析析结结果果用用规规范范的的方方式式描描述述出出来来,作作为为今今后后各各项项工工作作的的基础。基础。软件工程软件要求定义(2) (2) 编编写写初初步步用用户户使使用用手手册册,着着重重反反映映被被开开发发软软件件的的用用户户功功能能界界面面和和用用户户使使用用的的具具体体要要
41、求求,用用户户手手册册能强制分析人员从用户使用的观点考虑软件。能强制分析人员从用户使用的观点考虑软件。(3) (3) 编编写写确确认认测测试试计计划划,作作为为今今后后确确认认和和验验收收的的依据。依据。(4) (4) 修修改改完完善善项项目目开开发发计计划划。在在需需求求分分析析阶阶段段对对开开发发的的系系统统有有了了更更进进一一步步的的了了解解,所所以以能能更更准准确确地地估估计计开开发发成成本本、进进度度及及资资源源要要求求,因因此此对对原原计计划划要要进进行行适当修正。适当修正。软件工程软件要求定义2.3.4 2.3.4 需求分析的方法需求分析的方法 需需求求分分析析方方法法有有功功能
42、能分分解解方方法法、结结构构化化分分析析方方法法、信息建模方法和信息建模方法和面向对象分析方法面向对象分析方法等。等。1 1功能分解方法功能分解方法功功能能分分解解方方法法是是将将一一个个系系统统看看成成是是由由若若干干功功能能构构成成的的一一个个集集合合,每每个个功功能能又又可可划划分分成成若若干干个个加加工工( (即即子子功功能能) ),一一个个加加工工又又进进一一步步分分解解成成若若干干加加工工步步骤骤( (即即子子加加工工) )。这这样样,功功能能分分解解方方法法有有功功能能、子子功功能能和和功功能能接接口口三三个个组组成成要要素素。它它的的关关键键策策略略是是利利用用已已有有的的经经
43、验验,对对一一个个新新系系统统预预先先设设定定加加工工和和加加工工步步骤骤,着着眼眼点点放放在在这这个个新新系系统需要进行什么样的加工上。统需要进行什么样的加工上。软件工程软件要求定义2 2结构化分析方法结构化分析方法结结构构化化分分析析方方法法是是一一种种从从问问题题空空间间到到某某种种表表示示的的映映射射方方法法,由由数数据据流流图图表表示示软软件件的的功功能能,是是结结构构化化方方法法中中重重要要的的、被被普普遍遍接接受受的的表表示示系系统统,它它由由数数据据流流图图和和数数据据词词典典构构成成。这这种种方方法法简单实用,简单实用,适于数据处理领域问题。适于数据处理领域问题。软件工程软件
44、要求定义 该该方方法法对对现现实实世世界界中中的的数数据据流流进进行行分分析析,把把数数据据流流映映射射到到分分析析结结果果中中。但但现现实实世世界界中中的的有有些些要要求求不不是是以以数数据据流流为为主干的,就难于用此方法。主干的,就难于用此方法。 该该方方法法的的一一个个难难点点是是确确定定数数据据流流之之间间的的变变换换,而而且且数数据据词词典典的的规规模模也也是是一一个个问问题题,它它会会引引起起所所谓谓的的“数数据据词词典典爆爆炸炸”,同时对数据结构的强调很少。,同时对数据结构的强调很少。软件工程软件要求定义3 3信息建模方法信息建模方法信信息息建建模模方方法法是是从从数数据据的的角
45、角度度来来对对现现实实世世界界建建立立模型的,它对问题空间的认识是很有帮助的。模型的,它对问题空间的认识是很有帮助的。该该方方法法的的基基本本工工具具是是ERER图图,其其基基本本要要素素由由实实体体、属属性性和和联联系系构构成成。该该方方法法的的基基本本策策略略是是从从现现实实世世界界中中找出实体,然后再用属性来描述这些实体。找出实体,然后再用属性来描述这些实体。软件工程软件要求定义信信息息模模型型和和语语义义数数据据模模型型是是紧紧密密相相关关的的,有有时时被被看看作作是是数数据据库库模模型型。在在信信息息模模型型中中,实实体体E E是是一一个个对对象象或或一一组组对对象象。实实体体把把信
46、信息息收收集集在在其其中中,关关系系R R是是实实体体之之间间的的联联系系或或交交互互作作用用。有有时时在在实实体体和和关关系系之之外外,再再加加上上属属性性。实实体体和和关关系系形形成成一一个个网网络络,描描述述系系统统的的信信息息状况,给出系统的信息模型。状况,给出系统的信息模型。信信息息建建模模和和面面向向对对象象分分析析很很接接近近,但但仍仍有有很很大大差差距距。在在ERER图图中中,数数据据不不封封闭闭,每每个个实实体体和和它它的的属属性性的的处处理理需需求求不不是是组组合合在在同同一一实实体体中中的的,没没有有继继承承性性和和消消息息传传递递机机制制来来支支持持模模型型。但但ERE
47、R图图是是面面向向对对象象分分析析的的基基础。础。软件工程软件要求定义4 4面向对象的分析面向对象的分析面面向向对对象象的的分分析析是是把把ERER图图中中的的概概念念与与面面向向对对象象程程序序设设计计语语言言中中的的主主要要概概念念结结合合在在一一起起而而形形成成的的一一种种分分析析方方法法。在在该该方方法法中中采采用用了了实实体体、关关系系和和属属性性等等信信息息模模型型分分析析中中的的概概念念,同同时时采采用用了了封封闭闭、类类结结构构和和继继承承性等面向对象程序设计语言中的概念。性等面向对象程序设计语言中的概念。2.3.5 2.3.5 需求分析的文档需求分析的文档需需求求说说明明书书
48、是是需需求求分分析析阶阶段段最最重重要要的的技技术术文文档档之之一一。它它提提供供了了用用户户与与开开发发人人员员对对开开发发软软件件的的共共同同理理解解,其其作作用用相相当当于于用用户户与与开开发发单单位位之之间间的的技技术术合合同同,是是今今后后各各阶阶段段设设计计工工作作的的基基础础,也也是是本本阶阶段段评评审审和和测测试试阶阶段确认与验收的依据。需求说明书的主要内容如下:段确认与验收的依据。需求说明书的主要内容如下:软件工程软件要求定义(1) (1) 前前言言:说说明明项项目目的的目目的的、范范围围,所所用用的的术术语语的定义;用到的缩略语和缩写词;参考资料。的定义;用到的缩略语和缩写
49、词;参考资料。(2) (2) 项项目目概概述述:产产品品的的描描述述;产产品品的的功功能能;用用户户的特点;一般的约束等。的特点;一般的约束等。(3) (3) 具具体体需需求求:说说明明每每个个功功能能的的输输入入、处处理理和和输输出出;外外部部接接口口需需求求,包包括括用用户户接接口口、软软件件接接口口、硬硬件件接接口口和和通通信信接接口口;性性能能需需求求;设设计计约约束束;其其他他需需求求,包括数据库、操作等。包括数据库、操作等。软件工程软件要求定义2.5 2.5 小结小结对对于于大大型型软软件件的的开开发发,可可行行性性研研究究是是必必需需的的。它它可可解解决决项项目目开开发发时时的的
50、技技术术可可行行性性、经经济济可可行行性性和和社社会会可可行行性性。通通过过可可行行性性研研究究可可以以减减少少技技术术风风险险和和投投资资风风险。险。一一旦旦通通过过可可行行性性研研究究,就就要要制制定定项项目目开开发发计计划划、估估计计费费用用、安安排排进进度度、硬硬件件资资源源配配置置、软软件件资资源源配配置置和人力资源配置等。和人力资源配置等。软件工程软件要求定义项项目目开开发发计计划划制制定定出出来来之之后后,就就要要进进行行软软件件需需求求分分析析。软软件件需需求求分分析析是是很很重重要要的的开开发发阶阶段段之之一一,它它是是项项目目开开发发的的基基础础,它它要要解解决决软软件件系
51、系统统做做什什么么,具具有有什什么么功功能能、性性能能,有有什什么么约约束束条条件件等等。把把这这些些问问题题搞搞清清楚楚后后,写写出出软软件件需需求求说说明明书书,作作为为开开发发的的根根据据。需需求求分分析析方方法法有有多多种种,常常用用的的结结构构化化分分析析方方法法在在第第8 8章章详详细细说明,面向对象分析方法在第说明,面向对象分析方法在第1111、1212章详细说明。章详细说明。软件工程软件要求定义习题习题1 1可行性研究的任务是什么可行性研究的任务是什么? ?2 2可行性研究有哪些步骤可行性研究有哪些步骤? ?3 3成本效益分析可用哪些指标进行度量成本效益分析可用哪些指标进行度量? ?4 4项目开发计划有哪些内容项目开发计划有哪些内容? ?5 5什什么么是是需需求求分分析析? ? 需需求求分分析析阶阶段段的的基基本本任任务务是是什么什么? ? 软件工程软件要求定义6.学生买书,首先填写购书单,计算机根据各班学生用书表以及售书登记表审查有效性,若有效,计算机根据教材存量表进一步判断书库是否有书,若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知单返回给系统。7.画出此系统的系统流程图。软件工程软件要求定义软件工程软件要求定义