《结构化分析》PPT课件

上传人:xt****7 文档编号:177065523 上传时间:2022-12-24 格式:PPT 页数:114 大小:722KB
收藏 版权申诉 举报 下载
《结构化分析》PPT课件_第1页
第1页 / 共114页
《结构化分析》PPT课件_第2页
第2页 / 共114页
《结构化分析》PPT课件_第3页
第3页 / 共114页
资源描述:

《《结构化分析》PPT课件》由会员分享,可在线阅读,更多相关《《结构化分析》PPT课件(114页珍藏版)》请在装配图网上搜索。

1、第三部分、结构化分析可行性研究的任务1可行性研究过程2需求分析的任务3需求分析的过程4与用户沟通的方法5分析建模与规格说明6验证软件需求7系统流程图8实体-联系图9数 据 流 图10数 据 字 典11其他图形工具12成本效益分析13结构化分析实例14 传统的软件工程方法学采用结构化分析技术完成系统分析(问题定义、可行性研究、需求分析)的任务。所谓“结构化”,就是用一组标准的准则和工具来完成某项工作。具体说到结构化分析,它主要有以下几个要点:采用自顶向下功能分解的方法;采用自顶向下功能分解的方法;强调逻辑功能而不是实现功能的具体方法;强调逻辑功能而不是实现功能的具体方法;使用图形表达系统分析的结

2、果。使用图形表达系统分析的结果。1 问题定义 本阶段任务:在短时间内对客户的需求有比较准确的估计:软件的目标、规模要点:要点:哪些内容不需要实现,划清项目的范围哪些内容不需要实现,划清项目的范围 必须形成书面报告提交给用户审查必须形成书面报告提交给用户审查 可行性研究的目的就是,用最小的代价在尽可行性研究的目的就是,用最小的代价在尽可能短的时间内研究并确定所面临的问题是否能可能短的时间内研究并确定所面临的问题是否能够解决。够解决。任务:导出新系统的逻辑模型,从模型出发任务:导出新系统的逻辑模型,从模型出发提出若干种实现方案,对每种方案进行可行性分提出若干种实现方案,对每种方案进行可行性分析和提

3、出实现进度,最后提出建议。析和提出实现进度,最后提出建议。2 2 可行性研究的任务可行性研究的任务 一般说来,至少应该从下述三方面研究每种解法的可行性。(1 1)技术可行性)技术可行性:使用现有的技术能实现这个系统吗(2 2)经济可行性:)经济可行性:这个系统的经济效益能超过它的开发成本吗(3 3)操作可行性:)操作可行性:系统的操作方式在这个用户组织内行得通吗(4 4)法律可行性:)法律可行性:必要时还应该进一步从法律、社会法律、社会效益效益等更广泛的角度研究每种解法的可行性。分析员应该为每个可行的解法制定一个粗略的实现进度。当然,可行性研究最根本的任务是对以后的行动方针提出建议。如果问题没

4、有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。可行性研究需要的时间长短取决于工程的规模,一般说来,可行性研究的成本只是预期的工程总成本的5%10%。情景:情景:20102010年,我国南方某公司为了节省人年,我国南方某公司为了节省人工成本,欲开发一系统软件,预计软件总成本为工成本,欲开发一系统软件,预计软件总成本为10001000万元,软件估计可使用万元,软件估计可使用5 5年。由于使用了该年。由于使用了该软件,该公司每年大概可以节省软件,该公司每年大概可以节省250250万元成本

5、。万元成本。决策:假设你是该公司财务总监,你会如何决策:假设你是该公司财务总监,你会如何抉择?抉择?货币的时间价值货币的时间价值 通常用利率的形式表示货币的时间价值。假通常用利率的形式表示货币的时间价值。假设年利率为设年利率为i i,如果现在存入,如果现在存入P P元,则元,则n n年后可以年后可以得到的钱数为:得到的钱数为:F=P(1+i)F=P(1+i)n n 这也就是这也就是P P元钱在元钱在n n年后的价值。反之,如果年后的价值。反之,如果n n年后能收入年后能收入F F元钱,那么这些钱的现在价值是元钱,那么这些钱的现在价值是P=F/(1+i)P=F/(1+i)n n 成本效益分析成本

6、效益分析 一般说来,人们投资于一项事业的目的是为了在将来得到更大好处。开发一个系统也是一种投资,期望将来获得更大的经济效益。经济效益通常表现为减少运行费用和增加收入。成本效益分析的目的正是要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。软件开发成本主要表现为人力消耗,乘以平均工资则得到开发费用。成本估计不是精确的科学,因此应该使用几种不同的估计技术以便相互校验。1.1.代码行技术代码行技术 代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要

