第3章可行性研究

第3章 可行性研究

在进行任何一项较大的工程时,首先都要进行可行性分析和研究。软件可行性研究的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。本章内容主要包括:可行性研究的任务、可行性研究的具体步骤、可行性研究报告的主要内容、成本–效益分析以及项目开发计划等。

3.1 基础知识

3.1.1 可行性研究的任务

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。把它们清楚的列举出来。然后,分析员进行简要的需求分析,抽象处该项目的逻辑结构,建立逻辑模型。

从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法。对每种解决方法都要研究它的可行性。

可从以下三个方面分析研究每种解决方法的可行性。

1. 技术可行性

对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。

2. 经济可行性

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。经济可行性研究范围较广,包括成本–效益分析公司经营长期策略、开发所需的成本和资源、潜在的市场前景。

3.社会可行性

要开发的项目是否存在任何侵权、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

社会可行性所涉及的范围也比较广,它包括:合同、责任、侵权、用户组织的管理模式及规范和其他一些技术人员常常不了解的陷阱等。

3.1.2 可行性研究的具体步骤

1. 确定项目规模和目标

分析员对有关人员进行调查访问,仔细阅读和分析有关的资料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问题。

2.研究正在运行的系统

正在运行的系统可能是一个人工操作的系统,也可能是旧的计算机系统,要开发一个新 存在什么问题,运行现有系统需要多少费用,对新系统有什么新的功能要求,新系统运行时 能否减少使用费用等等。

3.建立新系统的高层逻辑模型

根据对现有系统的分析研究,逐渐明确新系统的功能、处理流程以及所受的约束,然后使用建立逻辑模型的工具——数据流图和数据字典来描述数据在系统中的流动和处理情况。 注意,现在还不是软件需求分析阶段,不是完整、详细地描述,只是概括地描述高层的数据处理和流动。

4.导出和评价各种方案

分析员建立了新系统的高层逻辑模型之后,要从技术角度出发,提出实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。然后再根据技术可行性、经济可行性和社会可行性对各种方案进行评估,去掉行不通的解法,就得到了可行的解法。

5.推荐可行的方案

根据上述可行性研究的结果,同时要根据用户的具体情况,应该决定该项目是否值得去开发。若值得开发,那么可行的解决方案是什么,并且说明该方案可行的原因和理由。该项目是否值得开发的主要因素,从经济上看是否合算,这就要求分析员对推荐的可行方案进行成本–效益分析。

6.编写可行性研究报告

将上述可行性研究过程的结果写成相应的文档,即可行性研究报告,提醒用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。

3.1.3 可行性研究报告的主要内容

一个可行性研究报告的主要内容如下:

(1) 引言。

(2) 可行性研究前提。

(3) 对现有系统的分析。

(4) 所建议系统的技术可行性分析。

(5) 所建议系统的经济可行性分析。

(6) 社会因素可行性分析。

(7) 其他可供选择的方案。

(8) 结论意见。

3.1.4 成本–效益分析

成本–效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。成本–效益分析首先是估算将要开发的系统的开发成本,然后与可能取得效益进行比较和权衡。效益分有形效益和无形效益两种。

有形效益可以用货币的时间价值、投资回收期和纯收入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。运行费用包括操作人员人数、工作时 间和消耗的物资等.

3.1.5 项目开发计划

经过可行性研究后,就得到一个项目是否值得开发的结论. 接下来应制定项目开发计划. 项目开发计划是一个管理性文档, 它的主要内容如下:

(1) 项目概述: 说明项目的各项主要工作; 说明软件的功能, 性能;为完成项目应具备的条件; 用户及合同承包者承担的工作, 完成期限及其他条件限制; 应交付的程序名称, 所使用的语言及储存形式; 应交付的文档.

(2) 实施计划: 说明任务的划分, 各项任务的责任人; 说明项目开发进度, 按阶段应完成的任务, 用图表说明每项任务的开始时间和完成时间; 说明项目的预算, 各阶段的费用支出预算.

(3) 人员组织及分工: 说明开发该项目所需人员的类型, 组成结构和数量等.

(4) 交付期限: 说明项目最后完工交付的日期.

3.2 单元练习

3.2.1 填空题

1. __________的目的就是用最小的代价在尽可能短的时间内确定概软件项目是否能够开发, 是否值得去开发.

2. 可行性研究的目的不是去开发一个软件项目, 而是研究这个软件项目是否________, __________.

3. 可行性研究实质上是要进行一次简化, 压缩了的__________和__________过程, 要在较高层次上以较抽象的方式进行需求分析和设计过程.

4. 可行性研究需要从_________可行性, __________可行性, __________可行性三个方面分析研究每种解决方法的可行性.

5. 技术可行性是对要开发项目的__________, __________, __________进行分析, 确定在现有的资源条件下, 技术风险有多大, 项目是否能实现.

6. 技术可行性一般要考虑的情况包括: _________, __________, __________.

7. 技术可行性的研究包括_________, __________, __________, __________.

8. 社会可行性所涉及的范围包括__________, __________, _________, 用户组织的管理模式, 规范及其他一些技术人员常常不了解的陷阱等.

9. 典型的可行性研究有下列步骤: 确定项目规模和目标, _________, _________, 导出和评价各种方案, 推荐可行的方案和编写可行性研究报告.

10. 一个可行性研究报告的主要内容如下: 引言, 可行性研究的前提, 对现有系统的分析, ________, _________, __________, 其他可供选择方案, 结论意见.

11. 成本—效益分析首先是估算将要开发的系统的________, 然后与可能取得的效益进行_________.

12. 效益分有形效益和无形效益两种. 有形效益可以用_______, _______, _______等指标进行度量; 无形效益主要从性质上, 心理上进行衡量, 很难直接进行衡量, 很难进行量的比较.

13. _______就是使累计的经济效益等于最初的投资用所需要的时间. 项目的________是指在整个生存周期之内的累计经济效益(折合成现在的值)与投资之差.

14. 项目开发计划的主要内容有: 项目概述, ________, __________, 交付期限.

15. 纯收入是软件生存周期内两项值之差, 这两项是_________与_________.

16. 系统流程图用图形符号表示系统中的各个元素, 表达了系统中各种元素之间的_______.

17. 软件工程有两种效益, 它们是________和_________.

18. 可行性研究具体步骤的最后一步是__________.

19. 系统的经济效益等于________加上_________.

20. 成本—效益分析的目的是从_______评价开发一个新的软件项目是否可行.

21. 系统流程图是描述物理系统的传统工具, 它用________来表示系统中的各个元素.

22. 可行性研究中描述系统高层物理模型的工具是________.

23. 可行性研究实质上是进行一次简化, 压缩了的__________.

24. 可行性研究的第一个具体步骤是___________.

3.2.2 选择题

1. 研究开发资源的有效性是进行( )可行性研究的一方面.

A. 技术 B. 经济

C .社会 D. 操作

2. 在软件的可行性研究中, 可以从不同的角度对软件进行研究, 其中是从软件的功能可行性角度考虑的是( ).

A. 经济可行性 B. 技术可行性

C. 操作可行性 D. 法律可行性

3. 在遵循软件工程原则开发软件过程中, 计划阶段应该依次完成( ).

A. 软件计划, 需求分析, 系统定义

B. 系统定义, 软件计划, 需求分析

C. 需求分析, 概要设计, 软件计划

D. 软件计划, 需求分析, 概要设计

4. 技术可行性要解决( ).

A. 存在侵权否 B. 成本—效益问题

C. 运行方式可行 D. 技术风险问题

5. 在软件工程项目中, 不随参与人数的增加而使软件的生产率增加的主要问题是( ).

A. 工作阶段间的等待时间 B. 生产原型的复杂性

C. 参与人员所需的工作站数 D. 参与人员之间的通信困难

