欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《结构化分析》PPT课件.ppt

    • 资源ID:5568158       资源大小:736.50KB        全文页数:114页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《结构化分析》PPT课件.ppt

    第三部分、结构化分析,传统的软件工程方法学采用结构化分析技术完成系统分析(问题定义、可行性研究、需求分析)的任务。所谓“结构化”,就是用一组标准的准则和工具来完成某项工作。具体说到结构化分析,它主要有以下几个要点:采用自顶向下功能分解的方法;强调逻辑功能而不是实现功能的具体方法;使用图形表达系统分析的结果。,1 问题定义,本阶段任务:在短时间内对客户的需求有比较准确的估计:软件的目标、规模,要点:哪些内容不需要实现,划清项目的范围 必须形成书面报告提交给用户审查,可行性研究的目的就是,用最小的代价在尽可能短的时间内研究并确定所面临的问题是否能够解决。任务:导出新系统的逻辑模型,从模型出发提出若干种实现方案,对每种方案进行可行性分析和提出实现进度,最后提出建议。,2 可行性研究的任务,一般说来,至少应该从下述三方面研究每种解法的可行性。(1)技术可行性:使用现有的技术能实现这个系统吗(2)经济可行性:这个系统的经济效益能超过它的开发成本吗(3)操作可行性:系统的操作方式在这个用户组织内行得通吗(4)法律可行性:必要时还应该进一步从法律、社会效益等更广泛的角度研究每种解法的可行性。分析员应该为每个可行的解法制定一个粗略的实现进度。,当然,可行性研究最根本的任务是对以后的行动方针提出建议。如果问题没有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。可行性研究需要的时间长短取决于工程的规模,一般说来,可行性研究的成本只是预期的工程总成本的5%10%。,情景:2010年,我国南方某公司为了节省人工成本,欲开发一系统软件,预计软件总成本为1000万元,软件估计可使用5年。由于使用了该软件,该公司每年大概可以节省250万元成本。决策:假设你是该公司财务总监,你会如何抉择?,货币的时间价值 通常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:F=P(1+i)n 这也就是P元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在价值是P=F/(1+i)n,成本效益分析,一般说来,人们投资于一项事业的目的是为了在将来得到更大好处。开发一个系统也是一种投资,期望将来获得更大的经济效益。经济效益通常表现为减少运行费用和增加收入。成本效益分析的目的正是要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。,软件开发成本主要表现为人力消耗,乘以平均工资则得到开发费用。成本估计不是精确的科学,因此应该使用几种不同的估计技术以便相互校验。1.代码行技术 代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。当有以往开发类似软件的历史数据可供参考时,这个方法是非常有效的。一旦估计出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。,1 成本估计,应用代码行技术的一个例子,首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。最常用的办法是按开发阶段划分任务。如果软件系统很复杂,由若干个子系统组成,则可以把每个子系统再按开发阶段进一步划分成更小的任务。,2.任务分解技术,典型环境下各个开发阶段需要使用的人力的百分比,对于刚才提到的过程控制系统的例子,使用任务分解技术估计该系统的开发成本,得到的结果如表。相对比可以看出,用不同估计技术得到的结果有些差异。,成本效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。而系统的经济效益等于因使用新系统而增加的收入,加上使用新系统可以节省的运行费用。因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。以后在进行成本效益分析时一律假设生命周期为5年。比较新系统的开发成本和经济效益,应从经济角度判断这个系统是否值得投资,但是,投资是现在进行的,效益是将来获得的,不能简单地比较成本和效益,应该考虑货币的时间价值。,3 成本效益分析方法,例如,修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,五年共可节省12 500元。但是,不能简单地把5000元和12 500元相比较,因为前者是现在投资的钱,后者是若干年以后节省的钱。假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表所示。,将来的收入折算成现在值,投资回收期 通常用投资回收期衡量一项开发工程的价值。所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,因此这项工程也就越值得投资。例如,修改库存清单系统两年以后可以节省4225.12元,比最初的投资(5000元)还少774.88元,第三年以后将再节省1779.45元。774.881779.450.44,因此,投资回收期是2.44年。投资回收期仅仅是一项经济指标,为了衡量一项开发工程的价值,还应该考虑其他经济指标。,纯收入 衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。如果纯收入为零,则工程的预期效益和在银行存款一样,但是开发一个系统要冒风险,因此从经济观点看这项工程可能是不值得投资的。如果纯收入小于零,那么这项工程显然不值得投资。例如,上述修改库存清单系统,工程的纯收入预计是9011.9450004011.94(元),4 可行性研究过程,典型的可行性研究过程有下述八个步骤:1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题 可行性研究的前四个步骤实质上构成一个循环。分析员定义问题,分析这个问题,导出一个试探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直至提出的逻辑模型完全符合系统目标。,5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查,5 需求分析的任务,为了开发出真正满足用户需求的软件产品,首先必须确切地知道用户的需求。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。,可行性研究阶段产生的文档,特别是数据流图,是需求分析的出发点。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。,需求分析阶段的具体任务。1.确定对软件系统的综合要求 对系统的综合要求主要有下述四个方面。(1)系统功能要求 应该划分出系统必须完成的所有功能。(2)系统性能要求 例如,联机系统的响应时间(即对于从终端输入的一个“事务”,系统在多长时间之内可以做出响应),系统需要的存储容量以及后援存储,重新启动和安全性等方面的考虑都属于性能要求。,(3)运行要求 这类要求集中表现为对系统运行时所处环境的要求。例如,支持系统运行的系统软件是什么,采用哪种数据库管理系统,需要什么样的外存储器和数据通信接口等。(4)将来可能提出的要求 应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行这种扩充和修改。,3.导出系统的逻辑模型 综合上述两项需求分析的结果,可以导出系统详细的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。,2.确定对系统的数据要求 任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立概念模型的方法。,4.修正系统开发计划 根据在需求分析过程中获得的对软件系统更深入、更具体的认识,可以较准确地估计系统的成本和进度,从而可以修正在前一个阶段所制定的开发计划。5.开发原型系统 在需求分析过程中使用原型系统的主要目的是,使得用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他们对所开发的软件的要求。,建立原型系统作为一种应该采取的策略的理由如下:由于人类认识能力的局限性,用户往往不能预先提出全部要求;在用户和系统分析员之间存在固有的通信鸿沟,分析员常常误解了用户的需求;用户需要一个可运行的系统模型,以便获得有关未来系统的实践经验;在软件开发过程中重复和反复是必要的和不可避免的;目前已经有快速建立原型系统的工具可供选用。,功能需求性能需求可靠性和可用性需求出错处理需求接口需求 描述应用系统与通信环境的格式约束 描述在设计或实现应用系统时遵循的条件限制逆向需求 系统不应该做什么将来可能提出的要求,6 需求分析的过程,结构化分析方法(简称SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目的之一就是把数据流和数据存储定义到元素级。,典型的需求分析过程主要由下述步骤组成。1.沿数据流图回溯 2.请用户复查 3.细化数据流图,随着分析过程的进展,经过发现问题和解答问题的反复循环,分析员越来越深入具体地定义了目标系统,最终得到对系统数据和功能需求的满意了解。图粗略地概括了上述分析过程。,需求分析的基本过程,4.修正开发计划5.书写文档 系统规格说明 数据要求 用户系统描述 修正的开发计划6.审查和复审,7 与用户沟通的方法,软件需求分析过程总是从两方或多方之间的沟通与交流开始。通常,用户对他们所面临的问题有亲身体会,知道必须做什么,但是往往不能完整准确地表达出他们的要求,更不知道怎样利用计算机软件解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。这样就需要相互沟通和交流信息。,原型系统是促进沟通的重要手段,快速建立软件原型是最准确、最有效、最强大的需求分析技术。除了通过原型系统相互沟通之外,还访谈和简易的应用规格说明技术两种典型技术。,1 访谈 访谈(或称为会谈)是最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。访谈有两种基本形式,分别是正式的和非正式的访谈。当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。在对用户进行访谈的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户运用目标系统解决某个具体问题的方法和结果进行分析。,情景分析的用处主要体现在下述两个方面:它能在某种程度上演示产品的行为,从而便于用户理解,而且还可能进一步揭示出一些系统分析员目前还不知道的需求。由于情景分析较易为用户所理解,因此,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是了解用户的真正需求,而这一信息的惟一来源是用户,因此,让用户起积极主动的作用对需求分析工作获得成功是至关重要的。,使用传统的访谈技术定义需求时,用户和开发者往往有意无意地区分“我们和他们”。由于不能做到像同一个团队的人那样同心协力地识别和精化需求,这种方法的效果有时并不理想(经常发生误解,还可能遗漏重要的信息)。为了解决上述问题,人们研究出了一种面向团队的需求收集法,称为简易的应用规格说明技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。今天,简易的应用规格说明技术已经成为信息系统界使用的主流技术。,2 简易的应用规格说明技术,尽管存在许多不同的简易应用规格说明方法,但是它们遵循的基本准则是相同的:在中立地点举行由开发者和用户双方出席的会议。制定准备会议和参加会议的规则。提出一个议事日程,这个日程应该足够正式以便能够涵盖所有要点,同时这个日程又应该足够非正式,以便鼓励自由思维。由一个“协调人”来主持会议,他既可以是用户也可以是开发者还可以是从外面请来的人。使用一种“定义机制”(例如,工作表、图表等)。目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求。,8 分析建模与规格说明,1 分析建模 系统分析,特别是需求分析的主要任务,是理解用户的需求定义所要开发的目标系统。为了更好地理解问题,人们常常采用建立模型的方法。模型就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。,1:必须理解和表示问题的信息域,建立数据模型 2:必须定义软件应完成的功能,要求建立功能模型 3:必须表示作为外部事件结果的软件行为,建立行为模型,需求建模数据模型:实体-联系图(ER图)功能模型:数据流图(DFD)行为模型:状态转换图,从技术的角度看,软件工程实质上是从一系列建模活动开始的,这些建模活动导致对要求开发的软件要有完整的需求规格说明和全面的设计表示。结构化分析就是一种建立结构化的分析模型的活动。从不同角度描述或理解软件系统,需要不同的模型。结构化分析主要建立功能模型和数据模型。,2 软件需求规格说明书 由国家标准局发布的国家标准GB8567-88“计算机软件产品开发文件编制指南”,规定了在需求分析阶段应写出两份文档,分别是“软件需求说明书”和“数据要求说明书”。,9 验证软件需求,9.1 至少从四个方面验证软件需求 需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,应该从下述四个方面进行验证:一致性 完整性 现实性 有效性,跳过,9.2 验证软件需求的方法1.验证需求的一致性 当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验证软件系统规格说明书的正确性之外,目前还没有其他更好的“测试”方法。但是,这种非形式化的规格说明书是难于验证的。,2.验证需求的现实性 为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析软件需求规格说明书的现实性。,3、4:验证需求的完整性和有效性 只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要,只有在用户的密切合作下才能完成。只有当他们有某种工作着的软件系统可以实际使用和评价时,才能完整确切地提出他们的需要。使用原型系统是一个比较现实的替代方法,开发原型系统所需要的成本和时间可以大大少于开发实际系统所需要的。用户通过试用原型系统,也能获得许多宝贵的经验,从而可以提出更符合实际的要求。,9.3 用于需求分析的软件工具 为了更有效地保证软件需求的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求。(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;(4)使用这个软件工具之后,应该能够改进通信状况。,10 系统流程图,系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程,因此尽管系统流程图使用的某些符号和程序流程图中用的符号相同,但是它却是物理数据流图而不是程序流程图。,当以概括的方式抽象地描绘一个系统时,仅使用图2.2中列出的基本符号就够了,其中每个符号表示系统中的一个部件。,10.1 系统流程图的符号,当需要更具体地描绘一个物理系统时,还需要使用图中列出的系统符号。,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,图中每个符号用黑盒子形式定义了组成系统的一个部件,然而并没有指明每个部件的具体工作过程;图中的箭头确定了信息通过系统的逻辑路径(信息流动路径)。系统流程图的习惯画法是使信息在图中从顶向下或从左向右流动。每个符号都有名称,因此可以起文档的作用。许多分析员喜欢在系统流程图上加更详细的注释,有些人甚至另加一页纸来解释系统流程图。,10.3 分层画系统流程图 面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。例如,上述库存清单系统可以分为两个层次来描绘(只是为举例说明分层次描绘的方法,实际上这样简单的系统用不着分层描绘)。,分析员通常必须研究现有的物理系统,目的不是提供完整的文档资料,只是为了了解这个系统。画系统流程图是概括大量技术信息以及发现遗漏疏忽的极好方法。在设计阶段需要把设计结果从抽象的逻辑模型转变成具体的物理系统,用特定的程序或过程代替广义的处理,用具体的文件或数据库代替一般的数据存储。画出系统流程图就可以具体设想系统将如何实现。总之,不论在分析阶段还是设计阶段,系统流程图作为一种清晰简明的通信手段都是很有价值的,非常有助于开发人员和用户交流信息。当一个复杂的大系统由许多组软件工程师共同开发时,系统流程图可以作为公共参考文件,指明每个开发小组的工作在系统中的地位。,10.4 系统流程图的用途,11 实体-联系图,软件系统本质上是信息处理系统,因此,在软件系统的整个开发过程中都必须考虑两方面的问题“数据”及对数据的“处理”。在需求分析阶段则既要分析用户的数据要求,又要分析用户的处理要求。为了把用户的数据要求清晰明确地表达出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关。,根据所要解决的问题,来确定实体的合适的属性。在ER图中,用椭圆形或圆角矩形表示实体(或联系)的属性,并用直线把实体(或联系)与其属性连接起来。人们通常就是用实体、联系和属性这三个概念来理解现实问题的,因此,ER模型比较接近人的习惯思维方式。此外,ER模型使用简单的图形符号表达分析员对所要解决的问题的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为分析员与用户之间有效的交流工具。,最常用的表示概念性数据模型的方法,是实体-联系方法(Entity-Relationship Approach)。这种方法用实体-联系图(也称为实体-关系图或E-R图)描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。实体-联系模型中包含“实体”、“联系”和“属性”等三个基本成分,下面分别介绍这三个基本成分。,1.实体 实体是客观世界中存在的且可相互区分的事物。实体可以是人也可以是物;可以是具体事物也可以是抽象概念。例如,职工、学生、课程、教师等都是实体。2.联系 客观世界中的事物彼此间往往是有联系的。例如,教师与课程间存在“教”这种联系,而学生与课程间则存在“学”这种联系。联系可分为以下三类:(1)一对一联系(11)(2)一对多联系(1N)(3)多对多联系(MN),3.属性 属性是实体或联系所具有的性质。通常一个实体由若干个属性来刻画,例如,“学生”实体有学号、姓名、性别、系、年级等属性;“教师”实体有教工号、姓名、性别、职称、职务等属性;“课程”实体有课程号、课名、学时、学分等属性。联系也可能有属性。例如,学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以这是学生与课程之间的联系“学”的属性。,某校教学管理ER图,12 数据流图,数据流图(DFD,Data Flow Diagram)是用来描绘软件系统的逻辑模型的工具。通过数据流图描绘信息在系统中流动和加工处理的情况。是各类人员之间极好的交流、沟通的工具设计数据流图只需考虑系统必须完成的基本逻辑功能,一般在图中不使用具体的物理元素,完全不需要考虑如何具体地实现这些功能。,12.1数据流图符号,数据的源点/终点:是指在系统以外的事物或人加工处理:表示对数据的处理功能数据存储:表示对数据存储的逻辑描述,它可以是数据库文件或任何其他形式的数据组织。数据流:表示数据在系统中流动的方向。,除了上述四种基本符号之外,有时也使用几种附加符号。星号(*)表示数据流之间是“与”关系(同时存在);加号()表示“或”关系;号表示只能从中选一个(互斥的关系)。下图给出了这些附加符号的含义。,数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。,定货系统:问题描述(1),工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。画出上述定货系统的数据流图可采用以下步骤。,12.2 举例,定货系统:提取DFD元素(2),其中加星号标记的是在问题描述中隐含的成分。,定货系统:顶(0)层数据流图(3),仓库管理员,定货系统,采购员,事务,定货报表,在图中给处理和数据存储都加了编号,这样做的目的是便于引用和追踪。,定货系统:1层数据流图(4),2层数据流图(细化处理1)(5),自顶向下,逐步细化,注意,并不是所有数据存储和数据流都能直接从问题描述中提取出来。例如,“当某种零件的库存数量少于库存量临界值时就应该再次定货”,这个事实意味着必须在某个地方有零件库存量和库存量临界值这样的数据。因为这些数据元素的存在时间看来应该比单个事务的存在时间长,所以认为有一个数据存储保存库存清单数据是合理的。,数据流图的分层,数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统步骤(1)画顶层数据流图(2)画第一层数据流图(3)画下层各数据流图,接下来应该对功能级数据流图中描绘的系统主要功能进一步细化。考虑通过系统的逻辑数据流:当发生一个事务时必须首先接收它;随后按照事务的内容修改库存清单;最后,如果更新后的库存量少于库存量临界值,则应该再次定货,也就是需要处理定货信息。因此,把“处理事务”这个功能分解为“接收事务”、“更新库存清单”和“处理定货”这样三个子功能,在逻辑上是合理的。,画数据流图的注意事项,数据流图上所有图形符号只限于前述四种基本图形元素数据流图的主图必须包括前述四种基本元素,缺一不可数据流图的主图上的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡可以在数据流图中加入物质流,帮助用户理解数据流图图上每个元素都必须有名字数据流图中不可夹带控制流初画时可以忽略琐碎的细节,以集中精力于主要数据流,1.为数据流(或数据存储)命名 名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。,12.3 命名,通常先为数据流命名,然后再为与之相关联的处理命名。体现了人类习惯的“由表及里”的思考过程。名字应该反映整个处理的功能,而不是它的一部分。名字最好由一个及物动词,加上一个具体的宾语组成。尽量避免使用“加工”、“处理”等笼统的动词作名字。通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。,2.为处理命名,12.4 数据流图的用途 画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。由于在数据流图中通常仅仅使用四种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。数据流图的另一个主要用途是作为分析和设计的工具。,动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。一旦建立起对象模型之后,就需要考察对象的动态行为。生命周期中的阶段也就是对象的状态。所谓状态,是对对象属性值的一种抽象。当然,在定义状态时应该忽略那些不影响对象行为的属性。各对象之间相互触发(即作用),就形成了一系列的状态变化。我们把一个触发行为称作一个事件。对象对事件的响应,取决于接受该触发的对象当时所处的状态,响应包括改变自己的状态或者又形成一个新的触发行为。,13 动 态 模 型,13.1 概念 建立动态模型时需要使用的一些基本概念:1.事件 事件是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。事件没有持续时间,是瞬间完成的。事件也就是信息从一个对象到另一个对象的单向传送。受此事件触发的第二个对象,可以发送答复事件也可以不发送答复事件,即使发送答复事件,它也是受第二个对象控制的一个独立事件。简而言之,事件就是引起对象状态转换的控制信息。,2.状态 状态就是对象在其生命周期中的某个特定阶段所处的某种情形,它是对影响对象行为的属性值的一种抽象。状态规定了对象对输入事件的响应方式。对象对事件的响应,既可以是作一个(或一系列)动作,也可以是仅仅改变对象本身的状态。状态有持续性,它占用一段时间间隔。状态与事件密不可分,一个事件分开两个状态,一个状态隔开两个事件。事件表示时刻,状态代表时间间隔。在定义状态的时候,应该忽略那些不影响对象行为的属性。,3.行为 所谓行为,是指对象达到某种状态时所做的一系列处理操作。这些操作是需要耗费时间的。,13.2 图示符号 图给出了状态图中使用的表示符号。,图 状态图中使用的表示符号,3.举例 为了具体说明状态图的画法,下面以大家熟悉的电梯系统为例,画出它的状态图,如图所示。,电梯的状态图,在“空闲”状态,把状态变量timer的值置为0,然后连续递增timer的值,直到“上楼”或“下楼”事件发生或守卫条件“timer超时值”为真,触发状态转换。注意,从“空闲”状态到“在第一层”状态之间的状态转换,有一个守卫条件和一个动作表达式,但没有事件说明。因此,只要守卫条件“timer超时值”为真,状态转换就发生,这时将执行动作“下楼(第一层)”,然后状态由“空闲”转变为“在第一层”。,字典字典是为字提供音韵、意思解释、例句、用法等等的工具书。在西方,是没有字典的概念,它是中国独有的。字典收字为主,亦会收词。词典或辞典收词为主,也会收字。字典的功能现代的字典都提供了很多功能,其中两大功能分别是:以沟通为主,帮助对文字的理解、翻译及五笔以知识为主,针对某事物来寻获知识字典在黑客领域的含义黑客破解方面的字典是指一个包含很多密码的文本文件,黑客常用相关软件生成包含很多密码的字典文件,然后用软件把字典中的密码去不断尝试登陆,直到登陆成功。该过程被称为暴力破解,或者叫穷举。,14、数据字典,定义:数据字典是描述与系统相关的信息的集合,是对系统中所有数据的定义的集合。数据流图描述系统的逻辑模型,但它不可能表达一个系统的全部逻辑特性,特别是有关数据的详细内容。数据字典恰恰弥补了数据流图在这个方面的不足,它专门记录有关数据方面的信息,作为对数据流图的补充和解释。数据流图和数据词典共同构成全面描述软件需求说明书的核心。,数据字典要对数据流图中出现的所有名字进行定义。同日常使用的词典一样,为了便于查阅,词典中的所有条目都要按一定的次序排列起来,也可采用卡片的形式,以供开发与维护人员方便地使用。数据字典的内容主要包括:数据元素、数据流、数据存储、外部项、加工处理等。按词条形式描述数据的属性、结构、逻辑关系、特征信息等。,14.2 定义数据的方法 定义绝大多数复杂事物的方法,都是用被定义事物成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。由数据元素组成数据的方式只有下述三种基本类型:顺序 即以确定次序连接两个或多个分量。选择 即从两个或多个可能的元素中选取一个。重复 即把指定的分量重复零次或多次。可选 即一个分量是可有可无的(重复零次或一次)。,数据流定义中常用的符号含义如下:=表示“被定义为”;+表示“和”,连接两个或多个分量;.|.表示“选择”,即可选择方括号中的一项,用“|”作为各项的分割符;()表示“可选”,即括号内的项可选可不选;mn表示“重复”,n为重复次数的上限,m为重复次数的下限,如重复次数没有限定可不标出上下限。也可以利用上下标表示。,符 号 含 义 举 例 被定义为 与 x=ab.,.或.|.或 x=a,b,x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a)“.”基本数据元素 x=“a”.连结符 x=1.9,1.数据元素(数据元素是数据的最小组成单位,即不可再分的数据)数据元素名:类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:,2.数据流数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量,3.数据存储,数据存储名:简述:存放的是什么数据输入数据:输出数据:数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:,4.加工逻辑,加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序,5.源点及终点,名称:外部实体名简要描述:什么外部实体有关数据流:数目:,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息,14.3 数据字典的用途 数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。最后,数据字典是开发数据库的第一步,而且是很有价值的一步。,目前实现数据字典有三种常见的途径:全人工过程,全自动化过程(利用数据字典处理程序)和混合过程(用正文编辑程序,报告生成程序等已有的实用程序帮助人工过程)数据字典可以用人工方式建立,记录在卡片上。也可以用自动化的方式记录在计算机的存储器上。如果暂时还没有自动的数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据元素的信息。当开发过程进展到能够知道数据元素的控制信息和使用特点时,把这些信息记录在卡片的背面。,14.4 实现数据字典的途径,下面给出上面例子中数据字典卡片:,名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机,名字:零件编号别名:描述:惟一地标识库存清单中一个特定零件的关键域定义:零件编号=8字符8位置:定货报表定货信息库存清单,名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表定货信息,15 其他图形工具,在结构化分析过程的不同阶段,或者在同一分析阶段完成性质不同的任务时,分析员往往使用不同的图形工具辅助完成分析工作。,1层次图(H图)描绘数据的层次结构,或用于描述功能层次结构2Warnier图描绘数据的层次结构3IPO图描绘输入数据、处理、输出数据之间的关系,15、1 层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。,例如,描绘一家计算机公司全部产品的数据结构可以用右图表示。,15.2 Warnier图 法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具。和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息量是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。,Warnier图的一个例子,图是用Warnier图描绘一类软件产品的例子,它说明了这种图形工具的用法。,报纸,首版,商业金融版,文化体育版,标题新闻,国内新闻,本地新闻,股市行情(0,1),商业新闻,广告(1,5),文化、体育新闻,散文,新书评论,15.3 IPO图 IPO图是输入处理输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。图2.17是一个主文件更新的例子,通过这个例子不难了解IPO图的用法。,用IPO图描绘主文件更新功能,本书建议使用一种改进的IPO图,也称为IPO表。改进的IPO图中包含的附加信息,主要有系统名称,图的作者,完成本图的日期,本图描述的模块的名字,模块在层次图中的编号,调用本模块的模块清单,本模块调用的模块的清单,注释,以及本模块使用的局部数据元素等。,改进的IPO图的形式,本章到此结束谢谢!,

    注意事项

    本文(《结构化分析》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开