• 1. 软件需求指用户对所开发的软件在功能、性能、环境、可靠性等各方面的要求。 需求分析主要回答待开发的系统必须“做什么”,并用《需求规格说明书》的形式准确、详细、规范地表达出来。 注意: 在需求分析阶段,系统分析员的主要关注点是 “做什么(what)” ,不是 “怎样做 (how)” 需求分析阶段,系统分析员应该给出软件需求规格说明书。第3章:需求分析
    • 2. 需求分析分为两个阶段,需求获取阶段和需求规约阶段。需求关心的是系统目标而不是系统实现。 需求可以分为两大类,功能性需求和非功能性需求,前者定义了系统做什么,后者定了系统工作时的特性。
    • 3. 需求分析的重要性 (1)许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。 (2)用户需求报告既是软件生命周期中的第一个里程碑,又是客户、软件开发人员、软件测试人员和项目管理人员四者共同工作的基线,是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。
    • 4. (3)需求分析要占用整个软件开发时间或工作量的30%左右。 (4)需求获取中的错误,属于软件开发中的早期错误,将给项目成功带来极大风险,因为这些错误会在后续的设计和实现中进行发散式的传播。 根据以上四项原因,IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去作项目需求。
    • 5. 需求获取为什么难 (1)用户需求具有动态性,即需求的不稳定性:在整个软件生命周期内,应用软件的需求会随着时间的进展而有所变化。个别用户,甚至是朝三暮四地变化。 (2)用户需求具有模糊性:由于用户的素质不是很高,业务流程不很规范,所以需求表达不很清楚也不够明确。 (3)开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字。 (4)中国的国有企业正处在变动期(体制改革与企业重组),中国的民营企业正处在成长期(发展壮大与不完全成熟)。
    • 6. 用户需求报告与需求分析规格说明书 《用户需求报告》是站在用户的角度、使用他们可以看懂的语言写的,内容是有关系统的运行环境、业务流程、业务功能、业务性能和业务接口等。 它是需求分析阶段产生的第一份重要的文档,表达了用户全面的、系统的、准确的、并且用户确认的需求,它是用户、项目开发者、项目测试者和项目管理者四方共同工作的基础,是用户测试和验收目标的依据,是作为软件开发机构和用户之间一份事实上的技术合同书,是软件生命周期中的第一根基线。
    • 7. 《需求分析规格说明书》是站在开发者的角度、使用开发者的语言写的,目的是作为概要设计和详细设计的依据,内容是系统的业务模型、功能模型、数据模型和接口模型的进一步定量描述。它是需求分析阶段产生的第二份重要的文档。 与用户需求报告不同的是,需求分析规格说明书不但以一种一致的、无二义的方式准确的表达用户的需求,而且增加了一些对设计者非常有用的信息(如模型、实体、属性、方法、关系、主键、外键、算法等等),它是项目开发者、项目测试者和项目管理者三方共同工作的技术基础,是项目开发者下一步进行设计和编码的依据。
    • 8. 需求获取与需求规约 所谓需求获取,就是开发者与用户共同提取并共同确认需求。 在需求获取过程中,人们将“划分、抽象和投影”三要素,作为需求获取的三原则。 (1)划分,就是捕获问题空间的“整体/部分”关系; (2)抽象,就是捕获问题空间的“一般/特殊”或“一般/特例”关系; (3)投影,就是捕获问题空间的多维“视图”。 所谓需求规约,就是对获取并确认的需求进行定义与分析,并且解决需求中存在的二义性和不一致性,最后以一种系统化的文档形式,准确地表达用户的需求,形成所谓的需求分析规格说明书。
    • 9. 需求验证 需求验证就是对软件需求分析规格说明书加以验证。需求验证要从以下方面进行:正确性,无二义性,完整性,可验证性,一致性,可量化性,可理解性,可修改性,唯一性,可跟踪性,设计无关性。 无二义性就是要去掉模棱两可的内容。可验证性就是要具有可测试性,即需求是具体的、可测试的。可量化性就是需求的功能与性能要数字化,例如服务器的功能与性能指标、并发用户数目、平均响应时间。唯一性就是每项需求给一个唯一标识,以便于需求跟踪与配置管理。
    • 10. 需求是一个迭代过程 由于人们对客观事物的认识不断深化,所以需求过程是一个迭代过程,每次迭代提供更高质量和更详细内容的软件需求。 这种迭代会给项目带来一定的风险,上一次迭代的设计实现可能会因为需求不足而被推翻。但是,软件分析师应根据项目计划,在给定的资源条件下得到尽可能高质量的需求。
    • 11. 3.1.1 确定对系统的综合要求 1.功能需求 2.性能需求 如:响应时间(速度)、主存容量、磁盘容量、安全性等。3.1 需求分析的任务
    • 12. 3. 可靠性和可用性需求 4. 出错处理需求 系统发现错误时采取的行动,主要在系统关键部分设置。 5. 接口需求 用户接口、硬件接口、软件接口、通信接口等。 6. 约束 精度、工具和语言、设计约束、硬件约束、标准等。 7. 逆向需求 8. 将来可能提出的要求
    • 13. 3.1.3 导出系统的逻辑模型 包括完善的数据流图、实体-联系图、状态转换图、数据字典、主要的处理算法(IPO图)等。3.1.2 分析系统的数据要求 通过建立数据模型来分析,如数据字典、层次方框图、Warnier图,并将数据结构规范化。3.1.4 修正系统开发计划 修订前期制定的开发进度计划。
    • 14. 谁是用户指直接或间接从产品中获得利益的个人或组织 包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风险承担者或是获得产品所产生的结果的人。3.2 与用户沟通获取需求的方法
    • 15. 软件需求分析的通信途径
    • 16. 3.2.1 访谈 正式访谈:系统分析员提出事先准备好的问题。 非正式访谈:提出一些用户可以自由回答的开放性问题,鼓励被访者说出自己的想法。 需要访问大量人员时,利用调查表访问较佳。
    • 17. 3.2.2 面向数据流自顶向下求精 分析追踪数据流图用户复查细化数据流图有补充修正无补充修正需要分解不需分解图3.1 需求分析基本过程 借助数据流图、数据字典、IPO图等,细化、完善详细的数据流图,等到各处理环节对应的功能。
    • 18. 3.2.3 简易的应用规格说明技术 面向团队的需求收集法: (用户与开发者配合) 1)初步访谈; 2)开发者和用户分别写出“产品需求”; 3)开会讨论,各自展示需求列表; 4)得出一致意见,为需求列表制定小型规格说明; 5)根据会议成果,起草完整的软件需求规格说明。
    • 19. 3.2.4 快速建立软件原型 快速建立能演示目标系统主要功能的程序。 (1)第四代技术 (2)可重用的软件构件 (3)形式化规格说明和原型环境
    • 20. 3.3 分析建模与规格说明3.3.1 分析建模 为了开发复杂的系统,应从不同角度(模型)抽象出目标系统的特性(数据模型、功能模型、行为模型)。 1)实体联系图:建立数据模型,描述数据对象及数据对象之间的关系; 2)数据流图:建立功能模型的基础; 3)状态转换图:描绘系统的状态和状态间转换的方式。3.3.2 软件需求规格说明
    • 21. 3.4 实体-联系图 数据对象可以是外部实体、事物、行为、事件、角色、单位、地点、结构等。数据对象3.4.1 数据对象
    • 22. 3.4.2 属性 属性定义了数据对象的性质。属性
    • 23. 3.4.3 联系 (1)一对一联系(1:1) (2)一对多联系(1:N) (3)多对多联系(M:N) 在ER图中,用菱形框表示联系。 联系
    • 24. 如何建立实体-联系图 1、在需求收集的过程中,列出应用软件或业务过程涉及到的所有“事物”,将其演化成数据对象; 2、一次考虑一个对象,定义这个对象和其他对象之间是否存在连接; 3、如果存在连接,应创建一个或多个关系; 4、对每一个关系,确定其关联类型; 5、重复步骤(2)到步骤(4),直到定义了所有关系。 6、定义每个实体的属性; 7、形式化并复审实体关系图; 8、重复步骤(1)到(7),直到数据建模完成。
    • 25. 教师学生课程学号姓名系年级职务性别职称性别姓名教工号教学成绩学分学时课名课程号图3.2 某校教学管理ER图MN1N例子:
    • 26. 通常用范式定义消除数据冗余的程度。 1)第一范式 2)第二范式 3)第三范式3.5 数据规范化
    • 27. 第一范式每个属性值都必须是原子值。 第二范式满足第一范式条件,而且每个非关键字属性都由整个关键字决定。 第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述。 注意:范式低,冗余大,范式高,分解得细,冗余小,但处理过程复杂。
    • 28. 什么是状态转换图 为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。 状态转换图是一种常用的动态分析方法。 是描述系统的状态如何响应外部信号,而进行转换的一种图形表示。3.6 状态转换图
    • 29. 3.6.1 状态 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。 主要有:初态、终态和中间状态。 一个状态图中,只能有一个初态,但可以有0~多个终态。 3.6.2 事件 事件是某个特定时刻发生的事情,它是引起系统做动作或状态转换的控制信息。
    • 30. 3.6.3 符号事件名(参数表)/动作表达式 3种标准事件:entry,exit和do事件说明【守卫条件】/动作表达式
    • 31. 3.6.4 例子
    • 32. 3.7 其他图形工具 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。 产品硬件软件服务处理机存储器外部设备系统软件应用软件软件服务硬件维修培训编译程序软件工具操作系统图3.5 层次方框图的一个例子3.7.1 层次方框图
    • 33. Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。 软件产品软件工具编辑程序(P3)应用软件编译程序(P2)操作系统(P1)系统软件测试驱动程序(P4)设计辅助工具(P5)⊕图3.4 Warnier图的一个例子3.7.2 Warnier图
    • 34. IPO图是输入/处理/输出图。 旧的主文件 事务文件1.校验主记录 2.校验事务记录 3.更新主记录有效的主记录 有效的事务记录 更新后的主文件输入处理输出图3.7 IPO图的一个例子3.7.3 IPO图
    • 35. IPO表系统:模块:编号:作者:日期:被调用:调用:输入:输出:处理:局部数据元素:注释:图3.8 改进的IPO图的形式
    • 36. 3.8 验证软件需求 1)一致性 2)完整性 3)现实性 4)有效性3.8.1 验证软件需求的正确性
    • 37. 1)验证需求的一致性 2)验证需求的现实性 3)验证需求的完整性和有效性 3.8.2 验证软件需求的方法
    • 38. 用于需求分析的软件应该满足下列要求: 1)必须有形式化的语法 2)使用这个软件工具能够导出详细的文档 3)必须提供分析规格说明书的不一致性和冗余性的手段 4)使用这个软件工具后,应该能够改进通信状况3.8.3 用于需求分析的软件工具
    • 39. RSL(需求陈述语言):信息集ASSM(抽象系统语义模型)PASCAL模拟程序   PSL/PSA(问题陈述语言/问题陈述分析程序)系统
    • 40. PSL/PSA系统的功能主要有: 描述任何应用领域的信息系统 创建一个数据库保持对该信息系统的描述符 对描述符施加增加、删除和更改等操作 产生格式化的文档和关于规格说明书的各种分析报告
    • 41. PSL/PSA系统的优点: 改进了文档质量,保证文档具有完整性、一致性和无二义性,减少管理和维护的费用。 数据存放在数据库中,便于增加、删除和更改。

    该用户的其他文档