6. 制定软件计划的目的在于尽早对欲开发的软件进行合理估价, 软件计划的任务是

( ).

A. 组织与管理 B. 分析与估算

C. 设计与测试 D. 规划与调度

7. 可行性分析中, 系统流程图用于描述( ).

A. 当前运行系统 B.当前逻辑模型

C. 目标系统 D.新系统

8. 研究软硬件资源的有效性是进行( )研究的一方面。

A .技术可行性 B. 经济可行性

C.社会可行性 D. 操作可行性

9. 可行性研究要求进行的需求分析和设计应是( )。

A.详细的 B.全面的

C.简化的,压缩的 D.彻底的

10. 在很多项目组成的大型工程中,用顶点表示项目,有向边表示项目之间谁先开工的先后关系,这种用顶点表示活动的图称为AOV网格,其常用的一种储存结构是(A).

为规划整个工程的实现,通常要对上述的顶点进行(B)排序,据此可获得项目的(C)序列.但并不是所有图都能获得这样的系列,如(D)图就不能获得这种序列.因为在这种情况下,所体现的先后关系不是(E).

A:① 队列表 ② 连通表

③ 邻接表 ④ 路径表

B: ① 选择 ② 归并

③ 拓扑 ④ 置换

C: ① 全序 ② 综合

③ 拓扑 ④ 优化

D: ① 有回路的方向 ② 无回路的有向

③ 无回路的AVO网络 ④ 所有边的先后关系都是非自反的

E: ① 自反的 ② 对称的

③ 非自反的 ④ 非对称的

11. 数据流图是常用的进行软件需求分析的图形工具,其基本符号是( ).

A. 输入,输出,外部实体和加工

B. 变换,加工,数据流和储存

C. 加工,数据流,数据储存和外部实体

D. 变换,数据储存,加工和数据流

12. 判定表和判定树是数据流图中用以描述加工的工具,它常描述的对象是( ).

A. 逻辑判断 B. 层次分解

C. 操作条目 D. 组合组件

13. 系统流程图用于可行性分析中的( )的描述.

A. 当前运行系统 B. 当前逻辑模式

C. 目标系统 D. 新系统

14. 系统流程图是描述( )的工具.

A. 逻辑系统 B. 程序系统

C. 体系结构 D. 物理系统

15. 下列叙述中,( )是正确的.

① 软件系统中所有的信息流都可以认为是事务流

② 软件系统中所有的信息流都可以认为是变换流

③ 事务分析和变换分析的设计步骤是基本相似的

A. ① B. ②

C. ③ D. ②③

16. 决定大型程序模块组织的基本原则的两种交替设计策略为( )

A. 面向用户的原型化和面向程序员的原型化

B. 物理模型与逻辑模型

C. 数据字典和数据流

D. 数据分解和算法分解

17. 在程序的描述和分析中, 用以指名数据来源, 数据流向和数据处理的辅助图形是( ).

A. 瀑布模型图 B. 数据流图

C. 数据结构图 D. 业务图

18. 数据流图是用于表示软件模型的一种图示方法, 在下列可采用的绘图方法中, ( )是常采用的.

① 自顶向下

② 自底向上

③ 分层绘制

④ 逐步求精

A. 全是 B. ①③④

C. ②③④ D. ①④

19. 结构化分析(SA)方法将欲开发的软件系统分解为若干基本的加工, 并对加工进行说明,下述是常用的说明工具, 其中便于对加工出现的组合条件的说明工具的是( ).

① 结构化语言

② 判定树

③ 判定表

A. ②③ B. ①②③

C. ①③ D. ①②

20. 加工是对数据流图中不能在分解的基本加工的精确说明, 下述( )是加工的最核心.

A. 加工顺序 B. 加工逻辑

C. 执行频率 D. 激发条件

21. 软件定义期问题定义阶段涉及的人员有( ).

A. 用户, 使用部门负责人

B. 软件开发人员, 用户, 使用部门负责人

C. 系统分析员, 软件开发人员

D. 系统分析员, 软件开发人员, 用户与使用部门负责人

22. 系统定义明确之后, 应对系统的可行性进行研究. 可行性研究包括( ).

A. 软件环境可行性, 技术可行性, 经济可行性, 社会可行性

B. 经济可行性,技术可行性,社会可行性

C.经济可行性,社会可行性,系统可行性

D.经济可行性,实用性,社会可行性

23. When drawing multilevel data flow chart of top-down, the balance between parent chart and son chart must be taken into account, and to pass judgment for the balance of the charts is regularly maintained by ( )?

A. Output data B. Data dictionary

C. processing number D. Input data

24. 对每一合理的方案分析员都应该准备( )资料.

A. 系统流程

B. 组成系统的物理元素清单, 成本—效益分析

C. 实现这个系统的进度计划

D. 以上全部正确

25. 再结构化分析方法中, 用以表达系统内数据的运动情况的工具有( )

A.数据流图

B. 数据字典

C. 结构化语言

D. 判定表与判定树

26. 在结构化分析方法中, 用状态—迁移图表表达系统和对象的行为. 在状态—迁移图中, 由一个状态和一个事件所决定的下一个状态可能有( ).

A. 一个 B. 两个

C. 多个 D. 不确定

27. 在软件开发过程中常用图作为描述工具DFD就是面向(A )分析方法的描述工具. 在一套分层DFD中, 如果某一张图中有N个加工(process ), 则这张图允许有(B )张子图. 在一张DFD图中, 任意两个加工之间(C ). 在划分层DFD时, 应保持(D )时间的平衡. DFD中从系统的输入流到系统的输出流打的一连串连续变换形成一种信息流, 这种信息流可分为(E) 两大类.

A. ① 数据结构 ② 数据流

③ 对象 ④ 构件(component)

B. ① 0 ② 1

③ 1-N ④ 0-N

C. ① 有且仅有一条数据流

② 至少有一条数据流

③ 可以有0或多条名字互不相同的数据流

④ 可以有0和多条数据流, 但允许其中有若干条名字相同的数据流

D. ① 父图和子图 ② 同一父图的所有子图

③ 不同父图的所有子图 ④ 同一子图的所有直接父图

E. ① 控制流和变换流 ② 变换流和事务流

③ 事务流和事件流 ④ 事件流和控制流

28. 原型化方法时一类动态定义需求的方法, 下列叙述中, ( )不具有原型化方法的特征.

A. 提供严格定义的文档 B. 加强用户参与和决策

C. 简化项目管理 D. 加快需求的确定

3.2.3 简答题

1. 可行性研究的任务有哪些?

2. 研究项目的技术可行性一般要考虑的情况有哪些?

3. 可行性研究包括哪些步骤?

4. 可行性研究报告有哪些主要内容?

5. 成本—效益分析的目的是什么? 可用哪些指标进行度量?

6. 项目开发计划有哪些内容?

3.3 参考答案

一. 填空题

1. 软件可行性研究

2. 值得去开发, 其中的问题能否解决

3. 需求分析, 设计

4. 技术, 经济, 社会

5. 功能, 性能, 限制条件

6. 开发的风险, 资源的有效性, 技术

7. 成本—效益分析, 公司经营长期策略, 开发所需的成本和资源, 潜在的市场前景

8. 合同, 责任, 侵权

9. 研究正在运行的系统, 建立新系统的高层逻辑模型

10. 所建议系统的技术可行性分析, 所建议系统的经济可行性分析, 社会因素可行性分析

11. 开发成本, 比较和权衡

12. 货币的时间价值, 投资回收期, 存收入

13. 投资回收期, 存收入

14. 实施计划, 人员组织及分工

15. 经济效益, 投资

16. 信息流动

17. 无形效益, 有形效益

18. 编写可行性报告

19. 因使用新的系统而增加的收入, 使用新的系统而可以节省的运行费用

20. 经济角度

21. 图形符号

22. 系统流程图

