版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程第三章第一页,共六十九页,2022年,8月28日需求分析评判一个软件项目成功的标准是看它是否解决了用户的问题,而用户的问题就是体现为用户的需求,需求也就顺理成章的成为项目的成功标准。而需求阶段的一个不慎都有可能导致软件实现阶段的大量返工,而需求的不慎不是说你小心就可以的,因为很多需求是隐性的,连用户都不清楚自己的需求。这时候就需要一种科学的方法来帮助软件组织实施需求过程。第二页,共六十九页,2022年,8月28日"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。"
第三页,共六十九页,2022年,8月28日需求分析的概念什么是需求?对用户来讲:需求是对软件产品的解释,是用户对目标软件系统在功能、行为、性能、设计和约束等方面的期望。而开发人员所讲的需求对用户来说又像是详细设计。比较权威的定义是IEEE软件工程标准词汇表中的需求定义。第四页,共六十九页,2022年,8月28日用户解决问题或达到目标所需的条件或权能(Capability)。系统或系统部件要满足合同,标准,规范或其他正式规定文档所需要具有的条件或权能。一种反映上面(1)或(2)所描述的条件或权能的文档说明。第五页,共六十九页,2022年,8月28日
可行性分析vs需求分析第六页,共六十九页,2022年,8月28日需求的层次需求可分解为4个层次:(1)业务需求(BusinessRequirement)(2)用户需求(UserRequirement)(3)功能需求(FunctionalRequirement)(4)非功能需求第七页,共六十九页,2022年,8月28日需求分析的任务需求工程需求管理需求开发问题获取分析编写规格说明验证变更控制版本控制需求跟踪需求状态跟踪需求工程结构图第八页,共六十九页,2022年,8月28日需求开发需求获取是需求开发的第一步。分析员通过与用户充分交流,准确、完整地获取用户需求,确定软件系统的综合要求。通常软件系统的综合要求包括下述几个方面:(1)系统功能要求(2)性能要求(3)运行和扩充要求(4)系统维护要求(5)系统文档规格要求第九页,共六十九页,2022年,8月28日需求开发具体分析建模过程如下图当前系统当前系统物理模型当前系统逻辑模型目标系统逻辑模型模型化抽象化理解、表达分析建模过程第十页,共六十九页,2022年,8月28日需求开发-需求验证(1)完整性(2)正确性(3)一致性(4)必要性(5)无歧义性(6)可验证性(7)优先级的划分
第十一页,共六十九页,2022年,8月28日需求分析的任务需求开发的过程如下图:问题获取分析编写规格说明验证需求开发的过程第十二页,共六十九页,2022年,8月28日需求管理需求开发的结果是形成了客户与开发人员双方均满意的系统逻辑模型,它连结需求开发和需求管理,作为需求管理的输入。需求管理的过程,从需求获取即开始,并贯穿于整个软件项目生命周期,以实现最终产品同需求的最佳结合。第十三页,共六十九页,2022年,8月28日获取需求的方法在需求获取中遇到的典型问题如下:(1)对需求的理解问题(2)分析人员与用户的通信的问题(3)用户需求的可变性问题(4)分析方法和分析工具问题第十四页,共六十九页,2022年,8月28日获取需求的常用方法1访谈(分正式访谈和非正式访谈)正式访谈时,系统分析员将提出一些事先准备好的具体问题,例如,询问处理的单据种类、处理的方法及信息反馈时间应该多快等。而在非正式访谈中,分析员可提出一些用户可以自由回答的开放性问题。采用访谈方式分析员的主要任务是问题的设计,包括探讨功能,非功能,例外情况的问题,甚至是一些看起来似乎“愚蠢”的问题。第十五页,共六十九页,2022年,8月28日获取需求的常用方法2问卷调查采用问卷调查方法的关键是调查表的设计。3情景分析所谓情景分析就是对目标系统解决某个具体问题的方法和结果,给出可能的情景描述,以获知用户的具体需求。优点:第一,它能在某种程度上演示目标系统的行为,便于用户理解,从而进一步揭示出一些分析员目前还不知道的需求第二,情景分析较容易为用户所理解,使得用户在需求分析中能够扮演一个积极主动的角色。第十六页,共六十九页,2022年,8月28日获取需求的常用方法4实地考察5构造原型第十七页,共六十九页,2022年,8月28日需求分析的原则解决逻辑问题以运行环境为基础用户参与的原则构造高质量的需求规格说明第十八页,共六十九页,2022年,8月28日需求分析方法应满足的基本要求必须能理解问题的数据域和功能域计算机程序所处理的数据域的描述一般为数据内容、数据结构和数据流数据内容就是数据项,数据结构就是数据项的组织形式,数据流是数据通过系统时的变化方式必须能按自顶向下、逐层分解的方式对问题进行分解和不断细化第十九页,共六十九页,2022年,8月28日教学管理系统学生管理教师管理课程管理教务管理考试管理学生考试试卷评阅考务管理题库维护试卷生成纵向分解横向分解问题的分解第二十页,共六十九页,2022年,8月28日需求分析方法应满足的基本要求要给出系统的逻辑视图和物理视图
逻辑视图:描述的是软件要达到的功能和要处理的信息之间的关系,但没有描述实现的细节。在逻辑视图中只关心库存文件的数据结构,而不考虑计算机的具体存储方式。
物理视图:给出的是处理功能和信息结构的实际表现形式,需考虑实际的环境和具体的设备。如一些数据是由终端键盘输入的,而有些数据可能是由模-数转换设备提供的。第二十一页,共六十九页,2022年,8月28日结构化分析方法包括:结构化分析(SA)、结构化设计(SD)和结构化编程(SP)面向数据流进行需求分析的方法结构化分析方法适合于数据处理类型软件的需求分析基本思想:具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止第二十二页,共六十九页,2022年,8月28日结构化分析方法描述工具:
数据流图(DataFlowDiagram,DFD):描绘系统逻辑模型的图形工具,描述了系统的组成部分及各部分之间的联系。通常通过对系统的分解得到一套分层的数据流图。
数据字典(DataDictionary,DD):DFD只描绘信息在系统中的流动和处理情况,而数据字典则是对图中的元素进行定义。
结构化英语,判定表与判定树:详细描述数据流图中一些复杂处理的加工逻辑。第二十三页,共六十九页,2022年,8月28日结构化分析方法的描述工具数据流图(DataFlowDiagram,DFD):描绘系统逻辑模型的图形工具,描述了系统的组成部分及各部分之间的联系。通常通过对系统的分解得到一套分层的数据流图。第二十四页,共六十九页,2022年,8月28日数据流图中的主要图形元素数据加工(数据变换)数据源或终点(外部实体)数据流数据存储文件加工是对数据进行处理的逻辑单元。它接受若干输入数据流,通过加工,内部产生规定的输出数据流它是系统之外的实体,可以是人、物、部门或者其他系统。利用数据源点和终点可明确标识出系统与环境的接口,给出系统有效作用范围的边界。第二十五页,共六十九页,2022年,8月28日举例:学生1学生选择课程3打印表格2注册课程学生教师选课单费用学生课程成绩记载单开课清单课程注册表一个学生选课系统的数据流图第二十六页,共六十九页,2022年,8月28日数据流数据流用带数据流标识的箭头表示,表示系统处理的数据对象和数据流动的方向。数据流的方向是:从一加工流向另一加工从加工流向数据存储或数据存储流向加工从源点流向加工或从加工流向终点当数据流的方向指向一个加工时,表示它是该加工的一个输入数据流;当数据流的方向是从一个加工发出时,表示它是通过该加工得到的一个输出数据流。第二十七页,共六十九页,2022年,8月28日数据流含有控制流的例子数据流反映的是加工处理的对象,控制流是一种选择或用来影响加工的性质,而不是对它进行加工的对象读入卡片卡片校验合法卡卡片数读下张卡片第二十八页,共六十九页,2022年,8月28日数据存储数据存储逻辑上是信息的静态存储。物理上,DFD中的数据存储可以是计算机系统中的外部或者内部文件的一部分、数据库的元素或记录的一部分等,还可以是一个人工系统中的表册、账单等。一个数据流从加工流向数据存储,表示该加工对文件写入;如果数据流是从数据存储流向加工,表示该加工对文件读。如果加工到数据存储之间的数据流是双向的,表示该加工对文件的操作包括读、写和修改。第二十九页,共六十九页,2022年,8月28日数据的加工或变换输入输出软件系统外部实体外部实体……外部实体外部实体……输入数据流输入数据流输出数据流输出数据流----
系统的逻辑模型第三十页,共六十九页,2022年,8月28日描述银行取款过程的数据流图第三十一页,共六十九页,2022年,8月28日数据流图的分层为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统第三十二页,共六十九页,2022年,8月28日分层数据流图顶层0层一层第三十三页,共六十九页,2022年,8月28日数据流图的分层在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。第三十四页,共六十九页,2022年,8月28日画分层DFD的指导原则注意父图和子图的平衡S1S2S3A父图BCMNOS3.1S3.2S3.3子图1NXTMQOS3.1S3.2S3.4NXMQOS3.3PS3.1S3.2S3.4NXMQJS3.3P子图2子图3KFiFi第三十五页,共六十九页,2022年,8月28日画分层DFD的指导原则掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推第三十六页,共六十九页,2022年,8月28日画数据流图的步骤(1)找外部实体,确定系统边界,确定数据流源和数据终点。以项目开发计划确定的目标为基础,经过需求获取工作,可以比较容易划定系统的边界,确定系统的数据源点和终点。进而找出外部实体的输入和输出数据流,画出顶层数据流图。(2)从数据源点出发,按照系统的逻辑需要,逐步画出一系列逻辑加工框,直至数据终点。自顶向下,对每个加工进行内部分解,画出分层数据流图(3)按照下述一般原则对数据流图进行复查求精。复查求精应由分析员与用户共同参与,分析员借助数据流图及数据词典,向用户阐述系统输入数据如何一步一步地转变为输出结果。第三十七页,共六十九页,2022年,8月28日构造分层数据流图及求精的原则数据流图中所有图形符号必须是四种元素之一,图中的每一个元素都必须有良好的命名分解应该自然,概念上清晰、合理流入、流出加工的数据流应连续,必须有输入、输出数据流,缺一不可。在分解过程中,注意保持父图和子图数据流的平衡性,合理利用局部文件实现信息隐蔽。控制单张数据流图的复杂性。当一个加工逻辑足够简单,则分解可以终止。第三十八页,共六十九页,2022年,8月28日构造分层数据流图及求精的原则在软件分析过程中应只考虑稳态,暂时忽略有关细节。在进行逐层分解时,应注意分解层次的均匀性。第三十九页,共六十九页,2022年,8月28日举例学生开购书证明购书证明开购书发票发票收书费领书单发书学生人工销售教材系统流程图第四十页,共六十九页,2022年,8月28日学生教材购销系统购书单领书单缺书单进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员顶层第0层教材存量表F1缺书登记表F2外部实体外部实体第四十一页,共六十九页,2022年,8月28日教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2层补售书单第3层教材存量表F1缺书登记表F2
F1书号单价数量各班用书表F3售书登记表F4外部项第四十二页,共六十九页,2022年,8月28日1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统
第2层第3层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2第四十三页,共六十九页,2022年,8月28日结构化分析方法的描述工具数据字典(DataDictionary,DD):DFD只描绘信息在系统中的流动和处理情况,而数据字典则是对图中的元素进行定义。数据字典的任务是:
对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。
第四十四页,共六十九页,2022年,8月28日数据字典编写的基本要求对数据流图上的各种元素的定义必须明确、一致且易理解。命名、编号应与数据流图一致对数据流图的成分定义与说明无遗漏,无同名异义,或异名同义。格式规范,文字精练,符号正确第四十五页,共六十九页,2022年,8月28日数据字典的内容和格式数据字典中包括4类条目:数据流、数据项、文件、基本加工第四十六页,共六十九页,2022年,8月28日数据流条目的描述数据流名(名字、别名、编号):说明:简要介绍作用即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。每个数据量流通量:数据量、流通量。审查并开发票发票购书单
数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票”数据流去向:流向加工“开领书单”。数据流组成:学号+姓名+书号+单价总价+书费合计第四十七页,共六十九页,2022年,8月28日数据项条目数据元素名:类型:数字(离散值、连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构
年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金额=“00000000.01”..“999999999.99”……第四十八页,共六十九页,2022年,8月28日文件存储条目说明存储文件的名称、编号、文件组织方式、记录数及存储介质第四十九页,共六十九页,2022年,8月28日加工说明条目说明加工的名称、编号、输入/输出数据流、加工逻辑概括描述等第五十页,共六十九页,2022年,8月28日数据字典定义符号符号含义例子=被定义为
+与x=a+b,则表示x由a和b组成[…,..][…|…]
或
x=[a,b],则表示x
由a或由
b
组成{….}重复x={a},则表示x
由0个或多个a组成m{….}n重复x=3{a}8,则表示x中至少出现3次a,最多出现8次(….)选择x=(a),则表示a在x中出现,也可不出现“…”基本数据元素印密=“0”..
连接符学号=“0001”..“99999”第五十一页,共六十九页,2022年,8月28日教学管理系统数据字典实例选课登记表如下表学号姓名课程专业开课时间备注第五十二页,共六十九页,2022年,8月28日教学管理系统数据字典实例数据字典中的定义格式为:学生选课登记表=1{学号+姓名+课程+专业+班级+(备注)}23学号=“00001”..“99999”姓名=4{字符}8课程=课程名+课程类型+学分专业=“01”..“99”
注:专业代码,两位数字开课时间=年+月+日备注=0{字符}40课程名=“001”..“999”
注:课程代码,三位数字第五十三页,共六十九页,2022年,8月28日教学管理系统数据字典实例课程类型=[B|X|R]
注:课程类别-为标识符B=“必选”X=“限选”R=“任选”学分=“x”第五十四页,共六十九页,2022年,8月28日户名:储蓄网点名称:帐号:开户日:性质:印密:日期(年月日)摘要支出存入余额操作复核存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}20户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性质=“1”..“6”印密=“0”存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4支出=金额金额=“00000000.01”..“999999999.99”……第五十五页,共六十九页,2022年,8月28日加工逻辑说明加工说明组成输入数据加工逻辑输出数据描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。(做什么?)加工说明描述工具结构化语言判定表判定树第五十六页,共六十九页,2022年,8月28日结构化英语(StructuredEnglish)也叫问题描述语言(ProblemDescribeLanguage),简称PDL,它是在自然语言基础上加了一些限制而得到的一种介于自然语言和形式化语言之间的半形式化语言。结构化英语的词汇表由英语命令动词、数据词典中定义的名字、有限的自定义词和逻辑关系词IF_THEN_ELSE,WHILE_DO,REPEAT_UNTIL,CASE_OF等组成。第五十七页,共六十九页,2022年,8月28日结构化英语(StructuredEnglish)选择结构如果<条件><策略>
If<condition><policy>如果<条件>
则
<策略1>
否则
<策略2>情况1<条件><策略1>…
…情况n<条件><策略n>If<condition>
then<policy1>Otherwise<policy2>case1<condition><policy1>…
…casen<condition><policyn>循环结构对
…,<策略>重复以下
<策略>直至
<条件>Foreach…,<policy>Repeatthefollowing:<policy>Until<condition>第五十八页,共六十九页,2022年,8月28日结构化英语举例BEGIN
输入学生成绩记录
REPEATIF总分≥600分
THENIF单科成绩有不及格
THEN发升级通知书AND发重修单科通知书
ELSE发升级通知书
ELSEIF单科成绩有满分
THEN发留级通知书AND发免修单科通知书
ELSE发留级通知书
UNTIL学生成绩记录处理结束
END第五十九页,共六十九页,2022年,8月28日判定树在某些数据处理问题中,其数据流图的处理需要依赖多个逻辑条件的取值,这些取值构成多种不同的情况,满足不同条件,执行相应的不同动作,这类问题适合使用判定树或判定表作为描述加工的工具。第六十页,共六十九页,2022年,8月28日判定树举例升留级处理逻辑考试总分≥600考试总分<600单科无不及格:发升级通知书单科有不及格:发升级通知书、重修单科通知书单科有满分:发留级通知书、免修单科通知书单科无满分:发留级通知书决定学生升留级判定树第六十一页,共六十九页,2022年,8月28日判定表如果条件多,而且相互组合时,不容易清晰地表达判断过程,这时引入判定表。判定表由4部分组成:基本条件区基本动作区条件组合区执行动作区第六十二页,共六十九页,2022年,8月28日判定表举例规则1规则2规则3规则4规则5规则6规则7规则8考试总分≥600≥600≥600≥600<600<600<600<600单科满分
有有无无有有无无单科不及格
有无有无有无有
无发升级通知书发单科免修通知书发留级通知书发单科重修通知书YYYYNNNNNNNNYYNNN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版股份质押回购交易合同3篇
- 二零二四二手钢铁材料购买与运输合同3篇
- 二零二五版打印机销售渠道资源整合与共享合同3篇
- 年度聚碳酸酯(PC)及合金市场分析及竞争策略分析报告
- 二零二四年工业自动化设备安装与生产流程优化合同3篇
- 2024-2025学年新教材高中数学第十章复数10.2.2第1课时复数的乘法教师用书教案新人教B版必修第四册
- 二零二五年文秘与档案管理劳动合同2篇
- 二零二五年度网络安全风险评估与防护合同3篇
- 2025年星酒店投资技术服务与酒店客房智能化改造合同3篇
- 二零二五年度特色餐饮店承包经营权转让合同3篇
- 美容美发店火灾应急预案
- 餐车移动食材配送方案
- 项目工程师年终总结课件
- 一年级口算练习题大全(可直接打印A4)
- 电动车棚消防应急预案
- 人力资源战略规划地图
- 2023年河南公务员考试申论试题(县级卷)
- DB35T 2198-2024 工业园区低零碳创建评估准则 福建省市监局
- 不为积习所蔽勿为时尚所惑-如何做一个 好老师 高中主题班会课件
- 托育服务中心项目可行性研究报告
- 中式烹调师四级理论考试题库(重点500题)
评论
0/150
提交评论