1 / 36

第 3 讲 需求分析基础

软件工程导论 之. 第 3 讲 需求分析基础. 毛新军 教授 xjmao@nudt.edu.cn 计算机科学与技术系 602 教研室 0731-(45)73649. 用工程化的方法来开发软件. 序言 (1/2). 开发软件系统前,须了解用户的期望和要求 软件需求 需求分析过程 需求分析的重要性 软件开发的基础和前提 最终目标软件系统验收的标准 避免或者尽早剔除早期的错误. 序言 (2/2). 需求分析的复杂性和面临的困难 片面 , 不完全 模糊 , 不准确 不一致 , 歧义 需求复杂和庞大

Télécharger la présentation

第 3 讲 需求分析基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件工程导论 之 第3讲 需求分析基础 毛新军 教授 xjmao@nudt.edu.cn 计算机科学与技术系602教研室 0731-(45)73649 用工程化的方法来开发软件

  2. 需求分析基础 序言(1/2) • 开发软件系统前,须了解用户的期望和要求 • 软件需求 • 需求分析过程 • 需求分析的重要性 • 软件开发的基础和前提 • 最终目标软件系统验收的标准 • 避免或者尽早剔除早期的错误

  3. 需求分析基础 序言(2/2) • 需求分析的复杂性和面临的困难 • 片面, 不完全 • 模糊, 不准确 • 不一致, 歧义 • 需求复杂和庞大 • 因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行软件需求分析

  4. 需求分析基础 本讲内容 • 需求分析的任务和过程 • 需求获取技术 • 需求分析和描述技术 • 软件需求规格说明书及其评审

  5. 需求分析基础 需求分析的任务和过程(1/2) • 什么是用户需求 • 待开发软件系统的功能、性能、设计约束和其它要求 • 用户需求例子-图书馆管理系统 • 功能需求:办理读者借书证, … • 性能需求:查询操作延迟时间不超过1秒钟, … • 设计约束:前台运行在windows OS下,… • 其它要求:开发时间6个月, …

  6. 需求分析基础 需求分析的任务和过程(2/2) • 需求分析的任务 • 通过对应用问题及其环境的理解和分析,准确、一致和完全地刻划用户需求,形成软件需求规格说明书( SRS: Software Requirement Specification ) • 需求分析过程 • 获取和理解用户需求 • 描述和分析用户需求 • 对用户需求进行评审

  7. 获取和理解需求 需求获取技术 描述和分析需求 建模、抽象、多视点、问题分解、原型 评审用户需求 需求评审原则 需求分析基础 需求分析过程示意图

  8. 需求分析基础 步骤1:获取和理解用户需求阶段 • 任务 • 获取并理解用户需求, 清除用户需求的不一致性, 模糊性和歧义性,帮助用户发现潜在的需求 • 原则 • 和用户进行交流和合作 • 将对原始问题理解与软件开发经验结合, 发现….

  9. 需求分析基础 步骤2:描述和分析用户需求阶段 • 任务 • 对用户需求进行建模,生成SRS和初步用户手册 • SRS : 用户需求(功能, 行为, 性能等) • 用户手册:如何操作和使用目标软件,界面描述和使用初步构想,目的… • 原则 • 确保SRS的完整性、一致性和准确性 • 鼓励用户参与SRS以及用户手册的制定 • 尽可能做到SRS结构清晰,措辞准确和简洁

  10. 需求分析基础 步骤3:对用户需求进行评审 • 任务 • 多方人员一起对SRS进行复核和评审,以确保用户手册和SRS全面、准确、一致地反映用户需求 • 原则 • 支持各方(用户,需求分析人员、设计人员)共同参与评审工作

  11. 需求分析基础 本讲内容 • 需求分析的任务和过程 • 需求获取技术 • 需求分析和描述技术 • 软件需求规格说明书及其评审

  12. 需求分析基础 需求获取技术

  13. 需求分析基础 访谈和会议

  14. 需求分析基础 观察用户工作流程或者实践

  15. 需求分析基础 用户和开发人员共同组成联合小组 • 加强联系 • 促进交流 • 增进合作

  16. 读者管理 读者借阅管理 书库管理 需求分析基础 案例分析:图书馆管理系统(1/3)

  17. 项目负责人 用户 需求分析人员 设计员 需求分析基础 案例分析:图书馆管理系统(2/3) 1. 建立联合小组 • 参与者: 用户、需求分析人员、设计人员。

  18. 需求分析基础 案例分析:图书馆管理系统(3/3) 2. 会议讨论 • 明确问题、范围、环境等,逐步了解用户需求 • 会议应有记录,整理形成文档 3. 分成三小组 • 读者管理、图书管理和读者借阅子系统 4. 总结各方成果形成结论性的SRS

  19. 需求分析基础 本讲内容 • 需求分析的任务和过程 • 需求获取技术 • 需求分析和描述技术 • 软件需求规格说明书及其评审

  20. 需求分析基础 需求描述和分析技术 • 问题分解 • 抽象 • 建模 • 多视点 • 快速原型

  21. 子问题1 整个问题 子问题3 子问题2 需求分析基础 问题分解 • 什么是问题分解 • 将大问题分解为小问题,通过小问题解决来实现大问题的解决 • 问题分解有助于降低解决问题的复杂度; 获取和分析问题本身所固有的整体-部分关系 • 图书馆系统 • 读者管理 • 图书管理 • 借阅管理

  22. 需求分析基础 问题抽象(1/2) • 什么是抽象? • 抽象有助于控制问题复杂度,抓住问题的本质,获取一般和特殊关系

  23. 读者抽象(提取成份) 名字 性别 单位 类别 照片 Email 电话 读者抽象(抛弃成份) 身高 年龄 …… 需求分析基础 问题抽象(2/2)

  24. 需求分析基础 需求建模(1/2) • 什么是需求模型 • 模型是对现实的简化,包含有广泛影响的要素,忽略不相关的次要因素 • 需求模型详细、准确地描述了用户对目标软件系统的功能、行为、性能、 设计约束等方面的要求 • 为什么需要建模 • 建模可缩小和简化所用户需求的分析和描述,从多个视点、多个不同的抽象层次来描述用户需求,从而更好促进软件的开发

  25. 需求分析基础 需求建模(2/2) • 注意 • 需求建模不要涉及软件设计和实现细节 • 需求建模方法 • 面向数据流的方法 • 面向对象的方法

  26. 需求分析基础 多视点分析 • 什么是多视点分析 • 从多个角度、不同层面上分析和描述用户需求 • 为什么需要多视点分析 • 人的认识具有片面性(瞎子摸象) • 多视点可以帮助我们全面把握用户的需求

  27. 需求分析基础 快速原型方法 • 传统软件开发存在的问题 • 需求分析员与用户之间没有一种直观交流媒介 • 用户需求不断变化  如何适应这样一种变化 • 如何更为直观地评价用户需求 • 什么是软件系统的原型 • 对软件系统的主要功能和行为的直观描述(操作模式、过程和界面) • 什么是快速原型方法 • 通过构建用户需求的原型来分析和描述用户需求

  28. 需求分析基础 快速原型方法示意图

  29. 需求分析基础 本讲内容 • 需求分析的任务和过程 • 需求获取技术 • 需求分析和描述技术 • 软件需求规格说明书及其评审

  30. 需求分析基础 软件需求规格说明书及其评审 • 软件需求规格说明书 • 软件需求规格说明书评审

  31. 需求分析基础 软件需求规格说明书 • 需求规格说明书的内容 • 功能与行为需求描述,例如,办理读者借书证,验证读者借书证号码是否存在 • 性能需求描述,例如查询响应时间不超过1秒钟 • 设计约束,例如运行在windows 2000操作系统下 • 其他,要求在6个月内完成

  32. 需求分析基础 软件需求规格说明书评审 • 在将需求规格说明书递交给软件设计之前,必须对它进行评审 • 评审要求用户、需求分析员和设计员共同参与

  33. 需求分析基础 需求评审的内容和标准 • 正确性 • 无歧义性 • 完全性 • 可验证性 • 一致性 • 可理解和可修改性 • 可追踪性

  34. 需求分析基础 本讲小结 • 需求分析的任务和过程 • 需求获取技术 • 需求描述和分析技术 • 软件需求规格说明书以及评审

  35. 需求分析基础 思考题 • 你认为课堂上讲的这些需求分析技术是否有效和可行? 如不可行你认为应怎样进行需求分析? • 如果你是一名软件项目经理,你如何组织和开展需求分析工作(包括人员组织、方法和技术的采用、结果等) • 需求分析对软件开发的意义何在,有何作用? • 请认真理解和领会各种需求分析技术,分析各种技术的特点以及在需求分析和描述中的作用?

  36. 需求分析基础 An Introduction to Software Engineering Q & A Practice, Practice, and Practice

More Related