23. 需求分析和设计

24.确定项目的规模和目

二、选择题

1. A

2. B

【解析】:经济可行性是从开发费用和软件回报的角度来分析开发该软件系统是否可行。技术可行性是从软件实现的功能、用户要求的软件性能、是否有技术难题等方面等考虑开发该软件的可行性问题。操作可行性判断系统的操作方式在该用户组织内是否可行,法律可行性对方在考虑开发的软件系统可能会涉及的任何侵犯、妨碍、责任等问题做出决定。所以答案为B。

3. B 4. D

5. D

【解析】:在软件开发中,开发人员的交流似乎非常主要的,而一个开发人员进入一个新的软件系统做开发,需要相当长的一个阶段以适应该软件的开发,这主要是由于新的人员需要一定时间的培训以熟悉该软件系统的开发状况及该软件的需求分析、定义和相关已经生成的文档,以便在软件开发中与老开发人员的交流和通信,一推动软件开发前进。所以答案为D。

6. D

【解析】:软件的计划主要是根据软件开发的要求、软件系统的规模等,对软件开发的各种资源(包括软硬见资源及开发人员)进行合理的规划,以便在开发过程中得到合理的调度,从而使软件开发最充分地利用资源,以在最短的时间内取得最大的经济效益;软件工程经济学的任务是对软件开发的成本、效益等进行分析和估算;软件工程管理学的任务是有效组织和管理软件开发,软件工程开发技术的任务之一是设计和测试软件系统。所以答案是D。

7. A 8. A 9. C

10. A:③ B:③ C:③ D:① E:③

11. C

【解析】:在数据流图中,加工与变换在意义上是等价的,在数据流图中,箭头表示数据的路径和流向。数据流由一组固定成分的数据组成,通常每个数据流必须有一个适合的名字;数据流图是对数据进行加工和交换的,所以对于一个数据流图应该有数据源和数据池(即数据的最终目的地),我们把数据源和数据池统称为外部实体;同时把在加工的某一个环节,将待加工的数据储放在一定的场所,把它叫做数据储存。所以答案为C。

12. D

【解析】:在数据流图的描述中,通常结构化语言用来做逻辑判断的描述,但在数据流的描述中 常常遇到组合条件的判定,这时利用结构化语言的IF-THEN—ELSE就比较困难,即使勉强用结构化语言进行描述,对问题的描述也不能做到清晰医理解。这时,应用判定表和判定树来描述就特别方便,同时层次分解和操作条目也常常很简单地用结构化语言进行描述。所以答案为D。

13. A 14. D

15. C

【解析】:在面向数据流的系统设计中,区分事务流和变换流是非常重要的,变换流是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通路变换中心,

经加工处理后再沿输出通路变换成外部形式离开软件系统,而当信息沿输入通路到达一个处理,这个处理根据输入数据的类型从若干个动作序列中选择一个来执行,这个类数据流归为特殊的一类,称为事务流。在一个事务流中,事务中心接受数据,分析每个事务以确定它的类型,根据事务类型选取一条活动通路,所以变换流和事务流是根本不同的,需要区分开,

但从数据的角度来说,他们有很多类似之处,所以事务分析和变换分析的设计步骤是基本相似的,因此答案为C。

16. D

【解析】:数据流图和数据字典是在需求分析阶段常用的工具;面向用户的原型化和面向程序员的原型化是开发中常用的设计原则;物理模型和逻辑模型是在软件需求分析中所考虑的两类模型,通常在逻辑模型生成之前,可以先分析物理模型,再生成逻辑模型。软件系统的模块化组织是在系统设计阶段所要解决的,在概要设计阶段根据数据流来设计整个软件系统的模块化结构,在详细设计阶段,根据各个模块的具体要求(即算法实现等)对模块进行更细的划分,因此书记分解和算法分解是软件系统的模块化组织中两个基本的原则,所以答案为D。

17. B

【解析】:瀑布模型图是软件开发生命周期的一种描述;数据结构图对数据进行了静态的描述,并没有涉及到数据的流向和处理;业务流是一个软件工程的名词,并不是数据的辅助图形,数据流图是描述数据的加工或变换、数据流向、数据的存储动态图,所以答案为B。

18. B

【解析】:在用数据流图对软件模型的描述工程中,一般遵循的原则是自顶向下、分层绘制、逐步求精;通常情况下软件系统的模型比较复杂,用数据流图自底向上来描述是不符合逻辑的,同时也可以说明原型化方法为什么在软件开发中得到了广泛的应用。所以答案为B。

19. A

【解析】:结构化语言可以用来描述落后判断,如:IF condition THEN process1 ELSE process2 等,但用它来描述加工中出现的组合条件显得有点勉强,而判定表和判定树是专门用来描述在软件需求分析中出现的条件组合的,所以答案为A。

20. B

【解析】:在数据流图中,每一个加工筐中只简单地写上加工名,这显然不能表达加工的全部内容。加工逻辑的说明是非常重要的,而且随着自顶向下逐层细化,功能越来越具体,加工逻辑的说明也要越来越越细;加工逻辑说明的根据就是常说的结构化英语、判定表、判定树等,加工逻辑通常描述加工的逻辑条件或组合条件、加工的方式、加工的顺序等,可见加工的顺序、加工的激发条件、加工的激发条件、加工的执行频率等仅仅是加工逻辑描述的一部分,所以答案为B。

21. D 22.B

23. B

【解析】:在分层数据流图中,子图是对父图的某个加工进一步详细描述,因而父图中某个加工的输入输出数据流应该同子图的输入输出相同,分层数据流图的这个特点称为平衡。父图和子图的平衡是分层数据流图的重要性质,因为只有平衡的分层图才是可读可理解的,父图与子图的不平衡,将会使用户和分析员都无法理解一套分层数据流图。

如果子图的输入和输出数据流比父图中相应加工的输入输出表达得更详细,实际上就是对加工和数据同时进行分解。在自顶向下同时将加工和数据流作逐层分解中,这是很自然的方式,在这些情况下,要判断两张图是否平衡,需要借助于数据字典,而编号为了便于数据流图的管理。所以答案为B。

24. D

25. A

【解析】:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输出的移动变

换过程。所以,它不是描述数据的静态结构,而是描述数据流的传递和变换的动态结构。数据字

典主要用于定义数据和控制对象的细节,结构化英语、判定表和判定树主要用于描述加工规格说

明,它们都不是表达数据在系统内运动情况的工具。所以答案为A。

26. C

【解析】:在状态_迁移图中,由一个状态和一个事件所确定的下一个状态可能会有多个。

实际会迁移到哪个状态,是由更详细的内部状态和更详细的事件信息来决定的,此时在状态_迁

移图总可能需要使用加进判断框和处理框的记法。状态_迁移图的优点是,状态之间的关系能够

直观地捕抓到,能看到是否所有可能的状态迁移都已纳入图中,是否存在不必要的状态等。由于

状态_迁移图的单纯性,能够机械地分析许多情况,可能容易地建立分析工具。

27. A:② B:④ C:③ D:① E:② 28.A

三、简答题

1。 可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的

约束和限制。把它们清楚地列举出来。然后,分析员进行简要的需求分析,经过压缩的设计,探

索出若干种可供选择的主要解决方法。对每种解决方法都要研究它的可行性。可从以下三个方面

分析研究每种解决方法的可行性。

(1)技术可行性。要确定使用现有的技术能否实现系统,就要对要开发项目的功能、性

能、限制条件进行分析,确定现有的资源条件下,技术风险有多大,项目能否实现。这里的资源

包括已有的或可搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。

(2)经济可行性。进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是

否值得投资开发。对于大多数系统,一般衡量经济上是合算,应考虑一个最小利润值,经济可行

性研究范围较广,包括成本_效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市

场前景。

(3)社会可行性。要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运

