第2章 软件可行性研究与项目开发计划

合集下载

软件工程与实践第三版课件第2章 可行性分析及开发计划

软件工程与实践第三版课件第2章 可行性分析及开发计划

2.2 可行性分析与评审
2.2.2 可行性分析的任务及内容
可行性分析主要任务主要是:决定软件项目“做还是不 做(是否可行)”、及完成对可行项目的“初步方案”。
行性分析主要内容是对问题的定义,主要经过调研与初 步概要分析,初步确定软件项目的规模和目标,明确项目的 约束和限制,并导出软件系统的逻辑模型。然后从此模型出 发,确定若干可供选择的主要软件系统初步研发方案。
客户服务的能力
可能只发挥有限的
作用
以往过程影响为客 户提供高价值服务 能力;从旧方式转变 到新模式;有先行 优势
只看作对过去或目 前过程修改可获得 的收益是有限的; 过程重组可能受到 内外阻力
提高竞争能力;优 不良合作方式可能
化组织关系,保持 难提供差异化竞争
灵活快速反应能力, 力;若内部系统不完
满足个性化用户需 善将阻碍外部学习
技术可行性(Technical Feasibility)是可行性分析中
最关可键行和性最分难析决的断主的要问内题容。主是要对分问析题在的特定定义条,件主下要,初技术步资 确源定、软能件力项、目方的法规等模方和面目的可标用,性问及题其定用义于后解,决要软导件出问软题的件可 系择能同确统的性初定首的主技和 步 性先逻要术调 给现需辑系可研 技实要模统行分 术性进型方性析 可。行。案分论 行问初然。析证性题步后的类分定的内从似析义容概与过,此软包论程要模件括证与分型系:增系析出统对加统,发目新很技确,标软多术定确、件困可软定功功难行件若能能。性项干和的评目性可具估能的体供过的指程规选不标,模、和 目运标行,环明境确及项条目件的、约响束应和时间限、制存。储速度及容量、安全性和可
1.确定软件或项目名称 软件名称用于准确描述软件问题的内涵、主要用途及规 模的项目名称,应与所开发项目内容一致,Web图书销售系统. 2. 软件项目提出的背景 软件项目提出的背景和具体现状及发展趋势包括:软件 所服务的行业属性、主要业务及特征、目前存在的主要问 题、需要改进的具体方面及要求、本项目开发所能够带来 的经济/社会效益和应用前景等。

软件工程第二章(可行性分析)

软件工程第二章(可行性分析)

(5) 交付的产品清单。
项目开发计划书供软件开发单位使用。
小结:
1、项目的问题定义、可行性分析和项目计划是总体 规划阶段的工作,重点是项目的可行性分析。
2、可行性分析主要从技术可行性、经济可行性和操 作可行性三方面来分析该项目是否值得开发。
3、可行性分析最后形成的成果是可行性分析报告。

项目的筹备、规划与准备是软件项目实施的前
期工作,它由两个重要的工作阶段构成:一是
项目规划及可行性分析;二是项目需求分析。

一、可行性分析的概念

可行性分析就是解决一个项目是否有可行解以及是
否值得去解的问题。该阶段的主要任务就是用最小
的代价在尽可能短的时间内确定问题是否能够得到 解决。
二、可行性分析的目标和内容
等。
(6) 技术可行性(技术风险评价):技术实力分析、已有的 工作及技术基础和设备条件等等。 (7) 法律可行性分析结果描述。 (8) 可用性评价:汇报用户的工作制度和人员的素质,确 定人机交互功能界面需求。
(9) 其他项目相关的问题:如可能会发生的变更等等。
可行性研究报告由系统分析员撰写,交由项目负责人审查, 再上报给上级主管审阅。 在可行性研究报告中,应当明确项目“可行还是不可行”, 如果认为可行,接下来还要制定项目开发计划书。


识别用户要求 评价系统的可行性 进行经济分析和技术分析 把功能分配给硬件、软件、人、数据库和其它系 统元素 建立成本和进度限制 生成系统规格说明,形成所有后续工程的基础
三、 可行性分析的主要任务
具体地说,分析员应从下面三个方面对项目做出可行性分 析: (1)技术可行性:使用现有的技术能实现这个系统吗? (2)经济可行性:这个系统的经济效益能超过它的开发成本 吗?(详细在后面介绍成本/效益分析) (3)操作可行性:系统的操作方式在该用户组织内行得通吗?

