
软件工程课件 SE04.ppt
105页广东工业大学计算机学院1软件工程Software Engineering*广东工业大学计算机学院2第4章 软件需求分析o本章内容:o4.1 需求分析o4.2 结构化分析o4.3 系统流程图o4.4 数据流图o4.5 数据字典o4.6 关系数据理论 *广东工业大学计算机学院3o4.1 需求分析o需求分析是软件定义时期的最后一个阶段,其基本任务是回答“系统必须做什么”这个问题o需求分析不是确定系统怎样完成工作,而是确定系统必须完成哪些工作对目标系统提出完整、准确的具体要求o需求分析阶段结束时,要提交详细的数据流图、数据字典和算法描述广东工业大学计算机学院44.1.1 需求分析的特点o需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的需求分析是指开发人员要进行细致的调查分析,准确理解用户的要求将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约的过程 *广东工业大学计算机学院5o需求分析的难点主要体现在以下几个方面: o1. 需求易变性用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求以后随着理解的深入而不断提出新的需求。
o2. 问题的复杂性一方面是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等;另一方面是扩展的应用领域本身的复杂性广东工业大学计算机学院6o3. 交流障碍需求分析涉及人员较多,系统分析员要与软件系统用户、问题领域专家、需求工程师和项目管理员等进行交流但是这些人具备不同的背景知识,处于不同的角度,扮演不同角色,造成了相互之间交流的困难广东工业大学计算机学院7o4. 不完备性和不一致性由于用户各类人员对于系统的要求所处的角度不一样,所以对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾需求分析要消除其矛盾,形成完备及一致的定义广东工业大学计算机学院8o为了克服需求分析的困难,人们展开的各种研究都是围绕着需求分析的方法、自动化工具(如CASE技术)及形式化需求分析等方面进行研究需求分析的方法在应用中已有丰富的应用经验 *广东工业大学计算机学院94.1.2 需求分析的原则 o为使需求分析科学化,对软件工程的分析阶段中提出了许多需求分析方法许多软件需求分析方法都有独特的观点和表示法,但都适用下面的基本原则: o(1)可以把一个复杂问题按功能进行分解并可逐层细化o(2)必须能够表达和理解问题的数据域和功能域。
o(3)建立模型所谓模型就是所研究对象的一种表达形式广东工业大学计算机学院104.1.3 需求分析的任务 o需求分析的基本任务是要准确地理解旧系统,定义新系统的目标o需求分析的任务还不是确定系统怎样完成它的工作,仅仅是确定系统要完成哪些工作,也就是对系统提出完整、准确、清晰、具体的要求o这个时期的工作可以从可行性阶段的数据流图等文档出发,划分出系统必须完成的许多基本功能,研究这些功能并进一步具体化 *广东工业大学计算机学院11o1. 问题明确定义 o(1)功能需求:指所开发的软件必须具备什么样的功能o(2)性能需求:要开发软件的技术性能指标,如访问时延、存储容量、运行时间等限制o(3)环境需求:软件运行时所需要的硬件的机型、外设;软件的操作系统、开发与维护工具和数据库管理系统等要求广东工业大学计算机学院12o(4)用户界面需求:用户操纵界面的形式、输入/输出数据格式、数据传递的载体等o(5)系统的可靠性、安全性、可移植性和可维护性等方面的需求 *广东工业大学计算机学院13o2. 导出软件的逻辑模型分析人员根据前面获取的需求资料,要进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。
同时对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分最后要用图文结合的形式,建立起新系统的逻辑模型 *广东工业大学计算机学院14o3. 编写文档 o通过分析确定了系统必须具有的功能和性能,定义了系统中的数据,描述了数据处理的主要算法应该把分析的结果用正式的文件记录下来,作为最终软件的部分材料编写文档的步骤如下:o(1)编写“需求说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础广东工业大学计算机学院15o(2)编写初步用户使用手册,要从用户使用系统的角度来描述系统的用户要求 o(3)编写确认测试计划,作为今后确认和验收的依据o(4)修改完善项目开发计划广东工业大学计算机学院164.1.4 需求分析的方法 o需求分析就是研究问题域,产生一个满足用户需求的系统模型这个系统模型应能正确地描述问题域和系统责任,并使后续开发阶段的有关人员能根据这个模型继续进行工作软件分析方法比较多,其中最有影响的是功能分解法、数据流法、信息建模法和面向对象的分析广东工业大学计算机学院17o1. 功能分解方法o功能分解 = 功能+ 子功能 + 功能接口o功能分解法(function decomposition)以系统需要提供的功能为中心来组织系统。
首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口广东工业大学计算机学院18o2. 结构化分析方法o结构化分析 = 数据流 +数据处理(加工) +数据存储 +端点 +处理说明 +数据字典*广东工业大学计算机学院19o结构化分析又称作数据流法(data flow approach)其基本策略是跟踪数据流,即研究问题域中数据如何流动以及在各个环节上进行何种处理,从而发现数据流和加工(bubble)o结构化分析方法是一种从问题空间到某种表示的映射方法,它由数据流图表示,是结构化方法中重要的、被普遍接受的表示系统,它由数据流图和数据词典构成广东工业大学计算机学院20o3. 信息建模方法o信息建模 = 实体(对象) +属性 +关系 +父类型/子类型 +关联对象*广东工业大学计算机学院21o信息建模法(information modeling)由P.P.S.Chen 在1976年提出的实体-关系法(Entity-Relationship design,简称E-R方法)发展而来1981年M.Flavin进行了改进并称之为信息建模法1988年由S.Shlaer和S.Mellor发展为语义数据建模方法并引入了许多面向对象的特点。
o信息建模法的核心概念是实体和关系该方法的基本工具是ER图,其基本要素由实体、属性和联系构成该方法的基本策略是从现实世界中找出实体,然后再用属性来描述这些实体广东工业大学计算机学院22o4. 面向对象的分析o面向对象 = 对象、类 +结构与连接 +继承 +封装 +消息通信o以上公式仅仅表示面向对象分析方法中几项最重要的特征,全面的论述将在后面展开简单说来,OOA的对象是对问题域中事物的完整映射,包括事物的数据特征(属性)和行为特征(服务)广东工业大学计算机学院234.2 结构化分析 o在结构化方法的发展历程上,它是随着结构化程序设计(Structured Programming,简称SP)方法的提出、结构化设计(Structured Design,简称SD)方法的出现直到结构化分析(Structured Analysis,简称SA)方法提出才逐渐形成的 o结构化方法是分析、设计到实现都使用结构化思想的软件开发方法,实际上它由三部分组成:结构化分析、结构化设计和结构化程序设计广东工业大学计算机学院24o1. 基本思想o结构化方法总的指导思想是自顶向下、逐步求精,它的两个基本原则是抽象与分解。
o2. 特点o结构化方法具有以下特点:o(1)它是使用最早的开发方法,使用时间也最长o(2)它应用最广,特别适合于数据处理o(3)相应的支持工具多,发展较为成熟广东工业大学计算机学院25o3. 优点o结构化方法一经问世,就显示出了它的以下几大优点:o(1)简单、实用o(2)适合于瀑布模型,易为开发者掌握o(3)成功率较高,据美国1000家公司统计,该方法的成功率高达90.2%,名列第二,仅次于面向对象的方法o(4)特别适合于数据处理领域中的应用,对其他领域的应用也基本适用 *广东工业大学计算机学院26o4. 存在问题o结构化方法存在以下一些问题:o(1)对于规模大的项目,特别复杂的应用不太适应o(2)难以解决软件重用的问题o(3)难以适应需求的变化o(4)难以彻底解决维护问题 *广东工业大学计算机学院274.2.1 自顶向下逐层分解 o把一个复杂的问题划分成若干小问题,然后再分别解决,将问题的复杂性降低到人可以掌握的程度分解的方法可分层进行,方法原理是先考虑问题最本质的方面,忽略细节,形成问题的高层概念然后再逐层添加细节即在分层过程中采用不同程度的“抽象”级别,最高层的问题最抽象,而低层的较为具体。
广东工业大学计算机学院28*广东工业大学计算机学院29o当认为某一层比较复杂时到底应该划分为多少个子系统,针对不同的系统的处理不同划分的原则可以根据业务工作的范围、功能性质、被处理数据对象的特点一般情况下上面一些层的划分往往按照业务类型划分的比较多,下面一些层往往按照功能的划分比较多o依照这个策略,对于任何复杂的系统,分析工作都可以有计划、有步骤及有条不紊地进行 *广东工业大学计算机学院304.2.2 结构化分析步骤 o要对一个系统进行结构化分析,首先要明确这一阶段的任务是要搞清楚“做什么”为此就要对现行系统有一定了解,在此基础上修改要变化的部分而形成新系统具体步骤如下:o1. 建立现行系统的物理模型o通过了解现行系统的工作过程,对现行系统进行详细调查,收集资料,将看到的、听到的、收集到的信息和情况用图形或文字描述出来也就是用一个模型来反映自己对现行系统的理解,如画系统流程图(后面介绍)这一模型包含了许多具体因素,反映现实世界的实际情况 *广东工业大学计算机学院31o2. 抽象出现行系统的逻辑模型 o要构造新的逻辑模型就要去掉物理模型中非本质的因素(如物理因素),抽取出本质的因素o这种逻辑模型反映了现行系统“做什么”的功能。
广东工业大学计算机学院32o3. 建立目标系统的逻辑模型o有了现行系统的逻辑模型后,就将目标系统与现行系统逻辑进行分析,比较其差别,即在现行系统的基础上决定变化的范围,把那些要改变的部分找出来,将变化的部分抽象为一个加工,这个加工的外部环境及输入输出就确定了 *广东工业大学计算机学院33o4. 进一步补充和优化o目标系统的逻辑模型只是一个主体,为了完整地描述目标系统,还要作一些补充补充的内容包括它所处的应用环境及它与外界环境的相互联系;说明目标系统的人机界面;说明至今尚未详细考虑的环节如出错处理、输入/输出格式、存储容量和响应时间等性能要求与限制 做什么怎么做导出抽象化实例化目标系统物理模型逻辑模型现有系统物理模型逻辑模型模型化具体化理解需求表达需求o两个图形工具:系统流程图:描绘系统的物理模型表达的是数据在系统各物理部件之间流动的情况数据流图:描绘系统的逻辑模型表达的是数据在软件中流动和被处理的逻辑过程广东工业大学计算机学院354.3 系统流程图 o如何描述该系统的概貌,系统流程图是描述的传统工具其基本思想是用图形符号以黑盒方式描述系统的每个部件系统流程图表达的是系统各部件间的流动情况,不是对信息进行加工处理的控制过程。
广东工业大学计算机学院36o1. 系统流程图的作用 o系统流程图由一系列图形符号组成这些符号在不同的文献中引用也不一样但是都是用图形符号来表示系统中的各个元素例如,输入和输出、人工处理、数据处理、数据库、文件和设备等它表达了系统中各个元素之间的信息流动的情况广东工业大学计算机学院37o2. 系统流程图的符号o项目小组开始工作时,制定的系统标准包括各种表示符号广东工业大学计算机学院38*广东工业大学计算机学院39o3. 系统流程图的示例o下面以某企业的库房管理为例,说明系统流程图的使用。












