软件需求工程【精品-】_第1页
软件需求工程【精品-】_第2页
软件需求工程【精品-】_第3页
软件需求工程【精品-】_第4页
软件需求工程【精品-】_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件需求工程2第二 章内容22.1 软件需求分析的根本概念2.2 结构化分析方法2.3 原型化方法(维护报告)问题定义编 码需求分析设 计可行性研究运行与维护测 试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型软件需求分析是软件生命期中重要的一步,也是决定性的一步。2.1 软件需求分析的根本概念 对系统应该提供的效劳和所受到的约束进行理解、分析、建立文档、检验的过程需求工程1.什么是软件需求工程?2.软件需求分析的任务是什么?3.需求工程过程4.软件需求分析方法 2.1.1 软件需求分析的任务需求分析阶段的任务:在可行性分析

2、的根底上,进一步了解确定用户需求。准确地答复 “系统必须做什么? 的问题。获得需求规格说明书。 Boehm对软件需求的定义:研究一种无二义性的表达工具,它能为用户和软件人员双方都接受并能够把“需求严格地、形式地表达出来。由于需求分析方法不同,描述形式不同。其实现步骤如以下图所示: 当前系统模型化目标系统物理模型具体化物理模型抽象化逻辑模型实例化逻辑模型做什么导出理解需求 表达需求软 件需 求用 户需 求系 统需 求功能需求非功能需求领域需求需求的类型 业务需求business requirement客户对系统的高层次的目标要求。在工程视图与范围文档中予以说明用户需求user requireme

3、nt用户使用产品必须要完成的任务功能需求functional requirement开发人员必须实现的软件功能,使得用户能完成他们的任务,满足业务需求非功能需求non-functional requirement 对系统提供的效劳或者功能提出的约束,包括时间、开发过程、软件质量、标准等约束一个例子从不同的角度来看,需求具有不同的层次,即业务需求、用户需求、功能需求和非功能需求等例子:字处理程序 之 “ 拼写检查器业务需求:“用户能有效地纠正文档中的拼写错误用户需求:“找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词功能需求:“找到并高亮度提示错词的操作;“显示提供替换词的对话

4、框;“实现整个文档范围的替换非功能需求:“替换操作执行速度快;“异常出现概率小需求工程过程 问题识别分析与综合编写文档分析评审可行性研究需求导出和分析需求描述需求有效性验证可行性报告系统模型用户需求和系统需求需求文挡需求获取 系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析,确定:系统或产品范围的限制性描述与系统或产品有关的人员及特征列表系统的技术环境的描述系统功能的列表及应用于每个需求的领域限制一组描述不同运行条件下系统或产品使用状况的应用场景为更好地定义需求而开发的任意原型。 需求获取的工作产品为进行需求分析提供了根底 需求获取方法与策略 建立顺畅的通信途径 访谈与调查 观察

5、用户操作流程 组成联合小组 用况Use Case 建立顺畅的通信途径 建立分析所需要的通信途径,以保证能顺利地对问题进行分析。访谈与调查 在具体的实践中,通常采用折衷的方法,即适当地方案好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原那么进行准备:所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;不要限制用户对问题的答复,这有可能会引出原先没有注意的问题;提问和答复在汇总后应能够反映用户需求的全貌。 例子:“赛艇比赛成绩计算系统的第一次面谈的准备方案 初次与Dartchurch航行俱乐部的航行秘书(DR)接触,面谈有关事宜。(在电话交谈

6、时,了解到他们希望得到的是一个“价廉”的,基于PC的系统,以用于计算赛艇比赛成绩)时间:2005-6-5地点:对方场地主要问题确定基本问题。确定DR的角色还涉及其它人员吗?调查财物方面事宜。系统(大致上)是如何运作的?当前存在的问题是什么?他们都希望做些什么?观察用户操作流程 到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。 组成联合小组 便利的应用规约技术(Facilitated Application Specification Techniques , FAST) :打破用户需方和开

