软件需求获取与结构化分析方法.ppt
《软件需求获取与结构化分析方法.ppt》由会员分享,可在线阅读,更多相关《软件需求获取与结构化分析方法.ppt(75页珍藏版)》请在三一办公上搜索。
1、第3章 软件需求获取与结构化分析方法,需求获取与需求分析阶段的任务结构化分析方法系统需求规格说明需求评审需求管理,3.1 需求获取与需求分析阶段的任务,需求获取的任务和原则需求获取的过程软件需求分析阶段的任务,需求获取的任务和原则,需求获取的主要任务是与客户或用户沟通,了解系统或产品的目标是什么?客户或用户想要实现什么?系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作?获取并理解用户的需求是软件工程师所面对的最困难的任务之一。,需求获取的任务和原则,导出需求变得如此困难的原因归为以下几个方面的问题:系统的目标或范围问题;需求不准确性问题;需求的易变问题;需求获取除了需要有专业的系统
2、分析师,还需要通过有效的客户开发者的合作才能成功。,需求获取的任务和原则,1.需求获取的任务(1)发现和分析问题,并分析问题的原因/结果关系。(2)与用户进行各种方式的交流,并使用调查研究方法收集信息。(3)按照三个成分观察问题的不同侧面:即数据、过程和接口。(4)将获取的需求文档化,形式有用例、决策表、需求表等。,需求获取的任务和原则,2.需求获取应遵循的原则(1)深入浅出的原则。就是说,需求获取要尽可能全面、细致。获取的需求是个全集,目标系统真正实现的是个子集。(2)以流程为主线的原则。在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。流程
3、的描述既有宏观描述,也有微观描述。,需求获取的过程,1.开发高层的业务模型2.定义项目范围和高层需求3.识别用户类和用户代表系统的不同用户之间在很多方面存在差异,例如:(1)使用产品的频率;(2)用户在应用领域的经验和使用计算机系统的技能;(3)所用到的产品功能;(4)为支持业务过程所进行的工作;(5)访问权限和安全级别,需求获取的过程,4.获取具体的需求 确定了项目范围和高层需求,并确定了用户类及用户代表后,就需要获取更具体、完整和详细的需求。具体需求的来源可以来自以下几种典型的途径。(1)与用户进行交流。(2)现有产品或竞争产品的描述文档。(3)系统需求规格说明。(4)当前系统的问题报告和
4、改进要求。(5)市场调查和用户问卷调查。(6)观察用户如何工作。,需求获取的过程,5.确定目标系统的业务工作流 具体到当前待开发的应用系统,确定系统的业务工作流和主要的业务规则,采取需求调研的方法获取所需的信息。例如,针对信息系统的需求调研方法如下:(1)调研用户的组织结构、岗位设置、职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。,(2)调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。(3)对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,
5、形成一个需求的层次。,需求获取的过程,需求获取的过程,6.需求整理与总结必须对上面步骤取得的需求资料进行整理和总结,确定对软件系统的综合要求,即软件的需求。并提出这些需求实现条件,以及需求应达到的标准。这些需求包括功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等。,软件需求分析阶段的任务,可以把软件需求分析阶段的工作分为4个步骤,即获取需求、分析需求、定义需求和验证需求,如图所示。,软件需求分析阶段的工作步骤,软件需求分析阶段的任务,1.需求获取 通过启发、引导从客户(或用户)那里得到的原始需求是他们的业务要求(needs),简称
6、为N。这是分析之前获取的需求,其中可能存在一些实际问题,这些问题只有通过分析才能得到解决,直接把获取的需求作为软件设计阶段的依据将会导致严重的后果。,软件需求分析阶段的任务,2.需求分析 认真研究获取的需求,必须考虑以下几方面:(1)完整性:每项获取的需求都应给出清楚的描述,使得软件开发工作能够取得设计和实现该功能所需要的全部必要信息。(2)正确性:获取的每项需求必须是准确无误的,并且需求描述无歧义性。(3)合理性:各项需求之间、软件需求与系统需求之间应是协调一致的,不应存在矛盾和冲突。,软件需求分析阶段的任务,2.需求分析(4)可行性:包括技术可行性、经济可行性、社会可行性。(5)充分性:获
7、取的需求是否全面、周到。,软件需求分析阶段的任务,2.需求分析 由于分析的过程会对获取的需求做部分调整,也即从获取的需求N中去掉了一些a,又补充了一些c,从而得到的是分析的需求R1(b+c)。,软件需求分析阶段的任务,3.需求定义 将已经过分析的需求清晰、全面、系统、准确地描述成为正式的文档,这一步定义需求的工作就是编写需求规格说明。,软件需求分析阶段的任务,4.需求验证 为了确保已定义的需求(需求规格说明)准确无误,并能为客户(或用户)理解和接受,需要对其进行严格的评审。,3.2 结构化分析方法,结构化分析方法传统的分析建模方法称为结构化分析(structured analysis,SA)方
8、法。最有代表性的是一种面向数据流进行需求分析的方法,最初于20世纪70年代由D.Ross提出,后来又经过扩充,形成了今天的结构化分析方法的框架。,3.2 结构化分析方法,结构化分析模型 结构化分析方法是一种建模技术,它建立的分析模型如图所示。,3.2.1 功能建模,概念 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型用数据流图来描述。,3.2.1 功能建模,数据流图的基本图形符号,3.2.1 功能建模,多个数据流之间的关系,3.2.1 功能建模,环境图环境图(context diagram)也称为顶层
9、数据流图(或0层数据流图),它仅包括一个数据处理过程,也就是要开发的目标系统。环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界。,3.2.1 功能建模,典型的环境图,3.2.1 功能建模,招生系统需求描述学校首先公布招生条件,考生根据自己的条件报名,之后系统进行资格审查,并给出资格审查信息;对于资格审查合格的考生可以参加答卷,系统根据学校提供的试题及答案进行自动判卷,并给出分数及答题信息,供考生查询;最后系统根据学校的录取分数线进行录取,并将录取信息发送给考生。,3.2.1 功能建模,招生系统的环境图,3.2.1 功能建模,数据流图的分层对于稍微复杂一
10、些的实际问题,在数据流图上常常出现十几个甚至几十个加工,这样的数据流图看起来不直观,不易理解,分层的数据流图能很好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,3.2.1 功能建模,招生系统的分层数据流图,3.2.1 功能建模,数据流图的分层示意图,3.2.1 功能建模,实例研究 银行储蓄系统的业务流程:储户填写的存款单或取款单由业务员键入系统;如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率、密码(可选)等信息,并印出存单给储户;如果是取款而且开户时留有密码,则系统首先核
11、对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。要求画出分层的数据流图,并细化到2层数据流图。,3.2.1 功能建模,(1)识别外部实体及输入输出数据流。外部实体:储户、业务员。输入数据:如果需要储户输入密码,储户才直接与系统进行交互。储户填写的存款或取款信息通过业务员键入系统,可以将存款及取款信息抽象为事务。输出数据:存款单,利息清单。,3.2.1 功能建模,(2)画出环境图(顶层数据流图),3.2.1 功能建模,(3)画出一层数据流图,3.2.1 功能建模,(4)画出二层数据流图 对一层图中的“处理存款”及“处理取款”进行进一步分解,得到二层数据流图,即处理存款
12、的数据流图和处理取款的数据流图。,处理存款的数据流图,3.2.1 功能建模,(4)画出二层数据流图,处理取款的数据流图,3.2.2 数据建模,在结构化分析方法中,使用实体关系建模技术来建立数据模型。这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。实体关系模型表示为可视化的实体关系图(entity-relationship diagram,ERD),也称为ER图。ER图中仅包含3种相互关联的元素:数据对象(实体)、描述数据对象的属性及数据对象彼此间相互连接的关系。,3.2.2 数据建模,数据对象数据对象是目标系统所需要的复合信息的表示,所谓复合信息是具有若干不同属性的信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 需求 获取 结构 化分 方法
链接地址:https://www.31ppt.com/p-6434370.html