7、的源程序行数。当有以往开发类似软件的历史数据可供参考时,这个方法是非常有效的。一旦估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。1 1 成本估计成本估计应用代码行技术的一个例子应用代码行技术的一个例子生产率(行人月)估计行数每行成本(元行)成本(元)人力(人月)获取实时数据92840108907209.1更新数据库1021210546534011.8脱机分析13460072432004.4产生报告14545033148503.1实时控制80110013514850013.736261042.1 首先把软件开发工程分

8、解为若干个相对独立的任务。首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。2.2.任务分解技术任务分解技术任 务人力(%)任 务人力(%)可行性研究5编码和单元测试20需求分析10综合测试40设计25总计10

9、0典型环境下各个开发阶段需要使用的人力的百分比 对于刚才提到的过程控制系统的例子,使用任务分解对于刚才提到的过程控制系统的例子,使用任务分解技术估计该系统的开发成本,得到的结果如表。相对比可技术估计该系统的开发成本,得到的结果如表。相对比可以看出,用不同估计技术得到的结果有些差异。以看出,用不同估计技术得到的结果有些差异。任务估计人力(人月)元人月成本(元)需求分析5.01020051000设计15.09600144000编码和单元测试8.0795063600综合测试16.58700143550总计44.5402150 成本效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。而系

10、统的经济效益等于因使用新系统而增加的收入,加上使用新系统可以节省的运行费用。因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。以后在进行成本效益分析时一律假设生命周期为5年。比较新系统的开发成本和经济效益,应从经济角度判断这个系统是否值得投资,但是,投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。3 3 成本效益分析方法成本效益分析方法 例如,修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货

11、将消除零件短缺问题,估计因此每年可以节省2500元,五年共可节省12 500元。但是,不能简单地把5000元和12 500元相比较,因为前者是现在投资的钱,后者是若干年以后节省的钱。假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表所示。将来的收入折算成现在值年将来值(元)(1i)现在值(元)累计的现在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.94

12、 投资回收期 通常用投资回收期衡量一项开发工程的价值。所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,因此这项工程也就越值得投资。例如,修改库存清单系统两年以后可以节省元,比最初的投资(5000元)还少元,第三年以后将再节省元。,因此,投资回收期是年。投资回收期仅仅是一项经济指标,为了衡量一项开发工程的价值,还应该考虑其他经济指标。纯收入 衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。如果纯收入

13、为零,则工程的预期效益和在银行存款一样,但是开发一个系统要冒风险,因此从经济观点看这项工程可能是不值得投资的。如果纯收入小于零,那么这项工程显然不值得投资。例如,上述修改库存清单系统,工程的纯收入预计是5000(元)4 4 可行性研究过程可行性研究过程典型的可行性研究过程有下述八个步骤:1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题 可行性研究的前四个步骤实质上构成一个循环。分析员定义问题,分析这个问题,导出一个试探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直至提出的逻辑模型完全符合系统目标。5.导出和评价

14、供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查5 5 需求分析的任务需求分析的任务 为了开发出真正满足用户需求的软件产品,首先必须确切地知道用户的需求。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。可行性研究阶段产生的文档,特别是数据流图,是需求分析的出发点。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。需求分析阶段的具体任务。1

15、.1.确定对软件系统的综合要求确定对软件系统的综合要求 对系统的综合要求主要有下述四个方面。(1)系统功能要求 应该划分出系统必须完成的所有功能。(2)系统性能要求 例如,联机系统的响应时间(即对于从终端输入的一个“事务”,系统在多长时间之内可以做出响应),系统需要的存储容量以及后援存储,重新启动和安全性等方面的考虑都属于性能要求。(3 3)运行要求)运行要求 这类要求集中表现为对系统运行时所处环境的要求。例如,支持系统运行的系统软件是什么,采用哪种数据库管理系统,需要什么样的外存储器和数据通信接口等。(4 4)将来可能提出的要求)将来可能提出的要求 应该明确地列出那些虽然不属于当前系统开发范

16、畴,但是据分析将来很可能会提出来的要求。这样做的目的是在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行这种扩充和修改。3.3.导出系统的逻辑模型导出系统的逻辑模型 综合上述两项需求分析的结果,可以导出系统详细的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。2.2.确定对系统的数据要求确定对系统的数据要求 任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立概念模型的方法。4.4.修正系统开发计划修正系统开

17、发计划 根据在需求分析过程中获得的对软件系统更深入、更具体的认识,可以较准确地估计系统的成本和进度,从而可以修正在前一个阶段所制定的开发计划。5.5.开发原型系统开发原型系统 在需求分析过程中使用原型系统的主要目的是,使得用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他们对所开发的软件的要求。建立原型系统作为一种应该采取的策略的理由如下:由于人类认识能力的局限性,用户往往不能预先提出全部要求;在用户和系统分析员之间存在固有的通信鸿沟,分析员常常误解了用户的需求;用户需要一个可运行的系统模型,以便获得有关未来系统的实践经验;在软件开发过程中重复和反