7、发者供方的界限,共同组成一个联合小组,发挥各自的长处,共同负责工程的推进,这样有助于发挥各自优势并增进解和协调 FAST根本原那么 在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规那么;建议一个足够正式的议程以便可以进行自由的交流;一个“协调者(可以是用户、开发者或其他外人)来控制会议;使用一种“定义机制(它可以是工作表、图表、墙上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的气氛中刻画出初步的需求。需求分析与协商 需求获取结束后,分析活动需要:对需求进行分类组织分析每个需求与其它需求的关系,检查需求的一致性、重叠和遗漏的情况根据用户

8、的需要对需求进行排序在需求获取阶段,经常出现以下问题: 用户提出的要求超出软件系统可以实现的范围或实现能力; 不同的用户提出了相互冲突的需求 需求协商 协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案 协商不是简单的逻辑或技术上的争论 要注意组织和行政方面的因素 不一致的目标 责任的丧失或转移 组织文化 组织管理态度和士气 部门差异 通常会议是解决冲突最快的方式 参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的工程相关人员 会议应该讨论那些非正式讨论不能解决的问题 通常会议分为三个阶段:表达阶段讨论阶段决策阶段 系统建模 建模工具的使用在用户和系统分析人员之间建立了统

9、一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补缺乏,确保需求文档正确反映用户的真实意图在软件需求分析阶段,所创立的模型,要着重于描述系统要“做什么,而不是“如何去做常用的分析和建模方法面向数据流方法面向数据结构方法面向对象的方法需求规约 软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、适宜的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。 需求的描述不宜使用自然语言描述系统需求原因:理解的二义性,随意性大,难以模块化书写需求的一

10、些原那么设计一个标准的格式,保证需求定义按格式书写使用一致的语言突出显示关键性需求尽量防止使用计算机专业术语需求描述方法结构化语言描述依赖于定义标准格式或模板来表达需求描述 程序描述语言PDL使用一种类似于程序设计语言的语言,但是具有更多抽象特征,通过定义系统的操作模型来定义需求 图形化符号图形语言辅之以文本注释来定义系统的功能需求 数学描述基于数学概念的符号 如有限状态机、集合等结构化语言描述模块标识:Eclipse/Workstation/Tools/DE/FS/3.5.1功能添加节点描述添加一个节点到一个已经存在的设计中。输入节点类型,节点位置和设计标识符来源节点类型和节点位置由用户输入

11、,设计标识符来自数据库输出设计标识符前条件设计处于打开状态后条件在相应位置添加一个节点,其余无改变副作用无异常无设计标识符程序描述语言PDL好处:可以用软件工具进行语法和语义检查可检查需求遗漏和不一致便于描述比较复杂的操作,如循环、选择等可定义接口便于实现需求到设计的过渡缺点:表达功能的能力不够充分需要具有程序语言知识的人容易提前进入设计阶段,偏离需求分析的目标图形化符号描述结构化分析用例分析需求规约 . 引言 A.系统参考文献B.整体描述C.软件项目约束. 信息描述 A.信息内容表示B.信息流表示: 数据流 控制流. 功能描述 A.功能划分 B.功能描述: 处理说明 限制局限 性能需求 设计

12、约束 支撑图 C.控制描述 控制规约 设计约束. 行为描述 A.系统状态 B.事件和响应. 检验标准 A.性能范围B.测试种类C.期望的软件响应D.特殊的考虑. 参考书目. 附录其它需求分析阶段的文档初步的用户手册:着重反映目标软件的用户功能界面和用户使用的具体要求。测试方案修改和完善软件开发方案需求说明的质量特性正确性完整性一致性无二义性可修改性可跟踪性可验证性需求验证 需求验证目的是要检验需求是否能够反映用户的意愿 评审人员评审时往往需要检查以下内容:系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求;被开发工程的数

13、据流与数据结构是否确定且充足;主要功能是否已包括在规定的软件范围之内,是否都已充分说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。 需求验证方法需求评审原型建立测试用例生成自动的一致性分析编写用户手册在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。需求管理需求管理是一种获取、组织并记录系统需求的系统化方案,是一组用于帮助工程组在工程进展中的任何时候去标识、控制和跟踪需求的活动 为什么需要 需求管理软件开发所基于的需求往往不完整不准

14、确模棱两可需求定义没有生成文档,或文档未及时更新即使已采用一个个孤立的文档来管理需求文档散布各处,没人知道哪个是最新版本文档对信息分析、优先级别划分和跟踪效率不高很难从需求文档中提取与工程有关的状态信息对需求没有达成共识随着情况的改变需求产生变更,但无法有效的管理和跟踪需求管理的内容需求变更管理问题分析和变更描述变更分析和本钱计算识别出的问题修正后的需求变更实现需求变更管理的要求仔细评估已建议的变更制定适宜的变更处理变更及时通知所有涉及的人员需求文档的版本控制统一确定版本变更必须文档化,及时通知有关人员指定专人更新需求文档应包括版本修正历史需求管理工具的数据库存储需求使用专门的版本管理工具及数

15、据库需求跟踪的方式正向跟踪:以用户需求为切入点,检查?需求规约?中的每个需求是否都能在后继工作产品中找到对应点逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在?需求规约?中找到出处需求跟踪能力矩阵例子:大量的需求跟踪信息可以使用特定的工具进行管理 需求错误的原因 需求的沟通与理解缺乏足够的用户参与添加不必要的特性忽略了用户分类需求的变化与控制用户需求不断增加需求说明的明确与完整需求模棱两可需求说明过于简单用户积极参与,各方和谐合作有效管理与评审准确、无二义性的高质量需求文档需求分析方法面向对象的分析方法 面向对象的分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系,并建

16、立起三类模型。结构化分析方法 是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。 结构化开发方法Structured Developing Method结构化方法总的指导思想:自顶向下、逐步求精。它的根本原那么是功能的分解与抽象。2.2 结构化分析方法结构化开发方法的组成 70年代初 结构化程序设计方法 SP法Structured Program 70年代中 结构化设计方法 SD法Structured Design 70年代末 结构化分析方法 SA法Structured Analysis SA,SD,SP 法相互衔接,形成了一整套开发方法。假设将SA

17、,SD 法结合起来,又称为结构化分析与设计技术SADT 技术。分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成假设干小问题,然后分别解决。一、SA法的根本思想 结构化分析方法的根本思想是“分解和“抽象。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象。1.11.21.3x2132.12.22.31.11.31、建立当前系统的“具体模型。 根本思想与步骤三、SA法的描述方法1、分层的数据流图2、数据词典3、描述加工逻辑的结构化语言、判定表及判定树二、SA法的步骤

18、4、为了对目标系统做完整的描述,还需要考虑人机界面和其他一些问题。3、建立目标系统的逻辑模型。2、抽象出当前系统的逻辑模型。结构化分析模型的描述数据字典:是模型的核心,它包含了软件使用和产生所有数据的描述数据流图:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流实体关系图:用于数据建模,描述数据字典中数据之间的关系实体-关系图数据流图状态转换图控 制 规 约数据字典加 工 规 约数 据 对 象 描 述状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况数据流图数据流图Data Flow Diagram,DFD是描述系统中数

19、据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据存储数据源点或终点加 工加工名数据流数据流名文件名实体名箭 头圆或椭圆单或双杠矩形框还有一些辅助的图例:数据流图的图符四种根本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 与 + 或互斥+源点和终点宿存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,因此也称为源点和终点例如,对一个考务处理系统而言考生向系统提供报名单(输入数据流),所以考生是考试系统(软件)的一个源考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试

20、中心是该系统的一个宿源点和终点用相同的图形符号表示当数据流从该符号流出时表示是源点当数据流流向该符号时表示是终点当两者皆有时表示既是源点又是终点顾客加工和文件加工:描述输入数据流到输出数据流的变换每个加工用一个定义明确的名字标识至少有一个输入数据流和一个输出流可以有多个输入数据流和多个输出数据流文件:保存数据信息的外部单元每个文件用一个定义明确的名字标识由加工进行读写在具体实现时可以用文件系统实现,也可以用数据库系统等实现加工名文件名顾客出版社验证订单汇总订单订单出版社 订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件DFD图的例子加工名编号加工名编号文件名文件

21、名顾客出版社验证订单汇总订单订单出版社 订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件画图步骤 : 1、确定外部实体及输入、输出数据流。 2、确定分解顶层的加工。 3、确定使用的文件。 4、用数据流将各局部连接起来,形成数据封闭。注意:标注各加工框及数据流名称。例1:图书预定系统顶层DFD图对数据流图进行分层George Miller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制中指出:人们在一段时间内的短期记忆似乎限制在59件事情之内根据自顶向下逐层分解的思想将数据流图画成层次结构每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2的

22、范围中 “先全局后局部,先整体后细节,先抽象后具体 通常可将这种分层的DFD图,分为顶层、中间层、底层。 具体步骤: 1。先确定系统范围,画出顶层的DFD图。 2。逐层分解顶层DFD图,获得假设干中间层DFD图。 3。画出底层的DFD图。 画分层DFD图的方法 顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为根本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成局部又要进一步分解。 画各层DFD图时,“由外向内。数据流图的各个层次顶层图只有代表整个软件系统的1个加工,描述了软件系统与外

23、界(源或宿)之间的数据流顶层图中的加工经分解后的图称为0层图(只有1张)中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图处于最底层的图称为底层图,其中所有的加工不再分解成新的子图图和加工的编号顶层图只有一个代表整个软件系统的加工,该加工不必编号。0层图中的加工编号分别为1,2,3,子图号:假设父图中的加工号x分解成某一子图,那么该子图号记为“图x子图中加工的编号:假设父图中的加工号为x的加工分解成某一子图,那么该子图中的加工编号分别为x.1、x.2、x.3X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1

24、顶层中 间 层底 层先全局后局部,先整体后细节,先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD 图总结:画分层数据流图的步骤1画系统的输入和输出2画系统内部3画加工内部4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)经过初步的需求分析,得到系统功能要求:1、监视病员的病症血压、体温、脉搏等。2、定时更新病历。3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。实例:医院病房监护系统产生病情报告监视病情更新病历系统功能要求: 1、监视病员的病症血压、体温、脉搏等 2、定时更新病历 3、病员出现异常情况时报警。 4、随机地产生某一病员的病情报告。顶层:病员护士