动行方式在用户组织内是否得通,现有管理制度、人员素质、操作方式是否可行。

社会可行性所涉及的范围也比较广,它包括:合同、责任、侵权、用户组织的管理模式及

规范,其他一些技术人员常常不了解的陷阱等。

2。技术可行性一般要考虑的情况包括:

(1)开发的风险。在给出的限制范围内,能否设计出系统并实现必须的功能和性能。

(2)资源的有效性。可用于开发的人员是否存在问题。可用于建立系统的其他资源是否

具备。

(3)技术。相关技术的发展是否支持这个系统。

(4)开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。

3.典型的可行性研究有下列步骤:

(1)系统定义。为了定义好一个系统,需要分析人员对有关人员进行调查访问,仔细阅

读和分析有关的资料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和

约束,确保分析人员正在解决的问题确实是要解决的问题。

(2)研究正在运行的系统。正在运行的系统可能是一个人工操作的系统,也可能是旧的

计算机系统,要开发一个新的计算机系统来代替旧的系统。因此,现有繁荣系统是信息的重

要来源,要研究它的基本功能,存在什么问题,运行现有系统需要多少费用,对新系统有什

么新的功能要求,新系统运行时能否减少费用等等。

应收集,研究,分析现有系统的文档资料,实地考察现有系统,在考察的基础上,访问

有关人员,然后描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正

确。这个系统流程图反映了现有系统的基本功能和处理流程。

(3)导出新系统的逻辑模型。根据对现有系统的分析研究,逐渐明确了新系统的功能,

处理流程以及所受的约束,然后使用建立逻辑模型的工具--数据流图和数据字典来描述数据

在系统中的流动和处理情况。

(4)设计方案。分析人员建立了新系统的高层逻辑模型之后,要从技术角度出发,提出

实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。

根据技术可行性,经济可行性,社会可行性对各种方案进行评估,去掉行不通的解法,

就得到可行的解法。

(5)推荐可行的方案。根据上述可行性研究的结果,应该决定该项目是否值得去开发。

若值得开发,那么可行性的解决方案是什么,并且说明该方案可行的原因和理由。

(6)编写可行性研究报告。将上述可行性研究过程的结果写成相应的文档,即可行性研

究报告,提请用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实

验方案。

4。一个可行性研究报告的主要内容如下:

(1)引言。说明编写本文档的目的;项目的名称,背景;本文档用到的专门术语和参考

资料。

(2)可行性研究前提。说明开发项目的功能,性能和基本要求;达到的目标;各种限制

条件;可行性研究方法和解决可行性的主要因素。

(3)对现有系统的分析。说明现有系统的处理流程和数据流程;工作负荷;各项费用支

出;所需各类专业技术人员和数量;所需各种设备;现有系统存在什么问题。

(4)所建议系统的技术可行性分析。所建议系统的简要说明;处理流程和数据流程;与

现有系统比较的优越性;采用所建议系统对用户的影响;对各种设备,现有软件,开发环境,

运行环境的影响;对经费支出的影响;对技术可行性的评价。

(5)所建议系统的经济可行性分析。说明所建议系统的各种指出,各种效益,收益投资

比;投资回报周期。

(6)社会因素可行性分析。说明法律因素,对合同责任,侵犯专利权,侵犯版权等问题

的分析;说明用户使用可行性,是否满足用户行政管理工作制度,人员素质的要求。

(7)其他可供选择方案。逐一说明其他可供选择的方案,说明未被推荐的理由。

(8)结论意见。说明项目是否值得开发;还需什么条件才能开发;对项目目标有何变动

等。

5. 成本-效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。成本-效益

分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。效益

分有形效益和无形效益两种。有形效益可以用货币的时间价值,投资回收期,纯收入等指标

进行度量:无形效益主要从性质上,心理上进行衡量,很难直接进行量的比较。系统的经济

效益等于使用新的系统而增加的收入加上使用新的系统可以节省的运行经费。运行经费包括

操作人员数,工作时间,消耗的物资等。

下面主要介绍有形效益的分析。

(1)货币的时间价值。成本估算的目的是对项目投资。经过成本估算以后,得到项目开

发时需要的经费,该费用就是项目的投资。项目开发后,应取得相应的效益,有多少效益才

合算,这就要考虑货币的时间价值。通常用利率表示货币的时间价值。

设利率为i,现存入P元,n年后可得钱数为F元,则:

F=P(1+i)n

F就是P元在n年后的价值。反之,若n年后能收入F元,那么这些钱现在的价值是:

P=F/(1+i)n

(2)投资回报周期。通常用投资回收期衡量一个开发项目的价值。投资回收期就是使累

计经济效益等于最初的投资费用所需时间。投资回收期越短,就越快获得利润,则该项目就

越值得开发。

(3)纯收入。衡量项目价值的另一个经济指标是项目的纯收入,也就是在整个生存周期

之内累计经济效益(折合成现在价值)与投资差。这就相当与投资开发一个项目与把钱存入银

行中进行比较,看这两种方案的优劣。若纯收入为零,则项目的预期效益和在银行存款一样,

但是开发一个项目要冒风险,因此,从经济观点看,这个项目可能是不值得投资开发的。若

纯收入小于零,那么这个项目显然不值得投资开发。

6.项目开发计划的主要内容有:

(1)项目概述。说明项目的各项主要工作,说明软件的功能,性能;为完成项目应具备

的条件;拥护及合同承包者承担的工作,完成期限及其他条件限制;应交付的程序名称,所

使用的语言及存储形式;应交付的文档等。

(2)实施计划。说明任务的划分,各项任务的责任人;说明项目开发进度 ,按阶段应该

完成的任务,用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用

支出预算。

(3)人员组织及分工。说明开发该项目所需人员的类型,组成结构,数量等。

(4)交付期限。说明项目最后完工交付的日期。

(5)给出下一阶段(需求分析)的详细进度和成本。

第3章 可行性研究

在进行任何一项较大的工程时,首先都要进行可行性分析和研究。软件可行性研究的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。本章内容主要包括:可行性研究的任务、可行性研究的具体步骤、可行性研究报告的主要内容、成本–效益分析以及项目开发计划等。

3.1 基础知识

3.1.1 可行性研究的任务

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。把它们清楚的列举出来。然后,分析员进行简要的需求分析,抽象处该项目的逻辑结构,建立逻辑模型。

从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法。对每种解决方法都要研究它的可行性。

可从以下三个方面分析研究每种解决方法的可行性。

1. 技术可行性

对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。

2. 经济可行性

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。经济可行性研究范围较广,包括成本–效益分析公司经营长期策略、开发所需的成本和资源、潜在的市场前景。

3.社会可行性

要开发的项目是否存在任何侵权、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

社会可行性所涉及的范围也比较广,它包括:合同、责任、侵权、用户组织的管理模式及规范和其他一些技术人员常常不了解的陷阱等。

3.1.2 可行性研究的具体步骤

1. 确定项目规模和目标

分析员对有关人员进行调查访问,仔细阅读和分析有关的资料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问题。

2.研究正在运行的系统

正在运行的系统可能是一个人工操作的系统,也可能是旧的计算机系统,要开发一个新 存在什么问题,运行现有系统需要多少费用,对新系统有什么新的功能要求,新系统运行时 能否减少使用费用等等。

3.建立新系统的高层逻辑模型

根据对现有系统的分析研究,逐渐明确新系统的功能、处理流程以及所受的约束,然后使用建立逻辑模型的工具——数据流图和数据字典来描述数据在系统中的流动和处理情况。 注意,现在还不是软件需求分析阶段,不是完整、详细地描述,只是概括地描述高层的数据处理和流动。

4.导出和评价各种方案

分析员建立了新系统的高层逻辑模型之后,要从技术角度出发,提出实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。然后再根据技术可行性、经济可行性和社会可行性对各种方案进行评估,去掉行不通的解法,就得到了可行的解法。

