您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2第2章需求分析电子教案
1第2章可行性研究与需求分析学习目标:了解可行性研究的定义、任务、步骤及工具掌握软件需求分析的任务与目标及Warnier图的使用,熟悉需求规格说明书的基本结构掌握软件需求分析的过程掌握掌握结构化分析方法和快速原型方法掌握数据流图与数据字典的基本元素与应用2第2章可行性研究与需求分析教学内容2.1可行性研究2.2需求分析2.3结构化分析方法2.4需求分析评审2.5需求分析实例本章小结32.1可行性研究返回目录主要教学内容:2.1.1问题的定义2.1.2可行性研究的任务2.1.3可行性研究的步骤及工具2.1.4制订项目计划42.1可行性研究2.1.1问题的定义问题定义(ProblemDefinition)是软件定义的第一个阶段,该阶段主要明确“该软件开发项目要解决什么问题”。系统分析过程的第一步要明确用户的需求。为此,系统分析员在对用户的需求进行分析时,必须明确以下问题:软件系统要完成的总体目标是什么?要开发的软件的功能和性能是什么?软件系统在可靠性和质量上有何具体要求?开发该软件系统是否具备可行的技术?当前市场和竞争对手的情况怎样?开发该软件系统是否有成本和进度约束?该软件系统将来可能进行哪些扩充?返回目录52.1可行性研究2.1.2可行性研究的任务可行性研究的主要目的是用极少的代价在最短的时间内决定被开发的软件是否能开发成功。(1)经济可行性:通过对被开发软件系统的成本效益的分析,估算系统的开发成本,估计系统可能取得的效益,确定待开发系统是否值得投资开发。(2)技术可行性:从问题定义规格说明书提出的系统功能、性能以及实际系统的各种约束来分析,确定当前的技术及条件是否能实现整个系统。62.1可行性研究(3)法律可行性:分析在系统开发的全部过程中可能出现和涉及的法律问题,如合同、责任、知识产权、专利等问题。(4)运行可行性:判断新系统的运行方式是否可行。返回目录72.1可行性研究2.1.3可行性研究的步骤及工具1.可行性研究的步骤(1)确定系统的规模和目标(2)分析现有系统,设计新系统的高层系统模型(3)评审系统模型(4)设计和评价新系统的实现方案(5)制定行动方案(6)拟定开发计划(7)编制可行性报告82.1可行性研究2.可行性研究的工具在进行可行性研究时,使用的主要工具为系统流程图。系统流程图的基本作用是:以黑盒方式描述系统各部件(如人工处理、程序、数据库、图表等),它只描述了信息在系统各部件中的流动情况,不对信息在系统中的加工细节进行描述,所以它不同于程序流程图。返回目录92.1可行性研究2.1.4制订项目计划制订项目开发计划的目的是用文件的形式,把开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软、硬件资源等问题做出的安排记载下来,以便根据本计划开展和跟踪本项目的开发工作。返回目录102.2需求分析主要教学内容:2.2.1需求分析的目标和任务2.2.2软件需求的获取2.2.3需求分析的过程2.2.4快速原型方法返回目录112.2需求分析2.2.1需求分析的目标和任务软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求,通俗地说就是要解决“系统做什么”的问题,但不包括“怎么做”的问题。122.2需求分析需求分析阶段的具体任务:1.确定目标系统的具体要求(1)确定系统的运行环境要求(2)系统的性能要求(3)系统功能2.分析系统的数据要求3.建立目标系统的逻辑模型4.修正系统开发计划5.建立原型系统6.编写软件需求规格说明书及评审返回目录132.2需求分析2.2.2软件需求的获取(1)访谈和会议(2)市场调查(3)访问用户和用户领域的专家(4)考察现场,跟踪现场业务流程(5)开发人员和用户共同组成联合小组返回目录142.2需求分析2.2.3需求分析的过程(1)问题识别首先系统分析员要研究可行性分析报告和软件项目实施计划。主要是从系统的角度来理解软件,并评审用于产生计划估算的软件范围是否恰当,确定对目标系统的综合要求,即软件的需求。并提出这些需求实现条件,以及需求应达到的标准。也就是解决要求被开发的软件用来做什么,做到什么程度。这些需求包括:152.2需求分析功能需求。性能需求。环境要求。可靠性需求。安全保密要求。用户界面需求。资源使用需求。软件成本消耗与开发进度需求。预计系统可达到的目标。162.2需求分析(2)分析与综合在对现行问题和期望的信息(输入和输出)进行分析的基础上,分析员综合出一个或几个解决方案,然后检查这些方案是否符合软件计划中规定的范围等,再进行修改。总之,对问题进行分析和综合的过程将一直持续到分析人员与用户双方都感到有把握正确地制定该软件的需求规格说明为止。172.2需求分析(3)编制需求规格说明(4)需求分析评审作为需求分析阶段工作的复查手段,在需求分析的最后一步,应该对功能的正确性、完整性和清晰性,以及其他需求给予评价。如果在评审过程中发现说明书存在错误或缺陷,应及时进行更改或弥补,并再次评审。需求分析评审过程将在2.4.2部分进行详细介绍。返回目录182.2需求分析2.2.4快速原型方法在软件工程中,原型是软件的一个早期可运行的版本,它能反映最终系统的一部分重要特性。如果在获得一组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本要求。使得用户可在试用原型系统的过程中得到亲身感受和受到启发,做出反应和评价。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和交流中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高最终产品的质量。192.2需求分析1.原型的分类(1)废弃型先构造一个功能简单而且质量要求不高的原型系统,针对这个原型系统反复进行分析修改,形成比较好的设计思想,据此设计出更加完整、准确、一致、可靠的最终系统。系统构造完成后,原来的原型系统就被废弃不用。(2)追加型或演化型先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,最后发展成为最终系统。202.2需求分析2.原型类型的选择3.快速原型开发模型(1)快速分析在分析员和用户的紧密配合下,快速确定软件系统的基本要求。(2)构造原型在快速分析基础上,根据基本需求,尽快实现一个可运行的系统。(3)运行和评价原型用户在开发者指导下试用原型,在试用的过程中考核评价原型的特性,分析其运行结果是否满足规格说明的要求,以及规格说明是否满足用户愿望。212.2需求分析(4)修正和改进根据用户反馈的意见修改原型。(5)判定原型是否完成经过修改或改进的原型,得到参与者的一致认可,则原型开发的迭代过程可以结束。为此,应判断有关应用的实质是否已经掌握,迭代周期是否可以结束等。(6)判断原型细节是否说明(7)原型细节的说明(8)判定原型效果(9)整理原型和提供文档。返回目录222.3结构化分析方法主要教学内容:2.3.1结构化分析模型2.3.2数据流图与数据字典2.3.3Warnier图返回目录232.3结构化分析方法SA(StructuredAnalysis,结构化分析方法)是20世纪70年代中期由E.Yourdon等人倡导的一种面向数据流的分析方法。2.3.1结构化分析模型结构化分析模型的组成结构如图2.3所示。242.3结构化分析方法图2.3结构化分析模型的结构数据字典状态—迁移图数据流图数据对象说明实体—关系图加工规格说明控制规格说明252.3结构化分析方法1.数据建模一般地,数据模型包括3种互相关联的信息,即数据对象、属性和关系。(1)数据对象(2)属性(3)关系:各个数据对象的实例之间的关联。实例的关联类型有3种:一对一(1:1)一对多(1:m)多对多(n:m)(4)实体—关系图:数据对象及其关系可用ERD表示。262.3结构化分析方法2.功能建模和数据流功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。3.行为建模行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。行为建模常用状态—迁移图作为分析工具。272.3结构化分析方法4.结构化分析方法的步骤结构化分析方法应用非常广泛,特别适用于对数据处理类型的软件进行需求分析,在进行结构化分析时,可按以下步骤进行:(1)采用“自顶向下,逐步细化”的方法对系统进行功能分解;(2)画出分层数据流图;(3)由后向前定义系统的数据和加工;(4)编制DD和PSPEC;(5)写出SRS。返回目录282.3结构化分析方法2.3.2数据流图与数据字典1.数据流图数据流图(DataFlowDiagram,简称DFD)是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中流动和处理情况。设计DFD只需考虑软件系统必须完成的基本逻辑功能,完全不需考虑如何具体地实现这些功能,即只考虑软件“做什么”,而不必考虑“怎么做”。(1)数据流图的图形符号在数据流图中常用的有4种基本符号,如表2.3所示。292.3结构化分析方法(2)使用数据流图的注意事项在使用数据流图时,要注意以下几点:数据处理不一定是一个程序。一个数据存储不一定是一个文件。数据存储和数据流都是数据,而它们所处的状态不同,数据存储是静止状态的数据,数据流是运动状态的数据。同一数据流图中,加工的个数不要太多以5~9个为宜。数据流图细化原则。如果数据流图过于复杂,可画出分层数据流图。但数据流图分层细化时必须保持信息的连续性,即细化前后对应功能的输入/输出数据必须相同。302.3结构化分析方法在对数据流图进行分层时,容易出现以下几种错误,应特别注意:父图与子图不平衡分解的速度太快不遵守加工编号规则312.3结构化分析方法(3)数据流图中各成分的命名方法①为数据流或数据存储命名数据流或数据存储的名字应代表整个数据流或数据存储的内容,而不是仅仅反映它的某些成分,命名时不要使用空洞的、缺乏具体含义的名字。②为处理命名一般应首先对数据流命名,然后再对与之相关联的处理命名。命名应该反映整个处理的功能。名字最好由一个具体的及物动词,加上一个具体的宾语组成。③为数据源点/终点命名为数据源点/终点命名时采用它们在问题域中习惯使用的名字。322.3结构化分析方法2、数据字典数据字典(DataDictionary,DD)是结构化分析方法的另一种有力工具,在数据字典中建立的一组严密一致的定义有助于消除分析员和用户之间的沟通障碍,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。同时,数据字典也是软件维护时使用的一种重要资料。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题,提高开发的效率和质量。332.3结构化分析方法(1)数据字典的内容①数据流词条描述②数据项词条描述③数据文件词条描述④加工逻辑词条描述⑤源点及汇(终)点词条描述342.3结构化分析方法(2)数据字典的数据定义方法在对数据进行定义时,可以使用数据各成分的组合来表示该数据,这些组合又由更底层的成分组合进行定义。因此,对数据的定义可以理解为对数据进行自顶向下的分解,直到参与系统开发的人员都能理解所分解出来的成分或元素的意义,不再需要进行任何的解释。数据字典就是按照这样的方法,自顶向下逐级给出定义式,直到最后出现无需定义的基本数据元素。必要时,有些定义式可能需要增加一些解释行。同日常使用的词典一样,数据字典的定义式可以按一定顺序排列,如按字母顺序排列。当然不允许出现重复定义或是定义式互相矛盾的情况。352.3结构化分析方法在数据字典的定义式中出现的符号如表2.4所示:总之,数据字典与数据流图应相辅相成、互相配合,并应遵守以下约定:有关数据
本文标题:2第2章需求分析电子教案
链接地址:https://www.777doc.com/doc-3844677 .html