25、护士病员监护系统病员日志病症信号要求报告病症报告报警例2 医院病房监护系统第一层:病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日志数据日志数据医院病房监护系统顶层DFD图第二层:加工“中央监视分解计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4医院病房监护系统二层DFD图计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温、脉搏生理信号极限值时间

26、脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图图 2.15第一层格式化病员数据生理信号极限值病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据1324日志数据图 2.16加工分解的原那么自然性:概念上合理、清晰; 均匀性:理想的分解是将一个问题分解成大小均匀的几个局部;分解度:一般每一个加工每次分解最多不要超过个子加工,分解应分解到根本加工为止。画分层DFD图的根本原那么数据守恒与数据封闭原那么 所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或

27、者说一个加工至少有一个输入数据流,一个输出数据流。 数据封闭是对整个系统而言。分层数据流图的审查检查图中是否存在错误或不合理(不理想)的局部一致性:分层DFD中不存在矛盾和冲突完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素本节将从分层DFD的一致性和完整性、构造分层DFD时需注意的问题以及分解程度等几个方面来说明如何审查分层DFD的合理性注意DFD图不是流程图,不表示软件的控制流程。分层数据流图的一致性父图与子图平衡任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致数据守恒一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直

28、接获得,或者能通过该加工的处理而产生多余的数据流:加工未使用其输入数据流中的某些数据项 局部文件一个加工的输出数据流不能与该加工的输入数据流同名父图与子图不平衡的实例加工2的输入数据流有M和N,输出数据流是T而子图(右图)边界上的输入数据流是N,输出数据流是S和T123ABCMNT2.12.22.3NPSTQ父图与子图平衡的实例注意:如果父图某加工的一个数据流,对应于子图中几个数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这个数据流,那么它们仍算是平衡的e2.52.42.32.22.1b2b1acdb21acde(a) 父图(b) 子图a:考生通知单;b:统计分析表;b1:分类统计