5.推荐可行的方案

根据上述可行性研究的结果,同时要根据用户的具体情况,应该决定该项目是否值得去开发。若值得开发,那么可行的解决方案是什么,并且说明该方案可行的原因和理由。该项目是否值得开发的主要因素,从经济上看是否合算,这就要求分析员对推荐的可行方案进行成本–效益分析。

6.编写可行性研究报告

将上述可行性研究过程的结果写成相应的文档,即可行性研究报告,提醒用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。

3.1.3 可行性研究报告的主要内容

一个可行性研究报告的主要内容如下:

(1) 引言。

(2) 可行性研究前提。

(3) 对现有系统的分析。

(4) 所建议系统的技术可行性分析。

(5) 所建议系统的经济可行性分析。

(6) 社会因素可行性分析。

(7) 其他可供选择的方案。

(8) 结论意见。

3.1.4 成本–效益分析

成本–效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。成本–效益分析首先是估算将要开发的系统的开发成本,然后与可能取得效益进行比较和权衡。效益分有形效益和无形效益两种。

有形效益可以用货币的时间价值、投资回收期和纯收入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。运行费用包括操作人员人数、工作时 间和消耗的物资等.

3.1.5 项目开发计划

经过可行性研究后,就得到一个项目是否值得开发的结论. 接下来应制定项目开发计划. 项目开发计划是一个管理性文档, 它的主要内容如下:

(1) 项目概述: 说明项目的各项主要工作; 说明软件的功能, 性能;为完成项目应具备的条件; 用户及合同承包者承担的工作, 完成期限及其他条件限制; 应交付的程序名称, 所使用的语言及储存形式; 应交付的文档.

(2) 实施计划: 说明任务的划分, 各项任务的责任人; 说明项目开发进度, 按阶段应完成的任务, 用图表说明每项任务的开始时间和完成时间; 说明项目的预算, 各阶段的费用支出预算.

(3) 人员组织及分工: 说明开发该项目所需人员的类型, 组成结构和数量等.

(4) 交付期限: 说明项目最后完工交付的日期.

3.2 单元练习

3.2.1 填空题

1. __________的目的就是用最小的代价在尽可能短的时间内确定概软件项目是否能够开发, 是否值得去开发.

2. 可行性研究的目的不是去开发一个软件项目, 而是研究这个软件项目是否________, __________.

3. 可行性研究实质上是要进行一次简化, 压缩了的__________和__________过程, 要在较高层次上以较抽象的方式进行需求分析和设计过程.

4. 可行性研究需要从_________可行性, __________可行性, __________可行性三个方面分析研究每种解决方法的可行性.

5. 技术可行性是对要开发项目的__________, __________, __________进行分析, 确定在现有的资源条件下, 技术风险有多大, 项目是否能实现.

6. 技术可行性一般要考虑的情况包括: _________, __________, __________.

7. 技术可行性的研究包括_________, __________, __________, __________.

8. 社会可行性所涉及的范围包括__________, __________, _________, 用户组织的管理模式, 规范及其他一些技术人员常常不了解的陷阱等.

9. 典型的可行性研究有下列步骤: 确定项目规模和目标, _________, _________, 导出和评价各种方案, 推荐可行的方案和编写可行性研究报告.

10. 一个可行性研究报告的主要内容如下: 引言, 可行性研究的前提, 对现有系统的分析, ________, _________, __________, 其他可供选择方案, 结论意见.

11. 成本—效益分析首先是估算将要开发的系统的________, 然后与可能取得的效益进行_________.

12. 效益分有形效益和无形效益两种. 有形效益可以用_______, _______, _______等指标进行度量; 无形效益主要从性质上, 心理上进行衡量, 很难直接进行衡量, 很难进行量的比较.

13. _______就是使累计的经济效益等于最初的投资用所需要的时间. 项目的________是指在整个生存周期之内的累计经济效益(折合成现在的值)与投资之差.

14. 项目开发计划的主要内容有: 项目概述, ________, __________, 交付期限.

15. 纯收入是软件生存周期内两项值之差, 这两项是_________与_________.

16. 系统流程图用图形符号表示系统中的各个元素, 表达了系统中各种元素之间的_______.

17. 软件工程有两种效益, 它们是________和_________.

18. 可行性研究具体步骤的最后一步是__________.

19. 系统的经济效益等于________加上_________.

20. 成本—效益分析的目的是从_______评价开发一个新的软件项目是否可行.

21. 系统流程图是描述物理系统的传统工具, 它用________来表示系统中的各个元素.

22. 可行性研究中描述系统高层物理模型的工具是________.

23. 可行性研究实质上是进行一次简化, 压缩了的__________.

24. 可行性研究的第一个具体步骤是___________.

3.2.2 选择题

1. 研究开发资源的有效性是进行( )可行性研究的一方面.

A. 技术 B. 经济

C .社会 D. 操作

2. 在软件的可行性研究中, 可以从不同的角度对软件进行研究, 其中是从软件的功能可行性角度考虑的是( ).

A. 经济可行性 B. 技术可行性

C. 操作可行性 D. 法律可行性

3. 在遵循软件工程原则开发软件过程中, 计划阶段应该依次完成( ).

A. 软件计划, 需求分析, 系统定义

B. 系统定义, 软件计划, 需求分析

C. 需求分析, 概要设计, 软件计划

D. 软件计划, 需求分析, 概要设计

4. 技术可行性要解决( ).

A. 存在侵权否 B. 成本—效益问题

C. 运行方式可行 D. 技术风险问题

5. 在软件工程项目中, 不随参与人数的增加而使软件的生产率增加的主要问题是( ).

A. 工作阶段间的等待时间 B. 生产原型的复杂性

C. 参与人员所需的工作站数 D. 参与人员之间的通信困难

6. 制定软件计划的目的在于尽早对欲开发的软件进行合理估价, 软件计划的任务是

( ).

A. 组织与管理 B. 分析与估算

C. 设计与测试 D. 规划与调度

7. 可行性分析中, 系统流程图用于描述( ).

A. 当前运行系统 B.当前逻辑模型

C. 目标系统 D.新系统

8. 研究软硬件资源的有效性是进行( )研究的一方面。

A .技术可行性 B. 经济可行性

C.社会可行性 D. 操作可行性

9. 可行性研究要求进行的需求分析和设计应是( )。

A.详细的 B.全面的

C.简化的,压缩的 D.彻底的

10. 在很多项目组成的大型工程中,用顶点表示项目,有向边表示项目之间谁先开工的先后关系,这种用顶点表示活动的图称为AOV网格,其常用的一种储存结构是(A).

为规划整个工程的实现,通常要对上述的顶点进行(B)排序,据此可获得项目的(C)序列.但并不是所有图都能获得这样的系列,如(D)图就不能获得这种序列.因为在这种情况下,所体现的先后关系不是(E).

A:① 队列表 ② 连通表

③ 邻接表 ④ 路径表

B: ① 选择 ② 归并

③ 拓扑 ④ 置换

C: ① 全序 ② 综合

③ 拓扑 ④ 优化

D: ① 有回路的方向 ② 无回路的有向

③ 无回路的AVO网络 ④ 所有边的先后关系都是非自反的

E: ① 自反的 ② 对称的

③ 非自反的 ④ 非对称的

11. 数据流图是常用的进行软件需求分析的图形工具,其基本符号是( ).

A. 输入,输出,外部实体和加工

B. 变换,加工,数据流和储存

C. 加工,数据流,数据储存和外部实体

D. 变换,数据储存,加工和数据流

12. 判定表和判定树是数据流图中用以描述加工的工具,它常描述的对象是( ).

A. 逻辑判断 B. 层次分解

C. 操作条目 D. 组合组件

13. 系统流程图用于可行性分析中的( )的描述.