18、复是必要的和不可避免的;目前已经有快速建立原型系统的工具可供选用。功能需求性能需求可靠性和可用性需求出错处理需求接口需求 描述应用系统与通信环境的格式约束 描述在设计或实现应用系统时遵循的条件限制逆向需求 系统不应该做什么将来可能提出的要求6 6 需求分析的过程需求分析的过程 结构化分析方法(简称结构化分析方法(简称SASA方法)就是面向数据流自方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目的之一就是把数据流和数据存储定义到元素级。典型的需求分析过程主要由下述步骤组成。典型的需求分析过程主要

19、由下述步骤组成。1.1.沿数据流图回溯沿数据流图回溯 2.2.请用户复查请用户复查 3.3.细化数据流图细化数据流图 随着分析过程的进展,经过发现问题和解答问题的反复循环,分析员越来越深入具体地定义了目标系统,最终得到对系统数据和功能需求的满意了解。图粗略地概括了上述分析过程。需求分析的基本过程4.4.修正开发计划修正开发计划5.5.书写文档书写文档 系统规格说明系统规格说明 数据要求数据要求 用户系统描述用户系统描述 修正的开发计划修正的开发计划6.6.审查和复审审查和复审7 7 与用户沟通的方法与用户沟通的方法 软件需求分析过程总是从两方或多方之间的沟通与交流开始。通常,用户对他们所面临的

20、问题有亲身体会,知道必须做什么,但是往往不能完整准确地表达出他们的要求,更不知道怎样利用计算机软件解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。这样就需要相互沟通和交流信息。原型系统原型系统是促进沟通的重要手段,快速建立软件原型是最准确、最有效、最强大的需求分析技术。除了通过原型系统相互沟通之外,还访谈访谈和简易的应用规格说明技术简易的应用规格说明技术两种典型技术。1 1 访谈访谈 访谈(或称为会谈)是最早开始运用的获取用户需求访谈(或称为会谈)是最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技的技术,也是迄今为止仍

21、然广泛使用的主要的需求分析技术。术。访谈有两种基本形式,分别是正式的和非正式的访谈。当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。在对用户进行访谈的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户运用目标系统解决某个具体问题的方法和结果进行分析。情景分析的用处主要体现在下述两个方面:它能在某种程度上演示产品的行为,从而便于用户理解,而且还可能进一步揭示出一些系统分析员目前还不知道的需求。由于情景分析较易为用户所理解,因此,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是了解用户的真正需求,而这一信息的惟一来源是用户,因此,

22、让用户起积极主动的作用对需求分析工作获得成功是至关重要的。使用传统的访谈技术定义需求时,用户和开发者往往有意无意地区分“我们和他们”。由于不能做到像同一个团队的人那样同心协力地识别和精化需求,这种方法的效果有时并不理想(经常发生误解,还可能遗漏重要的信息)。为了解决上述问题,人们研究出了一种面向团队的需求收集法,称为简易的应用规格说明技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。今天,简易的应用规格说明技术已经成为信息系统界使用的主流技术。2 2 简易的应用规格说明技术简易的应用规格说明技术 尽管存在许多不同的简易应用规格说明方法,但

23、是它们遵循的基本准则是相同的:在中立地点举行由开发者和用户双方出席的会议。制定准备会议和参加会议的规则。提出一个议事日程,这个日程应该足够正式以便能够涵盖所有要点,同时这个日程又应该足够非正式,以便鼓励自由思维。由一个“协调人”来主持会议,他既可以是用户也可以是开发者还可以是从外面请来的人。使用一种“定义机制”(例如,工作表、图表等)。目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求。8 8 分析建模与规格说明分析建模与规格说明1 1 分析建模分析建模 系统分析,特别是需求分析的主要任务,是理解用户的需求定义所要开发的目标系统。为了更好地理解问题,人们

24、常常采用建立模型的方法。模型就是为了理解事物而模型就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描对事物做出的一种抽象,是对事物的一种无歧义的书面描述。述。通常,通常,模型由一组图形符号和组织这些符号的规则组模型由一组图形符号和组织这些符号的规则组成。成。1 1:必须理解和表示问题的信息域,建立数:必须理解和表示问题的信息域,建立数据模型据模型 2 2:必须定义软件应完成的功能,要求建立:必须定义软件应完成的功能,要求建立功能模型功能模型 3 3:必须表示作为外部事件结果的软件行为,:必须表示作为外部事件结果的软件行为,建立行为模型建立行为模型 需求建模需求建模数据模型:实

25、体数据模型:实体-联系图联系图(ER(ER图图)功能模型:数据流图功能模型:数据流图(DFD)(DFD)行为模型:状态转换图行为模型:状态转换图 从技术的角度看,软件工程实质上是从一系列建模活软件工程实质上是从一系列建模活动开始的动开始的,这些建模活动导致对要求开发的软件要有完整的需求规格说明和全面的设计表示。结构化分析就是一种建立结构化的分析模型的活动。从不同角度描述或理解软件系统,需要不同的模型。结构化分析主要建立功能模型和数据模型。2 2 软件需求规格说明书软件需求规格说明书 由国家标准局发布的国家标准GB8567-88“计算机软件产品开发文件编制指南”,规定了在需求分析阶段应写出两份文

26、档,分别是“软件需求说明书”和“数据要求说明书”。9 9 验证软件需求验证软件需求9.1 9.1 至少从四个方面验证软件需求至少从四个方面验证软件需求 需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,应该从下述四个方面进行验证:一致性一致性 完整性完整性 现实性现实性 有效性有效性9.2 9.2 验证软件需求的方法验证软件需求的方法1.验证需求的一致性 当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验

27、证软件系统规格说明书的正确性之外,目前还没有其他更好的“测试”方法。但是,这种非形式化的规格说明书是难于验证的。2.2.验证需求的现实性验证需求的现实性 为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析软件需求规格说明书的现实性。3 3、4 4:验证需求的完整性和有效性验证需求的完整性和有效性 只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要,只有在用户的密切合作下才能完成。只有当他们有某种工作着的软

28、件系统可以实际使用和评价时,才能完整确切地提出他们的需要。使用原型系统是一个比较现实的替代方法,开发原型系统所需要的成本和时间可以大大少于开发实际系统所需要的。用户通过试用原型系统,也能获得许多宝贵的经验,从而可以提出更符合实际的要求。9.3 9.3 用于需求分析的软件工具用于需求分析的软件工具 为了更有效地保证软件需求的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求。(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和

29、冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;(4)使用这个软件工具之后,应该能够改进通信状况。10 10 系统流程图系统流程图 系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。系统流系统流程图表达的是信息在系统各部件之间流动的情况程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程,因此尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流图而不是程序流程图。当以概括的方式抽象地描绘一个系统时,仅使用图中列出的基本符号就够了,其中每个符号表

30、示系统中的一个部件。10.1 10.1 系统流程图的符号系统流程图的符号当需要更具体地描绘一个物理系统时,还需要使用图中列出的系统符号。假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。图中每个符号用黑盒子形式定义了组成系统的一个部件,然而并没有指明每个部件的具体工作过程;图中的箭头确定了信息通过系统的逻辑路径(信息流动路径)

31、。系统流程图的习惯画法是使信息在图中从顶向下或从左向右流动。每个符号都有名称,因此可以起文档的作用。许多分析员喜欢在系统流程图上加更详细的注释,有些人甚至另加一页纸来解释系统流程图。10.3 10.3 分层画系统流程图分层画系统流程图 面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。例如,上述库存清单系统可以分为两个层次来描绘(只是为举例说明分层次描绘的方法,实际上这样简单的系

32、统用不着分层描绘)。分析员通常必须研究现有的物理系统,目的不是提供完整的文档资料,只是为了了解这个系统。画系统流程图是概括大量技术信息以及发现遗漏疏忽的极好方法。在设计阶段需要把设计结果从抽象的逻辑模型转变成具体的物理系统,用特定的程序或过程代替广义的处理,用具体的文件或数据库代替一般的数据存储。画出系统流程图就可以具体设想系统将如何实现。总之,不论在分析阶段还是设计阶段,系统流程图作为一种清晰简明的通信手段都是很有价值的,非常有助于开发人员和用户交流信息。当一个复杂的大系统由许多组软件工程师共同开发时,系统流程图可以作为公共参考文件,指明每个开发小组的工作在系统中的地位。10.4 10.4

33、系统流程图的用途系统流程图的用途11 11 实体实体-联系图联系图 软件系统本质上是信息处理系统,因此,在软件系统的整个开发过程中都必须考虑两方面的问题“数据”及对数据的“处理”。在需求分析阶段则既要分析用户的数据要求,又要分析用户的处理要求。为了把用户的数据要求清晰明确地表达出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关。根据所要解决的问题,来确定实体的合适的属性。在ER图中,用椭圆形或圆角矩形表示实体(或联系)的属

34、性,并用直线把实体(或联系)与其属性连接起来。人们通常就是用实体、联系和属性这三个概念来理解现实问题的,因此,ER模型比较接近人的习惯思维方式。此外,ER模型使用简单的图形符号表达分析员对所要解决的问题的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为分析员与用户之间有效的交流工具。最常用的表示概念性数据模型的方法,是实体-联系方法(Entity-Relationship Approach)。这种方法用实体-联系图(也称为实体-关系图或E-R图)描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。实体-联系模型中包含“实体”、“

35、联系”和“属性”等三个基本成分,下面分别介绍这三个基本成分。1.1.实体实体 实体是客观世界中存在的且可相互区分的事物。实体可以是人也可以是物;可以是具体事物也可以是抽象概念。例如,职工、学生、课程、教师等都是实体。2.2.联系联系 客观世界中的事物彼此间往往是有联系的。例如,教师与课程间存在“教”这种联系,而学生与课程间则存在“学”这种联系。联系可分为以下三类:(1)一对一联系(11)(2)一对多联系(1N)(3)多对多联系(MN)3.属性 属性是实体或联系所具有的性质。通常一个实体由若干个属性来刻画,例如,“学生”实体有学号、姓名、性别、系、年级等属性;“教师”实体有教工号、姓名、性别、职

36、称、职务等属性;“课程”实体有课程号、课名、学时、学分等属性。联系也可能有属性。例如,学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以这是学生与课程之间的联系“学”的属性。某校教学管理ER图12 12 数据流图数据流图 数据流图(DFD,Data Flow Diagram)是用来描绘软件系统的逻辑模型的工具。通过数据流图描绘信息在系统中流动和加工处理的情况。是各类人员之间极好的交流、沟通的工具 设计数据流图只需考虑系统必须完成的基本逻辑功能,一般在图中不使用具体的物理元素,完全不需要考虑如何具体地实现这些功能。数据

37、流图数据流图符号符号 数据的源点数据的源点/终点终点:是指在系统以外的事物或人是指在系统以外的事物或人 加工处理加工处理:表示对数据的处理功能表示对数据的处理功能 数据存储数据存储:表示对数据存储的逻辑描述,它可以是表示对数据存储的逻辑描述,它可以是数据库文件或任何其他形式的数据组织。数据库文件或任何其他形式的数据组织。数据流数据流:表示数据在系统中流动的方向。表示数据在系统中流动的方向。或或或数据的源点/终点加工/处理数据存储数据流 除了上述四种基本符号之外,有时也使用除了上述四种基本符号之外,有时也使用几种附加符号。星号(几种附加符号。星号(*)表示数据流之间是)表示数据流之间是“与与”关

38、系(同时存在);加号()表示关系(同时存在);加号()表示“或或”关系关系;号表示只能从中选一个(互斥号表示只能从中选一个(互斥的关系)。下图给出了这些附加符号的含义。的关系)。下图给出了这些附加符号的含义。数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。定货系统:问题描述(1)工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号、

39、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。画出上述定货系统的数据流图可采用以下步骤。12.2 12.2 举例举例定货系统:提取DFD元素(2)其中加星号标记的是在其中加星号标记的是在问题描述中隐含的成分。问题描述中隐含的成分。定货系统:顶(0)层数据流图(3)仓库管理员定货系统采购员事务定货报表 在图中给处理和数据存储都加了编号,这样做的目的在图中给处理和数据存储都加了编号,这样做的目的是便于引用和追踪。是便于引用和追踪。定货系统:1层数据流图(4)仓库管理

40、员产生报表采购员处理事务12D1库存清单D2定货信息库存清单事务定货信息定货信息定货报表2层数据流图(细化处理1)(5)接收事务1.1D1库存清单D2定货信息库存清单事务定货信息更新库存清单处理事务事务库存信息1.21.3仓库管理员自顶向下,逐步细化 注意,并不是所有数据存储和数据流都能直接从问题描述中提取出来。例如,“当某种零件的库存数量少于库存量临界值时就应该再次定货”,这个事实意味着必须在某个地方有零件库存量事实意味着必须在某个地方有零件库存量和库存量临界值这样的数据。和库存量临界值这样的数据。因为这些数据元素的存在时间看来应该比单个事务的存在时间长,所以认为有一个数据存储保存库存清单数

41、据是合理的。数据流图的分层数据流图的分层 数据流图的层次结构数据流图的层次结构 为了表达数据处理过程的数据加工情况,需为了表达数据处理过程的数据加工情况,需要采用要采用层次结构层次结构的数据流图。按照系统的层的数据流图。按照系统的层次结构进行次结构进行逐步分解逐步分解,并以分层的数据流图,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理反映这种结构关系,能清楚地表达和容易理解整个系统解整个系统步骤步骤(1)画顶层数据流图)画顶层数据流图(2)画第一层数据流图)画第一层数据流图(3)画下层各数据流图)画下层各数据流图 接下来应该对功能级数据流图中描绘的系统主要功能进接下来应该对功能级数据