29、表;b2:难度分析表;c:错误成绩清单;d成绩清单;e合格标准。数据不守恒的实例由于“正式成绩清单中缺少“考生通知单中的姓名、通信地址等数据,这些数据也无法由加工2.3自己产生,因此,加工2.3不满足数据守恒的条件考生名册2.5分析试题难度难度分析表2.4分类统计成绩分类统计表2.3制作通知单考生通知单2.2审定合格者正式成绩清单合格标准试题得分清单2.1检查成绩清单成绩清单正确成绩清单错误成绩清单由此可见:1.数据流的组成对DFD是有影响的2.构建DFD与建立数据字典应交替进行,以便于对分层DFD的校验加工的输出数据流不能与该加工的输入数据流同名同一个加工的输出数据流和输入数据流即使组成成份

30、相同,仍应对它们取不同的名字,以表示它们是不同数据流例如,“报名单和“合格报名单允许一个加工有二个相同的数据流分别流向二个不同的加工分层数据流图的完整性每个加工至少有一个输入数据流和一个输出数据流在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典的一致 分层DFD中的每个根本加工(即不再分解子图的加工)都应有一个加工规约其它需注意的问题-1适当命名:每个数据流、加工、文件、源和宿都应被适应地命名,名字应符合被命名对象的实际含义名字应反映整个对象(如数据流、加工),而不是仅反映它的某

31、一局部防止使用空洞的、含义不清的名字,如数据、信息、处理、统计等如果发现某个数据流或加工难以命名时,往往是DFD分解不当的征兆,此时应考虑重新分解画数据流而不是画控制流判断准那么:这条线上是否有数据流过其它需注意的问题-2防止一个加工有过多的数据流当一个加工存在许多数据流时往往意味着分解不合理解决方法:重新分解1)把需要重新分解的某张图(含有该复杂加工的图)的所有子图连接成一张图2)把连接后的图重新划分成几个局部,使各局部之间的联系最小3)重新定义父图,即第2)步中的每个局部作为父图中的一个加工4)重新建立各子图,即第2)步中的每个局部都是一张子图5)为所有的加工重新命名和编号数据流图重新分解

32、例如( b ) 原加工2子图222.12.32.42.5HJICKLEMN( d ) 重新分解后的父图452321ABHGJICKLDEMFPN( a ) 原父图34512HABJICKLDEMFPNG( c ) 合并4532.42.52.22.12.31FABHJICKLDEMPNG其它需注意的问题-3分解尽可能均匀理想目标:任何两个加工的分解层数之差不超过1应尽可能使分解均匀,对于分解不均匀的情况应重新分解先考虑稳定状态,忽略琐碎的枝节先考虑稳定状态下的各种问题,暂时不考虑系统如何启动、如何结束、出错处理以及性能等问题随时准备重画对于一个复杂的软件系统,往往要经过反复屡次的重画和修改才能构