A. 当前运行系统 B. 当前逻辑模式

C. 目标系统 D. 新系统

14. 系统流程图是描述( )的工具.

A. 逻辑系统 B. 程序系统

C. 体系结构 D. 物理系统

15. 下列叙述中,( )是正确的.

① 软件系统中所有的信息流都可以认为是事务流

② 软件系统中所有的信息流都可以认为是变换流

③ 事务分析和变换分析的设计步骤是基本相似的

A. ① B. ②

C. ③ D. ②③

16. 决定大型程序模块组织的基本原则的两种交替设计策略为( )

A. 面向用户的原型化和面向程序员的原型化

B. 物理模型与逻辑模型

C. 数据字典和数据流

D. 数据分解和算法分解

17. 在程序的描述和分析中, 用以指名数据来源, 数据流向和数据处理的辅助图形是( ).

A. 瀑布模型图 B. 数据流图

C. 数据结构图 D. 业务图

18. 数据流图是用于表示软件模型的一种图示方法, 在下列可采用的绘图方法中, ( )是常采用的.

① 自顶向下

② 自底向上

③ 分层绘制

④ 逐步求精

A. 全是 B. ①③④

C. ②③④ D. ①④

19. 结构化分析(SA)方法将欲开发的软件系统分解为若干基本的加工, 并对加工进行说明,下述是常用的说明工具, 其中便于对加工出现的组合条件的说明工具的是( ).

① 结构化语言

② 判定树

③ 判定表

A. ②③ B. ①②③

C. ①③ D. ①②

20. 加工是对数据流图中不能在分解的基本加工的精确说明, 下述( )是加工的最核心.

A. 加工顺序 B. 加工逻辑

C. 执行频率 D. 激发条件

21. 软件定义期问题定义阶段涉及的人员有( ).

A. 用户, 使用部门负责人

B. 软件开发人员, 用户, 使用部门负责人

C. 系统分析员, 软件开发人员

D. 系统分析员, 软件开发人员, 用户与使用部门负责人

22. 系统定义明确之后, 应对系统的可行性进行研究. 可行性研究包括( ).

A. 软件环境可行性, 技术可行性, 经济可行性, 社会可行性

B. 经济可行性,技术可行性,社会可行性

C.经济可行性,社会可行性,系统可行性

D.经济可行性,实用性,社会可行性

23. When drawing multilevel data flow chart of top-down, the balance between parent chart and son chart must be taken into account, and to pass judgment for the balance of the charts is regularly maintained by ( )?

A. Output data B. Data dictionary

C. processing number D. Input data

24. 对每一合理的方案分析员都应该准备( )资料.

A. 系统流程

B. 组成系统的物理元素清单, 成本—效益分析

C. 实现这个系统的进度计划

D. 以上全部正确

25. 再结构化分析方法中, 用以表达系统内数据的运动情况的工具有( )

A.数据流图

B. 数据字典

C. 结构化语言

D. 判定表与判定树

26. 在结构化分析方法中, 用状态—迁移图表表达系统和对象的行为. 在状态—迁移图中, 由一个状态和一个事件所决定的下一个状态可能有( ).

A. 一个 B. 两个

C. 多个 D. 不确定

27. 在软件开发过程中常用图作为描述工具DFD就是面向(A )分析方法的描述工具. 在一套分层DFD中, 如果某一张图中有N个加工(process ), 则这张图允许有(B )张子图. 在一张DFD图中, 任意两个加工之间(C ). 在划分层DFD时, 应保持(D )时间的平衡. DFD中从系统的输入流到系统的输出流打的一连串连续变换形成一种信息流, 这种信息流可分为(E) 两大类.

A. ① 数据结构 ② 数据流

③ 对象 ④ 构件(component)

B. ① 0 ② 1

③ 1-N ④ 0-N

C. ① 有且仅有一条数据流

② 至少有一条数据流

③ 可以有0或多条名字互不相同的数据流

④ 可以有0和多条数据流, 但允许其中有若干条名字相同的数据流

D. ① 父图和子图 ② 同一父图的所有子图

③ 不同父图的所有子图 ④ 同一子图的所有直接父图

E. ① 控制流和变换流 ② 变换流和事务流

③ 事务流和事件流 ④ 事件流和控制流

28. 原型化方法时一类动态定义需求的方法, 下列叙述中, ( )不具有原型化方法的特征.

A. 提供严格定义的文档 B. 加强用户参与和决策

C. 简化项目管理 D. 加快需求的确定

3.2.3 简答题

1. 可行性研究的任务有哪些?

2. 研究项目的技术可行性一般要考虑的情况有哪些?

3. 可行性研究包括哪些步骤?

4. 可行性研究报告有哪些主要内容?

5. 成本—效益分析的目的是什么? 可用哪些指标进行度量?

6. 项目开发计划有哪些内容?

3.3 参考答案

一. 填空题

1. 软件可行性研究

2. 值得去开发, 其中的问题能否解决

3. 需求分析, 设计

4. 技术, 经济, 社会

5. 功能, 性能, 限制条件

6. 开发的风险, 资源的有效性, 技术

7. 成本—效益分析, 公司经营长期策略, 开发所需的成本和资源, 潜在的市场前景

8. 合同, 责任, 侵权

9. 研究正在运行的系统, 建立新系统的高层逻辑模型

10. 所建议系统的技术可行性分析, 所建议系统的经济可行性分析, 社会因素可行性分析

11. 开发成本, 比较和权衡

12. 货币的时间价值, 投资回收期, 存收入

13. 投资回收期, 存收入

14. 实施计划, 人员组织及分工

15. 经济效益, 投资

16. 信息流动

17. 无形效益, 有形效益

18. 编写可行性报告

19. 因使用新的系统而增加的收入, 使用新的系统而可以节省的运行费用

20. 经济角度

21. 图形符号

22. 系统流程图

23. 需求分析和设计

24.确定项目的规模和目

二、选择题

1. A

2. B

【解析】:经济可行性是从开发费用和软件回报的角度来分析开发该软件系统是否可行。技术可行性是从软件实现的功能、用户要求的软件性能、是否有技术难题等方面等考虑开发该软件的可行性问题。操作可行性判断系统的操作方式在该用户组织内是否可行,法律可行性对方在考虑开发的软件系统可能会涉及的任何侵犯、妨碍、责任等问题做出决定。所以答案为B。

3. B 4. D

5. D

【解析】:在软件开发中,开发人员的交流似乎非常主要的,而一个开发人员进入一个新的软件系统做开发,需要相当长的一个阶段以适应该软件的开发,这主要是由于新的人员需要一定时间的培训以熟悉该软件系统的开发状况及该软件的需求分析、定义和相关已经生成的文档,以便在软件开发中与老开发人员的交流和通信,一推动软件开发前进。所以答案为D。

6. D

【解析】:软件的计划主要是根据软件开发的要求、软件系统的规模等,对软件开发的各种资源(包括软硬见资源及开发人员)进行合理的规划,以便在开发过程中得到合理的调度,从而使软件开发最充分地利用资源,以在最短的时间内取得最大的经济效益;软件工程经济学的任务是对软件开发的成本、效益等进行分析和估算;软件工程管理学的任务是有效组织和管理软件开发,软件工程开发技术的任务之一是设计和测试软件系统。所以答案是D。

7. A 8. A 9. C

10. A:③ B:③ C:③ D:① E:③

11. C

【解析】:在数据流图中,加工与变换在意义上是等价的,在数据流图中,箭头表示数据的路径和流向。数据流由一组固定成分的数据组成,通常每个数据流必须有一个适合的名字;数据流图是对数据进行加工和交换的,所以对于一个数据流图应该有数据源和数据池(即数据的最终目的地),我们把数据源和数据池统称为外部实体;同时把在加工的某一个环节,将待加工的数据储放在一定的场所,把它叫做数据储存。所以答案为C。

