分析软件需求;内容;1.1为什么要分析软件需求;示例:初步软件需求描述中存在的问题(1/2);示例:初步软件需求描述中存在的问题(2/2);1.2分析软件需求的任务;需求分析过程;内容;2.1基本思想;数据流图示意图;2.2面向数据流的需求分析过程;步骤1:建立顶级数据流图;示例:“空巢老人看护软件”的顶级数据流图;示例:“Mini-12306”的顶级数据流图;步骤2:精化数据流图中的转换;对数据流图总“转换”进行精化的示意图;示例:“空巢老人看护软件”转换精化(1/3);示例:“空巢老人看护软件”转换精化(2/3);示例:“空巢老人看护软件”转换精化(3/3);示例:“Mini-12306”转换精化(1/3);示例:“Mini-12306”转换精化(2/3);示例:“Mini-12306”转换精化(3/3);精化过程中确保父图与子图的平衡;步骤3:建立数据字典;示例:“机器人移动命令”的数据条目描述;示例:“旅客注册信息”的数据条目;2.3注意事项;内容;3.1软件需求的不同视角表示;支持需求建模和分析的UML图;顺序图;3.1.1UML交互图的作用;顺序图;顺序图的表示方式;对象间的消息传递;消息图元的表示;示例:顺序图;通信图的表示;顺序图和通信图的选取原则;示例:顺序图;类和对象图;3.1.2类图;类的UML表示;属性的表示;方法的表示;接口(Interface);类间的关系;类间关系-关联;类间关系-聚合与组合;类间关系-依赖;类间关系-实现;类间关系-继承;注意事项;示例:类图;3.1.3对象图;对象图示例;何时用对象图;状态图;3.1.4状态图;状态图的基本概念;示例:状态图;复合状态;状态的表示;迁移的表示;状态图绘制原则;3.2分析和确定软件需求优先级;3.2.1分析软件需求重要性;示例:“空巢老人看护软件”的需求重要性;示例:“Mini-12306”的需求重要性;3.2.2分析软件需求优先级;示例:确定“空巢老人看护软件”的需求优先级;示例:“Mini-12306”的需求优先级;3.2.3确定用例分析和实现的次序;示例:“空巢老人看护软件”需求开发安排;示例:“Mini-12306”需求开发安排;3.3分析和建立软件需求模型的具体步骤;3.3.1分析和建立用例的交互模型;分析和确定用例所涉及的对象及其类;边界类;示例:边界类;控制类;示例:控制类;实体类;示例:实体类;3.3.2分析和确定对象???间的消息传递;确定消息的名称;确定消息传递的信息;示例:消息的名称和信息;3.3.3绘制用例的交互图;用例交互图的工作流程;示例:顺序图的工作流程;示例:“空巢老人看护”中用例的交互模型;示例:“Mini-12306”中用例的交互模型;思考和讨论;3.4分析和建立软件需求的分析类模型;分析和建立分析类模型的步骤;3.4.1确定分析类
;示例:根据用例图来确定分析类;示例:根据用例图来确定分析类;示例:根据交互图来确定分析类;3.4.2确定分析类的职责
;示例:确定分析类的职责;3.4.3确定分析类的属性;示例:确定分析类的属性;3.4.4确定分析类之间的关系
;示例:确定分析类之间的关系;3.4.5绘制分析类图
;示例:”空巢老人看护软件”分析类图;示例:”Mini-12306”分析类图;3.5分析和建立软件需求的状态模型
;示例:“机器人”对象的状态图;示例:“车票”对象的状态图;支持需求分析的CASE工具;内容;4.1软件需求文档模板;4.2撰写软件需求文档的注意事项;思考和讨论;4.3分析软件需求的输出;4.4软件需求评审的步骤;评审软件需求(1/2);评审软件需求(2/2);4.5如何解决软件需求问题(1/2);如何解决软件需求问题(2/2);思考和讨论;拓展阅读;课后作业和课程实训;本章知识图谱;小结;综合实践一;综合实践二;问题和讨论