《软件工程与项目管理》第2章_软件可行性分析与项目开发计划

《软件工程与项目管理》第2章_软件可行性分析与项目开发计划

2.3.2 可行性分析
按照可行性分析的步骤,开发小组中的系统 分析员与学校负责学生学籍管理的教务部分进 行了多轮讨论,了解了开发背景,明确了待开 发的软件的功能,对软件的成本/效益作了分 析,最终,形成了以下的可行性分析报告(见 教材)。
2.3.3 项目开发计划
软件可行性分析报告被提交给相关领导讨论 通过之后,在此基础上,项目经理进一步明确 了软件的功能范围、开发资源需求,制订项目 开发进度,并编写项目开发计划(见教材)。
第2章 软件可行性分析与项目开发 计划
• 掌握:软件可行性分析的方法、项目开发计划 掌握: 的制订、软件可行性分析报告及项目开发计划 的规范化编写。
2.1 软件可行性分析
• 可行性分析的目的是用最小的代价在尽可能短 的时间内确定问题是否值得去解决,以及问题 是否能够被解决。 • 值得注意的是,可行性分析的目的并不是研究 如何解决问题,而是研究问题是否值得去解。 • 经过可行性分析以后,如果认为问题值得去解, 则制订项目开发计划,进入实际开发过程;否 则直接终止项目。
表2-1 效益折算计算表
年份 1 2 3 4 将来值(万元) 45 000 45 000 45 000 45 000 (1+i)n 1.1 1.21 1.331 1.4641 现在值(万元) 40 909.09 37 190.08 33 809.17 30 735.61
3. 社会可行性
社会可行性主要是指软件生产需要考虑的社会因素, 具体来说是指市场、政策与法律方面的考虑。 • 在市场方面,考虑软件产品所面对的市场的性质是成 熟的、未成熟的或即将消亡的。 • 在政策方面,考虑的是国家宏观的经济政策对软件开 发及销售的影响。在法律方面,应该考虑软件的开发 是否会侵犯他人、集体或国家的利益,是否会违反国 家的法律并可能由此承担相应的法律责任等,例如, 某用户希望开发一款能攻击其竞争对手的数据库的软 件,这显然侵犯了他人的利益,因此属于不可行的开 发项目。

《软件工程学》第2章 可行性研究-答案

《软件工程学》第2章 可行性研究-答案

2.1 可行性研究的目标与任务1.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出( B )的回答。

A.确定B.行或不行C.正确D.无二义2.技术可行性是可行性研究的关键,其主要内容一般不包括( C )。

A.风险分析B.资源分析C.人员分析D.技术分析3.可行性研究的任务是从技术、经济、操作、社会等4个方面研究。

4.可行性研究完成后最终生成的文档是《可行性研究报告》。

(√ )5.软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

(√ )2.2 可行性研究过程1.简述可行性研究的过程。

答:(1)复查并确定系统规模和目标(2)研究目前正在使用的系统(3)建立新系统的高层逻辑模型(4)导出和评价各种方案(5)推荐可行性方案(6)草拟初步开发计划(7)编写可行性研究报告提交复查2.3 可行性研究工具1.描绘物理系统的传统工具是系统流程图。

2.画出数据流图目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。

某医院打算开发一个以计算机为中心的患者监护系统,请分层次的画出描述本系统功能的数据流图。

医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志。

当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息。

此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。

答:从问题陈述容易看出,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。

进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。

从问题陈述容易看出,系统的数据终点是接收警告信息和病情报告的护士。

系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。

软件工程各章名词解释

软件工程各章名词解释

名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。

软件工程导论 第2章 可行性分析

软件工程导论 第2章 可行性分析
(1) 技术可行性
(2) 经济可行性 (3) 操作可行性 (4)法律可行性等
复习回顾
1、可行性研究的目的是什么? 用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、可行性研究的任务主要是什么? 了解客户的要求 及现实环境
分析技术、经济和社会因素可行性 编写可行性研究报告 制定初步项目开发计划