42、流图中描绘的系统主要功能进一步细化。考虑通过系统的逻辑数据流:当发生一个事务时一步细化。考虑通过系统的逻辑数据流:当发生一个事务时必须首先接收它;随后按照事务的内容修改库存清单;最后,必须首先接收它;随后按照事务的内容修改库存清单;最后,如果更新后的库存量少于库存量临界值,则应该再次定货,如果更新后的库存量少于库存量临界值,则应该再次定货,也就是需要处理定货信息。因此,把也就是需要处理定货信息。因此,把“处理事务处理事务”这个功能这个功能分解为分解为“接收事务接收事务”、“更新库存清单更新库存清单”和和“处理定货处理定货”这这样三个子功能,在逻辑上是合理的。样三个子功能,在逻辑上是合理的。画数

43、据流图的注意事项画数据流图的注意事项 在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡 可以在数据流图中加入物质流,帮助用户理解数据流图 图上每个元素都必须有名字 数据流图中不可夹带控制流 初画时可以忽略琐碎的细节,以集中精力于主要数据流1.为数据流(或数据存储)命名 名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。如果在为某个数据流(或数据存储)起名字时遇到了困

44、难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。12.3 12.3 命名命名 通常先为数据流命名,然后再为与之相关联的处理命通常先为数据流命名,然后再为与之相关联的处理命名。体现了人类习惯的名。体现了人类习惯的“由表及里由表及里”的思考过程。的思考过程。名字应该反映整个处理的功能,而不是它的一部分。名字应该反映整个处理的功能,而不是它的一部分。名字最好由一个及物动词,加上一个具体的宾语组成名字最好由一个及物动词,加上一个具体的宾语组成。尽量避免使用。尽量避免使用“加工加工”、“处理处理”等笼统的动词作名字。等笼统的动词作名字。通常名字中仅包括一个动词,如果

