1、系统的分析与设计 系统 在存储程序的控制下,计算机把数据处理成信息。对系统的定义略加思考,任何一个已知的计算机应用至少包含三个部分,硬件、软件和数据。仅仅编写程序是不够的,因为程序只是系统中的一部分。 系统就是为实现一个目标而共同工作的一组部件。例如,考虑一个工资系统,它的目标是为雇员付工资,应包含哪几个部分呢?每天雇员们把他们工作的时数记录在计时卡上,每周末把计时卡收集起来,送给计算中心,在计算中心把计时卡上的数据读给工资程序。当工资程序执行时,程序存取数据文件。最后,打印出工资单,用来分发。为使系统工作 ,人、处理过程、输入和输出介质、文件、硬件和软件都必须认真地协调。注意,程序只是系统中
2、的一部分。 系统分析 因为人们需要信息,所以要开发基于计算机的系统。被称为用户的那些人常常知道需求什么信息,但是他们可能缺乏得到这些信息的计算机的专门知识。计算机技术方面的专业人员,例如程序设计员有这方面的专门知识,但是可能在用户的专业领域内缺少训练。麻烦的是,用户和程序似乎常常讲不同的语言,导致了两者之间的联系障碍。系统分析员是一个专业人员,他能把用户的需求转换成计算机技术术语因此他是用户和技术人员之间的桥梁。 像工程师建筑师一样,系统分析员把扎实的技术技能与见识,想象力和一点艺术结合起来去解决问题。 通常,分析员遵循一个意义明确的有条理的过程,至少包括以下几个步骤 : 1. 问题的定义 2
3、. 分析 3. 设计 4. 实现 5. 维护 在每个步骤结尾,研究的结果都要形成文件,提供给用户和程序设计员。 基本的思想是要尽早地抓住和修正错误以及一些未理解之处。 也许通过一个例子说明该过程是最好的方法。 设想一个小服装店,成批的购买货物 ,所货物摆在货架上 , 零售给顾客。 一方面 ,库存太多会造成不必要的开销;另一方面可供 挑选的商品太少会使顾客失去购买的信心。 理想上,希望达到一个平衡,货物既充足但又不太多。 麻烦的是,随着顾客的购买库存减少了,还有退货以及追加订货等情况,所以货物的清单经常地发生变化。店主喜欢按货物清单购销,刚好在商店售完某种货物之前,再订购这种货。对一项商品,该任
4、务是容易完成的,只要计算一下手头现存的货物数量就行了。遗憾的是商店要经营几百种不同的货物,始终跟踪每一种货物的销售情况是不实际的,也许计算机可以帮这个忙吧! 问题定义 在系统分析和设计过程中的第一步,是问题的定义。分析员的目标是确定用户需求什么。 注意,当这个过程开始时,用户拥有很重要的资料,分析员必须认真地听和学。用户几乎都不是计算机方面的专家,他们大多数人把计算机看成魔术盒,并不关心它是如何工作的。在该阶段上,分析员不必考虑程序、文件或计算机硬件,但他们必须用用户自己的专业术语与用户对话。 目的是确保用户和分析员两者都思考同一件事。因此,一份能表达分析员对问题理解程度的清晰的书面报告是必要
5、的。用户应该反复地阅读和修改这份书面报告。此时是在时间、金钱和精力被浪费之前抓出错误和疏漏的好时机。 通常 ,接着初步的问题定义 ,分析员要进行可行性研究。该研究是 整个系统分析和设计一个简略的方案 ,应力图回答以下三个问题 : 1. 问题能解决吗 ? 2. 在用户的环境下问题能解决吗 ? 3.在一个合适的花费上问题能解决吗 ? 如果这些问题中的任何一个得到的是否定回答 ,那么该系统就不应开发。有了好的问题定义和肯定的可行性研究 , 分析员就能着手计划和研究问题的解了。 分析 当分析开始时,分析员要理解问题,下一步要决定的是为了解决问题必须做什么。用户清楚必须做什么。在分析阶段得到了这方面知识
6、,并正式地形成文件。大多数用户是按着所要完成的功能和要处理的数据元素去思 考的,目的是要区分并联接这些关键的功能和数据元素,随之产生逻辑系统设计。 从系统的基本功能入手,关键是始终监视货单中每种商品的现存量。因为顾客购买、换货和退货,所以货单要改变,因此系统必须处理顾客办理的手续。店主希望有选择地查看供应中任意一种短缺商品的清单,如果合理的话,定货补充库存,因此系统必须能和经营管理部门对话。最后,经过经营管理部门的核准,系统应该产生一个重新订货单,准备发送给供应商。 已知了系统的基本功能,分析员的下一个任务是分析理解这些功能之间逻辑关系的知识。启动这项工作的一个好方法是描述功能之 间的数据如何
7、流动。顾名思义,为了用图解方法描述这些数据流,那么数据流程图就是特别有用的。四种符号:数据的源和目的地用方框表示,输入的数据从源进入系统,而输出的数据流到目的地。数据一进入系统,就被若干进程加工或改变,用圆角的矩形表示这些过程。进程可以是程序、过程以及能够改变或传送数据的任何事件。为了后续处理,数据被存储可以是磁盘文件、磁带文件、数据库、一些笔记或者甚至是人的记忆。最后,数据源、数据目的地、处理过程和数据存储之间的数据流向用箭头表示。 货单管理系统的初步的数据流程图。从 CUSTOMER(顾客)开 始,由此事务进入系统,在这所办理的手续由 PROCESS TRANSACTION(事务处理程序)
8、处理。 STOCK 保存货单中每项商品的数据。为了对新的事务处理起作用,事务处理程序要改变数据。同时,MANAGEMENT(经营部门)可通过 COMMUNICATE(通信)存取系统,检查 STOCK 中的数据,如果需要的话,请求重新订货。订货单一经核准, GENERATE REORDER(产生再订货单程序)就向 SUPPLIER(供应商)发出需要的数据,供应商就把货运送到商店。注意,因为订货表现为某种待定的商品或某些商品在清单中 的变化,所以把订货作为事务处理。 数据流程图描述了逻辑系统。下一步追溯该系统的数据流向了。从数据的目的地SUPPLIER 开始。例如,重订货单送给了供货商们,商店可能想要 25 条工作裤,为了填写订货单,供应商需要商品的说明和再订货的数量,那么,这些数据从什么地方来呢?由于数据是 Generate reorder 输出的,所以既要有数据输入给它,还要有数据经过它的处理而产生。数据从 STOCK 流入 Generate reorder,因此商品说明和订货数理必定存放在 STOCK 中。 另外一些数据,例如购买的货物品种和数理由 CUSTOMER 产生。还有一些数据,例如销售价格和订货点由 MANAGEMENT 产生,或者由它提出要求。例如,某种已知货物的