12. D

【解析】:在数据流图的描述中,通常结构化语言用来做逻辑判断的描述,但在数据流的描述中 常常遇到组合条件的判定,这时利用结构化语言的IF-THEN—ELSE就比较困难,即使勉强用结构化语言进行描述,对问题的描述也不能做到清晰医理解。这时,应用判定表和判定树来描述就特别方便,同时层次分解和操作条目也常常很简单地用结构化语言进行描述。所以答案为D。

13. A 14. D

15. C

【解析】:在面向数据流的系统设计中,区分事务流和变换流是非常重要的,变换流是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通路变换中心,

经加工处理后再沿输出通路变换成外部形式离开软件系统,而当信息沿输入通路到达一个处理,这个处理根据输入数据的类型从若干个动作序列中选择一个来执行,这个类数据流归为特殊的一类,称为事务流。在一个事务流中,事务中心接受数据,分析每个事务以确定它的类型,根据事务类型选取一条活动通路,所以变换流和事务流是根本不同的,需要区分开,

但从数据的角度来说,他们有很多类似之处,所以事务分析和变换分析的设计步骤是基本相似的,因此答案为C。

16. D

【解析】:数据流图和数据字典是在需求分析阶段常用的工具;面向用户的原型化和面向程序员的原型化是开发中常用的设计原则;物理模型和逻辑模型是在软件需求分析中所考虑的两类模型,通常在逻辑模型生成之前,可以先分析物理模型,再生成逻辑模型。软件系统的模块化组织是在系统设计阶段所要解决的,在概要设计阶段根据数据流来设计整个软件系统的模块化结构,在详细设计阶段,根据各个模块的具体要求(即算法实现等)对模块进行更细的划分,因此书记分解和算法分解是软件系统的模块化组织中两个基本的原则,所以答案为D。

17. B

【解析】:瀑布模型图是软件开发生命周期的一种描述;数据结构图对数据进行了静态的描述,并没有涉及到数据的流向和处理;业务流是一个软件工程的名词,并不是数据的辅助图形,数据流图是描述数据的加工或变换、数据流向、数据的存储动态图,所以答案为B。

18. B

【解析】:在用数据流图对软件模型的描述工程中,一般遵循的原则是自顶向下、分层绘制、逐步求精;通常情况下软件系统的模型比较复杂,用数据流图自底向上来描述是不符合逻辑的,同时也可以说明原型化方法为什么在软件开发中得到了广泛的应用。所以答案为B。

19. A

【解析】:结构化语言可以用来描述落后判断,如:IF condition THEN process1 ELSE process2 等,但用它来描述加工中出现的组合条件显得有点勉强,而判定表和判定树是专门用来描述在软件需求分析中出现的条件组合的,所以答案为A。

20. B

【解析】:在数据流图中,每一个加工筐中只简单地写上加工名,这显然不能表达加工的全部内容。加工逻辑的说明是非常重要的,而且随着自顶向下逐层细化,功能越来越具体,加工逻辑的说明也要越来越越细;加工逻辑说明的根据就是常说的结构化英语、判定表、判定树等,加工逻辑通常描述加工的逻辑条件或组合条件、加工的方式、加工的顺序等,可见加工的顺序、加工的激发条件、加工的激发条件、加工的执行频率等仅仅是加工逻辑描述的一部分,所以答案为B。

21. D 22.B

23. B

【解析】:在分层数据流图中,子图是对父图的某个加工进一步详细描述,因而父图中某个加工的输入输出数据流应该同子图的输入输出相同,分层数据流图的这个特点称为平衡。父图和子图的平衡是分层数据流图的重要性质,因为只有平衡的分层图才是可读可理解的,父图与子图的不平衡,将会使用户和分析员都无法理解一套分层数据流图。

如果子图的输入和输出数据流比父图中相应加工的输入输出表达得更详细,实际上就是对加工和数据同时进行分解。在自顶向下同时将加工和数据流作逐层分解中,这是很自然的方式,在这些情况下,要判断两张图是否平衡,需要借助于数据字典,而编号为了便于数据流图的管理。所以答案为B。

24. D

25. A

【解析】:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输出的移动变

换过程。所以,它不是描述数据的静态结构,而是描述数据流的传递和变换的动态结构。数据字

典主要用于定义数据和控制对象的细节,结构化英语、判定表和判定树主要用于描述加工规格说

明,它们都不是表达数据在系统内运动情况的工具。所以答案为A。

26. C

【解析】:在状态_迁移图中,由一个状态和一个事件所确定的下一个状态可能会有多个。

实际会迁移到哪个状态,是由更详细的内部状态和更详细的事件信息来决定的,此时在状态_迁

移图总可能需要使用加进判断框和处理框的记法。状态_迁移图的优点是,状态之间的关系能够

直观地捕抓到,能看到是否所有可能的状态迁移都已纳入图中,是否存在不必要的状态等。由于

状态_迁移图的单纯性,能够机械地分析许多情况,可能容易地建立分析工具。

27. A:② B:④ C:③ D:① E:② 28.A

三、简答题

1。 可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的

约束和限制。把它们清楚地列举出来。然后,分析员进行简要的需求分析,经过压缩的设计,探

索出若干种可供选择的主要解决方法。对每种解决方法都要研究它的可行性。可从以下三个方面

分析研究每种解决方法的可行性。

(1)技术可行性。要确定使用现有的技术能否实现系统,就要对要开发项目的功能、性

能、限制条件进行分析,确定现有的资源条件下,技术风险有多大,项目能否实现。这里的资源

包括已有的或可搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。

(2)经济可行性。进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是

否值得投资开发。对于大多数系统,一般衡量经济上是合算,应考虑一个最小利润值,经济可行

性研究范围较广,包括成本_效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市

场前景。

(3)社会可行性。要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运

动行方式在用户组织内是否得通,现有管理制度、人员素质、操作方式是否可行。

社会可行性所涉及的范围也比较广,它包括:合同、责任、侵权、用户组织的管理模式及

规范,其他一些技术人员常常不了解的陷阱等。

2。技术可行性一般要考虑的情况包括:

(1)开发的风险。在给出的限制范围内,能否设计出系统并实现必须的功能和性能。

(2)资源的有效性。可用于开发的人员是否存在问题。可用于建立系统的其他资源是否

具备。

(3)技术。相关技术的发展是否支持这个系统。

(4)开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。

3.典型的可行性研究有下列步骤:

(1)系统定义。为了定义好一个系统,需要分析人员对有关人员进行调查访问,仔细阅

读和分析有关的资料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和

约束,确保分析人员正在解决的问题确实是要解决的问题。

(2)研究正在运行的系统。正在运行的系统可能是一个人工操作的系统,也可能是旧的

计算机系统,要开发一个新的计算机系统来代替旧的系统。因此,现有繁荣系统是信息的重

要来源,要研究它的基本功能,存在什么问题,运行现有系统需要多少费用,对新系统有什

么新的功能要求,新系统运行时能否减少费用等等。

应收集,研究,分析现有系统的文档资料,实地考察现有系统,在考察的基础上,访问

有关人员,然后描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正

确。这个系统流程图反映了现有系统的基本功能和处理流程。

(3)导出新系统的逻辑模型。根据对现有系统的分析研究,逐渐明确了新系统的功能,

处理流程以及所受的约束,然后使用建立逻辑模型的工具--数据流图和数据字典来描述数据

在系统中的流动和处理情况。

(4)设计方案。分析人员建立了新系统的高层逻辑模型之后,要从技术角度出发,提出

实现高层逻辑模型的不同方案,即导出若干较高层次的物理解法。

根据技术可行性,经济可行性,社会可行性对各种方案进行评估,去掉行不通的解法,

就得到可行的解法。

(5)推荐可行的方案。根据上述可行性研究的结果,应该决定该项目是否值得去开发。