45、必须用两个动词才通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。能更恰当些。如果在为某个处理命名时遇到困难,则很可能是发现如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。了分解不当的迹象,应考虑重新分解。2.2.为处理命名为处理命名12.4 数据流图的用途数据流图的用途 画数据流图的基本目的是利用它作为交流信息的工画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想具。分析员把他对现有系统的认识或对目标系统的设

46、想用数据流图描绘出来,供有关人员审查确认。由于在数用数据流图描绘出来,供有关人员审查确认。由于在数据流图中通常仅仅使用四种基本符号,而且不包含任何据流图中通常仅仅使用四种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。和评价它。数据流图的另一个主要用途是作为分析和设计的工数据流图的另一个主要用途是作为分析和设计的工具。具。动态模型表示瞬时的、行为化的系统的动态模型表示瞬时的、行为化的系统的“控制控制”性质,性质,它规定了对象模型中的对象的合法变化序列。它规定了对象模型中的对象的合法变化序列。一旦建立起对象模型之后

47、,就需要考察对象的动态行一旦建立起对象模型之后,就需要考察对象的动态行为。生命周期中的阶段也就是对象的状态。所谓状态,是为。生命周期中的阶段也就是对象的状态。所谓状态,是对对象属性值的一种抽象。当然,在定义状态时应该忽略对对象属性值的一种抽象。当然,在定义状态时应该忽略那些不影响对象行为的属性。各对象之间相互触发(即作那些不影响对象行为的属性。各对象之间相互触发(即作用),就形成了一系列的状态变化。我们把一个触发行为用),就形成了一系列的状态变化。我们把一个触发行为称作一个事件。对象对事件的响应,取决于接受该触发的称作一个事件。对象对事件的响应,取决于接受该触发的对象当时所处的状态,响应包括改

