软件工程 第2章:可行性研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6. 推荐方案和行动方针
向用户提出推荐的方案,推荐方案应明确: ① 本项目的开发价值; ② 推荐这个方案的理由; ③ 制订实现项目的进度表。
7. 决策
根据经济实力 是否开发?
成本/效益分析
8. 草拟开发计划
① 工程的进度; ② 人才资源的需求及分配; ③ 设备资源的需求及配置(软、硬件工具); ④ 估算生存周期每个阶段的成本; ⑤ 给出下一阶段(需求分析)的详细进度表。
9. 书写文档提交审查
2.3 系统流程图
是描绘物理系统的传统工具 描述信息在系统各部件之间的流动情况 基本思想:用图形符号以黑盒子形式描绘系 统里面的每一个部件
11
1.符号
处理 输入/ 输出 页连接
换页连接
数据流
系统流程图基本符号
符号
名称 穿孔卡片
说明
穿孔卡片输入/输出,或穿孔卡片文件 打印输出,或打印终端输入数据
第2章 可行性研究
所定义的问题有可行的解决办法吗
目的:用最小的代价在尽可能短的时间 内确定问题是否有解,以及是否值得去 解。
2.1 可行性研究的任务
2.2 可行性研究的过程
2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本效益分析
2.1 可行性研究的任务
可行性研究所需的时间取决于工程的规 模,所需要的成本要占工程总成本的 5%~10%。 是一个简化的系统分析和设计的过程
数据流
订货报表 零件编号 零件名称 订货数量 目前价格 主要供应商 次要供应商 事务 零件编号 事务类型 数量
数据存储
订货信息 (见订货报表) 库存清单 零件编号 库存量 库存量临界值
D1 库存清单 库存清单
仓库
管理员
事务
1 处理 事务
2 产生 定货报表 采购员 报表 定货信息
定货信息
D2 定货信息
1MM = 19 人日 = 152 人时 =1/12 人年 经验常数 r, c, a, b 取决于项目的总体类型
街道+门牌号+(电话)
2. 数据字典的用途
① 作为分析阶段的重要工具;
② 数据元素的控制信息非常有用;
③ 有助于开发数据库。
3. 数据字典的实现
(1)程序处理——CASE
(2)卡片式人工书写
2.6 成本/效益分析
1. 成本估计
① 代码行技术(LOC技术)
② 任务分解技术
③ 自动估计成本技术
(1)代码行技术(LOC技术) 软件成本 = 每行代码的平均成本 × 估计的源代码总行数
经验和历史数据
步骤
① 确定功能:功能反复分解,直到可以估算可靠的 源代码行数为止。 ② 估算各子功能代码行数的平均值Le (根据经验和历史数据)
a 4m b Le 6
最小规模a 最大规模b 最可能的规模m
③ 确定子功能的代码行成本和生产率
代码行成本:生产一条有 效代码需要的费用(元/行) 生产率:每个人一个月 所能生产的有效源代码 行数 (行/人月) 历史数据 人员工资 经验 开发人员的技术水平 软件复杂程度等
1. 数据字典的内容
① 数据流
② 数据元素(数据流分量)
③ 数据存储
④ 处理
(1)数据元素字典定义
① 编号、名称、含义 ② 数据类型、长度 ③ 合理取值 ④ 与其它数据的逻辑 关系
数据元素编号:DC001 数据元素名称:考试成绩 别名:成绩、分数 简述:学生考试成绩,分五个等级 类型/长度:两个字节,字符类型 取值/含义:优 [90-100] 良 [80-89] 中 [70-79] 及格 [60-69] 不及格 [0-59] 有关数据项或结构:学生成绩档案 有关处理逻辑:计算成绩
输入:乘客订单,来源:外部实体“乘客”
输出:1.合格订单,去处:处理逻辑“确定订票” 2.不合格订单,去处:外部实体“乘客” 功能描述:……(略)
(5)组成数据项的表示方法
= 表示“等价于”或“定义为”
+
{} ()
表示“与”
表示重复 表示可选项
[ ]与 | 表示“或”
通讯录={通讯地址}
通讯地址=姓名+邮编+[省|直辖市|自治区]+[市|县]+
③ 去处
④ 组成
⑤ 流通量
⑥ 峰值
(3)数据存储字典定义 ① 编号、名称 ② 组成
③ 其它要求
(4)数据处理字典定义
① 编号、名称 ② 简单描述 ③ 输入/输出 ④ 功能描述 ⑤ 相关数据存储
数据处理字典定义实例:
数据处理编号:DP001
数据处理名称:编辑订票
简述:接收从终端录入的订票单,检验是否正确
(3)自动估计成本技术
减轻人的劳动但要有大量的经验数据作基础,要有 良好数据库系统支持。 采用自动估计成本的软件工具估计。
43
2. 软件开发成本估算的经验模型
(1)Putnam 模型 1978年Putnam提出的,一种动态多变量模型:
L=Ck﹒K ﹒td
1/3
4/3
L——源代码行数(用LOC计算) K——软件开发与维护期内的工作量(人年) Ck——技术状态常数 td——开发持续时间(年)
1.1
仓库 管理员 事务 接收 事务
1.2 更新 库存 清单
1.3 处理 定货
2 产生 定货报表 采购员 报表
定货信息
定货信息
D3 事务
D2 定货信息
批量方式更新库存清单
对应的物理实现硬件方案
2.5 数据字典
数据字典:对数据流图中包含的所有
元素的定义的集合
可行性研究阶段,数据流图与数据字典共同构 成系统的逻辑模型。
3. 导出新系统的高层逻辑模型
现有系统 新系统
物理系统
物理系统
逻辑模型
逻辑模型
(4)重新定义问题
定义系统目标
新系统逻辑模型
复合系统目标
复查目标和规模 研究现有系统
设计新系统
5. 导出、评价供择方案
方案筛选
① 技术角度:排除不现实的方案
② 操作角度:去掉操作方式或操作过程用户不能接
受的方案
③ 经济角度:估算每个方案的成本/效益
④ 计算各子功能的成本和人力(工作量) 子功能的成本=代码行的平均值×代码行成本 子功能的人力=代码行平均值÷生产率
⑤ 计算项目的总代码行数、总成本和总工作量
41
(2)任务分解技术
软件开发项目分解为若干个相对独立的任务,
分别估计每个单独任务的成本:
单独任务成本 = 任务人力估计×每人每月平均工资
④ 如果必须用两个动词才能描述整个处理的功能,则
分解成两个处理更恰当;
⑤ 如果命名时遇到困难,则可能是数据流图分解不当
引起的。
(3)数据源点/终点命名
采用它们在问题域中惯用名(如仓库管理员、 采购员)
4. 数据流图的用途
1)作为交流信息的工具; 2)作为软件分析和设计的工具。
经验表明:如果一张数据流图包含的处理大于
定货系统的功能级数据流图
此数据流图不能描述订货信息产生过程
D1 库存清单 库存清单 1.1 仓库 管理员 事务 接收 事务 1.2 1 1.3 处理 定货 2 定货报表 采购员 产生 报表
处理事务 更新
库存 清单
定货信息
定货信息
D2 定货信息
定货系统进一步分解后的数据流图
3. 命名
(1)数据流(或数据存储)命名
磁带输入/输出,或表示磁带文件 任何种类磁盘存储,如磁盘、磁鼓等 磁盘输入/输出,或磁盘上文件、数据库
文档
磁带 联机存储 磁盘
磁鼓
显示 人工输入 人工操作
磁鼓输入/输出,或磁鼓上文件、数据库 显示器部件
人工输入数据,如填写表格 人工完成的处理 使用辅助设备进行的脱机操作
辅助操作 通信链路
通过远程通信线路传送数据
项目总成本 = 各个单独任务成本估计值之和
· T=∑ B
B=C· D
T=∑ C· D ·
设: T-软件总成本 B-每个单独开发任务的成本 -系数 C-完成每个单独任务所需的人力(月) D-每人每月的平均工资
常用的办法是按开发阶段划分任务,典型环境下
各个阶段投入人力百分比:
任务 可行性研究 需求分析 设计 编码与单元测试 综合测试 总计 人力(%) 5 10 25 20 40 100
T
*
C
* 与
+ 或
○ + 互斥
A B
A B
B
+
T
C
A
T
+
C
B
○ +
T
C
A
T
○ +
C
注意:
“处理”可表示:单个程序、一系列程序、程序的 一个模块、人工处理过程等; “数据存储”可表示:一个文件、文件的一部分、
数据库记录等;
数据流图忽略出错处理、打开文件、关闭文件。
2.绘制数据流图的例子
事务
库存清单程序 库存清单 主文件
Ck为技术状态常数,它反映“妨碍开发进展的限 制”,取值因开发环境而异:
Ck的典型值 开发环境 2000 8000 11000 差 好 优 开发环境举例 没有系统的开发方法,缺乏文档和复审 有合适的系统的开发方法,有充分的文档 和复审 有自动的开发工具和技术
(2)COCOMO模型(constructive cost model)
定货 信息
报告生成程序 定货报告
库存清单系统的系统流程图
仓库
事务
定货 定货报表
管理员
采购员
系统
定货系统的基本系统模型
D1 库存清单 库存清单 1 处理 事务 2 产生 定货报表 采购员 报表 定货信息
仓库
管理员
事务
定货信息
D2 定货信息 定货系统的功能级数据流图
数据流图的组成元素
源点/终点 采购员 仓库管理员 处理 产生报表 处理事务
开始
问题定义
可行性研究
N
Y
可行否? 项目实施的计划
终止项目的建议 停止
转开发期
计划时期的工作流程图
怎样得到有用的软件?
Who
为谁设计,用户是谁? 要解决哪些问题?
为什么要解决这些问题?
What
Why
3W
典型的可行性研究的步骤
1. 复查系统规模和目标
2. 现有系统研究
必须具备现有系统的功能; 必须改进现有系统存在的缺点; 增加现有系统所不具备的功能且必须的功能; 现有系统的运行费用是重要的投资依据。
4.人员培训费用
举例:关于开发CAD系统的软件开发成本及效益分析
成本-效益(万元) 60 40 20 该系统成本 该系统节省经费
盈亏平衡点
0
1 2 3 投资回收期
2016/7/1
4
5
年
1.系统概述
可行性论
证报告
2.可行性分析
3.拟订开发计划 4.结论意见
2016/7/1
2.2 可行性研究的步骤
可行ຫໍສະໝຸດ Baidu应考虑五个方面:
技术可行性 经济可行性
:使用现有的技术能实现这个系统吗?
:经济效益能否超过开发成本? :新系统规定的运行方式是否可行? :系统的操作方式在新组织内是否可行? :是否会侵犯他人、集体或国家的利益? 是否违反了国家的法律?
运行可行性
操作可行性
法律可行性
技术可行性
(2)数据流字典定义
基本内容: ① 编号、名称 ② 来源
数据流编号:DF001 数据流名称:订票单 简述:订票时填写的订票单 数据流来源:外部实体“乘客” 数据流去处:处理逻辑“预订机票” 数据流组成:订单编号 日期 乘客号 航班号 状态 订单失效日期 流通量:每天300份 高峰值流通量:每天早上9:00,约160份
5~9个,理解就比较困难,应进行细化分解。
可以通过边界划分,表达数据的处理方式。
D1 库存清单 库存清单 1.2 1.1 1.3 仓库 事务 接收 更新 处理 管理员 事务 库存 定货 清单
定货信息
2 产生 定货报表 采购员 报表
定货信息
D2 定货信息
联机方式更新库存清单
对应的物理实现硬件方案
D1 库存清单 库存清单
是由TRW公司开发,Boehm提出的结构化成本估算模型,
是一种精确的、易于使用的成本估算方法。
基本COCOMO模型 工 作 量: MM = r×(KDSI)c 开发时间: TDKV = a×(MM)b (人月) (月)
DSI:源指令条数,不包括注释,1KDSI = 1000DSI
MM:开发工作量(以人月计)
① 能代表整个数据流(或数据存储)的内容 ② 不使用空洞的、无含义的名字(数据、输入) ③ 如果命名时遇到困难,很有可能是由于对数据流图
分解不当造成的,应尝试重新分解数据流图。
(2)处理命名
① 通常在数据流命名后再为相关的处理命名;
② 名字应能反映整个处理的功能;
③ 避免用空洞笼统的动词做名字(处理、加工);
评价系统的性能、可靠性、可维护性、生产率等 评估结论
完成系统的功能和性能需要什么技术?
需要哪些方法、算法、过程… 技术可行性分析方法---数学模型和优化技术、 概率和统计、排队论、控制论等方法
经济可行性 论证的焦点:系统开发的价值
1.硬件设备费用
基于计算
机系统的
成本组成
2.系统开发费用
3.安装维护费用
系统符号
2.4 数据流图
描绘数据在系统中流动的逻辑过程
定义:
一种图形化描述技术 数据从输入到输出的变换 系统的数据逻辑过程 没有具体的物理元素 表示系统逻辑功能,不考虑具体实现
1. 符号
或
数据源点或终点
或
变换数据的处理
或
数据存储 数据流
基本符号的含义
附加符号
A B
B
*
T
C
A