结构化需求分析方法.docx
《结构化需求分析方法.docx》由会员分享,可在线阅读,更多相关《结构化需求分析方法.docx(8页珍藏版)》请在冰豆网上搜索。
![结构化需求分析方法.docx](https://file1.bdocx.com/fileroot1/2023-1/5/4b088a9d-6d89-4a34-aec0-f5fc534bd4ac/4b088a9d-6d89-4a34-aec0-f5fc534bd4ac1.gif)
结构化需求分析方法
结构化分析〔SA〕方法
结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。
结构化分析(StructuredAnalysis,简称SA法)方法是面向数据流的需求分析方法,是70年代末由Yourdon,Constaintine及DeMarco等人提出和开展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1SA法概述
1.SA法的根本思想
结构化分析(StructuredAnalysis,简称SA法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine及DeMarco等人提出和开展,并得到广泛的应用。
结构化分析方法的根本思想是“分解〞和“抽象〞。
分解:
是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成假设干小问题,然后分别解决。
图4是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:
分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象〞。
2.SA法的步骤
⑴建立当前系统的“具体模型〞;
系统的“具体模型〞就是现实环境的忠实写照,即将当前系统用DFD图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;
分析系统的“具体模型〞,抽象出其本质的因素,排除次要因素,获得用DFD图描述的当前系统的“逻辑模型〞。
⑶建立目标系统的逻辑模型;
分析目标系统与当前系统逻辑上的差异,从而进一步明确目标系统“做什么〞,建立目标系统的“逻辑模型〞(修改后的DFD图)。
⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。
3.SA法的描述工具
⑴分层的数据流图
⑵数据词典
⑶描述加工逻辑的结构化语言、判定表或判定树。
2数据流图
数据流图(DataFlowDiagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。
1.数据流图的图符数据流图有以下4种根本图形符号:
箭头表示数据流,圆或椭圆表示加工。
双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。
⑴数据流是数据在系统内传播的路径,由一组成固定的数据项组成。
除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。
数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。
⑵加工也称为数据处理,它对数据流进行某些操作或变换。
每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。
在分层的数据流图中,加工还应有编号。
⑶数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。
⑷数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。
一般只出现在数据流图的顶层图中。
还有一些辅助的图例:
例1:
画出图书预定系统的DFD图。
现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉。
经过验证的正确订单,暂存放在待处理的订单文件中。
对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。
画图步骤是:
⑴首先确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版社订单)。
⑵再分解顶层的加工(验证订单、汇总订单)。
⑶确定所使用的文件(图书目录文件、顾客档案等5个文件)。
⑷用数据流将各局部连接起来,形成数据封闭。
特别要注意的是:
数据流图不是传统的流程图或框图,数据流也不是控制流。
数据流图是从数据的角度来描述一个系统,而框图那么是从对数据进行加工的工作人员的角度来描述系统。
数据流图中的箭头是数据流,而框图中的箭头那么是控制流,控制流表达的是程序执行的次序。
下列图是培训中心管理系统的数据流图,由于只有一层,因此分解的加工较多不易理解,而且如果其中某个加工较复杂,例如编号为3的加工“付款〞和编号为7的加工“复审〞仍很复杂,一时难以理解,如果不继续分解下去,直到每个加工都足够简单易于理解为止,那么会影响需求分析结果的可读性。
1.画分层DFD图的方法
如图2.8所示,如果系统规模较大,仅用一个DFD图难以描述,会使得系统变得复杂,且难以理解。
为了降低系统的复杂性,采取“逐层分解〞的技术,画分层的DFD图。
画分层DFD图的一般原那么是:
“先全局后局部,先整体后细节,先抽象后具体〞。
通常将这种分层的DFD图,分为顶层、中间层、底层。
顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。
底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为根本加工。
在顶层和底层之间的是中间层。
中间层的数据流图描述了某个加工的分解,而它的组成局部又要进一步分解。
画各层DFD图时,应“由外向内〞。
画分层DFD图的具体步骤:
⑴先确定系统范围,画出顶层的DFD图。
⑵逐层分解顶层DFD图,获得假设干中间层DFD图。
⑶画出底层的DFD图。
在画分层数据流图时,首先遇到的问题就是应该如何分解?
不能够一下子把一个加工分解成它所有的根本加工,一张图中画出过多的加工是使人难以理解的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。
一个加工每次分解成多少个子加工才适宜呢?
根据经验“最多不要超过7个〞。
统计结果证明,人们能有效地同时处理7个或7个以下的问题,但当问题多于7个时,处理效果就会下降。
当然也不能机械地应用,关键是要使数据流图易于理解。
同时还有几条原那么可供参考:
分解应自然,概念上要合理、清晰。
只要不影响数据流图的“易理解性〞,可以适当地多分解成几局部,这样分层图的层数就可少些。
一般来说,在上层可以分解得快些,而在中、下层那么应分解得慢些,因为上层是一些综合性的描述,“易理解性〞相对地说不太重要。
下节我们以一个实例来说明画分层DFD图的方法。
2分层DFD图的改良
分层数据流图是一种比拟严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层那么给出了从抽象到具体的逐步过渡。
1.画分层DFD图的根本原那么
⑴.数据守恒与数据封闭原那么
所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。
或者说一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原那么
自然性:
概念上合理、清晰;
均匀性:
理想的分解是将一个问题分解成大小均匀的几个局部;
分解度:
一般每一个加工每次分解最多不要超过7个子加工,应分解到根本加工为止。
⑶子图与父图的“平衡〞父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡〞。
例1考察下列图中子父图的平衡
显然,图2.13中子图与父图不平衡。
子图是父图中加工2的分解,加工2有输入数据流R和M,输出数据流T,而子图那么只有一个输入数据流N,却有两个输出数据流T与S。
图2.14中,子图是父图中加工4的分解,虽然外表上加工4只有一个输入数据流“订货单〞,而子图却有三个输入数据流,但是如果“订货单〞是由“客户〞、“帐号〞和“数量〞三局部组成,即有如下数据条目:
订货单=客户+帐号+数量(2.2.5数据词典),那么子、父图平衡。
⑷合理使用文件
当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来。
理解一个问题总要经过从不正确到正确,从不确切到确切的过程,需求分析的过程总是要不断反复的,一次就成功的可能性是很小的,对复杂的系统尤其如此,因此,系统分析员应随时准备对数据流图进行修改和完善,与用户取得共识,获得无二义性的需求,才能获得更正确清晰的需求说明,使得设计、编程等阶段能够顺利进行,这样做是必须和值得的。
3.分层DFD图的改良
DFD图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD图)。
改良的原那么与画分层DFD图的根本原那么是一致的,可从以下方面考虑DFD图的改良:
⑴检查数据流的正确性
①数据守恒
②子图、父图的平衡
③文件使用是否合理。
特别注意输入/出文件的数据流。
⑵改良DFD图的易理解性
①简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。
②改良分解的均匀性。
③适当命名(各成分名称无二义性,准确、具体)。
分层数据流图只是表达了系统的“分解〞,为了完整地描述这个系统,还需借助“数据词典〞(datadictionary)和“小说明〞对图中的每个数据和加工给出解释。
对数据流图中包含的所有元素的定义的集合构成了数据词典。
它有四类条目:
数据流、数据项、文件及根本加工。
在定义数据流或文件时,使用表2-1给出的符号。
将这些条目按照一定的规那么组织起来,构成数据词典。
给出了DFD中数据流的定义,通常对数据流的简单描述为列出该数据流的各组成数据项。
例:
数据流“乘客名单〞由假设干“乘客姓名〞、“单位名〞和“等级〞组成,那么词典中的“乘客名单〞条目是:
乘客名单={乘客姓名+单位名+等级}
又如:
报名单=姓名+单位名+年龄+性别+课程名
也可以对数据流进行较详细的描述,如下例:
例:
某查询系统中,有个名为“查询〞的数据流,目前“查询〞有三种类型,即“顾客状况查询〞、“存货查询〞和“发票存根查询〞,预计至1990年底还将增加3至4种其他类型的查询。
系统每天约需处理2000次查询,每天上午9:
00—10:
00是查询的顶峰,此时约有1000次查询。
上述信息都是“用户要求〞的一局部,在分析阶段应该认真收集,并记录在词典的有关条目中,所以“查询〞条目描述如下。
数据流名:
查询
简述:
系统处理的一个命令
别名:
无
组成:
[顾客状况查询|存货查询|发票存根查询]
数据量:
2021次/天
峰值:
每天上午9:
00—l0:
00有l000次
注释:
至1990年底还将增加3至4种查询
给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流,还可指出文件的组织方式。
例:
某销售系统的订单文件:
订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期
给出某个数据单项的定义,通常是该数据项的值类型、允许值等。
例如:
帐号=00000~99999;存款期=[1|3|5](单位:
年)4.加工条目加工条目就是“加工小说明〞。
由于“加工〞是DFD图的重要组成局部,一般应单独进行说明。
因此,数据词典是对数据流图中所包含的各种元素定义的集合。
它对的4类条目:
数据流、数据项、文件及根本加工进行了描述,是对DFD图的补充。
论大学生写作能力
写作能力是对自己所积累的信息进行选择、提取、加工、改造并将之形成为书面文字的能力。
积累是写作的基础,积累越厚实,写作就越有基础,文章就能根深叶茂开奇葩。
没有积累,胸无点墨,怎么也不会写出作文来的。
写作能力是每个大学生必须具备的能力。
从目前高校整体情况上看,大学生的写作能力较为欠缺。
一、大学生应用文写作能力的定义
那么,大学生的写作能力究竟是指什么呢?
叶圣陶先生曾经说过,“大学毕业生不一定能写小说诗歌,但是一定要写工作和生活中实用的文章,而且非写得既通顺又扎实不可。
”对于大学生的写作能力应包含什么,可能有多种理解,但从叶圣陶先生的谈话中,我认为:
大学生写作能力应包括应用写作能力和文学写作能力,而前者是必须的,后者是“不一定”要具备,能具备则更好。
众所周知,对于大学生来说,是要写毕业论文的,我认为写作论文的能力可以包含在应用写作能力之中。
大学生写作能力的体现,也往往是在撰写毕业论文中集中体现出来的。
本科毕业论文无论是对于学生个人还是对于院系和学校来说,都是十分重要的。
如何提高本科毕业论文的质量和水平,就成为教育行政部门和高校都很重视的一个重要课题。
如何提高大学生的写作能力的问题必须得到社会的广泛关注,并且提出对策去实施解决。
二、造成大学生应用文写作困境的原因:
(一)大学写作课开设结构不合理。
就目前中国多数高校的学科设置来看,除了中文专业会系统开设写作的系列课程外,其他专业的学生都只开设了普及性的《大学语文》课。
学生写作能力的提高是一项艰巨复杂的任务,而我们的课程设置仅把这一任务交给了大学语文教师,可大学语文教师既要在有限课时时间内普及相关经典名著知识,又要适度提高学生的鉴赏能力,且要教会学生写作规律并提高写作能力,任务之重实难完成。
(二)对实用写作的普遍性不重视。
“大学语文”教育已经被严重地“边缘化”。
目前对中国语文的态度淡漠,而是呈现出全民学英语的大好势头。
中小学如此,大学更是如此。
对我们的母语中国语文,在大学反而被漠视,没有相关的课程的设置,没有系统的学习实践训练。
这其实是国人的一种偏见。
应用写作有它自身的规律和方法。
一个人学问很大,会写小说、诗歌、戏剧等,但如果不晓得应用文写作的特点和方法,他就写不好应用文。
(三)部分大学生学习态度不端正。
很多非中文专业的大学生对写作的学习和训练都只是集中在《大学语文》这一门课上,大部分学生只愿意被动地接受大学语文老师所讲授的文学经典故事,而对于需要学生动手动脑去写的作文,却是尽可能应付差事,这样势必不能让大学生的写作水平有所提高。
(四)教师的实践性教学不强。
学生写作能力的提高是一项艰巨复杂的任务,但在教学中有不少教师过多注重理论知识,实践性教学环节却往往被忽视。
理论讲了一大堆,但是实践却几乎没有,训练也少得可怜。
阅读与写作都需要很强的实践操作,学习理论固然必不可少,但是阅读方法和写作技巧的掌握才是最重要的。
由于以上的原因,我们的大学生的写作水平着实令人堪忧,那么如何走出这一困境,笔者提出一些建议,希望能对大学生写作水平的提高有所帮助。
三、提高大学生应用写作能力的对策
(一)把《应用写作》课设置为大学生的必修课。
在中国的每一所大学,《应用写作》应该成为大学生的必修课。
因为在这个被某些人形容为实用主义、功利主义甚嚣尘上的时代,也是个人生存竞争最激烈的时代,人们比任何时代都更需要学会写作实用性的文章,比如职场竞争中的求职信,生活中的财经文书、法律文书等,以提高个人的生存竞争能力。
(二)端正大学生的学习态度。
首先,要让大学生充分认识到实用写作课的重要性,这门课关乎到他人生的每一个方面,诸如就职,求爱,理财,人际交往等,是他终生都需要使用的一些基础性的知识,也是他必备的一项生存技能。
其次,实用写作有它自身的规律和方法。
它不是你想怎样写都行的,它有严格的格式性的要求,所以需要系统的研究学习。
最后,实用写作课的实践性非常强,所以学生们不能只学不练,并且要克服手懒的坏习惯,勤学勤练,为今后的工作生活打好基础。
(三)注重实践课的训练。
要提高大学生的实用写作能力,那么实践写作环节是必不可少的。
要想使学员真正具备实用写作能力,必须重视实用写作训练,力求使理论讲授与写作训练互相紧扣进行。
教师在授课过程中,应该把理论教学的部分适当压缩,把更多的时间用来实践训练。
在训练之前,可以通过对优秀案例的精讲分析,让学生掌握基本的写作规律,然后趁热打铁,让学生立即开始写作训练,最后通过大家互评,教师点评的方式,起到举一反三的作用,让学生知道应该如何写,还要写出来,并且知道写得怎么样。
此外,在教学上,教师也可以与学生一起探讨如何学习,如《实用写作》这门课程,如何上,怎样上,都可以让学生参与进来,让学生编制一些案例,在课堂上与大家分享,一起讨论。
这样,一方面调动大家的学习热情,另一方面,又提高他们综合分析能力。
学生只有在实践中才能真正掌握和把握实用写作的技巧和方法。
(四)大学写作教师要加强自身能力的提高。
要提高大学生的实用写作能力,那么作为教练员的大学写作教师就应该具备更高的实用写作能力。
大学写作教师不仅要有深厚的文学功底和理论研习能力,还要对实用文的各种文体都能写作自如,此外还要懂得如何把自己的经验传授给学生,让学生学以致用。
因此,大学写作教师也要做好自身的继续学习,认真备好这门课,积极参与到写作实践训练中,积累教学和实践经验,在教与学及与学生互动中使自己的能力不断提升。
四、结语
综上所述,提高大学生的实用写作能力是一项系统工程,需要所有各方的共同努力。
但所有的努力都是值得的,因为,无论社会怎么发展,人们都离不开阅读与写作,特别在信息高度发达的今天,阅读与写作已是人才最重要的技能之一。