48、变自己的状态或者又形对象当时所处的状态,响应包括改变自己的状态或者又形成一个新的触发行为。成一个新的触发行为。13 13 动动 态态 模模 型型13.1 13.1 概念概念 建立动态模型时需要使用的一些基本概念:建立动态模型时需要使用的一些基本概念:1.1.事件事件 事件是某个特定时刻所发生的事情,它是对引起对事件是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事件的象从一种状态转换到另一种状态的现实世界中的事件的抽象。事件没有持续时间,是瞬间完成的。抽象。事件没有持续时间,是瞬间完成的。事件也就是信息从一个对象到另一个对象的单向传事件也就是信息从一个对象到另

49、一个对象的单向传送。受此事件触发的第二个对象,可以发送答复事件也送。受此事件触发的第二个对象,可以发送答复事件也可以不发送答复事件,即使发送答复事件,它也是受第可以不发送答复事件,即使发送答复事件,它也是受第二个对象控制的一个独立事件。二个对象控制的一个独立事件。简而言之,简而言之,事件就是引起对象状态转换的控制信息事件就是引起对象状态转换的控制信息。2.2.状态状态 状态就是对象在其生命周期中的某个特定阶段所处的状态就是对象在其生命周期中的某个特定阶段所处的某种情形,它是对影响对象行为的属性值的一种抽象。某种情形,它是对影响对象行为的属性值的一种抽象。状态规定了对象对输入事件的响应方式。对象

