1、第5章 系统分析【本章概述】:从方法论的意义上说,系统分析是对要开发的项目进行系统的、按层次的、结构化的、按部就班的研究分析;分析企业过程的输入,处理,输出;提出用计算机改进企业过程的思路和逻辑方案。从这个意义上说,它包含一些方法,这些方法是解决任何问题都需应用的。如调查、访谈、资料整理、方案创意、报告编写等。系统分析过程总体上分两步,首先应将业务或数据流程弄清楚,然后研究分析抓住主要问题,提出解决问题的思路,提出新系统拟采用的方案。细致的可分为系统调查,组织功能分析,业务流程分析,数据流程分析,功能/数据分析和新系统方案提出等。【本章重点知识】l软件需求分析l组织结构与功能分析l数据与数据流
2、程分析l功能/数据分析l新系统逻辑模型的建立l系统分析报告 1、系统分析概述系统分析的目的和任务系统分析的主要步骤2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告1.1 1.1 系统分析的目的和任务系统分析的目的和任务 系统分析的主要任务是对现行系统进一步调查,将系统分析的主要任务是对现行系统进一步调查,将调查中所得到的文档资料集中,对组织内部整体管理状调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需资料,况和信息处理过程进行分析,为系统开发提供所需资料,并提交系统
3、分析报告。系统分析侧重于从业务全过程的并提交系统分析报告。系统分析侧重于从业务全过程的角度进行分析,主要内容有:业务和数据的流程是否通角度进行分析,主要内容有:业务和数据的流程是否通畅,是否合理;数据、业务过程和组织管理之间的关系;畅,是否合理;数据、业务过程和组织管理之间的关系;原系统管理模式改革和新系统管理方法的实现是否具有原系统管理模式改革和新系统管理方法的实现是否具有可行性等。可行性等。确定的分析结果包括开发者对于现有组织管理状况确定的分析结果包括开发者对于现有组织管理状况的了解,用户对信息系统功能的需求,数据和业务流程,的了解,用户对信息系统功能的需求,数据和业务流程,管理功能和管理
4、数据指标体系以及新系统拟改动和新增管理功能和管理数据指标体系以及新系统拟改动和新增的管理模型等。的管理模型等。最后,提出信息系统的各种设想和方案,并对所有最后,提出信息系统的各种设想和方案,并对所有的设想和方案进行分析、研究、比较、判断和选择,获的设想和方案进行分析、研究、比较、判断和选择,获得一个最优的新系统的逻辑模型,并在用户理解计算机得一个最优的新系统的逻辑模型,并在用户理解计算机系统的工作流程和处理方式的情况下,将它明确地表达系统的工作流程和处理方式的情况下,将它明确地表达成书面资料成书面资料-系统分析报告,即系统分析报告。系统分析报告,即系统分析报告。1、系统分析概述系统分析的目的和
5、任务系统分析的主要步骤2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告1.2 1.2 系统分析的主要步骤系统分析的主要步骤 信息系统是一个具有业务复杂性和技术复杂性信息系统是一个具有业务复杂性和技术复杂性的大系统,为了使目标系统既能实现当前系统的基的大系统,为了使目标系统既能实现当前系统的基本职能,又能改进和提高,系统开发人员首先必须本职能,又能改进和提高,系统开发人员首先必须理解并描述出已经实际存在的当前系统,然后进行理解并描述出已经实际存在的当前系统,然后进行改进,从而创造出基于当前系统,又高于当前系统改
6、进,从而创造出基于当前系统,又高于当前系统的目标系统,即新系统。的目标系统,即新系统。1、系统分析概述系统分析的目的和任务系统分析的主要步骤2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告1.2 1.2 系统分析的主要步骤系统分析的主要步骤认识、理解当前的现实环境,获得当前系统的“物理模型”;从当前系统的“物理模型”抽象出当前系统的“逻辑模型”;对当前系统的“逻辑模型”进行分析和优化,建立目标系统的“逻辑模型”;对目标系统的逻辑模型具体化(物理化),建立目标系统的物理模型。1、系统分析概述2、软件需求分析什么
7、是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.12.1什么是软件需求什么是软件需求信息系统开发的初衷是为用户服务,为之提供方便快捷的软件应用系统,提高他们的工作的效率。作为软件开发组织,在着手开发之前要充分了解用户的使用需求,这样才能保证开发出的系统适合用户使用 要研究软件需求,首先要了解什么是软件需求。信要研究软件需求,首先要了解什么是软件需求。信息系统的功能可以分成硬件部分的功能和软件部分息系统的功能可以分成硬件部分的功能和软件部分的功能。软件部分正如我们所知道的,是一个分层的功
8、能。软件部分正如我们所知道的,是一个分层的系统,从最低的操作系统到最上面的应用软件。的系统,从最低的操作系统到最上面的应用软件。对于一个软件开发项目来说,应用软件的功能是软对于一个软件开发项目来说,应用软件的功能是软件开发小组需要实现的功能,因此也就是这个软件件开发小组需要实现的功能,因此也就是这个软件系统的需求系统的需求。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.12.1什么是软件需求什么是软件需求软件需求的来源是客户的需要和构想,此外还要加
9、上软件需求的来源是客户的需要和构想,此外还要加上现实的环境。现实的环境包括技术环境和经济环境等。现实的环境。现实的环境包括技术环境和经济环境等。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.22.2软件需求的结构软件需求的结构 在知道了什么是软件需求之后,我们需要在知道了什么是软件需求之后,我们需要了解软件需求中包含了什么了解软件需求中包含了什么“元素元素”。对于需求包含的元素,从不同的角度会得对于需求包含的元素,从不同的角度会得到不同的结果。通常
10、我们认为软件的需求可以到不同的结果。通常我们认为软件的需求可以分为两大类分为两大类-功能需求和项目约束。功能需求和项目约束。功能需求功能需求-说明的是软件需要做什么说明的是软件需要做什么项目约束项目约束-给出了做的标准和做的限制。给出了做的标准和做的限制。这两者都是软件需要努力达到的目标,也这两者都是软件需要努力达到的目标,也就是软件需求。就是软件需求。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.22.2软件需求的结构软件需求的结构 除了以上的分
11、类方法,我们还可以把软除了以上的分类方法,我们还可以把软件需求分为描述需求和潜在需求。前者是已件需求分为描述需求和潜在需求。前者是已经使用功能点和约束进行了规则化描述的需经使用功能点和约束进行了规则化描述的需求,后者则只是代表了一种可能的需要、未求,后者则只是代表了一种可能的需要、未来的需要或者被忽略的需要。潜在的需求是来的需要或者被忽略的需要。潜在的需求是指那些没有明确列在功能中的各种对于软件指那些没有明确列在功能中的各种对于软件的要求(如灵活性),目前没有需要但是以的要求(如灵活性),目前没有需要但是以后需要的功能等。后需要的功能等。2.22.2软件需求的结构软件需求的结构1、系统分析概述
12、2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告软件需求的分析和捕获过程就是不断地由潜在需求转换为软件需求的分析和捕获过程就是不断地由潜在需求转换为已描述需求的过程。软件需求的结构可以用图已描述需求的过程。软件需求的结构可以用图5-35-3表示。表示。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.22.2软件需求的结构软件需
13、求的结构 以上的观察和分类指出了需求的来源方式。在以上的观察和分类指出了需求的来源方式。在与客户交流的过程中,我们还需要了解各项需求的与客户交流的过程中,我们还需要了解各项需求的重要性以及确保软件需求的稳定性。重要性以及确保软件需求的稳定性。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程 软件开发过程的第一步,就是确定软件的需求,软件开发过程的第一步,就是确定软件的需求,它将为后面的各个开发阶段的展开打下基础。在大它将为后面
14、的各个开发阶段的展开打下基础。在大量的软件工程实践的基础上,人们发现需求的捕获量的软件工程实践的基础上,人们发现需求的捕获和需求分析的质量直接关系到软件开发的质量。人和需求分析的质量直接关系到软件开发的质量。人们对软件需求的捕获、分析的过程和方法进行了深们对软件需求的捕获、分析的过程和方法进行了深入的研究,逐渐总结出了一套工程化的方法,这就入的研究,逐渐总结出了一套工程化的方法,这就是是需求工程需求工程。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2
15、.32.3需求工程需求工程通常依照软件产品包含的内容可以把需求工程的过程分通常依照软件产品包含的内容可以把需求工程的过程分为以下几个阶段:为以下几个阶段:首先是软件需求在客户这一方面是约束双方的一个首先是软件需求在客户这一方面是约束双方的一个阶段,这成为明确原始需求的阶段。在此阶段,软件开阶段,这成为明确原始需求的阶段。在此阶段,软件开发者依据前期了解的一些内容及自己的考虑,列出一些发者依据前期了解的一些内容及自己的考虑,列出一些项目的需求和约束。客户也会有一些对于软件的考虑。项目的需求和约束。客户也会有一些对于软件的考虑。在这个阶段,双方都会形成自己的需求策略。在这个阶段,双方都会形成自己的
16、需求策略。其次是调研阶段,在这个阶段,软件开发者与客户其次是调研阶段,在这个阶段,软件开发者与客户交流,双方不断地讨论,依照自己的需求策略行事。交流,双方不断地讨论,依照自己的需求策略行事。第三个阶段是需求的分析阶段,在这个阶段,把所第三个阶段是需求的分析阶段,在这个阶段,把所有收集的需求进行分析,确定需求的结构。有收集的需求进行分析,确定需求的结构。第四阶段是需求的定义阶段,这个阶段的最大特征第四阶段是需求的定义阶段,这个阶段的最大特征就是需求的格式化和形式化。就是需求的格式化和形式化。第五阶段是需求的确认阶段,开发者和客户对于已第五阶段是需求的确认阶段,开发者和客户对于已经形式化的需求进行
17、确认,逐项确认得到双方认可的需经形式化的需求进行确认,逐项确认得到双方认可的需求。求。经过这五阶段,软件的需求被完整地确定下来。经过这五阶段,软件的需求被完整地确定下来。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需
18、求工程通常来说,需求的使用者至少包括了软件的使用客户和通常来说,需求的使用者至少包括了软件的使用客户和软件的开发组织。软件的开发组织。对于对于软件的使用客户软件的使用客户来说,需求需要清晰地描述出他来说,需求需要清晰地描述出他们的需要,并且能够易于为他们所理解。在此需求指导们的需要,并且能够易于为他们所理解。在此需求指导下进行的软件开发必须能够开发出正确的软件,这个软下进行的软件开发必须能够开发出正确的软件,这个软件能够为客户使用,并且最终为客户带来价值。件能够为客户使用,并且最终为客户带来价值。对于对于软件的开发组织软件的开发组织来说,需求要能够帮助他们进行来说,需求要能够帮助他们进行软件的
19、分析和设计,帮助验证软件的设计是否正确,帮软件的分析和设计,帮助验证软件的设计是否正确,帮助理解客户的实际的需要而不仅仅是表达的需要。助理解客户的实际的需要而不仅仅是表达的需要。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程从上面两类用户的角度来看,对于需求的要求就是准确从上面两类用户的角度来看,对于需求的要求就是准确反映客户的需要和能够为系统的分析和设计提供帮助。反映客户的需要和能够为系统的分析和设计提供帮助。实际上,这两
20、个要求往往是相互抵触的,这也是由客户实际上,这两个要求往往是相互抵触的,这也是由客户的知识背景和软件开发组织的开发人员的知识背景不同的知识背景和软件开发组织的开发人员的知识背景不同造成的。而一份需求要能够填补这两者之间的鸿沟,确造成的。而一份需求要能够填补这两者之间的鸿沟,确实是一件非常不易的事情。对这个问题的理解和解决也实是一件非常不易的事情。对这个问题的理解和解决也决定了需求分析的策略。基本的策略有以下两种:决定了需求分析的策略。基本的策略有以下两种:1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能
21、/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程 站在客户的角度看待客户的问题,需求分析员必须站在客户的角度看待客户的问题,需求分析员必须深入地了解用户所处的工作环境和业务环境等因素,深入地了解用户所处的工作环境和业务环境等因素,完整地记录客户的提议,并进行全局的分析,最终的完整地记录客户的提议,并进行全局的分析,最终的结果需要用户理解并认可。以这样的策略进行开发,结果需要用户理解并认可。以这样的策略进行开发,系统追求的就是满足客户的需要,相对容易地保证了系统追求的就是满足客户的需要,相对容易地保证了软件对需要满足的准确性。但是这种方法,不便于系软件对需要满足的准
22、确性。但是这种方法,不便于系统分析员依照需求进行软件的设计,不便于程序员进统分析员依照需求进行软件的设计,不便于程序员进行软件的开发,也不便于测试人员对软件进行严格的行软件的开发,也不便于测试人员对软件进行严格的测试。这种方式的风险主要在于需求很好地实现和客测试。这种方式的风险主要在于需求很好地实现和客户自己对于需求的把握上。户自己对于需求的把握上。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程 对于偏重开发支持的策略来说,
23、客户的需求需对于偏重开发支持的策略来说,客户的需求需要进行适合开发的描述,也就是尽早地建立所谓的要进行适合开发的描述,也就是尽早地建立所谓的需求模型,然后客户来观察模型是否符合需要,不需求模型,然后客户来观察模型是否符合需要,不符合的地方就进行修改。有时甚至产品已经有了,符合的地方就进行修改。有时甚至产品已经有了,当然就可以进行客户化。这就是常见的当然就可以进行客户化。这就是常见的“产品策略,产品策略,平台策略,解决方案策略平台策略,解决方案策略”。开发组织期待成为某。开发组织期待成为某个领域的专家,甚至个领域的专家,甚至“领域专家比客户更知道他们领域专家比客户更知道他们的需要的需要”,从而据
24、此制定出平台或通用的产品,帮,从而据此制定出平台或通用的产品,帮助客户完整地解决问题。助客户完整地解决问题。1、系统分析概述2、软件需求分析什么是软件需求分析软件需求的结构需求工程3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告2.32.3需求工程需求工程 对于软件企业,这是一个有诱惑力的方案,因为对于软件企业,这是一个有诱惑力的方案,因为在进行最终开发的时候,超过在进行最终开发的时候,超过80%80%的工作都已经完成了,的工作都已经完成了,并且经过了严格的测试,自然可以使用很短的时间完并且经过了严格的测试,自然可以使用很短
25、的时间完成软件,提交给用户。这种方式期待的是成软件,提交给用户。这种方式期待的是“给用户一给用户一个完整的解决方案个完整的解决方案”。在调研和推广的时候,都会对。在调研和推广的时候,都会对客户进行引导和培训。这种方法最重要的前提是开发客户进行引导和培训。这种方法最重要的前提是开发组织真正了解客户需求,而不是自以为了解。否则这组织真正了解客户需求,而不是自以为了解。否则这将会给软件开发带来很大的风险。因为在初期,客户将会给软件开发带来很大的风险。因为在初期,客户对软件系统的认识往往是似是而非的,容易受到诱导,对软件系统的认识往往是似是而非的,容易受到诱导,一旦软件进入开发阶段,随着软件的成型和客
26、户认识一旦软件进入开发阶段,随着软件的成型和客户认识的加深,就会产生需求的变更,拒绝变更,会使客户的加深,就会产生需求的变更,拒绝变更,会使客户满意度降低;接受变更,会打乱软件的开发进程,结满意度降低;接受变更,会打乱软件的开发进程,结构的混乱,通用性的下降。构的混乱,通用性的下降。1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.1 3.1 组织结构调查组织结构调查 组织机构是一个组织内部部门的划分及其相互之组织机构是一个组织内部部门的划分及其相互之间
27、的关系。组织具有其自身的特点,比如组织在交间的关系。组织具有其自身的特点,比如组织在交换物流、资金的过程的同时,也会产生信息流;组换物流、资金的过程的同时,也会产生信息流;组织作为信息的接收者,又是信息的输出者;同时组织作为信息的接收者,又是信息的输出者;同时组织是具有层次性的。我们在做项目前期调查时,应织是具有层次性的。我们在做项目前期调查时,应该侧重了解好如下的一些重要的信息:首先了解组该侧重了解好如下的一些重要的信息:首先了解组织内部的部门划分,以及各部门之间的领导与被领织内部的部门划分,以及各部门之间的领导与被领导关系;接着要知道信息资料如何在各部门之间传导关系;接着要知道信息资料如何
28、在各部门之间传递,物资流动与资金流动的关系;此外还应详细了递,物资流动与资金流动的关系;此外还应详细了解各级组织存在的问题以及对新系统的要求等。解各级组织存在的问题以及对新系统的要求等。1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.1 3.1 组织结构调查组织结构调查组织结构图组织结构图-反映组织内部之间隶属关系的树状结构图反映组织内部之间隶属关系的树状结构图 1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分
29、析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.1 3.1 组织结构调查组织结构调查1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.2 3.2 功能结构调查功能结构调查 功能指的是完成某项工作的能力。为了实现系统目功能指的是完成某项工作的能力。为了实现系统目标,系统必须具有各种功能。各子系统功能的完成,又标,系统必须具有各种功能。各子系统功能的完成,又依赖于下面更具体的工作的完成。管理功能的调查是要
30、依赖于下面更具体的工作的完成。管理功能的调查是要确定系统的这种功能结构。确定系统的这种功能结构。我们可以使用业务功能一览表来表示各项业务功能,我们可以使用业务功能一览表来表示各项业务功能,该一览表是一个完全以业务功能为主体的树型表。其目该一览表是一个完全以业务功能为主体的树型表。其目的在于描述组织内部各部分的业务和功能。如图的在于描述组织内部各部分的业务和功能。如图5-75-7,列出了一个财会业务功能图。列出了一个财会业务功能图。1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型
31、的建立8、系统分析报告3.2 3.2 功能结构调查功能结构调查 1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.3 3.3 组织组织/功能分析功能分析 前面我们介绍了组织结构,组织结构图反映了组织前面我们介绍了组织结构,组织结构图反映了组织内部和上下级关系。但是,对于组织内部各部分之间的内部和上下级关系。但是,对于组织内部各部分之间的联系程度,组织各部分的主要业务职能和它们在业务过联系程度,组织各部分的主要业务职能和它们在业务过程中所承担的工作等却不能
32、反映出来。通过组织程中所承担的工作等却不能反映出来。通过组织/功能功能分析,使组织的功能进一步理顺,提高管理效率。分析,使组织的功能进一步理顺,提高管理效率。1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.3 3.3 组织组织/功能分析功能分析 举例举例:组织组织/功能分析的分析工具是组织功能分析的分析工具是组织/业务功能业务功能联系表联系表 对于组织对于组织/功能分析方面的调整分析的内容主要有:功能分析方面的调整分析的内容主要有:现行系统中不合理现象
33、是什么;不合理的部分对组现行系统中不合理现象是什么;不合理的部分对组织整体目标的影响有哪些,有多大;产生的历史原织整体目标的影响有哪些,有多大;产生的历史原因是什么;改进措施是什么,对与之相关部分(包因是什么;改进措施是什么,对与之相关部分(包含涉及的部门和人员的利益)的影响有哪些。含涉及的部门和人员的利益)的影响有哪些。1、系统分析概述2、软件需求分析3、组织结构与功能分析组织结构调查功能结构调查组织/功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告3.3 3.3 组织组织/功能分析功能分析 1、系统分析概述2、软件需求分析3、组织结构
34、与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告前面已经将业务功能一一理出,而业务流程分析则是前面已经将业务功能一一理出,而业务流程分析则是在业务功能的基础上将其细化,利用系统调查的资料在业务功能的基础上将其细化,利用系统调查的资料将业务处理过程中的每一个步骤用一个完整的图形串将业务处理过程中的每一个步骤用一个完整的图形串起来。在绘制业务流程图的过程中发现问题,分析不起来。在绘制业务流程图的过程中发现问题,分析不足,优化业务处理过程。所以说绘制业务流程图是分足,优化业务处理过程。所以说绘制业务流程图是分析业务流程的重要步骤析业务流程的重
35、要步骤。4 4、业务流程分析业务流程分析1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告4 4、业务流程分析业务流程分析业务流程图业务流程图(transaction flow diagram,TFD)(transaction flow diagram,TFD),就是,就是用一些规定的符号及连线来表示某个具体业务处理过程。用一些规定的符号及连线来表示某个具体业务处理过程。业务流程图的绘制基本上按照业务的实际处理步骤和过业务流程图的绘制基本上按照业务的实际处理步骤和过程绘制。换句话说,就是程绘制。
36、换句话说,就是“一本一本”用图形方式来反映实用图形方式来反映实际业务处理过程的际业务处理过程的“流水帐流水帐”,绘制出这本,绘制出这本“流水帐流水帐”对于开发者理顺和优化业务过程是很有帮助的。对于开发者理顺和优化业务过程是很有帮助的。业务处理单位业务处理功能描述表格/报表制作数据/文档存档信息传递过程收集/统计数据1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告4 4、业务流程分析业务流程分析1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的
37、汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告数据是信息的载体,是今后系统要处理的主要对象。因此必须对系统调查中所收集的数据以及统计和处理数据的过程进行分析和整理。如果没有弄清楚的问题,应立刻返回去弄清楚它。如果发现有数据不全,采集过程不合理,处理过程不畅,数据分析不深入等问题,应在本分析过程中研究解决。数据与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.1 5.1
38、 调查数据的汇总分析调查数据的汇总分析 在系统调查中我们曾收集了大量的数据载体(如报在系统调查中我们曾收集了大量的数据载体(如报表、统计表文件格式等)和数据调查表,这些原始资料表、统计表文件格式等)和数据调查表,这些原始资料基本上是由每个调查人员按组织结构或业务过程收集的,基本上是由每个调查人员按组织结构或业务过程收集的,它们往往只是局部地反映了某项管理业务对数据的需求它们往往只是局部地反映了某项管理业务对数据的需求和现有的数据管理状况。对于这些数据资料必须加以汇和现有的数据管理状况。对于这些数据资料必须加以汇总、整理和分析,使之协调一致,为以后在分布式数据总、整理和分析,使之协调一致,为以后
39、在分布式数据库内各子系统的调用和共享数据资料奠定基础。库内各子系统的调用和共享数据资料奠定基础。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.1 5.1 调查数据的汇总分析调查数据的汇总分析调查数据汇总分析的主要任务首先是将系统调查所得调查数据汇总分析的主要任务首先是将系统调查所得到的数据分为如下三类:到的数据分为如下三类:(1)(1)本系统输入数据类(主要指报来的报表),即今本系统输入数据类(主要指报来的报表),即今后下级子系统或网络要传递的内容;后下级子
40、系统或网络要传递的内容;(2)(2)本系统内要存储的数据类(主要指各种台帐、帐本系统内要存储的数据类(主要指各种台帐、帐单和记录文件),他们是今后本系统数据库要存储的单和记录文件),他们是今后本系统数据库要存储的主要内容;主要内容;(3)(3)本系统产生的数据类(主要指系统运行所产生的本系统产生的数据类(主要指系统运行所产生的各类报表),它们是今后本系统输出和网络传递的主各类报表),它们是今后本系统输出和网络传递的主要内容要内容1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、
41、系统分析报告5.2 5.2 数据流程分析数据流程分析 有关数据分析的最后一步就是对数据流程的分析,有关数据分析的最后一步就是对数据流程的分析,即把数据在组织内部的流动情况抽象地独立出来,数据即把数据在组织内部的流动情况抽象地独立出来,数据流程分析主要包括对信息的流动、传递、处理、存储等流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的是要发现和解决数据流通的分析。数据流程分析的目的是要发现和解决数据流通中的问题,这些问题有:数据流程不畅,前后数据不匹中的问题,这些问题有:数据流程不畅,前后数据不匹配、数据处理过程不合理等。要即时解决这些问题,一配、数据处理过程不合理等。
42、要即时解决这些问题,一个通畅的数据流程是今后新系统用以实现这个业务处理个通畅的数据流程是今后新系统用以实现这个业务处理过程的基础。过程的基础。现有的数据流程分析多是通过分层的数据流程图现有的数据流程分析多是通过分层的数据流程图(data flow diagram,DFDdata flow diagram,DFD)来实现的。其具体的做法是:)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,所掌握的数据处理过程,绘制成一套完整的数据流程图,一边整理绘图,一边核对相应的数据和报
43、表、模型等。一边整理绘图,一边核对相应的数据和报表、模型等。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.2 5.2 数据流程分析数据流程分析或或(a)外部实体(external agent)(b)加工(process)(c)数据存储(data store)(d)数据流(data flow)图5-11 DFD的基本成分DFD的基本成分1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、
44、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.2 5.2 数据流程分析数据流程分析(1)(1)画系统的输入和输出:把整个软件系统看作一个大画系统的输入和输出:把整个软件系统看作一个大的加工,然后根据系统从哪些外部实体接收数据流,以的加工,然后根据系统从哪些外部实体接收数据流,以及系统发送数据流到哪些外部实体,就可以画出系统的及系统发送数据流到哪些外部实体,就可以画出系统的输入和输出图,这张图称为顶层图。输入和输出图,这张图称为顶层图。(2)(2)画系统的内部:将顶层图的加工分解成若干个加工,画系统的内部:将顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图中的输
45、入并用数据流将这些加工连接起来,使得顶层图中的输入数据经过若干个加工处理后变换成顶层图的输出数据流。数据经过若干个加工处理后变换成顶层图的输出数据流。这张图称为这张图称为0 0层图。从一个加工画出一张数据流图的过层图。从一个加工画出一张数据流图的过程实际上就是对这个加工的分解。程实际上就是对这个加工的分解。可以用下述的方法来确定加工:在数据流的组成或值发可以用下述的方法来确定加工:在数据流的组成或值发生变化的地方生变化的地方 应画一个加工,这个加工的功能就是实应画一个加工,这个加工的功能就是实现这一变化;也可根据系统的功能确定加工。现这一变化;也可根据系统的功能确定加工。确定数据流的方法可以是
46、:当用户把若干个数据看作一确定数据流的方法可以是:当用户把若干个数据看作一个单位来处理(这些数据一起到达,一起加工)时,可个单位来处理(这些数据一起到达,一起加工)时,可把这些数据看成一个数据流。把这些数据看成一个数据流。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.2 5.2 数据流程分析数据流程分析对于一些以后某个时间要使用的数据可以组织成一对于一些以后某个时间要使用的数据可以组织成一个数据存储来表示。个数据存储来表示。(1)(1)画加工的内部:把每个加
47、工看作一个小系统,画加工的内部:把每个加工看作一个小系统,该加工的输入输出数据流看成小系统的输入输出数该加工的输入输出数据流看成小系统的输入输出数据流。于是可以用画据流。于是可以用画0 0层图同样的方法画出每个加工层图同样的方法画出每个加工的的DFDDFD子图。子图。(2)(2)对上一步分解出来的对上一步分解出来的DFDDFD子图中的每个加工,重子图中的每个加工,重复上一步的分解,直至图中的尚未分解的加工都足复上一步的分解,直至图中的尚未分解的加工都足够简单为止。至此可以得到一套分层数据流图。够简单为止。至此可以得到一套分层数据流图。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业
48、务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.2 5.2 数据流程分析数据流程分析对图和加工进行编号对图和加工进行编号对于一个软件系统,其数据流图可能有许多层,每一层又对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。为了区分不同的加工和不同的有许多张图。为了区分不同的加工和不同的DFDDFD子图,子图,应该对每张图和每个加工进行编号,以利于管理。父图应该对每张图和每个加工进行编号,以利于管理。父图与子图:假设分层数据流图里的某张图(记为图与子图:假设分层数据流图里的某张图(记为图A A)中)中的某个加工
49、可用另一张图(记为图的某个加工可用另一张图(记为图B B)来分解,我们称)来分解,我们称图图A A是图是图B B的父图,图的父图,图B B是图是图A A的子图。在一张图中,有些的子图。在一张图中,有些加工需要进一步分解,有些加工则不必分解。因此,如加工需要进一步分解,有些加工则不必分解。因此,如果父图中有果父图中有n n个加工,那么它可以有个加工,那么它可以有0n0n张子图(这些子张子图(这些子图位于同一层),但每张子图都只对应于一张父图。图位于同一层),但每张子图都只对应于一张父图。(1)(1)编号:编号:顶层图只有一张,图中的加工也只有一个,所以不必编顶层图只有一张,图中的加工也只有一个,
50、所以不必编号。号。0 0层图只有一张,图中的加工号可以是层图只有一张,图中的加工号可以是“0.10.1,0.20.2,”。子图号就是父图中被分解的加工号。子图号就是父图中被分解的加工号。子图中的加工号由图号、圆点和序号组成。子图中的加工号由图号、圆点和序号组成。1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析调查数据的汇总分析数据流程分析6、功能/数据分析7、新系统逻辑模型的建立8、系统分析报告5.2 5.2 数据流程分析数据流程分析1、系统分析概述2、软件需求分析3、组织结构与功能分析4、业务流程分析5、数据与数据流程分析6、功能/数据分析CU 矩