惠州学院 软件工程导论 第二章__可行性研究 刘宇芳
惠州学院软件工程导论课程介绍 刘宇芳老师
《软件工程导论》课 程 介 绍课程特点:既是一门技术学课程,也是一门管理学课程;既具有理论性,也具有较强的实操性。
课程目的:基本:✧ 掌握软件工程学的基本概念和基本原理;✧ 掌握分析、设计、测试与维护软件系统的理论与方法;✧ 实践用软件工程的方法开发软件系统的全过程,构建一个软件系统。
进一步:✧ 转变对软件的认识:程序 系统;✧ 转变思维定式:程序员 系统分析员/系统设计员;需求获取、定义、建模、分析软件体系结构设计软件概要设计软件评审与测试软件评审/测试软件评审/确认软件详细设计软件构造软件项目管理软件工程人才分布示意图✧ 学习以团队合作的形式开发软件;✧ 工程化训练:规范、准则、项目管理。
课程的主要内容:软件工程的产生、软件的生命周期、生命周期模型;软件开发各阶段的目标、任务、特点、步骤和文档;传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则;面向对象软件工程的基本思想、基本过程和基本模型;软件工程的管理技术。
课程重点:掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工具。
教学安排:56学时讲授;8-10学时课内实验;课后作业和课后实验。
考核:期末考试:70%;作业+分组实验报告+点名:30%。
教材:软件工程导论(5th),张海藩,清华大学出版社参考文献软件工程(第二版),齐治昌,高等教育出版社软件工程实践教程,谭庆平等,高等教育出版社软件工程分析案例,李代平等,清华大学出版社先修课程:程序设计语言数据结构数据库原理与设计课程实验:实验要求:按照面向数据流的软件工程的要求完成各阶段的主要文档,实现的程序能初步运行。
✧分组进行,每组3~4人,自由组合,每组设项目负责人一个;✧每组抽签选择开发题目1、2或3,一组同学合作完成一个项目,每人负责项目中的1~2个开发步骤;✧工作步骤:问题初步定义和可行性研究→需求分析(资源采集)→界面原型设计→概要设计→详细设计→实现与测试→项目验收✧需要交付的文档:(1)可行性研究报告(2)项目开发计划(含小组成员分工)(3)需求规格说明书(4)概要设计说明书(5)详细设计说明书(6)数据库设计说明书(7)测试计划(8)测试分析报告(9)项目开发总结报告(10)系统源代码(11)操作手册建议开发步骤:⏹可行性研究:用系统流程图描述系统的工作流程。
软件工程导论第2章可行性研究
说明
处理
能改变数据值或数据位置的加工或部件
输入/输出 连接 换页连接
表示输入或输出(或既输入又输出), 是一个广义的不指明具体设备的符号
指出转到图的另一部分或从图的另一部 分转来,通常在同一页上
指出转到另一页图上或由另一页图转来
人工操作 由人工完成处理
数据流
用来连接其他符号,指明数据流动方向
表 2.1 扩展符号 1
2-4 目前住院病人主要由护士护理,这样做不仅需要大 量护士,而且由于不能随时观察危重病人的病情变 化,还会延误抢救时机。某医院打算开发一个以计算 机为中心的患者监护系统,请写出问题定义,并且分 析开发这个系统的可行性。
习题(补充)
阅读以下说明和流程图,回答问题1至问题3。
本流程图描述了某仓库物品入出库管理的处理流程。每张入 库单或出库单都由两位操作员分别录入,经处理1或处理3 输入系统后作合法性检查,并将合法的入库单或出库单记入 入库单文件或出库单文件。然后通过处理 2 或处理 4 实时更 新库存文件。处理5每周执行一次,它依次检查库中的每一种 物品,当某物品的库存量小于该物品的最低库存量时,制订 采购计划,输出订购单。处理6和处理7每月执行一次,处理6 将入库单文件和出库单文件合并成月入出库文件,并根据统 计的要求对其进行排序。处理 7 进行统计,产生月报表,并 把该月合并后的月入出库文件添加到月入出库后备文件中, 以备日后查找,最后清除入库单文件、出库单文件和月入出 库文件。
2.1 问题定义 2.2 可行性研究 小结 习题
内容
2.1 问题定义
问题定义的内容:
明确问题的背景、系统的现状 开发的理由和条件 开发系统的问题要求、性质、类型范围 要实现的目标、功能规模、方案 然后写出问题定义报告(或称系统定义报告),以 供可行性分析阶段使用。
软件工程导论试题集()
软件工程导论试题集()————————————————————————————————作者:————————————————————————————————日期:第一章:软件工程学概述一.填空题1. 计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于(原理和理论)、而软件工程侧重于(如何建造一个软件系统)2. 计算机程序及其说明程序的各种文档称为(文件)。
计算任务的处理图像对象和处理规则的描述称为(程序)。
有关计算机程序功能、设计、编制、使用的文字或图形资料称为(文档)。
3. 软件开发环境是相关一组(软件工具)的集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成的。
4. CASE这一术语的英文是(Computer Aided Software Engineering)。
5. (平台集成)是指工具运行在相同的硬件/操作系统平台上。
(数据集成)是指工具使用共享数据模型来操作。
(表示集成)是指工具提供相同的用户界面。
6. 根据支持的范围,CASE工具可分为(窄支持)、(较宽支持)和(一般支持)工具。
7. 软件危机的主要原因有(软件本身的特点)和(缺乏好的开发方法和手段)。
8. (增量)模型是一种非整体开发的模型。
软件在该模型中是“逐渐”开发处理的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
9.结构化方法总得指导思想是(自顶而下逐步求精)。
它的基本原则是功能的(分解)与(抽象)。
它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。
10. 面向对象开发方法包括(面向对象分析)、(面向对象设计)、(面向对象实现)、三部分。
11. 瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。
它包括(可行性分析)、项目开发计划、(需求分析)、(概要设计) 、(详细设计)、_(编码)、(测试)、(维护),它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。
软件工程导论第2章可行性研究
5. 导出和评价供选择的解法 n 首先从技术角度出发排除不可行方案; n 其次考虑操作可行性,去掉用户不能接受的方
案; n 接下来考虑经济可行性,估计余下的每个可能
的系统的开发成本和运行费用,进行成本/效 益分析; n 最后为每个在各方面都可行的系统制定实现进 度表。
软件工程导论第2章可行性研究
软件工程导论第2章可行性研究
源点:仓库管理员 终点:采购员
数据流: 定货报表
零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者
事务
零件编号 事务类型 数量
处理:产生报表、处理事务 数据存储: 定货信息——同定货报表
库存清单 零件编号 库存量 库存量临界值
软件工程导论第2章可行性研究
2. 画基本系统模型 n 由若干个数据源点/终点和一个处理组成。
工程进度表
阶段
所需时间(月)
可行性研究
0.5
需求分析
1
概要设计
0.5
详细设计
1
实现
2
总计
5
软件工程导论第2章可行性研究
6. 推荐行动方针 n 根据可行性研究结果应该做出的一个关键性决
定是,是否继续进行这项开发工程。 n 若继续开发,选择一种最好的解法,说明选择
这个解决方案的理由。
软件工程导论第2章可行性研究
该装配厂使用一台小型计算机,处理更新库存清单主文 件和产生定货报告。零件库存量的每一次变化称为一个事务, 由放在仓库中CRT终端输入到计算机中;系统中的库存清单 程序对事务进行处理,更新存储在磁盘上的库存清单主文件, 并且把必要的订货信息写在磁带上。最后,每天由报告生成 程序读一次磁带,并且打印出订货报告。
《软件工程》第2章_软件可行性研究
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.4 小结
可行性研究是抽象和简化了的系统分析和设计的全 过程,它的目标是用最小代价尽快确定问题是否能够解 决,以避免盲目投资带来的巨大浪费。可行性研究是从 技术上、经济上、使用上、法律上分析应解决的问题是 否有可行的解,从而确定该软件是否有可行的解。
上述可行性研究的步骤只是一个经过长期实践总结出来的 框架,在实际的使用过程中,它不是固定的,根据项目的性质、 特点以及开发团队对业务领域的熟悉程度会有些变化。
2.3 可行性研究报告
可行性研究可以归档为一个单独的报告,提供给上级管理 部门,又可以包括在“系统规格说明”的附录中,虽然可行性 报告的形式可以有多种,但最重要的内容应当有:
第二章 软件可行性研究
【本章引言】
在计算机的软件项目开发过程中,只要资源和时间 不加以限制,所有的项目都是可行的。然而,由于资源 缺乏和交付时间限制的困扰,使得基于计算机系统的开 发变得比较困难。因此,尽早对软件项目的可行性做出 细致而谨慎的评估是十分必要的。如果在定义阶段及早 发现将来可能在开发过程中遇到的问题及早做出决定, 可以避免大量的人力、财力、时间上的浪费。
本章简要的介绍了有关可行性研究的任务、步骤, 以及在撰写可行性研究报告时有哪些要求。
2.5 习题
1. 为什么要对计算机软件项目进行可行性研
究?
2. 可行性研究主要研究哪些问题?试说明之。 3. 可行性研究的任务是什么? 4. 可行性研究的步骤? 5. 撰写可行性研究报告的方法?
软件工程教案_2(第二章可行性研究)
据项的逻辑关系,数据项之间的联系 }
数据结构描述={ 数据结构名,含义说明,组 成:{数据项或数据结构} }
数据流描述={ 数据流名,说明,数据流来源, 数据流去向,组成:{数据结构},平均流量,高峰 期流量 } 数据存储描述={ 数据存储名,说明,编号,输 入的数据流,输出的数据流,组成:{数据结构}, 数据量,存取频度,存取方式 } 处理过程描述={ 处理过程名,说明,输入:{数 据流},输出:{数据流},处理:{简要说明} }
(2)合并
把多个文件合并为一个文件 (3)划分 是合并的逆操作,将合并工序的输入文 件与输出文件对调即可
(4)分类(排序)
按指定的键(关键字)以升序或降序改变原文 件的记录排列顺序
(5)更新
将多个文件作为输入,根据关键项目进行对照, 对文件进行内容修正、删除、增加等改写工作, 一般更新的内容先要写入一个临时文件
2. 定义数据的方法
(1) 由数据元素组成数据的方式: 顺序;选择;重复;可选
(2) 符号方式: = “等价于”,“定义为”; + “和”,连接两个分量; [ ] “或”; { } “重复”; ( ) “可选”
(3) 递归定义: < 起始; > 终结; | 或; ::= 定义
例:<字母>::=A|B|…|Z|a|…|z <数字>::=0|1|…|9 <下划线>::=_ <标识符>::=<字母>|<下划线>|<标识符><数字> |<标识符><字母>
统业务处理概况
2.系统流程图是系统分析员,管理人员,业务操
作人员相互交流的工具
3.系统分析员可直接在系统流程图上拟出可以
《软件工程》第2章 可行性研究-大纲
第二章可行性研究
2.1 可行性研究的目标与任务
2.1.1 目标:用最小的代价和尽可能短的时间判断问题是否值得去解?
2.1.1 任务:
——技术可行性
——经济可行性
——操作可行性
——社会可行性
2.2 可行性研究过程
(1)复查系统规模与目标
(2)研究目前正在使用的系统
(3)导出新系统的高层逻辑模型
(4)导出与评价各种方案
(5)推荐行动方针
(6)草拟开发计划
(7)书写文档提交审查——《可行性研究报告》
2.3 可行性研究工具
——
系统流程图:表达数据在系统各部件之间流动的情况
程序流程图:对数据进行加工处理的控制过程
2.4 成本/效益分析:从经济角度评价开发一个新的软件工程项目是否可行
——成本估计
……代码行技术
……任务分解技术
……自动估计成本技术
——效益分析:有形效益,无形效益
——常用的效益度量方法
……货币的时间价值
……投资回收期
……纯收入
1。
软件工程导论(第六版)张海藩 牟永敏课后习题答案.
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论第2章
2可行性研究的步骤
(1)细化和修改“系统目标与范围的说明”,得 出新系统的逻辑模型。 (2)导出新系统的解决方案。 目的是根据新系统逻辑模型,设想若干个可能 的解决方案,以便比较和选择。便每种方案都要考 虑在技术上是否可行,并分析经济与社会的可行性。 (3)提出推荐的方案。 分析员必须清楚地表明这个方案的开发价值和 和推荐这个方案的理由。 推荐的方案应附有“系统流程图”和简单的 “数据流图”,以及比较详细的成本—效益分析。
改变自动化边界,把处理1.1,1.2和1.3放在同 一个边界内,这个系统将联机地接收事务、更新库 存清单和处理定货及输出定货信息;然而处理2将 以批量方式产生定货报表。
六. 数据字典
数据字典是关于数据的信息的集合,也就是对数据流 图中包含的所有元素的定义的集合。 数据字典的作用: 就是对软件中的每个数据规定一个定义条目,以保持数 据在系统中的一致性; 在软件分析和设计的过程中给人提供关于数据的描述信 息。 数据流图和数据字典共同构成系统的逻辑模型,没有 数据字典数据流图就不严格,然而没有数据流图数据字典 也难于发挥作用。只有数据流图和对数据流图中每个元素 的精确定义放在一起,才能共同构成系统的规格说明。
七. 成本/效益分析
通过估计新系统所需的成本和可能产生的效益, 从经济上衡量这个项目的开发价值,从而帮助客户 组织的负责人正确地作出是否投资于这个项目的决 定。
1. 成本估计
系统成本包括开发成本和运行维护成本。 (1)开发成本: 主要为人力消耗。通常先估计项目开发所需要 的人力,再乘以平均工资则得到开发费用。 (2)运行维护成本: 包括使用中的物质消耗,占用的操作和维护人 员数量,以及围绕这一项目的人员训练等费用。 在计划时期,对成本的计算只能是估计值。
《软件工程》第二讲 可行性研究
2.6.2 成本/效益分析的方法(II)
1. 货币的时间价值 如果n年后能收入F元钱,那么这些钱的现在价值是
P=F/(1+i)n 2. 投资回收期
使累计的经济效益,等于最初投资所需要的时间。 3. 纯收入
在整个生命周期之内,系统的累计经济效益(折合 成现在值)与投资之差。 4. 投资回收率
把资金存入银行或贷给其他企业能够获得利息
2.3.1 符号
2.3.2 例子
某装配厂有一座存放零件的仓库, 零件库存量的每一次变化称为一 个事务,库存清单程序对事务进 行处理,更新存储在磁盘上的库 存清单主文件,并且把必要的定 货信息写在磁带上。最后,每天 由报告生成程序读一次磁带,并 且打印出定货报告。 图中每个符号用黑盒子形式定义 了组成系统的一个部件,然而并 没有指明每个部件的具体工作过 程;图中的箭头确定了信息通过 系统的逻辑路径。
数据流和数据存储 系统把定货报表送给采购部,因此定货报表是一个数据流; 事务需要从仓库送到系统中,显然事务是另一个数据流。 顶层DFD不需要画出数据存储
系统必须完成的两个主要功能是“产生报表”和“处 理事务” ,它们将代替顶层图的“定货系统”,并加了 编号。
系统必须增加了两个数据存储:处理事务需要“库存 清单”数据;产生报表和处理事务在不同时间,因此需要 存储“定货信息”。
考生
报名单 准考证 考生通知单
考务 处理系
统
考试中心 合格标准
错误成绩清单
成绩清 单
考生名单
阅卷站
画数据流图的步骤
1.画系统的输入和输出 2.画系统内部 3.画加工内部 4.重复第3步,直至每个尚未分解的加工都足够简单
(即不必再分解)
2.4.2 例子
软件工程导论 第2章 可行性研究
主要 内容 (zhǔyào)
可行性研究目的(mùdì) 可行性研究任务 可行性研究过程 可行性研究成果 系统流程图
2- 4
共四十九页
可行性研究的目的(mùdì)
事实依据:许多问题难以在预定的规模或时间 内解决,如果无可行方案,投入的资源和成本 都是无谓(wúwèi)的浪费。
北京某高校可用的电话号码有以下几类:
校内电话号码由4位数字组成,第1位数字不是0;
校外电话又分为本市电话和外地电话两类,拨校外电话需先 拨0,
若是本市电话则再接着拨8位数字(第1位不是0),
2- 25
数据流图
要点注意:
当进一步分解将涉及到如何具体实现一个功能时,就不应该 再分解了。
分层细化必须保持信息连续性。即:当把一个处理分解为一系 列的处理时,分解前和分解后的输入输出数据流必须相同。
注意对处理的编号问题。
例如:对处理1 的分解应该编号为1.1,1.2等;对1.1的进一步分解应该命
定货报告 打印部件
2- 17
共四十九页
系统 流程图 (xìtǒng)
画法
习惯上信息在图中从顶向下或从左向右流动 可以在图上加注释,注释较多时,可以另外加一个
文档来进行解释 复杂系统可以用分层方法来表示(biǎoshì)
首先用一张高层次的系统流程图描绘系统总体概貌,表 明系统的关键功能
每个关键功能扩展到适当的详细程度,画在单独的一 页纸上
保持与顶层数据流的一致; 可以不引入数据源和数据潭。
共四十九页
C、引入文件,使之形成一个有机整体—系统:
销售的商品
销售文件
1 录入、修改(xiūgǎi)或 删除商品信息
销售情况
3 查询商品销售情况
软件工程概论参考课件第2章 可行性研究
原系统能做什么; 为什么这样做; 现有系统使用的代价; 用户对新系统的要求; 该系统的边界(与其他系统的关系).
? 新系统效益
老系统效益
9
2019/9/22
2.2 可行性研究的步骤Cont.)
3. 导出新系统的高层逻辑模型
根据对现有系统的研究,导出现有系统的逻辑模型,设计出目标 系统的逻辑模型. 使用的工具:
数据流:用来连接其它符号,指 明数据流动方向
25
2019/9/22
表示一个具体的物理系统
文档:通常表示打印输出,也可 表示用打印终端输入数据
联机存储:表示任何种类的联机 存储,包括磁盘、磁鼓、软盘和 海量存储器等
磁盘:磁盘输入/输出,也可表示 存储在磁盘上的文件和数据库
磁带:磁带输入/输出,也可表示 存储在磁带上的文件
12
2019/9/22
2.2 可行性研究的步骤Cont.)
5. 导出和评价供选择的解法
系统分析员根据与用户确定的系 统逻辑模型,导出若干个较高层次 的物理解决方案,例如:
低成本方案
中成本方案
高成本方案
C/S系统结构
B/S系统结构
分别从技术、经济、操作和法律 角度论证每一种方案的可行性.
为每个方案制定实现进度表.
程序 数据文件 数据库 人工处理过程
24
2019/9/22
SFD的符号
符号(概括的形式抽象的描绘物理 系统时)
处理:能改变数据值或数据位置 的加工或部件,例如,程序、处 理机、人工加工等都是处理。 输入/输出:表示输入或输出(或 既输入又输出),是一个广义的 不指明具体设备的符号。 连接:指出转到图的另一部分或 从图的另一部分转来,通常在同 一页上 换页连接:指出转到另一页图上 或由另一页转来
软件工程导论第4版第2章
2.4 数据流图
数据流图(DFD)是一种图形化技术,它描 绘信息流和数据从输入移动到输出的过程中所 经受的变换。在数据流图中没有任何具体的物 理部件,它只是描绘数据在软件中流动和被处 理的逻辑过程。数据流图是系统逻辑功能的图 形表示,即使不是专业的计算机技术人员也容 易理解它,因此是分析员与用户之间极好的通 信工具。此外,设计数据流图时只需考虑系统 必须完成的基本逻辑功能,完全不需要考虑怎 样具体地实现这些功能,所以它也是今后进行 软件设计的很好的出发点。
图2.1 基本符号
2.3.2 例子
介绍系统流程图的最好方法可能是通过一个 具体例子说明它的用法。下面是一个简单的例子。 某装配厂有一座存放零件的仓库,仓库中现 有的各种零件的数量以及每种零件的库存量临界 值等数据记录在库存清单主文件中。当仓库中零 件数量有变化时,应该及时修改库存清单主文件, 如果哪种零件的库存量少于它的库存量临界值, 则应该报告给采购部门以便定货,规定每天向采 购部门送一次定货报告。
图2.3 库存清单系统的系统流程图
2.3.3 分层
面对复杂的系统时,一个比较好的方法是分 层次地描绘这个系统。首先用一张高层次的系统 流程图描绘系统总体概貌,表明系统的关键功能。 然后分别把每个关键功能扩展到适当的详细程度, 画在单独的一页纸上。这种分层次的描绘方法便 于阅读者按从抽象到具体的过程逐步深入地了解 一个复杂的系统。
2.2 可行性研究过程
典型的可行性研究过程有下述一些步骤: 1. 复查系统规模和目标 分析员访问关键人员,仔细阅读和分析有 关的材料,以便对问题定义阶段书写的关于规 模和目标的报告书进一步复查确认,改正含糊 或不确切的叙述,清晰地描述对目标系统的一 切限制和约束。这个步骤的工作,实质上是为 了确保分析员正在解决的问题确实是要求他解 决的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章可行性研究一、可行性研究的任务可行性研究就是确定问题是否值得去解。
可行性研究工作是在初步的需求定义(澄清问题的定义)之后进行的,其的目的是用最小的代价在尽量短的时间内(总成本的5%~10%)确定该项目是否值得去解决,是否存在可行的解决方案。
对每一种可能的解决方案,就以下几个方面研究其可行性:(1)经济可行性:这个系统的经济效益能超过它的开发成本吗?估算项目的开发成本和系统投入使用后可能带来的利润,进行成本/效益分析,从经济角度判断系统开发是否“合算”。
(2)技术可行性:使用现有的技术能实现这个系统吗?根据客户提出的系统功能、性能要求,从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用及其他各项约束条件限制下成功的可能性。
(3)运行、操作可行性:系统的操作方式在这个用户组织内行得通吗?主要研究系统的运行方式在用户单位是否可以被有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等等。
(4)法律可行性:系统的开发使用,在当国当地当时合法吗?研究系统的开发和使用是否会侵犯他人的权益,是否触犯了国家和地方的法律法规。
另外,可行性研究还要有开发方案的选择结论:如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种较好方案,并为系统制定一个初步的开发计划。
二、可行性研究的步骤1、复查初步分析结果,确定系统目标与规模,清晰地描述对系统的所有约束条件;P72、研究现有的系统,找出其基本功能和信息,指出其缺点或局限性(功能性能上的、经济上的);P93、借助某种图形工具导出新系统的高层(比较粗略的)逻辑模型,并与现有系统进行比较。
以后可以从这个逻辑模型出发设计新系统;P104、进一步定义问题。
可行性研究的前3个步骤实质上构成一个循环,目的是逐步改善逻辑模型。
分析员定义问题,分析这个问题,导出一个试探性的解(用工具描述出来);在此基础上和用户一起复查、再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。
在此过程中,遗漏和错误不断得到补充和改正。
5、从建议的系统逻辑模型出发,导出新系统的高层次的(比较抽象的)物理解法;提出多个供选择的方案,并对每一个方案的技术可行性、经济可行性、运行和操作可行性等进行分析比较;估计生命周期每个阶段的工作量。
P13~156、推荐行动方案。
如果系统分析员认为系统值得开发,则应指出开发的价值、推荐方案的理由并为推荐的系统草拟一份开发计划;若分析员认为不值得开发,也应拿出充分的理由。
7、草拟开发计划,书写文档(可行性研究报告)并提交审查。
P178、评审、复审和决策。
通过技术评审和管理复审,开发方和客户方或使用部门负责人根据各项可行性研究的结论,决策是否继续这项工程。
可行性研究报告的形式可以是多样的,其中主要涵盖的内容:(1)项目背景:①问题描述②实现环境③限制条件(2)管理概要和建议:①重要的研究结果②说明③建议④影响(3)经济可行性(成本/效益分析):①经费概算②预期的经济效益(4)技术可行性(技术风险评价):①技术条件、实力②已有工作基础③设备条件(5)法律可行性:①系统开发可能导致的侵权,违法和责任(6)用户使用可行性:①用户单位的行政管理,工作制度②使用人员的素质(7)其它与项目有关的问题:①其它方案介绍②未来可能的变化见软件设计文档国家标准GB8567—88三、描述可行性研究成果的图形工具1、系统流程图--系统物理模型的描述工具什么是系统流程图,它的成份和用到的符号P38~39,P18~20例子:P40,P21~24关于分层P252、数据流图--系统逻辑功能的描述工具什么是数据流图,它的成份和用到的符号P40~41,P26~30例子:(1)文字描述:P42,P31(2)从文字描述中提取的信息:数据流图有4种成分:源点和终点,处理,数据存储,数据流。
a数据源点:仓库管理员;数据终点:采购员。
b处理:零件入库或出库(事务)处理;定货报表生成。
c数据流:零件入库或出库(事务);定货信息。
P43表2.1d数据存储:库存清单;定货信息表(3)分层细化的数据流图:P35、P38、P40关于数据流图的分层细化数据流图是逐层细化的,它将每个需要细化的模块分解成一个子图。
当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。
为数据流图中的两大成份--数据流(数据存储)、处理,命名时应注意:P45,P41~43(1)为数据流、处理命名要注意完整性,切忌空乏;(2)命名通常先为数据流命名,然后再为与之相关联的处理命名;(3)数据流命名有困难,说明系统分解不恰当;(4)处理的命名应为动宾结构,动词表示处理的功能、名词表示处理的对象;(5)数据处理还应按处理流程顺序和模块分解的层次编号。
数据流图的用途:(1)作为交流信息的工具;P44(2)作为分析和设计的工具;P45(3)辅助物理系统的设计(边界的划分)。
P46,47,49在进行可行性研究时,我们通常首先用系统流程图描述现有系统;通过简要分析,用数据流图描述即将设计的新系统的逻辑功能;再划分自动化边界,用系统流程图将新系统的逻辑模型转换成其对应的物理模型,描绘未来系统的概貌。
四、数据字典1、什么是数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
它的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据流图和数据字典共同构成系统可行性研究阶段的逻辑模型。
2、数据字典的用途P59~60(1)分析阶段的交流工具(2)包含控制信息(3)数据库设计的基础3、数据字典的内容P47,P51~52举例:4、定义数据的方法数据字典中定义数据的方法就是①对数据自顶向下逐步分解,当分解到不需要进一步定义、每个和工程有关的人也都清楚数据元素的含义时,这种分解过程就完成了。
②然后再用自然语言或符号语言描述数据元素组成数据的方式。
数据定义使用到的符号及意义:由数据元素组成数据的方式:(1)顺序即以确定次序连接两个或多个分量;(2)选择即从两个或多个可能的元素中选取一个;(3)重复即把指定的分量重复零次或多次。
(4)可选即一个分量是可有可无的(重复零次或一次)。
可采用下列符号:=意思是定义为(或等价于);(1)+意思是和(即,连接两个分量);(2)[]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;(3){}意思是重复(即,重复花括弧内的分量);(4)()意思是可选(即,圆括弧里的分量可有可无)。
重复次数的标注P57举例P57~58数据字典的实现(1)用Case工具中的数据字典处理程序对数据字典进行生成和编辑;(2)通过手工制作卡片来制作数据字典。
每张卡片上保存描述一个数据的信息,主要应该包含下述这样一些信息:名字、别名、描述、定义、位置。
(3)举例P49五、成本/效益分析(经济可行性研究)为了对比成本和效益,首先需要估计它们的数量,从数量上对比成本和效益1、成本估算技术----估算软件的开发成本P50,P63~65(1)代码行技术(2)任务分解技术(3)自动成本估算技术2、成本/效益分析方法成本/效益分析概说P51,P66~67货币的时间价值P51,P68纯收入计算分析方法(1)概念:纯收入=在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。
P=20万 4.2万 4.2万 4.2万 4.2万 4.2万012345(2)举例:假设某软件使用周期为5年。
现在投资20万元,平均年利率3%。
预计从第一年起,每年年底收入4.2万元,问该项目是否值得投资?计算方法1:投资额=200000⨯(1+3%)5≈231855(元)收入=42000⨯[(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1]≈222984(元)收入-投资额=-8871(元)计算方法2:)(765220000003.1103.1103.1103.1103.11420002345元-≈-⎥⎦⎤⎢⎣⎡++++⨯投资回收期计算方法(1)概念:所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。
投资回收期小于软件的生命周期,投资才合算;投资回收期越短越好!(2)举例:仍以上例计算由上计算方法2可知,5年还不能回收全部成本。
如果软件第6年全年运行可收入利润折合现值:)(3517403.11420006元≈⨯则收回剩余成本7652元需要:7652÷35174≈0.22(年)所以,整个软件的投资回收期为:5.22年。
所以投资回收期5.22>软件生命周期5投资回收率计算方法(1)概念:所谓投资回收率即平均每年回收成本的百分比。
投资回收率高于银行利息才合算;投资回收率越高越好!P=F1/(1+j)+F2/(1+j)2+F2/(1+j)3+…+Fn/(1+j)n设n=5,解出此方程,计算出的j 就是投资回收率。
(2)举例:仍以上例计算3%%65.1)1(1)1(1)1(1)1(111420002000005432年利率<≈⇒⎥⎦⎤⎢⎣⎡+++++++++=j j j j j j 五、技术可行性研究1、主要工作是:风险分析。
其任务是在给定的约束条件下,论证能否实现系统所需的功能和性能。
资源分析。
其任务是论证是否具备系统开发所需各类人员的数量和质量、软硬件资源和工作环境等。
技术分析。
其任务是论证现有的科学技术水平和开发能力是否支持开发的全过程并达到系统功能和性能的目标。
2、主要方法是:充分采集系统功能、性能、各种约束条件、所需的各种资源等方面的信息,进而分析系统开发可能承担的技术风险;分析实现系统功能和性能所需的各种设备、人员、技术、方法、工具和过程;从而从技术角度分析开发系统的可行性。
数学建模、原型建造和模拟是基于计算机系统技术可行性研究的有效工具。
六、本章作业P53~544、5对自选项目进行可行性研究附件:可行性研究报告(FAR)FAR是项目初期策划的结果,它分析了项目的要求、目标和环境;提出了几种可供选择的方案;并从技术、经济和法律各方面进行了可行性分析。
可作为项目决策的依据。
主要内容提示:1可行性分析的前提1.1项目的要求1.2项目的目标1.3项目的环境、条件、假定和限制2可选的方案2.1原有方案的优缺点、局限性及存在的问题2.2可重用的系统,与要求之间的差距2.3可选择的系统方案12.4可选择的系统方案22.5选择最终方案的准则3所建议的系统3.1对所建议的系统的说明3.2处理流程和数据流程3.3与原系统的比较(若有原系统)3.4要求在设备、软件、运行、开发、环境、经费、局限性等方面的要求。