1、第三章 系统需求分析及可行性分析黄 海 bupt_,软件工程 Software Engineering, 2008 BUPT TSEG,基于计算机系统的系统分析 可行性分析 系统体系结构建模 系统流程图 系统分析的总结, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.1 基于计算机系统的 系统分析,计算机系统是元素的集合或排列 软件:是指计算机程序、数据结构、逻辑方法、过程或控制的相关文档。 硬件:是指提供计算能力的电子设备和提供外部功能的机电设备。 人员:是指使用硬件和软件的用户和其他人员。 文档:是指手册、表格和其他用以描述系统使用和操作的描述性信息。 数据库:是指该系
2、统所具有的信息模型,是系统中对信息具有存取功能的一个主要部分。 过程:是指定义每一种系统元素的特定使用步骤或使用环境。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.1 基于计算机系统的 系统分析, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,基于计算机系统的系统元素,3.1 基于计算机系统的 系统分析,1. 计算机系统工程定义:是一个问题求解的活动,目的是揭示、分析所期望的功能、性能、接口、设计限制和信息结构的表示,并把它们分配到各个系统元素中去。(由系统分析工程师和用户合作完成)计算机系统工程包括:硬件工程、软件工程、人类工程和数据库工程。, 200
3、8 BUPT TSEG 北京邮电大学 通信软件工程中心,3.1 基于计算机系统的 系统分析,2. 系统分析 系统分析是一组统称为计算机系统工程的活动。它着眼于所有的系统元素,而不仅仅是软件。系统分析时需要硬件工程师、软件工程师以及数据库专家共同合作来实现。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.1 基于计算机系统的 系统分析,(1)系统分析的目标 识别用户要求; 系统的可行性分析; 把功能分配给系统元素; 建立成本和进度限制; 生成系统规格说明,形成所有后续工程(包括软件和硬件)的基础。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.1 基于
4、计算机系统的 系统分析,(2)系统分析过程系统分析员需要通过回答以下问题,才能完成系统分析过程: 系统的总体目标是什么? 系统所期望的功能和性能是什么? 系统的可靠性和质量要求是什么? 成本与进度限制如何? 有无软硬件制造和购买的需求? 有效的技术方案有哪些? 将来系统可能有哪些扩充?, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,基于计算机系统的系统分析 可行性分析 系统体系结构建模 系统流程图 系统分析的总结, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,可行性分析的目的不是解决问题,而是确定问题是否值得去解决。在系统分析过程中,引入
5、系统可行性分析的一个优点在于可以在很大程度上减少投资的损失。一方面为后期的软件开发指明方向,也是项目管理和计划的前期准备;另一方面即使决定项目终止也不会对项目建设的双方带来巨大的经济损失。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,1. 可行性分析的任务和步骤 首先,针对项目确定问题域并对问题域进行概要的分析和研究,初步确定项目的规模、约束和限制条件 其次,针对问题域中的关键和核心问题进行简要的需求分析,抽象出问题域的逻辑结构,并构建逻辑模型 最后,从逻辑模型出发,通过小规模的设计和技术实现论证,探索出若干种可供选择的解决方案,并对每种方案进行可行性方
6、面的论证, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,可行性分析主要集中在以下四个方面: 经济可行性 进行开发成本的估算以及可能取得的经济效益,确定待开发系统是否值得投资开发。 技术可行性 对待开发的系统进行功能、性能和限制条件的分析,确定在现有资源的条件下,技术风险有多大,系统是否能实现。资源包括已有的或可以获得的硬件、软件资源,现有技术人员的技术水平与已有的工作基础。 法律可行性 确认待开发系统可能涉及到的任何侵权、妨碍、责任的问题。 方案的选择 对待开发系统的不同方案进行比较评估。尤其是成本和时间限制,会给方案的选择带来很大的限制。, 2008 B
7、UPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,2. 经济可行性分析经济可行性分析包括软件开发项目的成本/效益估计,以确定软件系统可能带来的经济效益是否超过研制和维护所需要的费用。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,(1) 成本估算技术代码行技术功能点技术 任务分解技术 经验估算模型 COCOMO模型 软件方程式 其他成本估算内容(设备、人力、材料、管理等) 普通存在的问题是:成本估算往往偏低,其结果是一次次地追加费用,造成骑虎难下的局面。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析
8、,(2) 效益度量方法 有形收益 货币的时间价值将未来的收益按照通用率折算到现在。设年利率为i,现存入P元,n年后货币价值为F,若计复利,则 反之,若n年能收入F元,那么这些钱的现值是, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,例如,假设利用购买的一套计算机辅助开发工具来代替部门的大部分的人工设计工作,每年估算可节约9.6万元。若该软件的生命周期为5年,则5年可节省总开支48万元。而开发这套软件系统共投资了20万元。假设,年利率是5%,利用上面计算货币现在价值的公式,可以算出引入该计算机系统后每年预计节省的费用的现在价值。, 2008 BUPT TSE
9、G 北京邮电大学 通信软件工程中心,3.2 可行性分析,投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。根据上面的例子,引入计算机辅助开发工具两年后,可以节省17.85万元,比预期的投资还少2.15万,但第三年累计的节省金额就可达到26万,同时考虑到第三年可节省的金额为8.29万元,则:2.15 / 8.29 = 0.259因此,投资回收期是2.259年。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,纯收入纯收入就是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。根据上面的例子,5年内项目的纯收入预计为 41.56 20 = 2
10、1.56万元如果纯收入为零,则项目的预期效益与把资金存入银行所取得的利益一样。但开发一个有风险的项目,从经济观点分析则这个项目是不值得投资的。如果纯收入小于零,那么显然这项工程不值得投资。只有当纯收入大于零,才能考虑项目的投资。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,投资回收率把资金进行投资某个项目所获得的回报可以用类似于年利率的参数衡量,这就是投资回收率。已知现在的投资额,并且已经估计出将来每年可以获得的经济效益,那么,给定软件的使用寿命之后怎样计算投资回收率呢?根据上述条件不难列出下面的方程式:P F1(1+j) + F2(1+j)2 + +F
11、n(1+j)n其中,P是现在的投资额;Fi是第i年年底的效益(i1,2,n);n是系统的使用寿命,j是投资回收率。解出这个高阶代数方程即可求出投资回收率。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,无形效率 估算新软件能提供哪些以前不能做或难以做到的工作,提供信息的速度、精度、质量有什么提高,使用人员查询和使用信息的能力有哪些提高,节省多少人力等。 无形效率估算难以给出定量的数字,只能凭经验作出大致的估算。通常的情况是估算往往容易偏高。 例如:手工制定一张工资表需要2天(16个小时=960分钟),如果用计算机管理,10分钟就能打印一张工资表。那么,能否
12、得出效率提高96倍的结论呢?恐怕不能。因为它还受到数据输入等因素的制约,一般能提高23倍就不错了。因此,不能把某个环节上工作生产率的提高看成整个系统工作效率的提高。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,(3)长期短期利益分析 短期利益容易把握,风险较低,但利益较少,甚至没有利益;(沉迷现实,无远大抱负) 长期利益难以把握,风险较大。(要么是将帅之才,要么就是纸上谈兵、眼高手低之辈), 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.2 可行性分析,3. 技术可行性分析技术可行性指现有情况下能否完成这个项目。 技术可行性主要考虑的
13、内容有: 开发风险:在给定的限制范围内,能否设计出系统,并实现必须的功能和性能? 资源可用性:是否有充足的熟练技术人员可以支配?其他必要的资源(软件和硬件)对建造系统可用么? 技术条件:相关的技术条件是否能够支持系统的开发? 技术分析可用的工具可从数学建模和优化技术、概率和统计、排队论和控制论中导出 建模(数学的或物理的)是对基于计算机系统的有效技术分析机制, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,基于计算机系统的系统分析 可行性分析 系统体系结构建模 系统流程图 系统分析的总结, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.3 系统体系结构建模,
14、计算机系统可用一系列工具为信息的变换和处理进行逻辑建模。 1. 体系结构图 (AD)基于计算机的系统可以用体系结构图进行建模,它包含五个处理区域: 输入 处理与控制 输出 用户界面 维护和自测试, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,IPO,3.3 系统体系结构建模, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,系统体系结构模板,3.3 系统体系结构建模,2. 体系结构环境图 (ACD) 利用抽象的体系结构模板能够帮助分析员建立一个逐层细化的层次结构,而结构环境图(ACD,Architecture Context Diagram)则位于层次结构的顶层
15、。 ACD“建立了待实现系统与系统运行环境之间的信息边界”,即ACD定义了系统使用信息的所有外部生产者、系统创建消息的所有外部消费者、以及所有通过界面通信或完成维护和自测试的实体。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.3 系统体系结构建模, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,扩展CLSS的体系结构环境图,3.3 系统体系结构建模,3. 体系结构流程图(AFD) 对ACD进一步细分,可以标识出该环境中主要运行的子系统,这些子系统被定义在体系结构流程图(AFD,Architecture Flow Diagram)中,它是从ACD导出的。
16、AFD显示了主要的子系统和重要的信息(数据和控制)的流程。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.3 系统体系结构建模, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,扩展的CLSS体系结构流程图,3.3 系统体系结构建模,AFD可以进一步分解为多个层次。初始体系结构流程图(AFD)构成AFD层次的顶层结点,在最初的AFD中的每个圆角矩形又可被扩展为另一个专门描述它的体系结构模板。系统的每个AFD可被用来描述子系统的后续工程步骤的起始点。 如上所述,从基本的功能性能需求出发,构筑顶层的结构环境模型(ACD),再按照结构模板将高层ACD逐级分解形成A
17、FD,如此自顶向下逐层细化,将逐步构建起应用系统的明细层次模型。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.3 系统体系结构建模, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,构建AFD层次结构模板,3.3 系统体系结构建模,4. 系统结构的规格说明定义 对结构图中的各个子系统及它们之间的信息需要加以定义。 结构规格说明(ADS,Architecture Description Specification)给出了有关每个子系统的信息和各个子系统之间的信息流;对每个子系统进行“系统模块描述”,详细说明每一个子系统的功能,处理对象与方法和其他子系统如何接
18、口。 规格说明还可能具有一个“结构词典”,即在规格说明中出现的每一个信息项的清单,以及每个信息项的说明。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.3 系统体系结构建模, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,结构词典条目,基于计算机系统的系统分析 可行性分析 系统体系结构建模 系统流程图 系统分析的总结, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.4 系统流程图,ACD、AFD等概括的是系统的逻辑模型,进入设计阶段以后应该把系统的逻辑模型转变成物理模型。 系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑
19、盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。 系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程,因此尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流因而不是程序流程图。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.4 系统流程图,1. 符号(1) 基本符号:用于以概括的方式抽象地描绘一个物理系统, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.4 系统流程图,(2)具体系统符号:更具体地描绘一个物理系统。, 2008 BUPT TSEG 北京邮电大学 通信软
20、件工程中心,3.4 系统流程图,2. 示例, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,库存清单系统的系统流程图,3.4 系统流程图,3. 分层 复杂的系统需要分层次地描述。 首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。 然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,基于计算机系统的系统分析 可行性分析 系统体系结构建模 系统流程图 系统分析的总结, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.5 系统分析的总结,在进行了系统分析以及可行性分析之后
21、,对软件项目的系统目标和范围有了初步的了解,并进一步获得了一个或几个系统的候选解决方案。为此,就需要对这些结果进行总结,系统规格说明书以及系统的可行性分析说明书就是最重要的两份文档。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.5 系统分析的总结,1. 系统规格说明书系统规格说明书描述了系统的功能和性能,以及管理该系统开发的一些限制条件。这个规格说明书定义了每个被分配的系统元素,给软件开发人员指明了软件系统在整个计算机系统中的位置和作用,并用体系结构图描述了各子系统在整个大系统中所起到的作用,除此之外系统规格说明书还描述了系统的输入/输出(数据和控制)信息。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,3.5 系统分析的总结,2. 可行性分析报告可行性分析报告最后必须得出结论:如,项目可行,立即开始;项目可行,时机不成熟;项目不可行。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,