33、造出完整、合理、满足用户需求的分层DFD分析阶段遗漏下来的一个错误,到开发后期要化费几百倍代价来纠正这个错误 分层数据流图只是表达了系统的“分解,为了完整地描述这个系统,还需借助“数据词典和“小说明对图中的每个数据和加工给出解释。 对数据流图中包含的所有元素的定义的集合构成了数据词典。词典中可有以下四种类型的条目:数据词典(DD) 数据流 文件 数据项 加工数据字典的描述符号符 号名 称举 例定义为x 表示x由组成与ab 表示a和b,或a,b表示a或b或ab表示a或b重复a 表示a重复0或多次重复a 表示a重复3到8次()可选(a) 表示a重复0或1次基本数据元素a 表a是基本数据字典条目不同

34、的开发组织或团队可以根据工程的需要定义字典条目的描述内容字典条目中的描述内容主要包括DFD元素的根本信息(名称、别名、简述、注解)定义(数据类型、数据组成)使用特点(取值范围、使用频率、激发条件)控制信息(来源、去向、访问权限)等数据流条目的描述内容名称:数据流名(可以是中文名或英文名)别名:名称的另一个名字简述:对数据流的简单说明数据流组成:描述数据流由哪些数据项组成数据流来源:描述数据流从哪个加工或源流出数据流去向:描述数据流流入哪个加工或宿数据量:系统中该数据流的总量如考务处理系统中“报名单的总量是100000张或者单位时间处理的数据流数量,如80000张/天峰值:某时段处理的最大数量如

35、每天上午9:00至11:00处理60000张表单注解:对该数据流的其它补充说明数据流组成数据流组成是数据流条目的核心,它列出组成该数据流的各数据项,例如:培训报名单姓名单位课程运发动报名单队名姓名性别参赛工程当一个数据流的组成比较复杂时,可以将其分解成几个数据流,例如:课程课程名任课教师教材时间地点时间地点星期几第几节教室31数据流组成例如(发票)发票单位名称商品名数量单价金额 总金额日期(营业员)单位名称商品名数量单价金额总金额日期营业员51文件条目的描述内容名称:文件名别名:同数据流条目简述:对文件的简单说明文件组成:描述文件的记录由哪些数据项组成(与数据流条目中的文件组成描述方法相同)写

36、文件的加工:描述哪些加工写文件读文件的加工:描述哪些加工读文件文件组织:描述文件的存储方式(顺序、索引),排序的关键字使用权限:描述各类用户对文件读、写、修改的使用权限数据量:文件的最大记录个数存取频率:描述对该文件的读写频率注解:对该文件的其它补充说明数据项条目的描述内容名称:数据项名别名:同数据流条目简述:对数据项的简单描述数据类型:描述数据项的类型,如整型、实型、字符串等计量单位:指明数据项值的计量单位,如公斤、吨等取值范围:描述数据项允许的值域,如1100编辑方式:描述该数据项外部表示的编辑方式,如23,345.67与其它数据项的关系:描述该数据项与数据字典中其它数据项的关系注解:对数

37、据项的其它补充说明加工条目的描述内容名称:加工名别名:同数据流条目加工号: 加工在DFD中的编号简述:对加工的功能的简要说明输入数据流:描述加工的输入数据流,包括读哪些文件名输出数据流:描述加工的输出数据流,包括写哪些文件名加工逻辑:简要描述加工逻辑,或者对加工规约的索引根本加工的加工逻辑用小说明描述,在加工条目中可填写对加工规约的索引非根本加工分解而成的DFD子图已反映了它的加工逻辑,不必书写小说明异常处理:描述加工处理过程中可能出现的异常情况,及其处理方式加工激发条件:描述执行加工的条件,如,“身份认证正确,“收到报名单执行频率:描述加工的执行频率,如,每月执行一次,每天0点执行注解:对加

38、工的其它补充说明 A、 数据流条目给出某个数据流的定义,通常是列出该 数据流的各组成数据项。 例如:报名单姓名单位名年龄性别课程名 常用符号:、C、 数据项条目 数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。B、文件条目给出某个文件的定义,同数据流一样,文件的定义通常是列出文件记录的组成数据流例如某销售系统的订单文件:订单文件订单编号顾客名称产品名称订货数量交货日期D. 加工条目加工类条目就是“加工小说明。一般应该单独列出。加工说明结构化语言判定表判定树 对数据流图中每一个不能再分解的根本加工都必须有一个小说明给出这个加工的精确描述。小说明中应精确地描述加工的激发条件