按照系统的层次结构进行逐步分解,并以分层的
数据流图反映这种结构关系,能清楚地表达和容
易理解整个系统。
首先画“顶层DFD”
描绘系统的整体逻辑概貌
外部实体 软件 系统
……
外部实体
……
外部实体
外部实体
顶层流图仅包含一个加工,它代表被开发系统。它的输入流
是该系统的输入数据,输出流是系统所输出数据。
其次画中间层流图:对上层父图的处理的细化,形成子图。
没有数据字典数据流图就不严格,没有数据流图
数据字典也难于发挥作用。
数据字典的内容
一般说来,数据字典应该由对下列4类元素 的定义组成: (1) 数据流 (2) 数据流分量(即数据元素)
(3) 数据存储
(4) 处理
2.5.2定义数据的方法
符号 = + [ ]与 | { } m
被定义为
+订货数量+目前价格+主要供应者
+次要供应者
位置:输出到打印机
•例如:
名字:零件编号 别名: 描述:唯一地标识库存清单中 一个特定零件的关键域 定义:零件编号=8{字符}8 位置:订货报表 订货信息 库存清单 事务
名字:订货数量 别名: 描述:某个零件一次订货的数量 定义:订货数量=1{数字}5
位置:订货报表

软件工程:理论与实践(第2版)

软件工程:理论与实践(第2版)