50、对事件状态规定了对象对输入事件的响应方式。对象对事件的响应,既可以是作一个(或一系列)动作,也可以是仅的响应,既可以是作一个(或一系列)动作,也可以是仅仅改变对象本身的状态。仅改变对象本身的状态。状态有持续性,它占用一段时间间隔。状态与事件密状态有持续性,它占用一段时间间隔。状态与事件密不可分,一个事件分开两个状态,一个状态隔开两个事件不可分,一个事件分开两个状态,一个状态隔开两个事件。事件表示时刻,状态代表时间间隔。事件表示时刻,状态代表时间间隔。在定义状态的时候,应该忽略那些不影响对象行为的在定义状态的时候,应该忽略那些不影响对象行为的属性。属性。3.3.行为行为 所谓行为,是指对象达到某

51、种状态时所做的一系所谓行为,是指对象达到某种状态时所做的一系列处理操作。这些操作是需要耗费时间的。列处理操作。这些操作是需要耗费时间的。13.2 13.2 图示符号图示符号 图给出了状态图中使用的表示符号。图给出了状态图中使用的表示符号。图状态图中使用的表示符号3.3.举例举例 为了具体说明状态图的画法,下面以大家熟悉的电为了具体说明状态图的画法,下面以大家熟悉的电梯系统为例,画出它的状态图,如图所示。梯系统为例,画出它的状态图,如图所示。电梯的状态图 在在“空闲空闲”状态,把状态变量状态,把状态变量timertimer的值置为的值置为0 0,然,然后连续递增后连续递增timertimer的值

52、,直到的值,直到“上楼上楼”或或“下楼下楼”事件发事件发生或守卫条件生或守卫条件“timertimer超时值超时值”为真,触发状态转换。为真,触发状态转换。注意,从注意,从“空闲空闲”状态到状态到“在第一层在第一层”状态之间的状态转状态之间的状态转换,有一个守卫条件和一个动作表达式,但没有事件说明换,有一个守卫条件和一个动作表达式,但没有事件说明。因此,只要守卫条件。因此,只要守卫条件“timertimer超时值超时值”为真,状态转为真,状态转换就发生,这时将执行动作换就发生,这时将执行动作“下楼(第一层)下楼(第一层)”,然后状,然后状态由态由“空闲空闲”转变为转变为“在第一层在第一层”。字

53、典字典字典是为字提供音韵、意思解释、例句、用法等等的工具书。在西方,是没有字典的概念,它是中国独有的。字典收字为主,亦会收词。词典或辞典收词为主,也会收字。字典的功能现代的字典都提供了很多功能,其中两大功能分别是:以沟通为主,帮助对文字的理解、翻译及五笔以知识为主,针对某事物来寻获知识字典在黑客领域的含义字典在黑客领域的含义黑客破解方面的字典是指一个包含很多密码的文本文件,黑客常用相关软件生成包含很多密码的字典文件,然后用软件把字典中的密码去不断尝试登陆,直到登陆成功。该过程被称为暴力破解,或者叫穷举。1414、数据字典、数据字典 定义:数据字典是描述与系统相关的信息的集合,定义:数据字典是描

54、述与系统相关的信息的集合,是对系统中所有数据的定义的集合。是对系统中所有数据的定义的集合。数据流图描述系统的逻辑模型,但它不可能表达一个系统的全部逻辑特性,特别是有关数据的详细内容。数据字典恰恰弥补了数据流图在这个方面的不足,它专门记录有关数据方面的信息,作为对数据流图的补充和解释。数据流图和数据词典共同构成全面描述软件需求说明书的核心。数据字典要对数据流图中出现的所有名字进行定义。同日常使用的词典一样,为了便于查阅,词典中的所有条目都要按一定的次序排列起来,也可采用卡片的形式,以供开发与维护人员方便地使用。数据字典的内容主要包括:数据元素、数据流、数据存储、外部项、加工处理等。按词条形式描述