若值得开发,那么可行性的解决方案是什么,并且说明该方案可行的原因和理由。

(6)编写可行性研究报告。将上述可行性研究过程的结果写成相应的文档,即可行性研

究报告,提请用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实

验方案。

4。一个可行性研究报告的主要内容如下:

(1)引言。说明编写本文档的目的;项目的名称,背景;本文档用到的专门术语和参考

资料。

(2)可行性研究前提。说明开发项目的功能,性能和基本要求;达到的目标;各种限制

条件;可行性研究方法和解决可行性的主要因素。

(3)对现有系统的分析。说明现有系统的处理流程和数据流程;工作负荷;各项费用支

出;所需各类专业技术人员和数量;所需各种设备;现有系统存在什么问题。

(4)所建议系统的技术可行性分析。所建议系统的简要说明;处理流程和数据流程;与

现有系统比较的优越性;采用所建议系统对用户的影响;对各种设备,现有软件,开发环境,

运行环境的影响;对经费支出的影响;对技术可行性的评价。

(5)所建议系统的经济可行性分析。说明所建议系统的各种指出,各种效益,收益投资

比;投资回报周期。

(6)社会因素可行性分析。说明法律因素,对合同责任,侵犯专利权,侵犯版权等问题

的分析;说明用户使用可行性,是否满足用户行政管理工作制度,人员素质的要求。

(7)其他可供选择方案。逐一说明其他可供选择的方案,说明未被推荐的理由。

(8)结论意见。说明项目是否值得开发;还需什么条件才能开发;对项目目标有何变动

等。

5. 成本-效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。成本-效益

分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。效益

分有形效益和无形效益两种。有形效益可以用货币的时间价值,投资回收期,纯收入等指标

进行度量:无形效益主要从性质上,心理上进行衡量,很难直接进行量的比较。系统的经济

效益等于使用新的系统而增加的收入加上使用新的系统可以节省的运行经费。运行经费包括

操作人员数,工作时间,消耗的物资等。

下面主要介绍有形效益的分析。

(1)货币的时间价值。成本估算的目的是对项目投资。经过成本估算以后,得到项目开

发时需要的经费,该费用就是项目的投资。项目开发后,应取得相应的效益,有多少效益才

合算,这就要考虑货币的时间价值。通常用利率表示货币的时间价值。

设利率为i,现存入P元,n年后可得钱数为F元,则:

F=P(1+i)n

F就是P元在n年后的价值。反之,若n年后能收入F元,那么这些钱现在的价值是:

P=F/(1+i)n

(2)投资回报周期。通常用投资回收期衡量一个开发项目的价值。投资回收期就是使累

计经济效益等于最初的投资费用所需时间。投资回收期越短,就越快获得利润,则该项目就

越值得开发。

(3)纯收入。衡量项目价值的另一个经济指标是项目的纯收入,也就是在整个生存周期

之内累计经济效益(折合成现在价值)与投资差。这就相当与投资开发一个项目与把钱存入银

行中进行比较,看这两种方案的优劣。若纯收入为零,则项目的预期效益和在银行存款一样,

但是开发一个项目要冒风险,因此,从经济观点看,这个项目可能是不值得投资开发的。若

纯收入小于零,那么这个项目显然不值得投资开发。

6.项目开发计划的主要内容有:

(1)项目概述。说明项目的各项主要工作,说明软件的功能,性能;为完成项目应具备

的条件;拥护及合同承包者承担的工作,完成期限及其他条件限制;应交付的程序名称,所

使用的语言及存储形式;应交付的文档等。

(2)实施计划。说明任务的划分,各项任务的责任人;说明项目开发进度 ,按阶段应该

完成的任务,用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用

支出预算。

(3)人员组织及分工。说明开发该项目所需人员的类型,组成结构,数量等。

(4)交付期限。说明项目最后完工交付的日期。

(5)给出下一阶段(需求分析)的详细进度和成本。


相关内容

  • 可行性研究与不可行性研究
  • 可行性研究与不可行性研究① 白凤山荆广珠 (荃础部) 提要在分析可行性研究的理论和实践中存在问题的基拙上,利用数学中的充分条件.必要 条件及充分必要条件等概念及它们之间的推理关系去抽象可行性研究的内容,给出"不可行性研 究"的定义及其论证方法,以使项目的论证更准确.更可沐. 关键 ...

  • 全国科研院所名录
  • 序号名称 1金川有色金属公司劳动卫生职业病研究所2上海机电工程科技情报研究所3华北石油管理局采油工艺研究所4华北油田井下工艺研究所 5吉林省油田管理局钻采工艺研究所 6大庆石油管理局采油技术服务公司工艺研究所7新疆石油管理局油田工艺研究所8胜利油田设计规划研究所 9四川石油管理局钻采工艺研究所 10 ...

  • 一.小学语文学科
  • 小学各学科科研课题题目参考 (一)校本教研 1.语文素养与教学艺术同步提高的实践研究 2.语文教研组活动新模式的构建与运作 3.语文校本课程的实施研究 4.建立校内语文教学协作组的研究 5.建立校内骨干教师教学沙龙的实践 6.提高备课实效性的研究 7.备课质量评价的新探索 8.发挥教师团队合作精神的 ...

  • 小学语文学科_3
  • (一)新课程实施 1.案例法在语文教学中运用 2.课程意识的全面体现和落实 3.体现新课程理念的新颖作业设计 4.防止低年级识字回生的研究 5.扩大阅读量与增加学习负担的辩证关系 6.综合性与学科性贯通的综合研究 7.基础落实与创新意识培养的研究 8.发挥教师团队合作精神的研究 9.小学语文课堂评价 ...

  • 关于湖南省教育科学规划课题申报
  • 转发<关于湖南省教育科学"十二五"规划 2011年度课题申报工作的通知>的通知 院属各相关部门: 湖南省教育科学"十二五"规划2011年度课题申报工作已开始启动,现将<关于湖南省教育科学"十二五"规划 年度课题申报工作的通 ...

  • 小学教育论文选题
  • 小学教育专业(本科)毕业论文选题参考一.教育学和心理学类1.教育学类(1)学前教育与初等教育衔接问题研究(2)义务教育·贫困地区普及九年义务教育的难点及对策的研究·贫困地区普及九年义务教育的基本思路.办学模式的研究·小学生辍学原因分析及对策研究·延长义务教育年限问题研究(3)教师教育·教师的学历水平 ...

  • 小微课题选题指南
  • 日照市教育学会2013年度小(微)课题选题指南 <指南>说明: 1.问题即课题,行动即研究,成长即成果.本<指南>为课题立项工作服务,促进形成一批具有特色的高质量的课题. 2.课题指南项目不等同于课题名称,应用和落实的过程应是进一步分解和细化的过程. 3.课题指南仅为学校和广 ...

  • 微型课题选题指南
  • 微型课题选题指南 一.德育研究 1.高中主题教育活动系列建设研究 2.青少年自我表现心理及教育实践研究 3.中学生养成教育的内容和形式研究 4.贴近中学生学习和生活实际的德育方法创新研究 5.运用综合素质评价提高中学生道德品质的实践研究 6.中学生诚信教育实践研究 7.青少年法制教育与预防犯罪问题研 ...

  • 建设项目可行性研究存在的问题及对策
  • 本科学年论文 论文题目: 建设项目可行性研究存在的问题及对策 学生姓名: 李鑫 学 号: 0904100226 专 业: 统计学 班 级: 统计0902 指导教师: 张莹 完成日期: 2011 年 8 月 25 日 目 录 序言 „„„„„„„„„„„„„„„„„„„„„„„„„„„ 1 一.绪论„ ...

  • 可行性研究报告的撰写
  • 可行性研究报告编制 可行性研究报告编制 ....................................................................................................................... 1 什么是可研报告? ...