• 1. 第二 章 GIS软件需求工程 (I)
  • 2. 主要内容软件需求的问题和重要性软件需求的定义和层次需求开发 -需求调查、需求分析、需求定义需求管理 -需求确认、需求跟踪、变更控制结构化分析技术 -数据流图、实体关系图、状态转换图、数据字典
  • 3. 天天漫画网:去适应对方,不要试图去改变对方。切记不要叨叨嘴,不要当碎嘴子婆娘。江山易改,本*难移。人的本*是无法改变的。如果你要嫁给他,事先就得想好。要改变对方,削足适履是不可能的,两人在一起就只有互相适应才会有前途。多看对方的优点你就会对他满意,记住人无完人,自己本身就不十全十美的规则,求大同存小异就可以改掉令所有男人讨厌的唠唠叨叨的妇女病。【讲一个故事:夫妻之道】
  • 4. 需求的问题
  • 5. 需求的问题
  • 6. 需求的问题To understand why, Standish asked the Survey respondents to explain the causes of the failed projects. The top factors were reported to be Incomplete requirements (13.1%) Lack of user involvement (12.4%) Lack of resources (10.6%) Unrealistic expectations (9.9%) Lack of executive support (9.3%) Changing requirements and specifications (8.7%) Lack of planning (8.1%) System no longer needed (7.5%)
  • 7. 需求的重要性
  • 8. 需求错误的代价早期的需求错误可能造成: - 重新规格说明、设计、编码和测试 - 改变订单:告诉用户和操作员用一个修正后的版本来代 替有缺陷的版本 - 纠正活动:消除由于不正确的系统错误造成的一切危害,可能涉及到赔偿客户损失以及重新运行系统等 - 报废:即使设计、代码和测试完成得很好,由于它们是根据不正确的需求产生的,所以不得不被丢弃 - 收回有缺陷的软件产品以及相关的用户手册 - 技术人员为客户重新安装新软件所必须支付的服务成本
  • 9. 什么是软件需求需求的定义(IEEE,1997): - 用户解决问题或达到目标所需的条件或能力。 - 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。 - 一种反映上面两者所描述的条件或能力的文档说明。需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。
  • 10. 软件需求的层次
  • 11. 软件需求的来源
  • 12. 软件需求:银行ATM系统业务需求 -系统为用户提供自助存取款服务用户需求 -用户可以随时安全、快捷地进行存款和取款功能需求 -系统允许用户从银行账户中取款 -系统允许用户向银行账户中存款 -系统允许用户查询银行账户的现存余额 -系统使用8位数字密码检验用户存取的合法性
  • 13. 软件需求:银行ATM系统非功能需求 -系统在20秒之内响应所有的请求 -除了每天30分钟的维护外,系统每周7天、每天24小时都可使用需求来源 -客户或用户(如银行职员、管理人员、用户) -行业标准、政策或法规 -当前手工处理系统的文档 -咨询银行领域的专家
  • 14. 需求阶段的错误
  • 15. 建立良好需求的困难(一)需求理解 -客户或用户经常不清楚自己真正需要什么,直到他们看见为止需求建模 -对于大型复杂系统,需求建模是一项费时而且具有挑战性的工作沟通与理解 -软件系统是复杂的,客户或用户与开发人员之间很难有效地沟通和交流需求管理 -由于需求在整个开发过程中不稳定,很难控制和了解需求变化造成的影响
  • 16. 建立良好需求的困难(二)经理 -我们要建立一套完整的商业管理软件系统,包括商品的进、销、调、存管理,是总部-门店的连锁经营模式。通过通信手段门店自动订货,供应商自动结算,卖场通过扫条码实现销售,管理人员能够随时查询门店商品销售和库存情况。另外,我们也得为政府部门提供关于商品营运的报告。分析员 -我已经明白这个项目的大体结构框架,这非常重要,但在制定计划之前,我们必须收集一些需求。
  • 17. 建立良好需求的困难(三)经理觉得很奇怪 -我不是刚告诉你我的需求了吗?分析员 -实际上,您只说明了整个项目的概念和目标。这些高层次的业务需求不足以提供开发的内容和时间。我需要与实际将要使用系统的业务人员进行讨论,然后才能真正明白达到业务目标所需功能和用户要求,了解清楚后,才可以发现哪些是现有组件即可实现的,哪些是需要开发的,这样可节省很多时间。
  • 18. 建立良好需求的困难(四)经理 -业务人员都在招商。他们非常忙,没有时间与你们详细讨论各种细节。你能不能说明一下你们现有的系统?分析员尽量解释从用户处收集需求的合理性 -如果我们只是凭空猜想用户要求,结果不会令人满意。我们只是软件开发人员,而不是采购专家、营运专家或是财务专家,我们并不真正明白您这个企业内部运营需要做些什么。我曾经尝试过,未真正明白这些问题就开始编码,结果没有人对产品满意。
  • 19. 建立良好需求的困难(五)经理坚持 -行了,行了,我们没有那么多的时间。让我来告诉您我们的需求,实际上我也很忙。请马上开始开发,并随时将你们的进展情况告诉我。开发人员在用户处呆了两三天就埋头开发。这种态度意味着项目的不成功,应该说上面的开发人员和用户都应该对此负责。需求是开发者和用户交互的一个过程,任何一方的不投入都会导致项目的失败。所有成功项目有一个重要特性:用户非常的支持。
  • 20. 需求工程需求调查需求分析需求定义需求确认需求跟踪变更控制
  • 21. 需求工程《需求规格说明书》开展系统设计工作
  • 22. 需求工程防止需求变更失去控制而导致项目混乱
  • 23. 需求工程需求管理需求调查需求分析需求定义
  • 24. 需求调查需求管理需求调查需求分析需求定义会议记录
  • 25. 需求调查(一)
  • 26. 需求调查(二)聆听用户的需求 -与各种层次的客户进行充分的交流和沟通,包括决策领导、使用部门的领导、具体使用人员、系统维护人员等分析和整理所获取的信息 -借助一些工具和方法,从用户一般性的陈述里面提取用户的真正需求,并由此确定软件的功能、性能、接口关系、约束条件等形成文档化的描述
  • 27. 需求调查(三)需求调查的技术 -向系统相关者进行问卷调查 -主持与用户的面谈和讨论 -需求专题讨论会 -复查现有的报表、表格和过程描述 -观察商业过程和工作流 -应用用例 -建立原型
  • 28. 需求分析需求管理需求调查需求分析需求定义会议记录分析模型
  • 29. 需求分析需求分析的核心在于建立分析模型。需求分析采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问题。需求分析还包括与客户的交流以澄清某些易混淆的问题,并明确哪些需求更为重要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。
  • 30. 传统结构化方法
  • 31. 需求定义需求管理需求调查需求分析需求定义会议记录分析模型需求规格 说明
  • 32. 需求规格说明采用适当的方法形成需求规格说明 -将结构化语言与自然语言结合,编写文本型文档; -建立可视化的模型; -形式化的方法,如Z模式、Petri Net等;
  • 33. 需求规格说明软件需求规格说明不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。 -软件需求规格说明是用户、分析人员和设计人员之间进行理解和交流的手段; -测试人员可以根据软件需求规格说明中对产品行为的描述,制定测试计划、测试用例和测试过程; -文档人员根据软件需求规格说明和用户界面设计,编写用户手册等; -软件需求规格说明指导着整个系统的开发过程,评审过的需求规格说明需求进行变更控制。
  • 34. 需求规格说明的技术自然语言结构化英语模型 -用例模型 -对象模型 -数据流图 -状态图 -决策表 -... ...
  • 35. 需求规格说明模板(IEEE)
  • 36. 需求规格说明模板(其他)
  • 37. 需求管理需求管理需求调查需求分析需求定义会议记录分析模型需求规格 说明
  • 38. 需求确认需求确认是为了确保需求说明准确、完整。需求说明的质量特性 -正确性 -完整性 -一致性 -无二义性 -可修改性 -可跟踪性 -可验证性
  • 39. 需求确认的方法审查需求文档以需求为依据编写测试用例编写用户手册确定合格的标准
  • 40. 需求跟踪 比较需求文档与后续工作成果之间的对应关系,确保产品依据需求文档进行开发
  • 41. 需求变更控制 依据规范处理需求变更,防止需求变更失去控制而导致项目混乱
  • 42. 需求管理工具
  • 43. 建立目标系统的逻辑模型用户 调查具体模型建立系统模型的工作流程逻辑 抽象当前系统逻辑模型当前系统计算 机化评审 修改正式模型完善 细节目标系统目标系统 初始模型经认可的问题需求系统模型用户
  • 44. ---- 学生购买教材的具体模型 举例请建立计算机 售书系统的逻辑模型张 秘书 学 生 购书 购书 王 会计发票李 出纳领书赵 保管单申请证明书 ----学生购买教材的 逻辑模型 审查 有效性 学 生 有效购书单 开发票发票开领 书单领书单发书购书单书
  • 45. ----学生购买教材的 逻辑模型 审查并 开发票 学 生 发票购书单 各班学生用书表教材存量表无效书单开领 书单领书单 学 生 完善目标系统并补充细节,得出目标系统的正式逻辑模型
  • 46. 结构化分析技术实体关系图(Entity-Relationship Diagram,ERD)数据流图(Data Flow Diagram,DFD)状态转换图(State-Transition Diagram,STD)
  • 47. 结构化分析技术
  • 48. 实体关系图数据对象 -客观世界中存在的且可相互区分的事物属性 -属性是实体或联系所具有的性质关系 -数据对象之间的相互连接 数据对象属性关系
  • 49. 实体关系图一对一(1:1)一对多(1:N)多对多(M:N)111NMN
  • 50. 数据流图 是用来描述系统逻辑模型的一种图形工具。 数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。 DFD
  • 51. 数据流图储 户检验付款登录存折帐卡取款 信息办理取款手续的 DFD 图检验不合格现款付款信息取款单存折举例
  • 52. 数据流数据流 -在数据加工之间或数据存储和数据加工之间进行流动的数据 数据流图中的主要图形元素外部实体 -位于软件系统边界之外的信息生产者或消费者加工 -对数据进行的变换和处理 外部实体加工数据存储 -可以是数据库文件或任何形式的数据组织
  • 53. 系统逻辑模型数据的 加工或 变换输入输出软件 系统外部实体外部实体… …外部实体外部实体… …输入 数据流输入 数据流输出 数据流输出 数据流
  • 54. ----学生购买教材的 逻辑模型 审查并 开发票 学 生 发票购书单 各班学生用书表教材存量表无效书单开领 书单领书单 学 生 外部 实体数据的 加工
  • 55. 数据流图中的其它图形元素ABC ------ 有 A 则 B 或者 C,或者两者都有*ABC+ABC ------ 有 A 则 B 与 C,或者两者同时有 ------ 有 A 则 B 或 C,但不会同时有B与C
  • 56. 数据流图中的其它图形元素 ------ 当 A 或 B 有一个存在就有 CABC*ABC ------ 只有当 A 与 B 都存在,则有 C
  • 57. 分层的数据流图F0A0B0F1A0B0F2F3F4F5p1C1D1M1N1F4.1M1F4.2N1F4.3K2F4.4W2F4.5p1Y2X2第 n 层第 n+1 层第 n+2 层
  • 58. 状态转换图 状态转换图通过描述状态以及导致系统改变状态的事件来表示系统的行为,它没有表示出系统所执行的处理,只表示了处理结果可能的状态转换。 STD
  • 59. 状态转换图中的主要图形元素状态 ------状态,用带标记的圆圈或矩形表示 ------转换条件,用箭头表示从一种状态到另一种状态的变换 状态转换条件
  • 60. 学生成绩管理系统 举例 在该系统中,教务人员录入学生信息、课程信息和成绩信息,学生可以随时查询自己所选课程的成绩。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。
  • 61. 创建实体关系图 举例1.在需求收集的过程中,要求客户列出应用软件或业务过程涉及到的“事物”,将其演化成数据对象;2.一次考虑一个对象,分析员和客户定义这个对象和其他对象之间是否存在连接;3.如果存在连接,应创建一个或多个关系;4.对每一个关系,确定其关联类型;5.重复步骤(2)到步骤(4),直到定义了所有关系;6.定义每个实体的属性;7.形式化并复审实体关系图;8.重复步骤(1)到(7),直到数据建模完成。
  • 62. 创建实体关系图 举例实体:学生、课程、成绩实体属性定义: -学生:学号、姓名、性别、出生日期、入学年月 -课程:课程编号、课程名称、课程学分、课程描述 -成绩:学号、课程编号、分数、考核日期
  • 63. 创建数据流图 举例1.第0层DFD将整个系统表示成一个加工;2.确定并标记主要的输入和输出;3.分离出下一层中的加工、数据对象和存储,并对其进行细化,一次细化一个加工;4.标记所有加工和箭头;5.重复步骤(3)和(4),直到所有的加工只执行一个简单的操作,可以很容易地用程序实现。
  • 64. 创建数据流图 举例第0层DFD图 : -教务人员维护学生信息和课程信息,并登录学生的选课成绩; -学生查询自己的成绩单
  • 65. 第0层DFD图第1层DFD图
  • 66. 第1层DFD图第2层DFD图第0层DFD图
  • 67. 创建行为模型 举例分析外部事件,所谓外部事件是指外部实体与系统的一次交互;分析事件的响应者,该响应者为了响应该事件要进行怎样的活动,这种活动又会激发哪些事件等;根据事件和活动划分实体的状态,也可根据其他知识划分实体状态,考虑发生怎样的事件使该实体进入这个状态,怎样的事件使该实体从这个状态转换到另一状态等;
  • 68. 创建行为模型 举例
  • 69. 人工销售教材系统流程图学生开购书 证明购书 证明开购书 发票 发 票收书费 领书单发书学生举例
  • 70. 学 生教材 购销 系统购书单领书单缺书单进书通知进书通知保 管员1 销售购书单领书单学 生缺书单进书通知2 采购保 管员第 1 层第 2 层 教材存量表 F1 缺书登记表 F2外部实体外部实体
  • 71. 教材销售子系统 无效书单购书单1.3 登记并开 领书单1.2 开发票1.1 审查 有效性1.4 登记 缺书1.5 补售 教材采 购学 生学 生进书通知有效书单发票领书单暂缺书单1 销售购书单领书单缺书单进书通知2 采购进书通知缺书登记表教材存量表学 生保 管员第 2 层补售 书单第 3 层 教材存量表 F1 缺书登记表 F2 F1 书号 单价 数量 各班用书表 F3 售书登记表 F4外部 项
  • 72. 1 销售购书单领书单缺书单进书通知2 采购进书通知缺书登记表教材存量表学 生保 管员采购 子系统 第 2 层第 3 层缺书单2.3 修改教材库 存和待 购量销 售进书通知进书通知2.1 按书号汇 总缺书2.2 按出版社统 计缺书保 管员 教材存量表 F1 待购教材表 F5 教材一览表 F6 缺书登记表 F2
  • 73. 注意父图和子图的平衡画分层DFD的指导原则(一)发票1.3 开领书单领书单(a) 父图 1.3.1学生领书单1.3.21.3.3教材(b) 子图
  • 74. 区分局部文件和局部外部项掌握分解的速度 一般来说,每一个加工每次可分为 2-4个子加工,最 多不得超过 7 个。遵守加工编号规则 顶层加工不编号。第二层的加工编号为1,2,3,…,n号。 第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。画分层DFD的指导原则(二)
  • 75. 1 销售购书单领书单缺书单进书通知2 采购进书通知缺书登记表教材存量表学 生保 管员采购 子系统 第 2 层第 3 层缺书单2.3 修改教材库 存和待 购量销 售进书通知进书通知2.1 按书号汇 总缺书2.2 按出版社统 计缺书保 管员 教材存量表 F1 待购教材表 F5 教材一览表 F6 缺书登记表 F2局部 外部项局部 文件
  • 76. 结构化分析技术
  • 77. 数据字典的任务是: 对于分析模型中出现的所有被 命名的图形元素在字典中作为一个词条加以定义,使得 每一个图形元素的名字都有一个确切的解释。DD数据字典
  • 78. 1、数据字典的定义数据流名: 说明:简要介绍作用即它产生的原因和结果。 数据流来源:即该数据流来自何方。 数据流去向:去向何处。 数据流组成:数据结构(1) 数据流词条的描述 数据流名:发票 说明:用作学生已付书款的依据 数据流来源:来自加工“审查并开发票” 数据流去向:流向加工“开领书单” 数据流组成:学号+姓名+书号+单价总价+书费合计审查并 开发票发票购书单
  • 79. 数据元素名: 类型:数字(离散值、连续值),文字(编码类型) 长度: 取值范围: 相关的数据元素及数据结构 (2) 数据元素词条的描述 年 = “1900”..“3000” 月 = “01”..“12” 日 = “01”..“31” 摘要 = 1{字母}4 金额 = “00000000.01”..“999999999.99” … …
  • 80. (3) 数据文件词条的描述 数据文件名: 简述:存放的是什么数据。 输入数据: 输出数据: 数据文件组成:数据结构。 存储方式:顺序,直接,关键码。 存取频率: … …审查并 开发票 学 生 发票购书单 各班学生用书表教材存量表
  • 81. 加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流: 取值范围: 相关的数据元素及数据结构 … …(4) 加工逻辑词条的描述 1.3 审查并 开发票 学 生 发票购书单 各班学生用书表教材存量表
  • 82. 名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:(5) 外部实体词条描述 1 销售购书单领书单缺书单进书通知2 采购进书通知缺书登记表教材存量表学 生保 管员
  • 83. 2、数据字典定义符号 符号含 义例 子=被定义为+与[ ]x=a+b,则表示 x 由 a 和 b 组成x=[a,b],则表示 x 由 a 或由 b 组成{ }或重复x={a},则表示 x 由 0个或多个 a 组成( )可选 表示在两个 * 之间的内容为词条的注释m{ }n重复x=3{a}8,则表示x中至少出现3次a ,最多出现8次*…*注释符x=(a),则表示 a 在 x 中出现, 也可不出现年 = “1900”..“3000”
  • 84. 储 户检验付款登录存折帐卡取款 信息-------- 办理取款手续的 DFD 图检验不合格现款付款信息取款单存折练习请为下列给出的 DFD 图编写 DD
  • 85. 日期 年月日摘要支出存入余额操作复核户名:储蓄网点名称:帐号:开户日:性质:印密:------- 存折格式
  • 86. 日期 (年月日)摘要支出存入余额操作复核户名:储蓄网点名称:帐号:开户日:性质:印密:存折 = 户名+所号+帐号+开户日+性质+(印密)+1{存取行}20 户名 = 2{字母}24 所号 = “001”..“999” 帐号 = “00000001”..“99999999” 开户日 = 年+月+日 性质 = “1”..“6” 印密 = “0” 存取行 = 日期+(摘要)+支出+存入+余额+操作+复核 日期 =年+月+日 年 = “1900”..“3000” 月 = “01”..“12” 日 = “01”..“31” 摘要 = 1{字母}4 支出 = 金额 金额 = “00000000.01”..“999999999.99” … …
  • 87. 3、数据字典的实现数据字典的实现 人工方法 自动方法将字典中的每一词条 写在一张卡片上,由 专人管理和维护利用 “字典管理程序” 在计算机中对字典进 行管理和维护。
  • 88. 加工说明是:对 DFD 中每个加工给予说明。它是从 系统功能的角度对 DFD 作出了注解,与 DD 一样是DFD 必不可缺少的辅助资料。PS加工说明
  • 89. 加工说明组成输入 数据加工 逻辑输出 数据加工说明 描述工具结构化 语言判定 表判定 树 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。
  • 90. 自然语言+结构化形式结构化语言选 择 结 构如果<条件> <策略> If 如果<条件> 则 <策略1> 否则 <策略2>情况1 <条件> <策略1> … … 情况n <条件> <策略n>If then Otherwise case 1 … … case n 循 环 结 构对 … , <策略>重复以下 <策略> 直至 <条件> For each … , Repeat the following: Until
  • 91. 例1: 请写出下列在 DFD 图中给出的 “统计晚婚职工” 的加工说明 Count Late -Marriage EmployeesLate-Marriage -Count Request职工名册文件Late-Marriage-List =List-Count+Name-ListName-List={Name}
  • 92. Count Late-Marriage Employees Policy For each Late-Marriage-Count request: Repeat the following; Access the staffs-Record. If status is single, If sex is male and Age is over 30 or sex is female and Age is over 26 Write Name to Name-List. Increment List-Count. Until there are no more Staff-Records. Combine List-Count and Name-List. Write Up Late-Marriage-List.
  • 93. ----学生购买教材的 系统逻辑模型 审查并 开发票 学 生 发票购书单 各班学生用书表教材存量表无效书单开领 书单领书单 学 生 例2: 请为下列DFD中的“审查并开发票”加工点写 加工说明
  • 94. 把学生学号和姓名写到发票上 按购书单上学生的年级和系、专业与班号 检索“各班学生用书表”文件,获得该生当年的书单 对 购书单上的每一书号 如果 书单上无此书号 则 把书号写到出错通知单上 否则 按书号检索 “教材存量表”文件, 从而获得该书的单价与库存量 如果 库存量〈 购书单的数量 则 将书号写到出错通知单上 否则 将书号、单价、数量、总价等项写入到发票上; 更新存书量,并写回“教材存量表” 文件; 累计书费合计 把书费合计写到发票上对每张购书单
  • 95. 分房 加工婚龄中级职称晚婚正常分房优先分房不分房分房加工逻辑判断表采用表格的形式来表达具有复杂判断的加工逻辑1、一般职工婚后5年可参加分房 2、中级以上职称的职工婚后3年 可参加分房 3、符合正常分房条件的职工, 若再符合晚婚条件可优先分房
  • 96. 分房 加工婚龄中级职称晚婚正常分房优先分房不分房123456说 明条 件婚 龄>5年3-5年<3年 (-) 表示任意 (Y) 条件满足 (N) 条件不满足 (*) 选中的决策 中级职称-----------YN-----晚 婚YNYN---------决 策优先分房**正常分房**不分房**
  • 97. 中 级 职 称不 分 房初婚 分房决策> 5年3-5 年< 3年优先分房非中 级职称正常分房正常分房晚 婚非晚婚晚 婚非晚婚优先分房不 分 房判断树
  • 98. 作业工资管理系统 系统流程图 系统软件模型 部分数据字典一、对工资管理系统进行需求分析
  • 99. 三、把下列用文字叙述的内容请采判断表和判断树描述出来 设某旅游票预定系统中,在旅游旺季 7- 9、12月 份,如果订票超过 50张,则优惠票价的 15% ; 50张以 下,优惠5%。在旅游淡季1-6,10、11月份,若订票超 过 50张,则优惠30%;50张以下,优惠 20%。