39、、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最根本的局部,是指用户对这个加工的逻辑要求。 对根本加工说明有三种描述方式: 结构化语言是介于自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构顺序、选择、循环,内层较灵活,表达“做什么。一、 结构化语言例如:外层可为以下结构:1、顺序结构2、选择结构 IFTHEN-ELSE; CASE-OF-ENDCASE;3、循环结构 WHILE-DO; REPEAT-UNTIL 结构化语言举例IF the CurrentCapitalValue is less then $1000

40、Then Set DepreciatedAmount to CurrentCapitalValue. Set CurrentCapitalValue to zero. Otherwise Set DepreciatedAmount to 10% of CurrentCapitalValue. Reduce Current Capital-Value by 10%.结构化语言特点:简单,易学,少二义性。不好处理组合条件。例:一图书销售系统,其中一加工为“优惠处理,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。应用举例用结构化语言来描述: 如果 营业

41、额大于1000元 同时 如果信誉好 那么 优惠处理。 否那么 正常处理。 否那么 信誉不好 但是20年以上的老主顾,那么优惠处理。 否那么 营业额小于、等于1000元 那么 正常处理。显然,用结构化语言来描述组合条件不清晰。 判定表是一种二维的表格,常用于较复杂的组合条件与结构化语言比较。 条件框 条件条目 操作框 操作条目二、 判定表特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。通常由四局部组成。条件框 条件定义。操作框 操作的定义。条件条目 各条件的取值及组合。操作条目 在各条件取值组合下所执行的操作。例如: 对商店每天的营业额所收税率营业额X ()1000X50005000

42、X1000元 Y Y Y N 信誉好 Y N N - 20 年 - Y N - 优 惠 X X 正 常 X X 化简后 1 2 3 4 5 6 7 8 1000元 Y Y Y Y N N N N 信誉好 Y Y N N Y Y N N20 年 Y N Y N Y N Y N优 惠 X X X正 常 X X X X XY-满足条件 N-不满足条件 X-选中判定的结论判定表应用举例特点:描述一般组合条件较清晰,易理解。不易输入计算机。营业额 1000元 1000元 正常处理好的支付信誉 优惠处理坏的支付信誉 20年 优惠处理 20年 正常处理如上例三、 判定树按照传统的瀑布模型进行软件开发,由于将

43、软件开发这样一个充满回朔的过程硬性地割裂开,虽然强调各个阶段的复审,而用户所提出的需求往往是模糊的,因此很难得到一个完整精确的规格说明,直接影响到后期的开发,针对其主要缺点推出了原型化方法。 2.3 原型化方法什么是原型化方法Prototyping Method ?原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的局部重要特性。原型化方法的根本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的时机,原型化方法又称速成原型法Rapid Prototyping,强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行

44、,使用户验收提前,从而使软件产品更加适用。由于软件工程的特点和运行原型的目的不同,分为两种类型: 2.3.1 软件原型的分类2、追加add on型也称快速建立渐进原型RCP法Rapid Cyclic Prototyping法采用循环渐进的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,将系统需要具备的性质逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有性质全部满足,此时的原型模型也就是最终的产品。1、废弃throw away型也称为快速建立需求规格原型RSP法Rapid Specific Prototyping,先构造一个功能简单而且质量要求不高的模

45、型系统,针对这个模型系统反复进行分析修改,让用户学习。待需求说明书一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。快速分析 快速确定软件系统的根本要求,确定原型所要表达的特性总体结构,功能,性能、界面等。2.构造原型 根据根本规格说明,忽略细节,只考虑主要特性,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行和评价原型用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4.修正与改进 对原型进行修改,增删。运 行评价 构造快速分析或修改 2.3.2 快速原型开发模型快速原型法的工作模型如下图,按以下步骤循环执行。原型化模型构造原型运行/

46、评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN快速原型化开发过程 快速建立系统原型进行系统的分析和构造有如下优点: 1、增进软件开发人员和用户对系统需求的理解。便于将用户模糊的功能需求明确化。2、为用户提供了一种强有力的学习手段。3、易于确定系统的性能,是理解和确认软件需求规格说明的工具。4、按照RCP 法建立的原型即为最终的产品。 细化的原型化模型需求工程小结最初,需求工程仅仅是软件工程的一个组成局部,是软件生命周期的第一个阶段。在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是: 系统工程

