第4讲工程立项、可行性分析与需求获取bchq.pptx

上传人:jix****n11 文档编号:87084569 上传时间:2023-04-16 格式:PPTX 页数:109 大小:2.48MB
返回 下载 相关 举报
第4讲工程立项、可行性分析与需求获取bchq.pptx_第1页
第1页 / 共109页
第4讲工程立项、可行性分析与需求获取bchq.pptx_第2页
第2页 / 共109页
点击查看更多>>
资源描述

《第4讲工程立项、可行性分析与需求获取bchq.pptx》由会员分享,可在线阅读,更多相关《第4讲工程立项、可行性分析与需求获取bchq.pptx(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、王少华武汉大学国际软件学院空间信息与数字工程研究中心3/25/2023结构化分析设计过程结构化分析设计过程阶段阶段关键问题关键问题结束标准结束标准问题定义问题是什么?关于规模和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型数据流图成本/效益分析需求分析系统必须做什么?系统的逻辑模型数据流图数据字典算法描述2006年9月28日6时52分结构分析设计过程结构分析设计过程阶段阶段关键问题关键问题结束标准结束标准总体设计概括地说,应该如何解决这个问题?可能的解法:系统流程图成本/效益分析推荐的系统结构;层次图或结构图详细设计怎样具体地实现这个系统?编码规格说明:HIPO图或PDL编码和单元测试

2、正确的程序模块源程序清单;单元测试方案和结果综合测试符合要求的软件综合测试方案和结果;完整一致的软件配置维护持久地满足用户需要的软件完整准确的维护记录2006年9月28日6时52分4本质上是功能分解,以实现功能的本质上是功能分解,以实现功能的过程过程为中心,为中心,而用户的需求变化主要是针对而用户的需求变化主要是针对功能功能的。这就使的。这就使基于过程的设计基于过程的设计不易被理解不易被理解;且;且功能功能变化往往变化往往引起结构变化较大,引起结构变化较大,稳定性不好稳定性不好。4系统有明确的边界定义,且系统结构依赖于系系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统统边界的定

3、义,这样的系统不易扩充和修改不易扩充和修改。4数据与操作分开处理,可能造成软构件对具体数据与操作分开处理,可能造成软构件对具体应用环境的依赖,应用环境的依赖,可重用性可重用性(reusability)(reusability)较差较差.结构化技术的缺点结构化技术的缺点2006年9月28日6时52分管理的范围4有效的项目管理集中于三个P上:人员(people)、问题(problem)和过程(process)。其顺序不是任意的。u任何管理者如果忘记了软件工程是任何管理者如果忘记了软件工程是人的智力密集人的智力密集的的劳动,他就永远不可能在项目管理上得到成功;劳动,他就永远不可能在项目管理上得到成功

4、;u任何管理者如果在项目开发早期没有支持有效的用任何管理者如果在项目开发早期没有支持有效的用户通信,他有可能为户通信,他有可能为错误的问题错误的问题建造一个不错的解决建造一个不错的解决方案。方案。u最后,对最后,对过程过程不在意的管理者可能冒把有效的技术不在意的管理者可能冒把有效的技术方法和工具插入到真空中的风险。方法和工具插入到真空中的风险。2006年9月28日6时52分一、工程立项建议一、工程立项建议1、立项原因2、立项基础3、国内外研究现状4、工程意义与目标5、用户调查6、投资条件7、投资周期8、技术力量与基础9、软件硬件价格与性能10、数据源状况11、应用前景12、效益评估13、可运行

5、性评价2006年9月28日6时52分问题定义问题定义4问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”4问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。4问题定义阶段是生命周期中最简短的阶段,一般只需要一天甚至更少的时间。2006年9月28日6时52分二、可行性研究二、可行性研究4这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有可行的解决办法或值得做吗?可行性研究比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。4做还是不做?4联想集团领导人柳传志曾说:“没钱赚的事我们不干;有钱赚但投

6、不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”柳传志为决策立了上述准则,同时也为可以行性分析指明了重点。2006年9月28日6时52分2.12.1可行性研究的任务可行性研究的任务4可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,可行性研究的目的不是解决问题,而是确定问题是否值得去解,以及关键技术、难点、能否解决。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。4一般说来,可行性研究的成本只是预期的工程总成本的5%-10%。4软件领域的可行性分析主要考虑四个要素:经济

7、、技术、社会环境和人。u项目的意义(社会的意义)项目的意义(社会的意义)u技术可行性技术可行性u经济可行性经济可行性u操作可行性操作可行性2006年9月28日6时52分3.1.1 3.1.1 可行性研究的任务可行性研究的任务继续项目继续项目 可行性分析的四个任务可行性分析的四个任务 经济可行性经济可行性经济可行性经济可行性 经济实力经济实力经济实力经济实力 经济效益经济效益经济效益经济效益社会可行性社会可行性社会可行性社会可行性 是否存在是否存在是否存在是否存在侵犯、妨碍侵犯、妨碍侵犯、妨碍侵犯、妨碍行为行为行为行为技术可行性技术可行性技术可行性技术可行性 技术技术技术技术 资源有效性资源有效

8、性资源有效性资源有效性 开发风险开发风险开发风险开发风险操作可行性操作可行性操作可行性操作可行性项目的运行方项目的运行方式在用户组织式在用户组织内是否行的通内是否行的通现有管理制度、现有管理制度、人员素质和操人员素质和操作方式是否可作方式是否可行行2006年9月28日6时52分2.22.2可行性研究的步骤可行性研究的步骤41系统定义,复查系统规模和目标、性质、范围、约束和限制42研究目前正在使用的系统。研究现行系统(人工/旧软件),描绘系统流程图,审核。u现现有有的的系系统统必必然然有有某某些些缺缺点点,新新系系统统必必须须能能解解决决旧旧系统中存在的问题。系统中存在的问题。43.导出新系统的

9、逻辑模型。分析员应该画出描绘现有系统的高层系统流程图,并请有关人员检验他对现有系统认识是否正确。千万不要花费太多时间去了解和描绘现有系统的实现细节,例如,除非是为了阐明一个特别关键的算法,否则不需要根据程序代码画出程序流程图。2006年9月28日6时52分2.32.3导出新系统的高层逻辑模型导出新系统的高层逻辑模型44.设计方案.优秀的设计过程通常总是从现有的物理系统出发,导出现有系统的逻辑模型,再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统,并进行可行性评价(4方面)u分分析析员员能能够够使使用用数数据据流流图图描描绘绘数数据据在在系系统统中中流

10、流动动和和处处理理的的情情况况,从从中中概概括括地地表表达达出出他他对对新新系系统统的的设设想想。通通常常为为了了把把新新系系统统描描绘绘得得更更清清晰晰准准确确,还还应应该该有有一一个个初初步步的的数数据据字字典典,定定义义系系统统中中使使用用的的数数据据。数数据据流流图图和和数数据据字字典典共共同同定定义义了了新新系系统统的的逻逻辑辑模模型型,以以后后可可以以从这个逻辑模型出发设计新系统。从这个逻辑模型出发设计新系统。2006年9月28日6时52分2.42.4重新定义问题重新定义问题u分分析析员员应应该该和和用用户户一一起起再再次次复复查查问问题题定定义义、工工程程规规模模和和目目标标,这

11、这次次复复查查应应该该把把数数据据流流图图和和数数据据字字典典作作为为讨论的基础。讨论的基础。4可行性研究的前四个步骤实质上构成一个循环。分析定义问题,分析这个问题,导出一个试探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。2006年9月28日6时52分2.52.5导出和评价供选择的解法导出和评价供选择的解法45.推荐可行的方案。u分分析析员员应应该该从从他他建建议议的的系系统统逻逻辑辑模模型型出出发发,导导出出若若干个较高层次的(较抽象的)物理解法供比较和选择。干个较高层次的(较抽象的)物理解法供比较和选择。u其次可以考

12、虑操作方面的可行性。其次可以考虑操作方面的可行性。u考考虑虑经经济济方方面面的的可可行行性性,对对每每个个可可能能的的系系统统进进行行成成本本/效益分析。效益分析。u最最后后为为每每个个在在技技术术、操操作作和和经经济济等等方方面面都都可可行行的的系系统统制制定定实实现现进进度度表表,不不需需要要(也也不不可可能能)制制定定得得很很详详细,通常中需要估计生命周期每个阶段的工作量。细,通常中需要估计生命周期每个阶段的工作量。2006年9月28日6时52分2.5.12.5.1经济可行性经济可行性4经济 u经济可行性分析主要包括:经济可行性分析主要包括:“成本成本收益收益”分析分析和和“短期短期长远

13、利益长远利益”分析。分析。4成本-收益分析最容易理解,如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。2006年9月28日6时52分2.62.6成本成本/效益分析效益分析4直接效益u服务服务u节省开支节省开支u提高工作效率提高工作效率 4间接效益u科学决策科学决策u快速决策快速决策4社会效益2006年9月28日6时52分2.6.12.6.1成本考虑的方面成本考虑的方面(1)办公室房租。(2)办公用品,如桌、椅、书柜、照明电器、空调等。(3)计算机、打印机、网络等硬件设备。(4)电话、传真等通讯设备以及通讯费用。(5)资料费。(6)办公消耗,如水电费、打印复印费等。(7)软件开发人

14、员与行政人员的工资。(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。(9)做市场调查、可行性分析、需求分析的交际费用。(10)公司人员培训费用。(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。2006年9月28日6时52分2.6.22.6.2短期短期长远利益分析长远利益分析4人们喜欢吃着碗里的、看着锅里的,还想着别人家里的。短

15、期利益和长远利益兼得是人们梦寐以求的事。4开发策略2006年9月28日6时52分2.6.32.6.3成本估计成本估计-系统规模系统规模41、代码行技术-面向规模的估计(代码行KLOC)u每千行代码每千行代码(KLOC)(KLOC)的错误数。的错误数。u每千行代码每千行代码(KLOC)(KLOC)的缺陷数。的缺陷数。u每行代码每行代码(LOC)(LOC)的成本。的成本。u每千行代码每千行代码(KLOC)(KLOC)的文档页数。的文档页数。u每人月错误数。每人月错误数。u每人月代码行每人月代码行(LOC)(LOC)。u每页文档的成本。每页文档的成本。42、任务分解技术面向功能的估计(功能点)u用户

16、输入数:计算每个用户输入,它们向软件提供面向应用的数据。输计算每个用户输入,它们向软件提供面向应用的数据。输入应该与查询区分开来,分别计算。入应该与查询区分开来,分别计算。u用户输出数:计算每个用户输出,它们向用户提供面向应用的信息。这计算每个用户输出,它们向用户提供面向应用的信息。这里,输出是指里,输出是指报表、屏幕、出错报表、屏幕、出错信息,等等。一个报表中的单个数据项信息,等等。一个报表中的单个数据项不单独计算。不单独计算。u用户查询数:一个查询被定义为一次联机输入,它导致软件以联机输出一个查询被定义为一次联机输入,它导致软件以联机输出的方式产生实时的响应。每一个不同的查询都要计算。的方

17、式产生实时的响应。每一个不同的查询都要计算。u文件数:计算每个逻辑的主文件计算每个逻辑的主文件(如数据的一个逻辑组合,它可能是某个如数据的一个逻辑组合,它可能是某个大型数据库的一部分大型数据库的一部分或是一个或是一个独立的文件独立的文件)。u外部接口数:计算所有机器可读的接口计算所有机器可读的接口(如磁带或磁盘上的数据文件如磁带或磁盘上的数据文件),利用这些接口可以将信息从一个系统传送到另一个系统。利用这些接口可以将信息从一个系统传送到另一个系统。2006年9月28日6时52分2.6.32.6.3问题分解及过程分解 4首先把软件开发工程分解为若干个相对独立的任务,估计每个任务的成本时,通常先估

18、计完成该任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。4最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。4典型环境下各个开发阶段需要使用的人力的百分比大致如表所示。2006年9月28日6时52分2006年9月28日6时52分软件规模的例子软件规模的例子2006年9月28日6时52分 43、自动估计成本技术u采用这种技术必须有长期搜集的大量历史数据为基采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库支持。础,并且需要有良好的数据库支持。2006年9月28日6时5

19、2分参考书籍参考书籍4软件成本估算:软件成本估算:COCOMO IICOCOMO II模型方法模型方法u出版社:出版社:机械工业出版社机械工业出版社 u作者:作者:美美 勃姆勃姆(Boehm,B.W)(Boehm,B.W)等等/u译者:译者:李师贤李师贤/杜云梅杜云梅/李卫华李卫华 等等/4功能点分析功能点分析成功软件项目的测量实践成功软件项目的测量实践 u作者:作者:(美)(美)David Garmus&David Herron/David Garmus&David Herron/u 出版社:出版社:清华大学出版社清华大学出版社2006年9月28日6时52分功能点分析法功能点分析法4功能点分

20、析法(FPA:function point analysis)是在需求分析阶段基于系统功能的一种规模估算方法,是基于应用软件的外部、内部特性以及软件性能的一种间接的规模测量。4功能点可以用于“需求文档”、“设计文档”、“源代码”、“测试用例”度量,根据具体方法和编程语言的不同,功能点可以转换为代码行。2006年9月28日6时52分功能点分析法的步骤功能点分析法的步骤2006年9月28日6时52分功能点分析法功能点分析法4FP=总计数值0.650.01Fi 其中,其中,“总计数值总计数值”是所有功能点条目的总和。是所有功能点条目的总和。Fi(i=1Fi(i=1到到14)14)是基于对图是基于对图

21、4-64-6中问题的回答而得到的中问题的回答而得到的“复杂度调整值复杂度调整值”(0”(0到到5)5)。等式中的常数和信息域值的加权因子是根据经验确定的。等式中的常数和信息域值的加权因子是根据经验确定的。Fi Fi:u1.1.系统需要可靠的备份和复原吗?系统需要可靠的备份和复原吗?u2.2.需要数据通信吗?需要数据通信吗?u3.3.有分布处理功能吗?有分布处理功能吗?u4.4.性能很关键吗?性能很关键吗?u5.5.系统是否在一个已有的、很实用的操作环境中运行?系统是否在一个已有的、很实用的操作环境中运行?u6.6.系统需要联机数据项吗?系统需要联机数据项吗?u7.7.联机数据项是否需要在多屏幕

22、或多操作之间切换以完成输入?联机数据项是否需要在多屏幕或多操作之间切换以完成输入?u8.8.需要联机更新主文件吗?需要联机更新主文件吗?u9.9.输入、输出、文件或查询很复杂吗?输入、输出、文件或查询很复杂吗?u10.10.内部处理复杂吗?内部处理复杂吗?u11.11.代码需要被设计成是可复用的吗?代码需要被设计成是可复用的吗?u12.12.设计中需要包括转换及安装吗?设计中需要包括转换及安装吗?u13.13.系统的设计支持不同组织的多次安装吗?系统的设计支持不同组织的多次安装吗?u14.14.应用的设计方便用户修改和使用吗?应用的设计方便用户修改和使用吗?2006年9月28日6时52分总计数

23、值总计数值信息域值乐观值 可能值悲观值估算数权值记数值输入数20243024496输出数12152216580查询数16222822488主控文件数44541040外部接口数2232714总计数值3182006年9月28日6时52分因子值因子值备份和还原4信息域值复杂度5数据通讯2内部处理复杂度5分布式处理0设计成可复用的代码4关键性能4设计中的转换及安装3先有的操作环境3多次安装5联机数据登录4方便修改的应用设计5多屏幕输入切换5复杂度调整因子1.17估算14个复杂度加权因子(Fi,根据问题对项目的影响取值范围是05),表3给出了因子值。FP=总计数值0.65+0.01Fi=366 2006

24、年9月28日6时52分工作量估算工作量估算2006年9月28日6时52分工作量估算工作量估算语言每功能点的SLOC默认C+53Delphi 518HTML 414Visual Basic 624SQL default13默认 Java 2462006年9月28日6时52分工作量估算工作量估算4用java 2完成上述项目(366功能点)时,将大约需要下列SLOC数:L=36646=16836行=16.836KLOC E 5.2L0.91 5.216.3860.91 66人/月 DOC 49L1.01 4916.3861.01 826页 2006年9月28日6时52分成本估算成本估算 4项目的成本

25、估算包括许多因素:人力成本、办公费用、管理费用、设备和软件等的购置费用、场地租金、旅差费等等。对项目成本的估算取决于公司所采用的成本核算方法。有的公司某些费用并没有计入项目成本中,而是按管理费用等分摊。有的从历史数据求出生产率度量和每行成本,即行PM(人月)和元行,则LOC的值与元行相乘得到成本,用LOC 的值与行PM相除得到工作量。具体可按公司的具体情况选择。2006年9月28日6时52分成本估算成本估算4E5.2L0.91,L是源代码行数(以KLOC计),E是工作量(以PM计)4D4.1L0.36,D是项目持续时间(以月计)4S0.54E0.6,S是人员需要量(以人计)4DOC49L1.0

26、1。DOC是文档数量(以页计)2006年9月28日6时52分制定计划制定计划 4对软件项目进行估算的第三步是根据工作量制定项目计划,目的是用文件的形式,把对于在开发过程中人员安排、工作量分解、开始和完成时间、开发进度、所需经费预算、所需软、硬件条件等问题作出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。可以根据自己的历史数据或行业模型决定所需的资源并落实到项目计划。可以采用上述的IBM模型或McConnell给出的方法粗略地给出项目持续时间(以IBM模型为例):项目需要的人员S0.54E0.6 0.54660.67人项目持续时间D4.1L0.36 4.116.3860.3611月2

27、006年9月28日6时52分成本成本/效益分析的方法效益分析的方法4成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。4应该比较新系统的开发成本和经济效益,以便从经济角度判断这个系统是否值得投资,投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。2006年9月28日6时52分贷币的时间价值贷币的时间价值4假设年利率为i,如果现在存入P元,则n年以后可以得到的钱数为:F=PF=P(1+i1+i)n n就就是是P P元元钱钱在在n n年年后后的的价价值值。反反之之,如如果果n n年年后后能能收收入入F F元线,那么这些钱的现在价值是元线,那

28、么这些钱的现在价值是:P=F/:P=F/(1+i1+i)n nl修改一个已有库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,五年共可省12500元。但是,不能简单地把5000元和12500元相比较,因为前者是现在投资的钱,后者是若干年以后节省的钱。l假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表所示。2006年9月28日6时52分2006年9月28日6时52分 投资回收期投资回收期4所谓投资回收

29、期就是使累计的经济效益等于最初投资所需要的时间。u例例 如如,修修 改改 库库 存存 清清 单单 系系 统统 两两 年年 以以 后后 可可 以以 节节 省省4225.124225.12元元,比比最最初初的的投投资资(50005000)元元还还少少774.88774.88元元,第第 三三 年年 以以 后后 将将 再再 节节 省省 1779.451779.45元元。774.88/1779.45=0.44774.88/1779.45=0.44因此,投资回收期是因此,投资回收期是2.442.44年。年。2006年9月28日6时52分技术可行性技术可行性4(1)在给定的时间内能否实现需求说明中的功能。如

30、果在项目开发过程中遇到难以克服的技术问题,麻烦就大了。轻则拖延进度,重则断送项目。4(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造成客户利益损失,那么软件开发方可要赔惨了。4(3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。在统计软件总的开发时间时,不能漏掉用于维护的时间。软件维护是非常拖后腿的事,它能把前期拿到的利润慢慢地消耗光。如果软件的质量不好,将会导致维护的代价很高,企图通过偷工减料而提高生产率,是得不偿失的事。4技术可行性分析可以简单地表

31、述为:做得了吗?做得好吗?做得快吗?2006年9月28日6时52分社会环境社会环境 4社会环境的可行性至少包括两种因素:市场与政策。u市场又分为市场又分为未成熟的市场、成熟的市场和将要消亡的市场未成熟的市场、成熟的市场和将要消亡的市场。l涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?l挤进成熟的市场,虽然风险不高,但油水也不多。如果供大于求,即软件开发公司多,项目少,那么在竞标时可能会出现恶性杀价的情形。国内第一批卖计算机的、做系统集成的公司发了财,别人眼红了也挤进来,这个行业的平均利润也就下降了。l将要消亡的市场就别进去了。尽管很多程序

32、员怀念DOS时代编程的那种淋漓尽致,可现在没人要DOS应用软件了。学校教学尚可用用DOS软件,商业软件公司则不可再去开发DOS软件。4政策对软件公司的生存与发展影响非常大。整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争不公平。政策不当将阻碍软件公司的健康发展,可最怕的还是政府干预企业的正当行为。2006年9月28日6时52分人人有句名言:“人分四类人物,人才,人手,人渣。”(董军,软件工程思想)如果一个软件公司里上述四类人齐全了,那么最好的分工是让“人物”当领导,“人才”做第一线的开发人员,“人手”做行政人员,

33、“人渣”负责市场(行贿)。4这里只谈公司的领导与开发人员“行还是不行”。“人物”毕竟是少数,“人才”可是济济的。举重若轻的那类“人才”可以做领导,举轻若重的那类人才适合做软件开发人员。假如一群持有学士、硕士和博士文凭的毕业生到软件公司应聘,该如何录用呢?董军的建议如下:u先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。要求不高、奉献甚多。u其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时没有天天去造文章而丢弃了编

34、程工作,那么让有经验的学士程序员带他们没有天天去造文章而丢弃了编程工作,那么让有经验的学士程序员带他们煅练几个月就可以用了。煅练几个月就可以用了。u如果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了软如果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了软件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕士读到博士出头,这六七年时间,真本事没学多少,倒学会士读到博士出头,这六七年时间,真本事没学多少,倒学会“眼高手低眼高手低”甚至甚至“弄虚作假弄虚作假”;2006年9月28日6时52分6 6、推荐

35、行动方针、推荐行动方针4可行性分析的关键是提出是否继续进行这项开发工程。并且说明选择这个解决方案的理由。2006年9月28日6时52分7 7、草拟开发计划、草拟开发计划4除了工程进度表之外还应该估计:u对对各各种种开开发发人人员员(系系统统分分析析员员,程程序序员员,资资料料员等)员等)u各各种种资资源源(计计算算机机硬硬件件,软软件件、数数据据、工工具具等等等)的需要情况等)的需要情况u应该指明什么时候使用多长时间应该指明什么时候使用多长时间u还应该估计系统生命周期每个阶段的成本。还应该估计系统生命周期每个阶段的成本。2006年9月28日6时52分8 8、书写文档提交审查、书写文档提交审查4

36、应该把上述可行性研究各个步骤的结果写成清晰的文档,请用户和使用部门的负责人仔细审查,以决定是否继续这项工程以及是否接受分析员推荐的方案。4OVER2006年9月28日6时52分3.Analysis&Specification3.Analysis&Specification需求分析需求分析4不论是为客户做软件项目还是为自己做软件产品,都要进行需求分析。需求分析最恼人之处是难以在项目刚启动时搞清楚需求,如果在项目做了一大半时需求发生了变化,那将使项目陷入困境。3.3节解释需求分析为什么困难,3.4节讲述如何进行需求分析。本章的需求分析均不涉及编程,所以不考虑结构化、面向对象等分析方法。4Requi

37、rements elicitation(需 求 获 取):The process of discovering the clients requirements.4Requirements analysis(需求分析):The process of refining and extending the initial requirements determined.2006年9月28日6时52分Requirements Definition4Requirements Definition(需求定义)(需求定义)uCustomer-oriented descriptions of the sys

38、tems functions and constraints on its operation(功能描述与操作约束)uA requirement is a feature of the system or a description of something the system is capable of doing in order to fulfill the systems purpose.实现2006年9月28日6时52分Requirements DefinitionIEEEl用户解决问题或达到目的所需的条件或能力。用户解决问题或达到目的所需的条件或能力。l系统或系统部件要满足合同、

39、标准、规范或其它正式规定文系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。档所需具有的条件或能力。l一种反映上面两条所描述的条件或能力的文档说明。一种反映上面两条所描述的条件或能力的文档说明。u真正的“需求”实际上存在人们的脑海中,任何文档形式的需求(例如:需求规格说明)仅是一个模型或一种叙述。2006年9月28日6时52分需求分析的重要性需求分析的重要性4开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将会最终给系统带来极大损害的部分,而且以后再对它进

40、行修改也极为困难。2006年9月28日6时52分What is this Phase For?What is this Phase For?4Major misconception(误解)udetermining what client wantsdetermining what client wants“I know you believe you understood what you think I said,but I am not sure you realize that what you heard is not what I meant!”(我知道你相信你理解了你认为我所说的,

41、但我不能确定你是否认识到你所听到的并不是我所意指的,George Romney)4Must determine clients&usersusers needs,Not the client wants.uchances for success slim if you dont figure chances for success slim if you dont figure this out!this out!2006年9月28日6时52分the goal of the specification or system analysis the goal of the specificati

42、on or system analysis phasephase4the goal of the specification or system analysis phase is to build a model of the software product that the client requires.uThe information domain of a problem must be The information domain of a problem must be represented and understood.represented and understood.

43、理解和描述问题的信息范围理解和描述问题的信息范围uThe functions that the software is to perform must The functions that the software is to perform must be defined.be defined.定义软件的功能定义软件的功能uThe behavior of the software(as a consequence of The behavior of the software(as a consequence of external events)must be represented.ex

44、ternal events)must be represented.描述软件对外部事描述软件对外部事件的响应件的响应uThe models that depict information,function,and The models that depict information,function,and behavior must be partitioned in a manner that behavior must be partitioned in a manner that uncovers detail in a layered(or hierarchical)uncovers

45、 detail in a layered(or hierarchical)fashion.fashion.描述信息、功能和行为的模型必须以分层的方式显示细节来划分开描述信息、功能和行为的模型必须以分层的方式显示细节来划分开uThe analysis process should move from essential The analysis process should move from essential information toward implementation detail.information toward implementation detail.描述2006年9月2

46、8日6时52分需求分析为什么困难需求分析为什么困难 4(1)客户说不清楚需求;u有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。u有些客户心里非常清楚想要什么,但却说不明白。有些客户心里非常清楚想要什么,但却说不明白。u如如果果客客户户本本身身就就懂懂软软件件开开发发,能能把把需需求求说说得得清清清清楚楚楚楚,这这样样的的需需求求分分析析将将会会非非常常轻轻松松、愉愉快快。如如果果客客户户全全不不懂懂软软件件,但但信信任任软软件件开开发发方方,这这事事也也好好办办。分分析析人人员员可可以以引引导导客客户户,先先阐阐述述常常规规的的需需

47、求求,再再由由客客户户否否定定不不需需要要的的,最最终终确确定定客客户户真真正正的的需需求求。最最怕怕的的就就是是“不不懂懂装装懂懂”或或者者“半半懂懂充充内内行行”的客户,他们会提出不切实际的需求。的客户,他们会提出不切实际的需求。4(2)需求自身经常变动;u需求肯定会变动需求肯定会变动u(1 1)尽尽可可能能地地分分析析清清楚楚哪哪些些是是稳稳定定的的需需求求,哪哪些些是是易易变变的的需需求求。以以便便在在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。u(2 2)在在合合同同中中一一定定要要说说清清楚楚“

48、做做什什么么”和和“不不做做什什么么”。如如果果合合同同含含含含糊糊,日后扯皮的事情就多。糊糊,日后扯皮的事情就多。4(3)分析人员或客户理解有误。u客户表达的需求,不同的分析人员可能有不同的理解。客户表达的需求,不同的分析人员可能有不同的理解。u写写好好需需求求说说明明书书后后,要要请请客客户户方方的的各各个个代代表表验验证证。如如果果问问题题很很复复杂杂,双双方方都都不不太太明明白白,就就有有必必要要请请开开发发人人员员快快速速构构造造软软件件的的原原型型,双双方方再再次次论论证证需需求说明书是否正确。求说明书是否正确。u由由于于客客户户大大多多不不懂懂软软件件,他他们们可可能能觉觉得得软

49、软件件是是万万能能的的,会会提提出出一一些些无无法法实实现的需求。现的需求。2006年9月28日6时52分如何进行需求分析如何进行需求分析-应该了解什么应该了解什么 4To elicit the clients needs,the members of the requirements team must be familiar with the application domain.(熟悉客户领域知识)4To build a glossary(术语表)用正确的术语进行正确的交流4应该先了解宏观的问题,再了解细节的问题。2006年9月28日6时52分4(1)最好为每个需求注释“为什么”,这样可

50、让程序员了解需求的本质,以便选用最合适的技术来实现此需求。4(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。2006年9月28日6时52分Type of Requirements4Bussiness requirementsuA system requirement(also called a business requirement)is a description of the needs and desires for an information system.A requirement may describe functions,feat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