《软件系统开发技术》课件第3章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件系统开发技术》课件第3章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件系统开发技术 软件 系统 开发 技术 课件
- 资源描述:
-
1、第三章需求分析和规格说明方法3.1 需求分析和规格说明阶段的基本概念3.2 结构化分析(SA方法)概述3.3 数据流图3.4 数据词典3.5 小说明3.6 分析的步骤3.7 SA方法小结3.8 快速原型法3.9 需求分析阶段的其它工作习题三第三章需求分析和规格说明方法软件开发一般涉及两方面的人员:由用户提出问题,并期望由软件开发人员给出问题的解答。所以,开发过程由用户向开发人员提出问题开始。这两方面人员往往缺乏共同的语言,用户熟悉本身的业务(如飞机订票)但不熟悉计算机技术,软件人员熟悉计算机技术但不了解用户的业务,软件人员习惯用数据结构、程序结构、编程语言等方式来讨论问题,而用户不能确切地理解
2、这些概念,所以双方交流时存在着隔阂。3.1 需求分析和规格说明阶段的基本概念需求分析和规格说明阶段的基本概念第三章需求分析和规格说明方法更糟的情况是:用户本身也不知道他究竟要计算机做些什么,这就更增加了交流的困难。开发人员往往急于求成,于是在未明确软件系统应该“做什么”的情况下,就开始进行设计、编程,而用户则不清楚软件人员在设计一个怎样的系统,直至系统完成交付给用户之后,才发现它不符合要求,但这时已太迟了。这一类教训,国内、国外都不少见,用户与软件人员之间交流困难是造成软件危机的重要原因之一。在上述教训的基础上,人们认识到:为了开发出满意的软件系统,开发过程应该分为两大阶段进行,第一阶段是正确
3、地确定问题,第二阶段才是为问题寻找合适的解答。所以,开发时首先必须有一段时间集中精力分析理解用户究竟要求系统“做什么”,这就是需求分析和规格说明阶段的由来。第三章需求分析和规格说明方法 需求分析和规格说明阶段(Requirement Analysls and Specification),又称需求确定阶段或分析阶段,其目的是澄清用户的需求。这个阶段的基本任务是:用户和软件人员双方一起来充分地理解用户的要求,并把双方共同的理解明确地表达成一份书面文档需求说明书。所以分析阶段的两大任务就是“理解”和“表达”,“分析”就是理解问题,“规格说明”就是按某种标准的方式把问题表达出来。在软件生命期的各个阶
4、段中,分析阶段是面向“问题”的,它主要是对用户的业务活动(如飞机订票)进行分析,明确在用户的业务环境中,软件系统应该“做什么”;后面的设计、编程阶段则是面向“解答”的,这时考虑的是如何构造一个满足用户要求的系统。所以,在分析阶段,我们应集中考虑软件系统“做什么”,而尽可能少考虑系统将怎么样具体实现的问题,这些问题都应尽量推迟到以后的阶段去解决。第三章需求分析和规格说明方法下面讨论什么是“用户要求”(Requirements)。在电气工程中,为了研制一台收音机,首先必须明确用户对这台收音机有什么要求,它包括收音机应具有的功能及种种限制,例如“三波段,频率范围分别是Mw(530l605)kHz、s
5、w 1(2.36.0)MHz、sw 2(6.01 8)MHz,两喇叭,输出功率3.5 w2,电源为交直流两用,可以连续工作50 h以上,体积小于(4020l0)cm3,重量小于2 kg,成本费低于5 0元”。第三章需求分析和规格说明方法 在软件工程中,所谓“用户要求”(或称“需求”)是指软件系统必须满足的所有性质和限制。用户要求通常包括功能要求、性能要求、可靠性要求、安全保密要求以及开发费用、开发周期、可使用的资源等方面的限制,其中功能要求是最基本的,它又包括数据要求和加工要求两方面。用户和软件人员充分地理解了用户的要求之后,要将共同的理解明确地写成一份文档需求说明书(Requirement
6、specification),所以需求说明书就是“用户要求的明确表达。第三章需求分析和规格说明方法需求说明书主要有以下三个作用:作为用户和软件人员之间的合同,为双方相互了解提供基础。反映出问题的结构,可以作为软件人员进行设计和编写的基础。作为验收的依据,即作为选取测试用例和进行形式验证的依据。这三种作用对需求说明书提出了不同的、有些矛盾的要求:第三章需求分析和规格说明方法 作为设计的基础和验收的依据,需求说明书应该是精确而无二义的,这样才不致被人误解。需求说明书越精确,则以后出现错误、混淆、反复的可能性就越少。例如“本系统应能令人满意地处理所有的输入信息”是一种含糊不清的描述,验收时无法检查这
7、一要求是否满足。又如“响应时间足够快”也是不明确的,而“响应时间小于3 s”则是精确的描述,在测试时可以检查系统“满足”还是“不满足”这个要求。第三章需求分析和规格说明方法 用户能看懂需求说明书,并能发现和指出其中的错误是保证软件系统质量的关键,所以需求说明书必须简明易懂,尽量不包含计算机技术上的概念和术语,使用户和软件人员双方都能接受它。由于用户往往不是一个人,而是企业组织中各个部门的好几个工作人员,他们可能提出相互冲突的要求,分析阶段必须协调和解决这些冲突,最后在需求说明书中表达的应该是一致的、无矛盾的用户要求。第三章需求分析和规格说明方法 由于用户的要求时时会发生变化,需求说明书也就需要
8、作相应的修改,所以需求说明书的表达方式又必须是易于修改维护的。总之,需求说明书应该既完整、一致、精确、无二义,又要简明易懂并易于维护。显然,要达到这样的目标并非容易。第三章需求分析和规格说明方法 过去,软件人员往往不写需求说明书,或者是在程序完成之后,作为善后工作才补写需求说明书,对于大型软件系统来说,这种做法是不科学的。我们应该认识到:需求说明书是软件生命期中一份至关重要的文档,在分析阶段必须及时地建立并保证其质量。需求说明书实际上是为软件系统描绘一个逻辑模型,因此,在开发早期就为尚未诞生的软件系统建立起一个可见的模型,将是确保产品质量的有力措施,并可保证开发工作的顺利进行。第三章需求分析和
9、规格说明方法 大型系统的需求说明书往往有一二百页,一些超大型军事系统的需求说明书则可能超过一千页,当然其中不可避免地含有各种错误,开发人员应该清醒地认识到:错误发现得越早则纠正代价越小。所以需求说明书编写完后,应该组织用户和一些专家反复对其作检验和审查,争取尽早发现错误并及时纠正。分析阶段纠正需求说明书上的一个错误可能只要花半小时,而迟至后期纠正则可能要花成千倍的代价。这里,想一下“先苦后甜的座右铭相信是有益的。第三章需求分析和规格说明方法 分析阶段是用户和软件人员双方讨论协商的阶段,由于双方缺乏共同语言,所以需要有中间人来主持工作,分析员就是双方之间的中间人。一个分析员应具有以下的能力:熟悉
10、计算机技术。了解用户业务领域的相关知识。能在用户和软件人员之间借助数据处理的概念进行交流。过去,计算机的应用领域还是比较简单的,相比之下,训练软件人员去理解用户的业务比使用户掌握软件技术要容易些。由于这一历史原因,目前分析员一角通常由软件人员一方资历较高的人担任。将来计算机会应用于技术上比较复杂的领域,而计算机知识将越来越普及,那时分析员一角由用户方面熟悉计算机技术的人来担任将会更合适。第三章需求分析和规格说明方法分析阶段由分析员主持,用户一方应派代表积极参加,他们应包括企业负责人,企业中各部门的负责人以及具体工作人员等三个层次的代表,因为企业负责人了解总的策略以及今后的发展,部门负责人了解各
11、部门的业务情况,而具体工作人员则熟悉具体的操作,他们所提供的情况在分析阶段都应认真收集和考虑。用户一方的责任是从他们的业务角度出发对系统提出要求,一般说来,他们不应干预系统怎么样实现的问题。第三章需求分析和规格说明方法分析员的责任是做用户的顾问和翻译,但他们不应该代替用户对系统提出要求。在分析员的主持下,用户和软件人员经过充分交流,最后对系统具体应该“做什么”达成协议,这个协议实际上就是需求说明书。分析阶段是保证软件质量的第一步,它的任务是复杂的,如何分析用户要求,需求说明书用什么形式表示等都需要有一定的技术来指导。由于分析阶段是同用户进行讨论,因此这个阶段的方法、模型、语言和工具都必须考虑到
12、用户的特点。7 0年代以来,逐步出现了多种适用于分析阶段的技术,但是至今还没有既能完整精确地描述大型系统的用户要求,又能简单易懂地被广大用户接受的形式语言,目前大多数软件系统的需求说明书还是用非形式化的方式(例如用图形或自然语言等)表示的。第三章需求分析和规格说明方法 在众多的分析技术中,具有代表性的有Yourdon公司的“结构化分析”忍引、密执安大学的PsLPSA系统、TRw公司的sR V等。本章3.23.7将介绍“结构化分析”这一典型的分析方法,3.8简述快速原型法,3.9进一步讨论分析阶段的其他活动。第三章需求分析和规格说明方法 在众多的分析方法中,“结构化分析”(structured
13、Analysis,简称sA方法)是一个简单实用、使用很广的方法。sA方法由美国Yourdon公司在70年代提出,它适用于分析大型的数据处理系统,特别是企事业管理方面的系统。这个方法通常与设计阶段的结构化设计(sD方法)衔接起来使用。3.2 结构化分析结构化分析(sA方法方法)概述概述第三章需求分析和规格说明方法 介绍sA方法的经典著作是参考文献1、2等,其中第一本书的作者是TomDeMarco,所以sA方法又常称为YourdonDeMarco方法。考虑到国情,本书对sA方法作了少量的修改和一定的简化。第三章需求分析和规格说明方法 3.2.1 由顶向下逐层分解由顶向下逐层分解 软件工程技术中,控
14、制复杂性的两个基本手段是“分解”和“抽象”。对于一个复杂的问题,由于人的理解力、记忆力均有限,所以不可能触及到问题的所有方面以及全部的细节。为了将复杂性降低到人可以掌握的程度,可以把大问题分割成若干个小问题,然后分别解决,这就是“分解”;分解也可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这就是“抽象。同许多典型的分析方法(如sADT、lsAc)一样,sA方法也是采用了这两个基本手段。第三章需求分析和规格说明方法 对于一个复杂的系统(例如银行管理系统),如何理解和表达它的功能呢?sA方法使用了“由顶向下逐层分解”的方式。图3.1中系统x很复杂
15、,为了理解它,可以将它分解成1、2、3、4几个子系统;如果子系统l和2仍然很复杂,可以将它们再分解成1.1、1.2、等子系统,如此继续下去,直到子系统足够简单,能够清楚地被理解和表达为止。第三章需求分析和规格说明方法 对系统作了合理的逐层分解后,我们就可分别理解系统的每一个细部(图3.1中的1.1、1.2、2.1、2.2、等),并为每个细部写下说明(称为“小说明”),再将所有这些“小说明”组织起来,就获得了整个系统x的系统说明书。“逐层分解体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这是有助于理解问题的。第三章需求分析和规格说明方法 图3.1的顶层抽
16、象地描述了整个系统,底层具体地画出了系统的每一个细部,而中间层则是从抽象到具体的逐步过渡。但是简明易懂,所表达的意义也比较明确。用sA方法获得的需求说明书由以下几部分组成:一套分层的数据流图。一本数据词典。一组小说明。补充材料。第三章需求分析和规格说明方法这套文档中,“数据流图”描述系统的分解,即描述系统由哪些部分组成、各部分之间有什么联系等;“数据词典”描述系统中的每一个数据;“小说明”则详细描述系统中的每一个加工。上述资料再加上视系统而定的各种补充材料就可明确而完整地描述一个系统的功能。sA方法在描述方式上的特点是尽量采用图形表示,因为图形比较形象、直观、易于理解,一张图的表达效果可能比几
17、千字的叙述还要好。第三章需求分析和规格说明方法 3.2.3 步骤步骤 目前大多数计算机系统都是用来代替一个当前已经存在的人工数据处理系统,对于这类系统的分析过程可分四步进行:1.理解当前的现实环境,获得当前人工系统的具体模型。2.从当前系统的具体模型抽象出当前系统的逻辑模型。3.分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。4.为目标系统的逻辑模型作补充。第三章需求分析和规格说明方法 3.3.1 数据流图的基本成分数据流图的基本成分 sA方法采用“分解”的方式来理解一个复杂的系统,“分解”需要有描述的手段,数据流图(Data Flow Diagram)就是作为描述“分解的手段引进
18、的。对大多数数据处理系统来说,从数据流的角度来描述一个企事业组织的业务活动是比较合适的。数据流图描述了一个组织有哪几个组成部分,也描述了来往于各部分之间的数据流。下面先看一个例子。3.3 数据流图数据流图第三章需求分析和规格说明方法 假定要为某培训中心研制一个计算机管理系统,我们首先需分析这个系统应该做些什么,为此必须分析培训中心的业务活动。培训中心是一个功能很复杂的系统,它为有关行业的在职人员开设许多门课程,有兴趣的人可以来电或来函报名选修某门课程,培训中心要收取一定的费用,学员通过支票付款,学员也可以来电或来函查询课程计划等有关事宜。培训中心的日常业务是:将学员发来的电报、信件、电话收集分
19、类后,按几种不同情况处理。第三章需求分析和规格说明方法如果是报名的,则将报名数据送给负责报名事务的职员,他们要查阅课程文件,检查某课程是否额满,然后在学生文件、课程文件上登记,并开出报名单交财务部门,财务人员再开出发票经复审后通知学员。如果是付款的,则由财务人员在帐目文件上登记,再经复审后也给学员一张通知单。如果是查询的,则交查询部门查阅课程文件后给出答复。如果是想注销原来已选修的课程,则由注销人员在课程、学生、帐目文件上作相应修改,经复审后通知学员。对一些要求不合理的函电,培训中心将拒绝处理。第三章需求分析和规格说明方法 我们可以用图3.2的数据流图描述这个系统的“分解”。这张图告诉我们:系
20、统分解成“收集”、“分类”、“报名”等8个部分,这些部分之间通过图中所示的数据流进行联系,要理解整个系统只需分别理解这8个部分就可以了。由于每个部分比整个系统小多了,所以分析工作就可简化。图3.3是一张简单的数据流图,它所表达的意思是:数据流X从源点S流出被加工P1变换成数据流Y,加工P1执行时要访问文件F;数据流Y又被加工P2变换成数据流Z。下面分别讨论各种成分。第三章需求分析和规格说明方法图3.2第三章需求分析和规格说明方法图3.3第三章需求分析和规格说明方法 1.数据流数据流 数据流由一组固定成分的数据组成。如图3.2中,数据流“报名数据”由“姓名”、“年龄”、“性别”、“单位名”、“课
21、程名”等成分组成,数据流“发票”由“姓名”、“单位名”、“金额”组成,它们的组成成分都是确定的。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。第三章需求分析和规格说明方法 两个加工之间可以有几股数据流,如图3.4所示,日报表和月报表这两个数据流相互间没有任何联系,也不是同时流出的。一般说,除了流向文件或从文件流出的数据流不必命名之外(在这种情况下,有文件名已足够了),每个数据流必须有一个合适的名字。名字一方面是为了区别,同时也是给人一个直观的印象,使人容易理解这个数据流的含义。为数据流命名时,可从其组成成分或含义的角度来考虑,如图3.5中
22、,“取款单”和“合理取款单的组成是相同的,但后者是经检查后认为合理的(如它的“帐号”和“户名”相符),这样的命名就易于理解。第三章需求分析和规格说明方法 图 3.4 第三章需求分析和规格说明方法 图 3.5 第三章需求分析和规格说明方法 应该注意的是:数据流图中描述的是数据流而不是控制流。图3.6中“取下一张卡片”是一个控制流而不是数据流,因为并没有任何数据沿着这个箭头流动,所以这个箭头应该从图中删去。习惯使用框图(程序流程图)的软件人员特别应该注意不要犯这种错误。图3.7中“每月第一天”是加工“计算工资”的激发条件,它也不是数据流,因为并没有数据流经它,所以也应删去。第三章需求分析和规格说明
23、方法图 3.6 第三章需求分析和规格说明方法图 3.7 第三章需求分析和规格说明方法 2.加工加工 加工是对数据进行的操作。图3.2中,“报名”、“产生发票”、“查询”等都是加工。加工的名字也应适当地反映这个加工的含义,使之容易理解。每个加工还有一个编号,编号说明这个加工在层次分解中的位置,这个问题将在3.3.4节讨论。第三章需求分析和规格说明方法 3.文件文件 文件是暂时存贮的数据。图3.2中有“学生”、“课程”、“帐目”,等文件。文件的名字也应适当地选择,以便理解。我们还应注意加工与文件之间数据流的方向,如果加工要读文件,则数据流是从文件流出的,如果加工要写文件或修改文件(虽然修改文件一般
24、先要读文件,但其本质是写)则数据流是流向文件的,如果加工既要读文件(除了修改文件之外)又要写文件,则数据流是双向的。第三章需求分析和规格说明方法图3.8中,加工“检查拼写的正确性对输入的词进行检查,当在涧汇表词汇表中查不到这个词时,则认为这个词是错误的加以拒绝,由于这个加工只读词汇表,所以图中的箭头从文件流出。如果这个加工从词汇表中查不到输入的词时,认为这是一个新的词,并将它增添到词汇表中,则加工与文件间的箭头应画成双向的。第三章需求分析和规格说明方法 4.源点和终点源点和终点 一个数据处理系统的内部用数据流、文件和加工三种成分表示一般已够了,然而为了便于理解,有时还可以画出数据流的源点和终点
25、来说明它的来龙去脉。源点和终点通常是存在于系统之外的人员或组织,如图3.2中“学员”是数据流“函电”的源点,也是数据流“通知单”的终点。第三章需求分析和规格说明方法 画出源点和终点只是起到注释作用帮助理解而已,由于它们是系统之外的事物,我们对此是不很关心的,所以源点和终点的表达不必很严格。除了上述四个基本成分之外,根据具体情况,数据流图中也可画出一些物质流。物质流可用粗箭头表示(图3.9)。由于物质流与数据流往往是密切联系的,如一批货物同描述这批货物的清单一起从某个部门发出,在数据流图中画上物质流可能有助于理解,但是这类信息到最后总要从数据流图中抹去,因为软件系统只能处理数据而不能处理物质。第
展开阅读全文