47、师说明软件的功能和性能,指明软件和其他系统成分的接口,并定义软件必须满足的约束; 软件工程师求精软件的配置,建立数据模型、功能模型和行为模型; 为软件设计者提供可用于转换为数据设计、体系结构设计、界面设计和过程设计的模型; 提供开发人员和客户需求规格说明,用于作为评估软件质量的依据。需求工程小结需求工程小结软件需求分析的工作,是软件开发人员与用户密切配合,充分交换意见,到达对需求分析一致的意见。在开发人员一方,进行需求分析工作的主要是系统分析员和系统工程师等,他们处于用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁作用,是需求分析的主要角色。需求分析阶段的最终任务是要完成目标

48、系统的需求规格说明,确定系统的功能和性能,为后阶段的开发打下根底。需求分析的方法和技术因具体的系统而定,常用的有SA法,原型法,OOA法等。需求工程小结 需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的效劳、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需要和软件能力之间的桥梁。 需求工程的根本活动包括: 抽取需求; 模拟和分析需求; 传递需求; 认可需求; 进化需求。需求工程小结一、需求抽取 非常困难,主要原因有: 缺乏领域知识,应用领域的问题常常是模糊的、不精确的; 存在默认的知识,即难以描述的日

49、常知识常识问题; 存在多个知识源,而且多知识源之间可能有冲突; 面对的客户可能有偏见,如不能提供你需要了解什么或不想告知你需要了解的事情。需求抽取的方法一般有问卷法、面谈法、数据采集法、用况法、情景实例法以及基于目标的方法等,还有知识工程方法,如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。需求工程小结二、模拟和分析需求 指导抽取; 帮助需求工程师了解进展; 帮助发现问题; 帮助检查对问题的理解。 需求分析和模拟又包含三个层次的工作。1、需求建模2、需求模拟分为企业模拟、功能需求模拟和非功能需求模拟等3、需求规格说明 #dAXaxU7tQ3qN0nK)kH&hE!eBYbyV7

