您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第3章 传统软件需求分析
1云南大学软件学院代飞博士2013年·秋软件学院国家精品课程软件工程23.1需求与需求分析3.2需求工程3.3结构化分析技术第3章传统软件需求分析会泽百家至公天下33.1.1需求3.1.2需求分析3.1需求与需求分析43.1.1需求的定义•IEEE关于需求的定义(1)用户为了解决问题或达到目标所需的条件或能力;(用户的角度)(2)系统或系统部件为了满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(开发者的角度)(3)对(1)或(2)中的一个条件或一种能力的文档化表述。5需求概念的外延——需求的分类功能需求(FunctionalRequirement)和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。功能需求主要表现为系统和环境之间的行为交互。性能需求(PerformanceRequirement)系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率等。质量属性(QualityAttribute)系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等。对外接口(ExternalInterface)系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等等。约束进行系统构造时需要遵守的约束,例如编程语言、硬件设施等。6功能需求——层次性目标任务系统行为业务需求用户需求系统需求7业务需求、用户需求、系统需求业务需求–抽象层次最高的需求,是系统建立的战略出发点,表现为高层次的目标(Objective),它描述了组织为什么要开发系统。用户需求–执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么。系统(级)需求–用户对系统行为的期望,一系列的系统行为联系在一起可以帮助用户完成任务,满足用户需求。8例子——业务需求•目标:云南大学进入全国50强•子目标:学科建设(一级博士点)•子目标:国家级重点实验室建设•子目标:学校信息化建设(教务管理系统、选课系统、研究生系统…)•子目标:人才建设9用户需求•用户需求–学生:能够进行选课,知道上课时间和地点–教务秘书:开课+排时间–教务科:排课(排地点)+课程管理–教师:知道上课时间和地点开课选课排课查课表教务秘书学生学生和教师教务科10系统需求——查课表11需求分析:对要解决的问题进行详细的分析,弄清楚问题的要求。(做什么)3.1.2需求分析需求分析需达到的三个目标:1、描述客户的需求;2、建立创建软件设计的基础3、定义在软件完成后可以被确认的一组需求12需求分析的过程可行性分析模型需求描述可行性报告系统模型需求规格说明书133.2需求工程3.2.1需求工程的定义3.2.2需求工程过程14需求工程是所有需求处理活动的综合,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应3.2.1需求工程•需求–构造任何人工制品之前,其意图(为什么需要它?它将用于何处?)。•工程–工程化的方法;–有效的技术;–规范化、标准化的生产过程;–规范化、标准化的产品,强调最终产品的实用性和目的性。15•内容:–需求开发和需求管理;•目标:–需求规格说明书(软件需求规约或功能规格说明);–当需求发生变更时,对需求规格说明进行管理。需求工程的内容和目标16传统需求分析与需求工程的关系需求分析需求工程173.2.2需求工程过程需求获取需求分析需求描述需求验证需求管理需求开发过程需求管理过程经过分析和建模的需求,将被记录和文档化,并作为正式的规格说明,再经验证后,传递给软件组织的所有相关人员,形成对系统需求的正确和一致的理解。规格说明天生就是不完备的;环境一直在变;18需求获取需求分析需求描述需求验证系统环境涉众硬数据需求基线变更控制当前基线修订的基线需求变化需求开发需求管理19需求获取•需求获取–需求获取是从人、文档、环境当中获取需求的过程;•这个过程包括学习和认知的过程,而学习和认知是递进的;–需求工程师必须要利用各种方法和技术来“发现”需求;–需求获取和需求分析是交织在一起的;20需求获取的子活动项目前景和范围文档用户需求文档(包括问题域特性)收集背景材料定义项目前景和范围选择信息的来源选择获取方法,执行获取记录获取结果21定义系统的高层解决方案订单输入员票据文员运输员生产工长包含定价数据的旧系统新的销售订单系统合格的销售订单订单输入源检查检查检查新的解决方案解决方案边界结果订单22上下文图自助餐厅在线订餐系统顾客工资系统菜单管理人送餐人员自助餐厅工作人员送餐请求从工资中扣除餐费的请求付款要求菜单内容送餐请求付款请求食物订单菜单食物订单食物订购信息注册从工资中扣除餐费自助餐厅库存系统食物订单可提供的食物信息从工资中扣除餐费的响应更新食物状态2324需求分析•需求分析–通过建模来整合各种信息,以使得人们更好的理解问题;–检查需求当中存在的错误、遗漏、不一致等各种缺陷,并加以修正;–为问题定义出一个需求集合,这个集合能够为问题界定一个有效的解决方案;(需求的基线集)需求分析·建立分析模型·创建解决方案获取结果·用户的理解·问题的描述需求开发目标·共同的理解·解决方案的描述25三种模型每本书都有至少一个作者需求获取信息业务模型分析模型计算模型(1,n)#ISBNTitleVarchar(100)…...Book#IDNameVarchar(50)…...Author#ISBN#ID#NUM…...Wrote11..n10..n书作者(0,n)写作26需求分析的子活动背景分析确定系统边界需求建模需求细化确定优先级需求协商系统用例图数据流图、ER图、状态转换图、类图27需求描述•需求规格说明–需求获取活动---收集了需求信息;–需求分析活动---建立了能够满足用户需求的软件解决方案;–将上述文档定义和文档化;•业务需求被写入项目前景和范围文档•用户需求被写入用户需求文档(或者用例文档)•系统需求被写入需求规格说明•需求规格说明的子活动–模板的选择与裁剪和编写文档28需求描述的子活动系统模型系统需求标准模版模版的选择与裁剪需求规格说明文档模版编写文档软件需求规格说明文档模版结构知识知识29需求验证•需求验证–确保需求规格说明文档能正确、准确地反映用户的意图–确保文档的高质量•文档内每条需求都正确、准确的反映了用户的意图;•文档记录的需求集在整体上具有完整性和一致性;•文档的组织方式和需求的书写方式具有可读性和可修改性•需求验证子活动–执行验证–问题修正30需求验证的子活动执行验证软件需求规格说明文档问题修正问题、修改建议修改后的软件需求规格说明文档31需求管理•需求管理–需求基线:项目经理、开发者、测试人员、顾客、维护人员–需求产生之后,需求的影响力贯穿于整个后续的产品生命周期,而不是单纯地存在于需求开发阶段•需求管理子活动–建立和维护需求基线集–建立需求跟踪信息–进行变更控制323.3.1结构化方法概述3.3.2系统流程图3.3.3数据流图3.3.4数据字典3.3.5结构化语言3.3结构化分析33基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。(分而治之的思想)3.3.1结构化方法概述•结构化分析(StructuredAnalysis,SA,70年代中期)•结构化设计(StructuredDesign,SD,70年代初期)•结构化编程(StructuredProgramming,SP,1965)基本要点:自顶向下、逐步求精;模块化设计;结构化编程。34自顶向下、逐步求精底层顶层x1233.13.2抽象和分解是控制复杂性的两个基本手段抽象:在每个抽象层次上忽略问题的内部复杂性,只关注整个问题与外界的联系分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止3536模块化设计main非模块化设计main模块化设计子模块1子模块2子模块3子模块11子模块12子模块1337结构化编程main函数a函数b函数c顺序结构选择结构循坏结构反对GOTO语句函数必须是单入口和单出口的38结构化分析•结构化分析的要点:根据软件内部数据传递、变换的关系,采用自顶向下、逐层分解的方法,经过一系列分解和抽象,建立系统的逻辑模型。•建立系统逻辑模型的结构化分析技术有三种:•1、数据流图•2、数据字典•3、结构化语言、判定表、判定树3940系统流程图,是一种描述系统内各单位、人员之间业务关系的图表,用以描述物理系统的工具。基本思想:用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文档,数据库,人工过程等),表达信息在各个部件之间流动的情况,而不是表示对信息进行加工处理的控制过程。3.3.2系统流程图处理加工数据或单据库存数据信息流或物流的输入与输出文档外部项41424344结构化分析过程•1、理解当前的现实环境,获得当前系统的具体模型(物理模型)•2、从当前系统的具体模型抽象出当前系统逻辑模型•3、分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型•4、为目标系统的逻辑模型作补充45例子:排课•步骤1.通过对现实环境的调查,获得当前系统的物理模型教学计划软件学院(代)排课表(时间)学校教务处(王)排课表(时间+地点)软件学院(黄)软件学院(黄)46•步骤2.去掉具体模型中的非本质因素,抽取现实系统的实质,抽象出当前系统的逻辑模型。教学计划排课表(时间)排课表(时间+地点)软件学院教务员排课时间处理排课地点处理软件学院教务员47•步骤3.分析当前系统与目标系统的差别,建立目标系统的逻辑模型时间约束教室约束教学计划排课表(时间)排课表(时间+地点)软件学院教务员排课时间处理排课地点处理软件学院教务员软件学院的教师学校设备管理科48•步骤4.对目标系统的逻辑模型进行改进与优化。时间约束教室约束教学计划排课表(时间)排课表(时间+地点)软件学院教务员排课时间处理排课地点处理软件学院教务员软件学院的教师学校设备管理科排课表(时间+地点)反馈49数据流图(DataFlowDiagram)是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理功能。3.3.3数据流图数据流外部实体加工数据存储501)外部实体:与系统进行交互,但系统不对其进行加工和处理的实体,用带标记的矩形表示。2)数据的加工:加工是对数据进行变换和处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。3)数据流:数据流由一组固定的数据组成,用来指出数据在系统内传播的路径。4)数据存储:表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等,用带标记的双实线表示。51例子:飞机机票预订系统分类并检查旅行社订票订票单有效订票单航班目录记账有效取票单记账文件机票准备旅行社取票通知单机票文件账单旅客机票取票单52数据流的扩展符号•*与•+或•异或53规则(1/3)•过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集应该存在差异。XXXY54规则(2/3)•数据流是必须和过程产生关联的,它要么是过程的数据输入,要么是过程的数据输出55规则(3/3)•DFD当中所有的对象都应该有一个可以唯一标识自己的名称。–过程使用动词–外部实体、数据流和数据存储使用名词–分层DFD中的每个处理都应有一个加工规约。56数据流图的层次结构•为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的。•建模过程是分而治之思想的体现,故而DFD必须有层次结构;•一个比较抽象的过程可以被展开为一个子过程更加具体的DFD图;•DFD的层次结构–上下文图–0层图–N层图(N0)57上下文图–上下文图是DFD最高层次的图,是系统功能的最高抽象。–将整个系统看做是一个过程(可以理解为黑盒),这个过程实现系统的所有功能,是系统功能的最高抽象:•上下文图中存在且仅存在一个过程,表示整个系统,通常编号为0•上下文图中需要表示出
本文标题:第3章 传统软件需求分析
链接地址:https://www.777doc.com/doc-3385823 .html