第3章_软件需求分析_第1页
第3章_软件需求分析_第2页
第3章_软件需求分析_第3页
第3章_软件需求分析_第4页
第3章_软件需求分析_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

六盘水师范学院 孙新杰,1,第3章 软件需求分析,软件需求需求分析过程传统方法的分析建模举例,六盘水师范学院 孙新杰,2,3.1 软件需求,1、需求的概念 需求(requirements): Jones 定义为用户所需要的软件必须达到的目标和能力。Lethbridge定义为需求是关于系统将要完成什么工作的一段描述,他们必须经过所有相关人员的认可,其目的是彻底的解决用户的问题。 需求是一段描述:意思是每个需求是相对短小简明的一段信息,表现为一个事实。它可以是一段话或用各种图表示。一组需求的集合成为需求文档。 关于系统将要完成什么工作:需求描述了系统应当完成的任务,不描述系统将如何实现。 必须经过所有相关人员的认可:意指需求必须经过评审,才能成为正式的需求。 其目的是彻底的解决用户的问题。有助于解决用户的问题,该需求才有存在的价值。,六盘水师范学院 孙新杰,3,2、需求的类型 (1) 功能性需求:描述系统应该做什么,即为用户和其它系统完成的功能、提供的服务。 (2) 非功能性需求:必须遵循的标准,外部界面的细节,实现的约束条件,质量属性等等。 非功能需求限定了选择解决问题方案的范围,如运行平台、实现技术、编程语言和工具等。 例:将飞机订票系统中的以下方面做如下的划分,F代表“功能性”,NF代表“非功能性”,X代表“不应当是需求”。简要的说明功能性或非功能性需求的种类。对于不应当是需求的方面,说明其原因。,六盘水师范学院 孙新杰,4, 如何输入有关航班、乘客及订票信息。F:输入。 什么信息要出现在机票和报告中。F:输出。 如何计算乘机费用。F:计算。 什么信息必须存储在旅行社和其他人访问的数据库中。 F:数据存储。 这个系统应该设计成可以处理旅行常客计划。 NF:增强的容限。 这个系统在任何时候都必须是可用的。一周中只允许有2 分钟宕机时间。 NF:有效性。 必须使用排序算法根据离开时间对航班排序。 X:这是一个设计问题。,六盘水师范学院 孙新杰,5,3、需求的描述 (1)结构化语言 (2)图形化表示 (3)数学描述(形式化描述)4、软件需求文档(需求规格化说明) 是需求分析阶段的产品,是所有其他开发和管理活动的基础。对系统开发过程中其他活动的影响: 项目经理根据它制定或修改开发计划。 设计人员根据它进行系统设计。 测试人员根据它编写测试计划,设计测试用例。 产品发布人员根据它编写产品介绍和用户文档。 培训人员根据它编写培训教程。,六盘水师范学院 孙新杰,6,IEEE标准为需求文档提出了以下结构,组织机构内部可以基于此标准扩展: (1)引言 a. 需求文档的目的 b. 文档约定 c. 预期的读者和阅读建议 d. 产品范围 e. 参考文献 (2)综合描述 a. 产品前景 b. 产品功能与优先级 c. 用户特征 d. 运行环境 e. 设计与实现上的限制 f. 假设和依赖性,六盘水师范学院 孙新杰,7,(3)需求描述 a. 功能需求 b. 数据需求:与功能有关的数据定义和数据关系 c. 性能需求:响应时间、容量要求、用户数等 d. 外部接口:用户界面、软硬件接口、通信接口 e. 设计约束:软件支持环境、报表、数据命名等 f. 软件质量属性(可维护性、可靠性、可移植性、 可用性、安全性等等) g. 其他需求 这一节是文档中最实质性的部分,由于在机构组织的实践中存在极大的变数,对这一节定义的标准结构可以进行增删。 (4)附录(词汇表、分析模型、待定问题列表) (5)索引,六盘水师范学院 孙新杰,8,3.2 需求分析过程,需求分析是指开发人员通过对应用问题及其环境的调查分析,准确的理解用户的需求,将不规范的需求陈述转化为完整的需求定义,再将需求定义编写成需求规格化说明的过程。 对于一些新的复杂的系统,如果没有专门进行可行性研究,需求分析过程前应集中回答以下几个问题: (1)系统是否符合组织机构的总题目标?(业务需求)。 (2)系统是否可能在现在的技术条件、预算和时间限制内完成?(经济、技术上的可行性) (3)系统能否与已经存在的其他系统集成? 当收集到信息并评估后,需要对系统是否要开发给出意见和建议,书写可行性报告。该过程可能提出对系统功能范围的修正、对预算和时间安排的调整意见或者是对系统高层需求的建议。,六盘水师范学院 孙新杰,9,1、需求获取 (1)个别访谈和召集会议 (2)观察用户工作流程 (3)利用原型 (4)使用实例(用例):用例把系统分成一组逻辑的、互相联系很少的部分,每一部分都描述了系统运行的某种方式。因此容易理解每个用例达到的功能。,问题分析,问题描述,原型化,文件管理与确认,需求获取和分析,需求定义和说明,是否已经记录了用户需要的所有部分,是否使用了正确的技术,功能是否可行,是否记录了用户期望的部分,确定需求的过程,六盘水师范学院 孙新杰,10,例:列出图书馆系统中以下参与者的最小用例集:借阅者、借书员、图书管理员、会计系统。 借阅者: 按题目查询书籍 按作者查询书籍 按主题查询书籍 预定已被其他人借出的书籍 查询借阅者的个人信息并列出借阅的书籍,六盘水师范学院 孙新杰,11,借书员: 所有借阅者的用例,再加上 为借阅者查找某一书籍 登记已归还的书籍 续借一本书 登记缴纳的罚款 添加新的借阅者 更新借阅者的个人信息(地址、电话号码等) 图书管理员: 所有借阅者和借书员的用例,再加上 添加藏书 删除藏书 改变系统中对已有书籍的记录信息 会计系统(独立运行) 获得借阅者支付的超期罚款,六盘水师范学院 孙新杰,12,3、分析与综合 用文字和图形描述不同视图以揭示更深的、易混淆的问题,确保与所有风险承担者达成共识。 (1)分析需求的可行性:允许的成本、性能;与其他需求的冲突;外界因素的依赖和技术障碍等。 (2)对于渐增式开发要确定需求的优先级别,以便确立产品版本。 (3)建模:图形化的表示分析模型可以增强对软件需求的理解,也为软件设计奠定了基础。 模型包括:,六盘水师范学院 孙新杰,13,数据流图(DFD功能模型) 实体关系图(ERD信息模型) 状态转换图(STD行为模型) 类图(信息模型) 顺序图(行为模型) 合作图(行为模型)等等。 (4)使用原型法,减少项目风险。 (5)建立数据字典。4、编写需求文档,六盘水师范学院 孙新杰,14,5、需求验证 需求验证的重要性:如果在后续的开发或当系统投入使用时才发现需求文档中的错误,就会导致更大代价的返工。由需求问题而对系统做变更的成本比修改设计或代码错误的成本要大的多。假设需求阶段引入1个错误的需求,设计时对这个需求需要510条设计实现,1条设计需要 510条程序,1条程序需要35种测试组合测试。,原始需求,正确的规格说明 错误的规格说明,正确的设计 错误的设计 对错误需求的设计,正确的编码 错误的编码 对错误设计的编码 对错误需求的编码,正确功能 测试到的错误 没有测试到的错误,一个错误的需求,纠正成本100元,10 纠正成本1000元,10,5,六盘水师范学院 孙新杰,15,对需求文档需执行以下类型的检查: (1)有效性检查 检查不同用户使用不同功能的有效性。 (2)一致性检查 在文档中,需求不应该冲突。 (3)完备性检查 需求文档应该包括所有用户想要的功能和约束。 (4)现实性检查 检查保证能利用现有技术实现需求。,六盘水师范学院 孙新杰,16,验证技术: (1)需求评审: 由分析员、设计员、测试员、用户参与的正式或非正式的会议评审。正式会议要有严格的评审程序,要有会议记录,开发组根据缺陷建议修改需求说明并重审。 (2)利用原型检验系统是否符合用户的真正需要。 (3)对每个需求编写概念性的测试用例。 (4)编写用户手册。用浅显易懂的语言描述用户可见的功能。 (5)自动的一致性分析。可用CASE工具检验需求模型的一致性。,六盘水师范学院 孙新杰,17,3.3 传统方法的分析建模,分析建模是使用文本 和图表形式的组合,以相对容易理解和能直接评审正确性、完整性和一致性的方式来描述数据、功能和行为的需求。 在过去的数年中,人们提出了许多种分析建模的方法,其中两种在分析建模领域占有主导地位: 第一种是结构化分析 (Structured Analysis, SA),70年代末由DeMarco等人提出,这是传统的建模方法。 另一种方法是面向对象的分析,将在后面介绍。 结构化分析方法不是被所有的使用者一致地使用的单一方法,众多科学家对其进行了扩充,因此它是发展了超过30年的一个混合物。,六盘水师范学院 孙新杰,18,1、分析模型 分析模型必须达到三个主要目标: (1)描述用户的需要,使用户和开发人员更好理解; (2)建立创建软件设计的基础; (3)定义在软件完成后可以被确认的一组需求。 为了达到这些目 标,在结构化分 析中导出的分析 模型如图所示: 图3.1 分析模型,六盘水师范学院 孙新杰,19, 数据字典:包含了软件生产或使用的所有数据对象描述的中心存储库。 实体关系图(ERD):描述数据对象间的关系,每个对象的属性由“数据对象描述”来描述。 数据流图(DFD)用于两个目的: 指明数据在系统中移动时如何被变换; 反映对数据流进行变换的功能(和子功能); 在DFD中出现的每个功能的描述包含在“加工规约”中。 状态转换图(STD):指明作为外部事件的结果系统将如何动作,有哪些行为。软件控制方面的附加信息包含在“控制规约”中。,六盘水师范学院 孙新杰,20,2、数据建模 在数据密集型应用问题中,对复杂数据或数据间复杂关系的分析和建模是需求分析的重要任务之一,有助于数据库的设计。 数据建模回答与任何数据处理应用相关的一组特定问题: 系统处理哪些主要的数据对象(或实体)? 每个数据对象的组成如何,哪些属性描述了这些对象? 每个对象与其他对象有哪些关系?这些对象当前位于何处? 对象和变换它们的处理之间有哪些关系?,六盘水师范学院 孙新杰,21,分析人员经常使用实体-联系(Entity Relationship ,ER) 图来描述数据对象及相互之间的关系。 ER模型包含了3种相互关联的信息: 数据对象 数据对象的属性 数据对象相互连接的关系(1:1,1:N,M:N)。 下图是一个教学管理的ER图:,六盘水师范学院 孙新杰,22,教师,学生,课程,教,学,M,N,M,N,教师号,姓名,性别,职称,系别,学号,姓名,性别,系别,班级,时间,成绩,课程号,课名,学时,学分,其中: 表示实体, 表示属性, 表示联系。为了降低图的复杂性,有时属性不画在ER图中,单独造表。,六盘水师范学院 孙新杰,23,3、功能建模 (1)数据流图(Data Flow Diagram,DFD) DFD用来描述数据在处理序列中的流动,由箭头给出流动的数据,泡泡表示对数据的变换(加工或处理),两条平行横线表示数据存储(数据库),矩形表示外部实体(数据源或数据池)。图3. 2描述了一个反映“看病”功能的DFD。 DFD可以自顶向下,逐层分解,第0层DFD将整个系统表示为一个具有输入和输出数据的泡泡,反映了系统的语境,以下各层分别是上一层泡泡的分解,分解到可理解为止。表示在第1层的每个加工是表示在语境模型中的整个系统的子功能。(见图3.3)。,六盘水师范学院 孙新杰,24,图3.2 “看病”的数据流图,六盘水师范学院 孙新杰,25,图3. 3 数据流图的分解,六盘水师范学院 孙新杰,26,分解时注意保持每次精化的输入输出数据流 一致,称为分层数据流图的平衡。 图形并不能充分反映软件的需求,需要用数据字典和“加工规约”对分析模型进行补充。 数据字典对DFD中的元素进行严格的定义与解释。 加工规约说明DFD中的“泡泡”隐含的处理细节并指出加工的约束与限制。 DFD符号简单,适用于数据处理系统的分析建模,关注的重点是数据流而不是控制流,不易于实时系统的分析。,六盘水师范学院 孙新杰,27,(2)IDEF0图 美国国防部使用 的图形化建模技术, 一个基本活动图 如图3.4所示。每个活 动包括4类要素:输 入、控制、机制和输 出。控制是限制所描 述活动的类型或活动 所受约束,机制是活 图3.4 一个基本的IDEF0图(A-0图) 动的外部支持(如工 具、技术、数据库等)。该图如同DFD一样,通过逐层分解展示系统的功能与子功能,每一层分解的活动为36个。(图3.5为第1层的 IDEF0图),六盘水师范学院 孙新杰,28,图3.5 “看病”的IDEF0图(A0图),六盘水师范学院 孙新杰,29,4、行为建模 SA的扩展版本才使用STD进行行为建模。STD通过描述状态以及导致系统改变状态的事件来表示系统的行为。 STD一般用圆角矩形(以下例图中用矩形)表示状态,每个状态代表系统的一种行为模式,状态之间用箭头连接,表示当发生某个事件或满足某条件时,激发某个动作,引起对象或系统状态间的转移。 图3.6和图3.7分别是复印机软件的DFD和STD。 行为模型有助于理解系统的预期行为,便于检验“需求规格说明”是否包含了与状态变化相关的功能需求,有利于对实时系统进行分析。,六盘水师范学院 孙新杰,30,图3.6 复印机软件的DFD,六盘水师范学院 孙新杰,31,图3.7 复印机软件的STD,六盘水师范学院 孙新杰,32,5、数据字典(Data Dictionary,DD) DD是对所有与系统相关的数据元素的一个有组织的列表和精确的、严格的定义,使得用户和开发人员对于这些数据元素有共同的理解。它可以管理各种模型中的各种信息。尽管各工具中字典的形式各不相同,但都包含以下信息: 名称 别名 何处使用/如何使用 内容描述: 描述符号 记号 意义 例1:六盘水师院电话号码 由构成 82668|82669|82660后缀号码 和 例2:学生名表1 姓名成绩 30 | 或 1 n 1 n次重复 补充信息: ( ) 可选 数据类型、限制、约束等,六盘水师范学院 孙新杰,33,6、加工规约和控制规约 说明基本加工的处理逻辑以及一些附加信息。 描述工具:结构化语言(半形式化语言) 表格(如判定表、加工激活表) 下图是某大学“录取新生”满足一组条件规则的判定表: 规则1 规则2 规则3 规则4 规则5标准考试得分高 T F F F F平时成绩好 T F F F参加课外活动 T F F好的推荐材料 T F发送拒绝信 发送录取通知 ,六盘水师范学院 孙新杰,34,条件和动作(或结果)列在表格的左边,每列代表一组条件下系统要做的动作(或取得的结果),也说明了当系统处于列中所描述的状态时,将要遵守的规则。 “T”表示本行的条件为“真”,“F”为“假”,“”为“无所谓”,“ ”表示在本列组合条件下采取的动作。 判定表用于反映系统在多个条件组合下,将要采取的行动。如果有n个条件,就有2n个可能的条件组合,这样表的结构就会很大。 注意规则3、4和5,是重复的,可以取消4和5。去掉表中冗余的规则,以减少表的规模并更容易理解。 通过制作、分析判定表,可进一步检查需求说明的完整性、一致性。,六盘水师范学院 孙新杰,35,3.4 例1:机票预订系统,其功能为:旅行社把预订机票的旅客信息(姓名、性别、身份证号码、旅行时间、目的地等)输入系统。系统为旅客安排航班,打印出取票通知单。旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。建立该系统DFD:,机票预订系统,旅行社,旅客,订票单,取票单,取票单,机票,机票预订系统顶层图,六盘水师范学院 孙新杰,36,预订机票1,旅客取票2,订票单,取票单,取票单,机票,机票文件,机票预订系统0层图,检验有效性1.1,查询航班1.2,登记机票1.3,打印取票单1.4,机票文件,航班目录,订票单,有效,有航班,已登记,取票单,“预订机票”子图(1层图),图1:,六盘水师范学院 孙新杰,37,图2: 这样逐步求精分解下去,直到每个加工相对简单、整个图的功能可理解为止。,查询机票文件检验取票单2.1,记帐2.2,修改机票文件并打印机票2.3,机票文件,账目文件,取票单,有效取票单,已交款,机票,“旅客取票”子图(1层图),六盘水师范学院 孙新杰,38,例2:家庭安全系统(SafeHome),是一个基于微处理器的系统,能识别异常事件并采取相应防护措施。异常事件包括:非法侵入、火灾等。一旦异常事件被传感器识别出来,系统自动启动电话向监控中心报警。具体功能为: 1、在安装时允许用户进行系统配置,配置的信息有: 每一个传感器的类型和编号, 报警电话号码, 启动和关闭系统的密码, 警报延迟和电话号码延迟时间(以秒为单位),,六

温馨提示

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

评论

0/150

提交评论