50、uR4rO1oL-lI*iF$fCZczV8vS5sP2pM+mJ(jG%gD#dAW9wT6tQ3qN0nK)kH&hE!eAXaxU7uR4rO1oL-lI*iF$eBYbyV8vS5sP2pM+mJ(jG$fCZczW9wT6tQ3qN0nK)kH%gD#dAXaxU7uR4rO1oL-lH&hE!eBYbyV8vS5sP2pM+lI*iF$fCZczW9wT6tQ3qN+mJ(jG%gD#dAXaxU7uR4rN0nK)kH&hE!eBYbyV8vS5sO1oL-lI*iF$fCZczW9wT6sP2pM+mJ(jG%gD#dAXaxU6tQ3qN0nK)kH&hE!eE!eBYbyV

51、8uR4rO1oL-lI*iF$fCZczW8vS5sP2pM+mJ(jG%gD#dAW9wT6tQ3qN0nK)kH&hE!eBXaxU7uR4rO1oL-lI*iF$fBYbyV8vS5sP2pM+mJ(jG%fCZczW9wT6tQ3qN0nK)kH%gD#dAXaxU7uR4rO1oL-lH&hE!eBYbyV8vS5sP2pM+mI*iF$fCZczW9wT6tQ3qN0mJ(jG%gD#dAXaxU7uR4rO0nK)kH&hE!eBYbyV8vS5sO1oL-lI*iF$fCZczW9wT6tP2pM+mJ(jG%gD#dAXaxU7tQ3qN0nK)kH&hE!eBYbyV7u

52、R4rO1oL-lI*iF$fCZczV8vS5sP2pM+mJ(jG%gD#dzW9wT6tQ3qN0nK)kH&hE!eAXaxU7uR4rO1oL-lI*iF$eBYbyV8vS5sP2pM+mJ(jG$fCZczW9wT6tQ3qN0nK)kG%gD#dAXaxU7uR4rO1oL-lH&hE!eBYbyV8vS5sP2pM+lI*iF$fCZczW9wT6tQ3qN+mJ(jG%gD#dAXaxU7uR4rN0nK)kH&hE!eBYbyV8vS5rO1oL-lI*iF$fCZczW9wT6sP2pM+mJ(jG%gD#dAXaxU6tQ3qN0nK)kH&hE!eBYbyU7uR4

53、rO1oL-lI*iF$fCZcyV8vS5sP2pM+mJ(jG%gD#czW9wT6tQ3qN0nK)kH&hE!dAXaxU7uR4rO1oL-lI*iF!eBYbyV8vS5sP2pM+mJ(jF$fCZczW9wT6tQ3qN0nK)jG%gD#dAXdAXaxU7uR4rO1oL-lH&hE!eBYbyV8vS5sP2pM+lI*iF$fCZczW9wT6tQ3qN0mJ(jG%gD#dAXaxU7uR4rO0nK)kH&hE!eBYbyV8vS5sO1oL-lI*iF$fCZczW9wT6sP2pM+mJ(jG%gD#dAXaxU6tU7uQ3qN0nK)kH&hE!eBYbyV

54、8uR4rO1oL-lI*iF$fCZczW8vS5sP2pM+mJ(jG%gD#dAX9wT6tQ3qN0nK)kH&hE!eBXaxU7uR4rO1oL-lI*iF$fBYbyV8vS5sP2pM+mJ(jG%fCZczW9wT6tQ3qN0nK)kH&gD#dAXaxU7uR4rO1oL-lI&hE!eBYbyV8vS5sP2pM+mI*iF$fCZczW9wT6tQ3qN0mJ(jG%gD#dAXaxU7uU7uR4rO1oK)kH&hE!eBYbyV8vS5sP2oL-lI*iF$fCZczW9wT6tQ2pM+mJ(jG%gD#dAXaxU7uR3qN0nK)kH&hE!eBYby

55、V8vR4rO1oL-lI*iF$fCZczW9vS5sP2pM+mJ(jG%gD#dAX9wT6tQ3qN0nK)kH&hE!eBYaxU7uR4rO1oL-lI*iF$fCYbyV8vS5sP2pM+mJ(jG%gCZczW9wT6tQ3qN0nK)kH&gD#dAXaxU7uR4rO1oL-lI&hE!eBYbyV8vS5sP2pM+mJ*iF$fCZczW9wT6tQ3qN0nJ(jG%gD#dAXaxU7uR4rO1nK)kH&hE!eBYbyV8vS5sP1oL-lI*iF$fCZczW9wT6tQ2pM+mJ(jG%gD#dAXaxU7uQ3qN0nK)kH&hE!eBYbyV8

56、uR8vS4rO1oL-lI*iF$fCZczW9wS5sP2pM+mJ(jG%gD#dAXawT6tQ3qN0nK)kH&hE!eBYaxU7uR4rO1oL-lI*iF$fCYbyV8vS5sP2pM+mJ(jG%gDZczW9wT6tQ3qN0nK)kH&hD#dAXaxU7uR4rO1oL-lI*hE!eBYbyV8vS5sP2pM+mJ*iF$fCZczW9wT6tQ3qN0nK(jG%gD#dAXaxU7uR4rO1oK)kH&hE!eBYbyV8vS5sP2oL-lI*iF$fCZczW9wT6tQ2pM+mJ(jG%gD#dAXaxU7uQ3qN0nK)kH&hE!eBYbyV

57、8vR4rO1oL-lI*iF$fCZczW9vS5sP2pM+mJ(jG%gD#dAX9wT6tQ3qN0nK)kH&hE!eBXaxU7uR4rO1oL-lI*iF$fCYbyV8vS5sP2pM+mJ(jG%gCZczW9wT6tQ3qN0nK)kH&gD#dAXaxU7uR4rO1oL-lI&hE!eBYbyV8vS5sP2pM+mI*iJ(iF$fCZczW9wT6tQ3qN0nK(jG%gD#dAXaxU7uR4rO1oK)kH&hE!eBYbyV8vS5sP2pL-lI*iF$fCZczW9wT6tQ3pM+mJ(jG%gD#dAXaxU7uR3qN0nK)kH&hE!eBYby

58、V8vR4rO1oL-lI*iF$fCZczW9wS5sP2pM+mJ(jG%gD#dAXawT6tQ3qN0nK)kH&hE!eBYaxU7uR4rO1oL-lI*iF$fCYbyV8vS5sP2pM+mJ(jG%gCZczW9wT6tQ3qN0nK)kH&hD#dAXaxU7uR4rO1oL-lI*hE!eBYbyV8vS5sP2pM+mJ*iF$fCZczW9wT6tQ3qN0nJ(jG%gD#dAXaxU7uR4rO1oK)kH&hE!eBYbyV8vS5sP2oL-lI*iF$fCZczW9wT6tQ2pM+mJ(jG%jG%gD#dAXaxU7uR4qN0nK)kH&hE!eBYb

59、yV8vS4rO1oL-lI*iF$fCZczW9wS5sP2pM+mJ(jG%gD#dAXawT6tQ3qN0nK)kH&hE!eBYbxU7uR4rO1oL-lI*iF$fCZbyV8vS5sP2pM+mJ(jG%gDZczW9wT6tQ3qN0nK)kH&hD#dAXaxU7uR4rO1oL-lI*iE!eBYbyV8vS5sP2pM+mJ(iF$fCZczW9wT6tQ3qN0nK(jG%gD#dAXaxU7uR4rO1oK)kH&hE!eBYbyV8vS5sP2oL-lI*iF$fCZczW9wT6tQ3pM+mJ(jG%gD#dAXaxU7uR3qN0nK)kH&hE!eBYbyV8vR

温馨提示

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

评论

0/150

提交评论