第3章 结构化分析(案例补充)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
36
5. 导出供选择的解法 现在小王对用户的问题已经有了比较深入的理解,但 是,问题能够解决吗?有行得通的解决办法吗?回答这些 问题的惟一方法是,导出一些供选择的解决办法,并且分 析这些解法的可行性。 怎样导出供选择的解法呢?一个常用的简单方法是从 数据流图出发,假设几种划分自动化边界的模式,并且为 每种模式设想一个系统。例如,可以把“收集数据”和“ 审核数据”两个处理放在同一个边界内,从而意味着一个 数据收集程序;对事务数据的处理放在另外的边界内,因 此代表另一个程序。或者考虑把“审核数据”和“加工事 务数据”放在同一个自动化边界内,这可能意味着一个批 处理程序,它首先校核数据然后加工数据。总之,每当分 析员选取一组不同的自动化边界时,就可能意味着一种不 同的解法。
19
2. 研究现有的系统 了解任何应用领域最快速有效的方法,可能都是研究现 有的系统。但是,分析员应该记住,研究现有系统的目的只 是了解它,用它作为开发新系统的借鉴,千万不要被实现现 有系统的技术细节迷住而花费过多时间和精力。 首先应该访问关键人员。怎样知道谁是关键人员呢?以 前访问财务科长时曾了解到两名具体处理工资事务的会计的 姓名,因此可以从访问这两个人入手。经过询问,小王知道 了处理工资事务的大致过程。在现阶段小王把学校的工资支 付系统还看作一个黑盒子,他用图描绘了处理工资支付事务 的大致过程。
13
工资支付系统分析案例—问题定义
优秀的系统分析员还应该进一步考虑,我们所面临的问题究竟是什 么。财务科长为什么要求他研究在自己的计算机上实现工资支付系统 的可能性呢? 虽然知道了目前用人工计算工资所需的成本,但是在这样的早期阶 段,小王对新系统的运行费用和开发成本却只能猜测。但是,规定未 来系统的规模却仍然是可能的。目前,每个月需要由两名会计花费半 个月的时间来计算工资和编制报表,一名会计每个月的工资和岗位津 贴共约2000元,因此,每年为此项工作花费的人工费约2.4万元。显 然,任何新系统的运行费用也不可能减少到小于零,因此,新系统每 年最多可能获得的经济效益是2.4万元。 为了每年节省2.4万元,投资多少钱是可以接受的呢?绝大多数单 位都希望在三年内收回投资,因此,对于这个项目来说,7.2万元开发 成本可能是一个合理的上限值。虽然这是一个很粗略的数字,但是它 确实能使得用户对项目规模有一些了解。如果这项工作不能在7.2万元 之内完成,那么它可能是不值得做的。
3
系统流程图
系统流程图是描绘物理系统的传统工具。它表达 系统中各个元素之间的信息流动的情况。 系统流程图由一系列图形符号组成,这些符号在 不同的文献中引用不一样。
4
系统流程图
系统流程图的基本符号:
5
系 统 流 程 图 符 号
6
系统流程图
库存清单系统的系统流程图: 某企业有一个仓库,仓库中 的各种物品的数量及各种物 品库存量临界值等数据记录 在库存文件上,当库房中物 品数量有变化时,应更新库 存文件。若某种物品的库存 量少于库存临界值,则报告 采购部门以便定货,规定每 天向采购部门送一份定货报 告。
20
图 处理工资事务的大致过程
21
小王的目标是了解图中这个黑盒子(工资支付系统)的 内容。怎样达到这个目标呢?通常,从黑盒子的边缘开始了 解,由表及里逐步深入。谁接收课时表和任务表?谁分发工 资明细表?对这些问题的回答能使小王知道一些处在黑盒子 内部的人员,显然这些人比小王对工资支付系统了解得更多 ,通过他们可以了解到更多情况。上述做法虽然简单但却比 较有效,概括地说,就是从你已经知道的事物开始,访问处 在你所知道的事物边缘的人,通过他们了解边缘功能,并请 他们建议下一步应了解的事物。这样逐步做下去,将使得你 对现有系统了解得越来越多。
15
表
关于工资支付系统规模和目标的报告书
关于系统规模和目标的报告书
2002.12.26
项目名称:工资支付 问题:目前计算工资的编制报表的费用太高 项目目标:研究开发费用较低的新工资支付系统的可能性。 项目规模:开发成本应该不超过7.2万元(±50%)。 初步设想:用学校自已的计算机第统生成工资明细表和财务报表。 可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历 时两周的可行性研究。这个研究的成本不超过4000元。
和现有的物理系统相联系的一个问题是,常常很难区 分“做什么”和“怎样做”这两类不同范畴的知识。因此 ,下一步应该导出工资支付系统的高层逻辑模型。
23
现有的工资支付系统
24
3. 导出高层逻辑模型 系统流程图是描绘物理系统的好方法,然而有时可能因 为图中符号表达的含义过分具体反而不符合需要。例如, 图2.20中梯形框代表人工完成的数据处理功能。但是,我们 的目标并不是一成不变地复制现有的人工系统,而是开发 一个用计算机完成同样功能的新系统。因此,小王希望用 另一种方式总结从现有系统中获得的知识,不是准确地描 绘具体的实现方法,而是着重描绘系统的逻辑功能。数据 流图是实现这个目标的极好工具。
10
3. 投资回收期 投资回收期越短,获得利润就越快,则该项目就越 值得开发。 例如:某软件修改后,2年后可节省4225.12元 ,比最初的投资(5000元)还少774.88,第三年 再节省1779.45元,则 774.88/1779.45=0.44,因此,投资回收周 期是2.44年。
11
D4 5
报表
1 收集 数据
2 审核 数据
更新分类 账
图 工资 支付系 统完整 的数据 流图
教师
职工
教师
职工
会计
34
数据字典
小王为工资支付系统中几个数据元素填写的数据字典卡片中。
图 工资支付系统的数据字典卡片
35
4. 进一步确定系统规模和目标
可行性研究的上述4个步骤可以看作是一个循环。分析 员定义问题,分析这个问题,导出试探性的逻辑模型,在 此基础上再次定义问题,……重复这个循环直至得出准确 的逻辑模型为止,然后分析员可以开始考虑实现这个系统 的方案。
收集数据 审核数据 加工事务数据 分发工资明细表 更新分类账
26
根据表中列出的基本元素,可以画出工资支付系统的 数据流图(见图)。从这张图中很容易看出从收集数据到 加工事务数据产生工资表、工资明细表和财务报表的过程。
图 工资支付系统的数据流图
27
注意,从“加工事务数据”处理框流出的“报表”进 入另一个处理框“更新分类账”。对分类账的处理是另一 个系统的任务,但是,工资支付系统至少必须和这个系统 通信,因此搞清楚它们之间的接口要点是很重要的。 最后,分析员应该在数据流图上直接注明关键的定时 假设。在以后的系统设计过程中这些假设将起重要作用。 清楚地注明这些假设也可以增加及时发现并纠正误解的机 会。
7
成本-效益分析
成本-效益分析的目的是从经济角度评价开发一个 新的软件项目是否可行。 成本-效益分析首先是估算将要开发的系统的开发 成本,然后与可能取得的效益进行比较和权衡。
8
1. 成本估计 代码行定量估算方法 任务分解技术估算成本。
9
2. 货币的时间价值 F=P(1+i)n P:现在存入钱数 i:年利率 F:n年后能收入的钱数 假设年利率为12% 假设每年节省2500元,则每年节省的钱的现在价值:
18
1. 复查系统规模和目标 在问题定义阶段确定的系统规模和目标准确到什么程度 呢?校长和财务科实际需要什么样的系统呢?分析员在进行 可行性研究时首先应该进一步澄清问题定义,为此需要进行 一系列调查访问。 最后,小王应该做一些必要的准备工作。需要他研究解 决的是工资支付问题,工资支付有它自己的专门术语和专门 知识。分析员在分析一个问题之前,必须学习了解一些这个 应用领域的基本知识。学习的目的不是要变成一个工资支付 问题专家,只是要获得对这个应用领域的基本了解。
软件工程
Software Engineering
1
结构化分析 案例补充
2
可行性分析研究步骤
1.复查系统规模和目标 2.研究目前正在使用的系统(系统流程图) 3.导出新系统的高层逻辑模型(数据流图和数据字典) 4.进一步定义问题 5.导出和评价供选择的解法(可行性分析) 6.推荐行动方针 7.草拟开发计划 8.书写文档提交审查
14
2. 关于系统规模和目标的报告书 现在小王对需要解决的问题和新系统的规模都有了一些 认识,是否会计们心中也是这样想的呢?小王会不会误解了 问题的某些方面呢?肯定会有误解的地方!对错误问题的解 答即使再圆满又有什么价值呢?!如果小王对问题的认识与 会计或校长的认识不一致,那么他无论怎样努力也开发不出 能解决实际问题的系统。一个系统,甚至一个“好”系统, 如果不能解决实际问题,那么它就是一文不值的,只不过是 白白浪费开发资源和经费。因此,在系统生命周期的这个早 期阶段,小王清晰地表达出他对问题的认识并请用户和领导 审查、纠正他的认识,是极其重要的。典型地,用一个简单 的书面备忘录表达分析员对问题的认识,这份文档称为“关 于系统规模和目标的报告书” 。
28
关于工资支付系统的详细信息只能来源于直接工作 在这个系统上的人。因此,再次访问财务科长和具 体处理工资事务的两位会计。 数据流图是使讨论时焦点集中的极好工具,从数据 流图的数据源点开始,沿着数据流循序讨论。 最后,把新发现的数据源点、数据处理和数据存储 补充到数据流图中,得到新的数据流图。
怎样得出系统的数据流图呢?首先应该找出构成数据 流图的四种基本元素(数据流的源点或终点,处理,数据 流,数据存储),第二步是把找出的四种基本元素组合成 数据流图。
25
通过上述分析得到的工资支付系统数据流图的四种基本元 素列在表中。
表
源点/终点 教师 职工 会计 银行
工资支付系统数据流图元素
数据存储 事务数据 工资表 工资明细表 报表 处 理 数 据 流 (与数据存储相 同)
32
把分解“加工事务数据”处理框的结果加到原来的 数据流图中,得到一张更详细的新数据流图
33
6 更新人事 数据 D6 人事数据 3.1 取数据 3.2 计算正常 工资 人事科 银行
D5 年度数据 3.3 计算超额 工资 3.4 更新年度 数据
D2 工资表
3.5 印表格
D1 事务数据
D3 工资明细表 4 分发工资 明细表
16
关于系统规模和目标的报告书并没有标准格式,它的 具体格式往往随项目而异。书写这份文档的基本原则是, 分析员应该尽可能简明清晰地叙述他对问题的理解。
17
工资支付系统分析案例—可行性研究
本项目的可行性研究过程由下述8个步骤组成。 1. 2. 3. 导出高层逻辑模型 4. 进一步确定系统规模和目标 5. 6. 7. 草拟开发计划 8. 写出文档提交审查
22
通过向财务人员多次询问,小王了解到现有的人工系 统计算工资和编制报表的流程。
现在,小王已经用一张系统流程图描绘了现有的工资 支付系统。但是,这张图对现有系统的描绘准确吗?小王 已经把工资支付系统的所有关键功能都划分出来了吗?小 王应该请有关人员仔细审查这张系统流程图,有错误就应 该改正,有遗漏就应该补充。
29
图 补充后的工资支付系统数据流图
30
4 通常,使用下述的功能分解方法来细化数据流图: 选取数据流图上功能过分复杂的处理,把它分解成 若干个子功能,这些较低层次的子功能成为新数据 流图上的处理,它们有自己的数据存储和数据流。 将图中“加工事务数据”这个处理分解,用图来描 绘。
31
图对“加工事务数据”的细化
4. 纯收入 纯收入就是在整个生命周期之内的累计经济效益与 投资之差。 例如:上述软件修改后,工程的纯收入预计是: 9011.94-5000=4011.94(元)
12
工资支付系统分析案例—问题定义
来自百度文库
工资支付问题定义 一天,学校的财务科长把小王找去,请他研究用 学校自己的微型计算机生成工资明细表和各种财务报 表的可能性。 1. 定义问题的过程 显然,需要考虑的具体技术问题很多,但是在这 样的早期阶段就考虑这么具体的技术问题,却很可能 会使我们迷失前进的方向。会计部门(用户)并没有 要求小王在学校自己的计算机上实现工资支付系统, 仅仅要求他研究这种可能性。后者是一个非常重要的 然而和前者又很不相同的问题,它实际上是问,在自 己的计算机上实现工资支付系统,预期将获得的经济 效益能超过开发这个系统的成本吗?换句话说,这项 工作值得做吗?