读书笔记
如果是初学者,不建议阅读此书,干巴巴得容易让人丧失兴趣,建议阅读《构建之法》。
目录分析
第1章软件与软 件工程
第2章软件过程
1.1软件 1.2软件危机 1.3软件工程 1.4软件开发方法 1.5软件工程工具 1.6 “小型网上书店系统”案例介绍 习题
2.1软件过程概述 2.2软件生命周期 2.3软件开发模型 2.4软件开发模型实例 习题
软件工程:理论与实践(第2 版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
第版
内容
第章
面向对象
过程
实例
面向对象
软件
软件
工程 软件
案例
理论
习题
过程
系统
实验
ห้องสมุดไป่ตู้
书店
工程
内容摘要
本书按照典型的软件开发过程来组织内容,旨在培养读者具备软件工程思想及实际软件开发的能力。本书共 分为12章,内容涉及软件与软件工程、软件过程、可行性研究与项目开发计划、结构化分析、结构化设计、面向 对象方法与UML、面向对象分析、软件体系结构与设计模式、面向对象设计、软件实现、软件测试、软件维护与 软件工程管理。本书理论与实践相结合,内容翔实,可操作性强。本书是高等院校计算机科学、软件工程及相关 专业“软件工程”课程的理想教材。
第6部分软件维护与软件工程管 理
12.1软件维护 12.2软件估算 12.3软件开发进度计划 12.4软件开发人员组织 12.5软件开发风险管理 12.6软件质量保证 12.7软件配置管理概述 12.8软件工程标准与软件文档 12.9软件过程能力成熟度模型

《软件工程》第2章_软件可行性研究

《软件工程》第2章_软件可行性研究
为了使读者具体了解怎样编写可行性研究报告技术文档, 下面对可行性研究报告的内容要求及写法作一下简要说明。
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.4 小结
可行性研究是抽象和简化了的系统分析和设计的全 过程,它的目标是用最小代价尽快确定问题是否能够解 决,以避免盲目投资带来的巨大浪费。可行性研究是从 技术上、经济上、使用上、法律上分析应解决的问题是 否有可行的解,从而确定该软件是否有可行的解。
上述可行性研究的步骤只是一个经过长期实践总结出来的 框架,在实际的使用过程中,它不是固定的,根据项目的性质、 特点以及开发团队对业务领域的熟悉程度会有些变化。
2.3 可行性研究报告
可行性研究可以归档为一个单独的报告,提供给上级管理 部门,又可以包括在“系统规格说明”的附录中,虽然可行性 报告的形式可以有多种,但最重要的内容应当有:
第二章 软件可行性研究
【本章引言】
在计算机的软件项目开发过程中,只要资源和时间 不加以限制,所有的项目都是可行的。然而,由于资源 缺乏和交付时间限制的困扰,使得基于计算机系统的开 发变得比较困难。因此,尽早对软件项目的可行性做出 细致而谨慎的评估是十分必要的。如果在定义阶段及早 发现将来可能在开发过程中遇到的问题及早做出决定, 可以避免大量的人力、财力、时间上的浪费。
本章简要的介绍了有关可行性研究的任务、步骤, 以及在撰写可行性研究报告时有哪些要求。
2.5 习题
1. 为什么要对计算机软件项目进行可行性研
究?
2. 可行性研究主要研究哪些问题?试说明之。 3. 可行性研究的任务是什么? 4. 可行性研究的步骤? 5. 撰写可行性研究报告的方法?

软件工程实用教程第2章 软件可行性与项目计划

软件工程实用教程第2章  软件可行性与项目计划
ห้องสมุดไป่ตู้
其次可以考虑操作方面的可行性。分析员应该根据 使用部门处理事务的原则和习惯检查技术上可行的 那些方案,去掉其中从操作方式或操作过程的角度 看用户不能接受的方案。
接下来应该考虑经济方面的可行性。分析员应该估 计余下的每个可能的系统的开发成本和运行费用, 并且估计相对于现有的系统而言这个系统可以节省 的开支或可以增加的收入。在这些估计数字的基础 上,对每个可能的系统进行成本/效益分析。一般 说来,只有投资预计能带来利润的系统才值得进一 步考虑。
4. 进一步定义问题
新系统的逻辑模型实质上表达了分析员对新系统必 须做什么的看法。分析员应该和用户一起再次复查 问题定义、工程规模和目标,这次复查应该把数据 流图和数据字典作为讨论的基础。
可行性研究的前4个步骤实质上构成一个循环。 分析员定义问题,分析这个问题,导出一个试探性 的解;在此基础上再次定义问题,再一次分析这个 问题,修改这个解;继续这个循环过程,直到提出 的逻辑模型完全符合系统目标。
第2章 软件可行性与项目计划
2.1 可行性研究的任务 2.2 可行性研究步骤 2.3 项目计划
2.1 可行性研究的任务
可行性研究的目的不是解决问题,而是确定问题是 否值得去解决.通过分析几种主要的可能解法的利 弊,从而判断原定的系统规模和目标是否现实,系 统完成后所能带来的效益是否大到值得投资开发这 个系统的程度。因此,可行性研究实质上是要进行 一次大大压缩简化了的系统分析和设计的过程,也 就是在较高层次上以较抽象的方式进行的系统分析 和设计的过程。
2. 研究目前正在使用的系统
现有的系统是信息的重要来源。新的目标系统必须 也能完成它的基本功能;另一方面,如果现有的系 统是完美无缺的,用户自然不会提出开发新系统的 要求,因此,现有的系统必然有某些缺点,新系统 必须能解决旧系统中存在的问题。

软件工程第二章 可行性研究与软件计划

软件工程第二章 可行性研究与软件计划

解 表面上看,5年共节约10000×5=50000元,扣除投资30000元,可产
生纯收入20000元,其实不然。因为这50000元要分5年产生,每年年底 为10000元,若按年利率12%计算,则折合到当前值可见下表。

纯收入=累计的当前值(5年)-系统投资额
=36172.7-30000=6172.7元
乐观值:4
600 可能值:6 900 悲观值:8 600 估算值: e = (a + 4m + b)/6 = 6 800
案例: 代码行估算 (4/4)
子系统
图形用户界面及其控制机制 二维几何分析 三维几何分析 数据库管理 图形显示 外设控制(与打印机、扫描仪等的接口) 设计分析子系统 总代码行估算值
(3)系统定义和分析 依据系统总目标,定义系
系 统 定 义 和 分 析
调查研究
统的详细目标、功能、性 能、界面、资源 确定系统与环境的界面 确定硬件、软件功能的合 理分担 进行多种方案设计 对方案进行可行性论证 制定开发进度计划和投资 计划
确定系统目标 功能性能
系统方案设计
软件工程
第二章
第2讲 可行性研究与软件计划
2.1 2.2 2.3 2.4 2.5 问题定义 方案设计 可行性研究 软件计划 软件项目计划说明书
2.1 问题定义

进入软件开发阶段之前,必须明确2个问题
软件工程要解决的问题是什么?
所关心的问题有可行的解决方案吗?

要明确这2个问题,必须从更高层的角度出发
(4)软件成本估计模型
(三)标准值法
步骤
①首先确定程序类型和相应的标准生产率
程序设计语言;处理方式;程序难易程度;技术

软件工程导论第2章可行性研究

软件工程导论第2章可行性研究

表 2.1 基本符号
符号
名称
说明
处理
能改变数据值或数据位置的加工或部件
输入/输出 连接 换页连接
表示输入或输出(或既输入又输出), 是一个广义的不指明具体设备的符号
指出转到图的另一部分或从图的另一部 分转来,通常在同一页上
指出转到另一页图上或由另一页图转来
人工操作 由人工完成处理
数据流
用来连接其他符号,指明数据流动方向
尽管系统流程图使用的某些符号和程序流程图所用 的符号相同,但系统流程图表达的是信息在系统中 各个部件之间流动的情况,而不是对信息进行加工 处理的控制过程。
例:库存清单系统
零件库存量的每一次变化称 为一个事务,由放在仓库中 的CRT终端输入到计算机 中。
系统中的库存清单程序对事 务进行处理,更新存储在磁 盘上的库存清单主文件,并 且把必要的定货信息写在磁 带上。最后,每天由报告生 成程序读一次磁带,并且打 印出定货报告。
习题
2-1 在软件开发的早期阶段为什么要进行可行性研究? 应该从哪些方面研究目标系统的可行性?
2-2 为方便储户,某银行拟开发计算机储蓄系统。储 户填写的存款单或取款单由业务员键入系统,如果是 存款,系统记录存款人姓名、住址、存款类型、存款 日期、利率等信息,并印出存款单给储户;如果是取 款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。
2.1.2 问题定义的步骤
在问题定义阶段,系统分析员要深入现场,阅 读用户写的书面报告、听取用户对开发系统的 要求、调查开发系统的背景理由。
还要与用户负责人反复讨论,以澄清模糊的地 方、改正不正确的地方。
最后写出双方都满意的问题定义报告,并确定 双方是否可进行深入系统可行性研究的意向。

第二章 软件可行性研究与项目开发计划(软件工程)

第二章 软件可行性研究与项目开发计划(软件工程)

第二章软件可行性研究与项目开发计划2.1可行性研究在进行任何一项较大的工程时,首先都要进行可行性分析和研究。

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

2.1.1可行性研究的任务首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。

分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。

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

主要从三个方面考虑:1.技术可行性对要开发的项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。

技术可行性是最难解决的,它一般要包括:(1)开发的风险:在给出的限制范围内,能否设计出系统并实现必须的功能和性能。

(2)资源的有效性:人力资源以及用于建立系统的其他资源是否具备。

(3)技术:目前的技术水平能否支持这个系统。

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

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

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

2.1.2 可行性研究的具体步骤典型性的可行性研究有下列步骤:1.确定项目规模和目标分析员对有关人员进行调查访问,仔细阅读和分析有关的材料,对项目的规模和目标进行定义和确认,清晰地描述项目的一切限制和约束,确保分析员正在解决的问题确实是要解决的问题。

2.研究正在运行的系统收集、研究、分析现有系统的文档资料,实地考察现有系统,在考察的基础上,访问有关人员,然后描述现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。

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

3.建立新系统的高层逻辑模型根据对现有系统的分析研究,逐步明确了新系统的功能、处理流程以及所受的约束,然后使用建立逻辑模型的工具——数据流图和数据字典来描述数据在系统中的流动和处理情况。

《软件工程》第2章 可行性分析与软件计划

《软件工程》第2章 可行性分析与软件计划

2.2.5 进度安排
• 进度安排将作为一节在后面详细介绍。
北京大学远程教育课程
Software Engineering_Chapter2-25
2.2.6 软件计划说明书
• 教材中的格式,教材第32页 • 国际标准化组织的文档参考格式 • 国家标准的文档参考格式
北京大学远程教育课程
Software Engineering_Chapter2-26
北京大学远程教育课程 Software Engineering_Chapter2-3
2.1 软件可行性分析
• 2.1.1 对可行性分析的认识 • 2.1.2 可行性分析的内容 • 2.1.3 可行性分析的步骤 • 2.1.4 可行性分析报告
北京大学远程教育课程
Software Engineering_Chapter2-4
• 可行性分析的目的是用最小的代价在尽可能短的时间内确 定问题是否能够解决。必须记住:可行性分析不是要求解 问题本身,而是要确定问题是否有解。
北京大学远程教育课程
Software Engineering_Chapter2-6
2.1.2 可行性分析的内容
可行性分析的内容主要集中在如下几个主要方面
⑴.经济上可行:论证系统有没有经济效益或社会效益?多长 时间能回收成本? ⑵.技术上可行:实现新系统需要哪些技术,现有技术能否解 决,难点?建议采用的技术先进程度怎样?新技术的应用是否 存在风险?是否能够找到胜任该系统的熟练的技术人员?能否 按期得到开发该项目所需要的软硬件资源?等等 ⑶.操作上可行:系统的操作方式在用户所在的组织内是否可 行,特别是对原有系统扩展会不会引起矛盾。 ⑷.法律上可行:会不会引起侵权、会不会引起其他的社会问 题。
软件计划是软件开发过程中的第一个阶段。这个阶段的 任务是,对即将开发的软件系统实施可行性分析,也就 是从工程、经济、技术的角度,论证系统的可行性。一 旦立项通过,就为软件开发制定详细的软件计划。 • 2.1 软件可行性分析 • 2.2 软件开发计划 • 2.3 软件的成本估算与效益分析 • 2.4 安排开发进度

第2章可行性研究与软件计划

第2章可行性研究与软件计划

3
7
12 12
(4()0)
2
1 00(20)2 22(440)3 66(51)15 10702(2051)8119003(1204)110110044(201)111155
(5)1
6
172(15)9
8 13
(1 5)
成本/效益分析
成本/效益分析的目的: 是从经济角度分析开发一个特定的新系统是否划
算,从而帮助客户组织的负责人正确地做出是否投资于 这项开发工程的决定。
一旦估计出源代码行数以后,用每行代码的平均成本乘以行数 就可以确定软件的成本。每行代码的平均成本主要取决于软件的复 杂程度和工资水平。
成本/效益分析
(2)任务分解成本估算
这种方法首先把软件开发工程分解为若干个相对独立的任务。 再分别估计每个单独的开发任务的成本,最后累加起来得出软件开 发工程的总成本。估计每个任务的成本时通常先估计完成该项任务 需要用约人力(以人月为单位),再乘以每人每月的平均工资所得 出每个任务的成本。
该装配厂使用一台微机处理更新库存清单主文件和产生定货报 告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中 的键盘终端输入到计算机中;系统中的库存清单程序对事务进行处 理,更新存储在磁盘上的库存清单主文件,并且订货信息记录到联 机存储中。最后,每天由报告生成程序读一次订货信息,并且打印 出定货报告。图2-1的系统流程图描绘了上述系统的概貌。
可行性研究
5. 推荐行动方针 根据可行性研究结果应该做出的一个关键性决定是,是否继
续进行这项开发工程。分析员必须清楚地表明他对这个关键性决 定的建议。如果分析员认为值得继续进行这项开发工程,那么他 应该选择一种最好的解法,并且说明选择这个解决方案的理由。 通常使用部门的负责人主要根据经济上是否划算决定是否投资于 一项开发工程,因此分析员对于所推荐的系统必须进行比较仔细 的成本/效益分析。 6. 编写可行性研究报告

软件工程-可行性研究与项目开发计划

软件工程-可行性研究与项目开发计划

第二部分可行研究与项目开发计划第三章可行研究与项目开发计划三.一 项目立项概述•任何一个完整地软件工程项目都是从项目立项开始地。

项目立项包括项目发起,项目论证,项目审核与项目立项四个过程。

•在发起一个项目时,项目发起或单位为寻求它地支持,要以书面材料地形式递给项目地支持者与领导,使其明白项目地必要与可行。

•项目论证过程,也就是可行研究过程。

可行研究就是指在项目行开发之前,根据项目发起文件与实际情况,对该项目是否能在特定地资源,时间等制约条件下完成做出评估,并且确定它是否值得去开发。

•项目经过可行研究并且认为可行后,还需要报告主管领导或单位,以获得项目地一步审核,并得到它们地支持。

•项目通过可行研究与主管部门地批准后,将其列入项目计划地过程,叫做项目立项。

•经过项目发起,项目论证,项目审核与项目立项四个过程后,一个软件工程项三.二 可行研究地任务可行研究需要从多个方面行评估,主要包括:Ø战略可行Ø操作可行Ø计划可行Ø技术可行Ø社会可行Ø市场可行Ø经济可行Ø风险可行Ø技术可行主要研究待开发地系统地功能,能与限制条件,确定现有技术能否实现有关地解决方案,在现有地资源条件下实现新系统地技术风险有多大。

这里地资源条件是指已有地或可以得到地软硬件资源,现有地开发项目地员地技术水与已有地工作基础。

Ø在评估技术可行时,需要考虑以下情况:了解当前最先地技术,分析有关技术地发展是否支持新系统;确定资源地有效,如新系统地软硬件资源是否具备,开发项目地员在技术与时间上是否可行等;分析项目地开发地技术风险,即能在给定地资源与时间等条件下,设计并实现系统地功能与能等。

Ø操作可行是对开发系统在一个给定地工作环境能否运行或运行好坏程度地衡量。

操作可行研究决定在当前地政治意识形态,法律法规,社会道德,族意识以及系统运行地组织机构或员等环境下,系统地操作是否可行。

第2章 软件可行性研究与项目开发计划

第2章 软件可行性研究与项目开发计划

2.2 系统流程图
1.系统流程图的作用 系统流程图是描绘物理系统的传统工具, 它用图形符号来表示系统中的各个元素,例 如人工处理、数据处理、数据库、文件、设 备等。它表达了系统中各个元素之间的信息 流动的情况。 2.系统流程图的符号 系统流程图的符号如表2-1所示。
2.3成本 成本——效益分析 成本 效益分析
3可行性研究报告的主要内容?1引言?2可行性研究前提?3对现有系统的分析4所建议系统的技术可行性分析?4所建议系统的技术可行性分析?5所建议系统的经济可行性分析?6社会因素可行性分析?7其他可供选择方案?8结论意见22系统流程图?1
第二章
软件可行性研究与项目开发计划
2.1可行性研究 可行性研究
在进行任何一项较大的工程时,首先都要 进行可行性分析和研究。目的就是用最小的 代价在尽可能短的时间内确定该软件项目是 否能够开发,是否值得去开发。
2.4 项目开发计划
1. 2. 3. 4.
项目概述 实施计划 人员组织及分工 交付期限
真题训练:名称解释
1.可行性研究 2.技术可行性 3.经济可行性 4.社会可行性 5.货币时间价值 6.投资回收期 7.纯收入行性研究的目的是用最小的代价,在尽可能短的时间内, 确定________。 2.可行性研究在进行简要需求分析和设计时,要在高层次上 以__________进行。 3.系统流程图用图形符号表示系统中各个元素,表达了系统 中各个元素之间的_________。 4.软件工程有两种效益,它们是无形效益和________。 5.若年利率为i,不计复利,n年后能收入F元的现在价值 P=________。 6.纯收入是软件生存周期内两项值之差,这两项是 _________。 7.项目开发计划是一种_________文档。 8.可行性研究具体步骤的最后一步是________。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成本——效益分析的目的是从经济角度评价 开发一个新的软件项目是否可行。 成本——效益分析首先是估算将要开发的系 统的开发成本,然后与可能取得的效益进行 比较和权衡。效益分有形效益和无形效益两 种。有形效益可以用货币的时间价值、投资 回收期、纯收入等指标进行度量;无形效益 主要从性质上、心理上进行衡量,很难直接 进行量的比较。
2.1.2 可行性研究的具体步骤
1.确定项目规模和目标 2.研究正在运行的系统 3.建立新系统的高层逻辑模型 4.导出和评价各种方案 5.推荐可行的方案 6.编写可行性研究报告
2.1.3可行性研究报告的主要内容
1、引言 2、可行性研究前提 3、对现有系统的分析 4、所建议系统的技术可行性分析 5、所建议系统的经济可行性分析 6、社会因素可行性分析 7、其他可供选择方案 8、结论意见
2.2 系统流程图
1.系统流程图的作用 系统流程图是描绘物理系统的传统工具, 它用图形符号来表示系统中的各个元素,例 如人工处理、数据处理、数据库、文件、设 备等。它表达了系统中各个元素之间的信息 流动的情况。 2.系统流程图的符号 系统流程图的符号如表2-1所示。
2.3成本 成本——效益分析 成本 效益分析
第二章
软件可行性研究与项目开发计划
2.1可行性研究 可行性研究
在进行任何一项较大的工程时,首先都要 进行可行性分析和研究。目的就是用最小的 代价在尽可能短的时间内确定该软件项目是 否能够开发,是否值得去开发。
2.1.1可行性研究的任务 可行性研究的任务
1.技术可行性 对要开发的项目的功能、性能、限制条件进行分析,确定在现有的资 源条件下,技术风险有多大,项目是否能实现。 技术可行性是最难解决的,它一般要包括: (1)开发的风险:在给出的限制范围内,能否设计出系统并实现必须的 功能和性能。 (2)资源的有效性:人力资源以及用于建立系统的其他资源是否具备。 (3)技术:目前的技术水平能否支持这个系统。 (4)开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后 果。 2.经济可行性 进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是 否值得投资开发。 3.社会可行性 要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运 行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式 是否可行。
真题训练:简答题
1.可行性研究的任务是什么? 2.可行性研究有哪些步骤? 3.可行性研究的目的。 4.可行性研究报告的主要内容。 5.怎样计算投资回收期和纯收入? 6.项目开发计划有哪些主要内容。
二、填空题 1.项目值得开发否 2.较抽象形式 3;n×i) 6.经济效益与投资 7.管理性 8.编写可行性报告。 三、选择题 1.A 2.C 3.A 4.D 5.C
真题训练:选择题
1.研究硬软件资源的有效性是进行( )研究的一方面。 A.技术可行性 B.经济可行性 C.社会可行性 D.操作可 行性 2.可行性研究要进行的需求分析和设计应是( )。 A.详细的 B.全面的 C.简化、压缩的 D.彻底的 3.可行性分析中,系统流程图用于描述( )。 A.当前运行系统 B.当前逻辑模型 C.目标系统 D.新系统 4.系统流程图是一种工具,它用于描述( )。 A.逻辑系统 B.程序系统 C.体系结构 D.物理系统 5.年利率为i,现存入P元不计复利,n年后本金利息为( )。 A.P×(1+i)n B.P×(1-i×n) C.P×(1+i×n) D.P× (1+i)×n
有形效益的分析
1.货币的时间价值 项目开发后,应取得相应得效益,有多少效益才合算?这就要考虑货 币的时间价值。通常用利率表示货币的时间价值。 设年利率为i,现存入P元,n年后可得钱数为F,若不计复利则 F=P×(1+n×i) F就是P元在n年后得价值。反之,若n年能收入F元,那么这些钱现在 得价值是: P =F/(1+n×i) 2.投资回收期 通常用投资回收期衡量一个开发项目的价值。投资回收期就是使累计 的经济效益等于最初的投资费用所需的时间。投资回收期越短,就越快 获得利润,则该项目就越值得开发。 3.纯收入 衡量项目价值的另一个经济指标是项目的纯收入,也就是在整个生存 周期之内的累计经济效益(折合成现在值)与投资之差。若某项目的纯 收入小于零,则该项目是不值得投资的。
2.4 项目开发计划
1. 2. 3. 4.
项目概述 实施计划 人员组织及分工 交付期限
真题训练:名称解释
1.可行性研究 2.技术可行性 3.经济可行性 4.社会可行性 5.货币时间价值 6.投资回收期 7.纯收入 8.系统流程图
真题训练:填空题
1.可行性研究的目的是用最小的代价,在尽可能短的时间内, 确定________。 2.可行性研究在进行简要需求分析和设计时,要在高层次上 以__________进行。 3.系统流程图用图形符号表示系统中各个元素,表达了系统 中各个元素之间的_________。 4.软件工程有两种效益,它们是无形效益和________。 5.若年利率为i,不计复利,n年后能收入F元的现在价值 P=________。 6.纯收入是软件生存周期内两项值之差,这两项是 _________。 7.项目开发计划是一种_________文档。 8.可行性研究具体步骤的最后一步是________。
相关文档
最新文档