55、数据的属性、结构、逻辑关系、特征信息等。14.2 14.2 定义数据的方法定义数据的方法 定义绝大多数复杂事物的方法,都是用被定义事物成定义绝大多数复杂事物的方法,都是用被定义事物成分的某种组合表示这个事物,这些组成成分又由更低层的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。分的组合来定义。由数据元素组成数据的方式只有下述三种基本类型:由数据元素组成数据的方式只有下述三种基本类型:顺序顺序 即以确定次序连接两个或多个分量。即以确定次序连接两个或多个分量。选择选择 即从两个或多个可能的元素中选取一个。即从两个或多个可能的元素中选取一个。重复重复 即把指定的分量重复零次或

56、多次。即把指定的分量重复零次或多次。可选可选 即一个分量是可有可无的(重复零次或一次)即一个分量是可有可无的(重复零次或一次)。数据流定义中常用的符号含义如下:=表示“被定义为”;+表示“和”,连接两个或多个分量;.|.表示“选择”,即可选择方括号中的一项,用“|”作为各项的分割符;()表示“可选”,即括号内的项可选可不选;mn表示“重复”,n为重复次数的上限,m为重复次数的下限,如重复次数没有限定可不标出上下限。也可以利用上下标表示。x=ab.,.或或.|.x=a,b,x=a|b.或或 m.n x=a,x=3a8(.)x=(a)“.”x=“a”.x=1.914.3 14.3 数据字典的用途数

57、据字典的用途 数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。最后,数据字典是开发数据库的第一步,而且是很有价值的一步。目前实现数据字典有三种常见的途径:全人工过程,全自动化过程(利用数据字典处理程序)和混合过程(用正文编辑程序,报告生成程序等已有的实用程序帮助人工过程)如果暂时还没有自动的数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据元素的信息。当开发过程进展到能够知道数据元素的控制信息和

58、使用特点时,把这些信息记录在卡片的背面。14.4 14.4 实现数据字典的途径实现数据字典的途径 下面给出上面例子中数据字典卡片:下面给出上面例子中数据字典卡片:名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机名字:零件编号别名:描述:惟一地标识库存清单中一个特定零件的关键域定义:零件编号=8字符8位置:定货报表定货信息库存清单名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表定货信息15 15 其他图形工具其他图形工具 在结构化分析过程的不

59、同阶段,或者在同一分析在结构化分析过程的不同阶段,或者在同一分析阶段完成性质不同的任务时,分析员往往使用不同的图阶段完成性质不同的任务时,分析员往往使用不同的图形工具辅助完成分析工作。形工具辅助完成分析工作。1层次图(H图)描绘数据的层次结构,或用于描述功能层次结构2Warnier图描绘数据的层次结构3IPO图描绘输入数据、处理、输出数据之间的关系1515、1 1 层次方框图层次方框图 层次方框图用树形结构的一系列多层次的矩层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。形框描绘数据的层次结构。树形结构的顶层是一树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面个单独的

60、矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素个框代表组成这个数据的实际数据元素(不能再(不能再分割的元素)。分割的元素)。例如,描绘一家计算机公司全部产例如,描绘一家计算机公司全部产品的数据结构可以用右图表示。品的数据结构可以用右图表示。15.2 Warnier图 法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具。和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织,也就

61、是说,它可以指出一类信息或一个信息量是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。Warnier图的一个例子 图是用图是用WarnierWarnier图描绘一类软件产品的例子,它说明图描绘一类软件产品的例子,它说明了这种图形工具的用法。了这种图形工具的用法。报纸首版商业金融版文化体育版标题新闻国内新闻本地新闻股市行情(0,1)商业新闻广告(1,5)文化、体育新闻散文新书评论15.3 IPO图图 IPO图是输入处理输出图的简称图是输入处理输出图的简称,它是美,它是美国国IBM公司发展完

62、善起来的一种图形工具,能够方公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间便地描绘输入数据、对数据的处理和输出数据之间的关系。的关系。图是一个主文件更新的例子,通过这个例子不图是一个主文件更新的例子,通过这个例子不难了解难了解IPO图的用法。图的用法。用IPO图描绘主文件更新功能 本书建议使用一种改进的本书建议使用一种改进的IPOIPO图,也称为图,也称为IPOIPO表。表。改进的改进的IPOIPO图中包含的附加信息,主要图中包含的附加信息,主要有系统名称,图的作者,完成本图的日期,本图有系统名称,图的作者,完成本图的日期,本图描述的模块的名字,模块在层次图中的编号,调描述的模块的名字,模块在层次图中的编号,调用本模块的模块清单,本模块调用的模块的清单,用本模块的模块清单,本模块调用的模块的清单,注释,以及本模块使用的局部数据元素等。注释,以及本模块使用的局部数据元素等。改进的改进的IPOIPO图的形式图的形式

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!