软件工程-课件.ppt

上传人(卖家):罗嗣辉 文档编号:2046102 上传时间:2022-01-21 格式:PPT 页数:116 大小:468KB
下载 相关 举报
软件工程-课件.ppt_第1页
第1页 / 共116页
软件工程-课件.ppt_第2页
第2页 / 共116页
软件工程-课件.ppt_第3页
第3页 / 共116页
软件工程-课件.ppt_第4页
第4页 / 共116页
软件工程-课件.ppt_第5页
第5页 / 共116页
点击查看更多>>
资源描述

1、软件技术基础软件技术基础软件工程软件工程软件技术基础软件技术基础软件工程软件工程4.1 软件工程概述软件工程概述 4.2 问题定义与可行性研究问题定义与可行性研究 4.3 软件的需求分析软件的需求分析 4.3.1 需求分析概述需求分析概述4.3.2 结构化分析方法结构化分析方法4.3.3 数据流图数据流图4.3.4 数据字典数据字典4.4 软件的设计软件的设计 4.4.1 软件设计概述软件设计概述4.4.2 软件设计准则软件设计准则4.4.3 结构化设计方法结构化设计方法4.4.4 详细设计方法详细设计方法4.4.5 面向对象的程序设计方法面向对象的程序设计方法4.5 软件的编程软件的编程 4

2、.6 软件的测试软件的测试 4.6.1 软件测试概述软件测试概述4.6.2 测试用例的设计测试用例的设计4.6.3 测试实例的设计测试实例的设计4.6.4 软件的调试软件的调试4.7 软件的维护软件的维护 习习 题题 4软件技术基础软件技术基础软件工程软件工程4.1 软件工程概述软件工程概述 1软件与软件危机软件与软件危机 软件是由计算机程序演变而形成的一种概念。软件是由计算机程序演变而形成的一种概念。程序程序是按既定算法,用某种计算机语言规定的指令或语句编是按既定算法,用某种计算机语言规定的指令或语句编写的指令或语句的集合。软件是程序再加上程序实现和写的指令或语句的集合。软件是程序再加上程序

3、实现和维护程序时所必需的文档的总称。维护程序时所必需的文档的总称。软件是程序和程序设软件是程序和程序设计发展到规模化和商品化后所逐渐形成的概念。计发展到规模化和商品化后所逐渐形成的概念。 软件技术基础软件技术基础软件工程软件工程 随着计算机技术的迅速发展,计算机软件在计算随着计算机技术的迅速发展,计算机软件在计算机系统中占有越来越重要的地位。在软件需求量迅速机系统中占有越来越重要的地位。在软件需求量迅速增加,规模日益增长的情况下,计算机软件的开发和增加,规模日益增长的情况下,计算机软件的开发和维护过程中遇到了一系列严重问题。如软件开发的复维护过程中遇到了一系列严重问题。如软件开发的复杂度大大上

4、升,导致大型软件的开发费用经常超出预杂度大大上升,导致大型软件的开发费用经常超出预算,完成时间也常常超期,同时,软件可靠性随规模算,完成时间也常常超期,同时,软件可靠性随规模的增长而下降,质量保证也越来越困难,即产生了的增长而下降,质量保证也越来越困难,即产生了软软件危机件危机。软件危机主要有以下几种表现:。软件危机主要有以下几种表现:软件技术基础软件技术基础软件工程软件工程(1) 不能准确估计软件开发的成本与进度;不能准确估计软件开发的成本与进度;(2) 用户对用户对“已完成的已完成的”软件系统经常不满意;软件系统经常不满意;(3) 软件产品质量往往靠不住;软件产品质量往往靠不住;(4) 软

5、件难以维护;软件难以维护;(5) 软件无完整的文档,无法用以管理和控制软件的开发软件无完整的文档,无法用以管理和控制软件的开发和维护;和维护;(6) 软件费用急剧上升;软件费用急剧上升;(7) 软件生产效率低,供不应求。软件生产效率低,供不应求。软件技术基础软件技术基础软件工程软件工程 2软件工程软件工程 “软件工程软件工程”一词是一词是1968年北大西洋公约组织年北大西洋公约组织(NATO)在联邦德国召开的一次会议上首次提出的。它在联邦德国召开的一次会议上首次提出的。它的中心思想是把软件当作一种工业产品,而不是某种的中心思想是把软件当作一种工业产品,而不是某种个体或小作坊的神秘技巧,要求个体

6、或小作坊的神秘技巧,要求“采用工程化的原理采用工程化的原理与方法对软件进行计划、开发和维护与方法对软件进行计划、开发和维护”。这样做的目。这样做的目的,不仅是为了实现按预期的速度和经费完成软件生的,不仅是为了实现按预期的速度和经费完成软件生产计划,也是为了提高软件的生产率与可靠性。产计划,也是为了提高软件的生产率与可靠性。软件软件工程是从技术工程是从技术(方法和工具方法和工具)和管理两方面研究如何更好和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。地开发和维护计算机软件的一门新兴学科。软件技术基础软件技术基础软件工程软件工程 软件工程是一门交叉学科,涉及到计算机科学、软件工程是一

7、门交叉学科,涉及到计算机科学、管理科学、工程学和数学。凡是计算机科学中的成果管理科学、工程学和数学。凡是计算机科学中的成果均可用于软件工程,但计算机科学着重于理论研究,均可用于软件工程,但计算机科学着重于理论研究,如自动机理论、形式语言理论、编译原理、数据库原如自动机理论、形式语言理论、编译原理、数据库原理、操作系统原理、人工智能原理等,而软件工程着理、操作系统原理、人工智能原理等,而软件工程着重于具体软件系统的研制和建立。软件工程的理论、重于具体软件系统的研制和建立。软件工程的理论、方法、技术都是建立在计算机科学的基础上,它是用方法、技术都是建立在计算机科学的基础上,它是用管理学的原理、方法

8、来进行软件生产管理;用工程学管理学的原理、方法来进行软件生产管理;用工程学的观点来进行费用估算,制定进度和方案;用数学的的观点来进行费用估算,制定进度和方案;用数学的方法来建立软件可靠性模型以及分析各种算法和性质。方法来建立软件可靠性模型以及分析各种算法和性质。软件技术基础软件技术基础软件工程软件工程 软件工程研究的对象是大型软件系统的开发过程,软件工程研究的对象是大型软件系统的开发过程,它研究的内容是生产流程、各生产步骤的目的、任务、它研究的内容是生产流程、各生产步骤的目的、任务、方法、技术、工具、文档和产品规格。方法、技术、工具、文档和产品规格。 软件是一种逻辑产品,与物质产品有很大差别,

9、它软件是一种逻辑产品,与物质产品有很大差别,它看不见,摸不着,具有无形性,是脑力劳动的结晶。它看不见,摸不着,具有无形性,是脑力劳动的结晶。它以程序和文档形式存在,通过计算机来体现它的作用,以程序和文档形式存在,通过计算机来体现它的作用,在研制过程中,能见度差,这给开发过程的管理带来极在研制过程中,能见度差,这给开发过程的管理带来极大的困难,进度难以控制,质量难以保证。大的困难,进度难以控制,质量难以保证。 软件技术基础软件技术基础软件工程软件工程 因此,软件生产的管理也是软件工程的一个重要因此,软件生产的管理也是软件工程的一个重要研究领域,大型软件开发过程的管理是一件非常复杂研究领域,大型软

10、件开发过程的管理是一件非常复杂的事情,因此,管理不当也会导致软件开发的失败。的事情,因此,管理不当也会导致软件开发的失败。软件生产的管理包括开发人员的层次结构和组织方式、软件生产的管理包括开发人员的层次结构和组织方式、开发进度的控制、软件质量的保证、开发费用的估算开发进度的控制、软件质量的保证、开发费用的估算和管理、软件开发文档的管理等。和管理、软件开发文档的管理等。软件技术基础软件技术基础软件工程软件工程 3软件生存周期软件生存周期 软件生存周期的概念是从工业中产品生存周期的软件生存周期的概念是从工业中产品生存周期的概念借用过来的。概念借用过来的。一种产品从定货开始一种产品从定货开始,经过设

11、计、制经过设计、制造、调试、使用维护,直到该产品淘汰为止,这就是造、调试、使用维护,直到该产品淘汰为止,这就是所谓的产品生存周期。所谓的产品生存周期。软件技术基础软件技术基础软件工程软件工程图图4-1 瀑布模型瀑布模型问题定义项目说明可行性研究可行性分析报告需求分析需求说明书设计设计说明书编码程序测试测试报告维护计划期开发期运行期软件技术基础软件技术基础软件工程软件工程 软件生存周期是从用户提出开发要求开始,直到软件生存周期是从用户提出开发要求开始,直到该软件报废为止的这段时间,可分为该软件报废为止的这段时间,可分为3个时期:计划期、个时期:计划期、开发期和运行期。计划期又分为问题定义和可行性

12、研开发期和运行期。计划期又分为问题定义和可行性研究两个阶段;开发期分为究两个阶段;开发期分为4个阶段:需求分析阶段、设个阶段:需求分析阶段、设计阶段计阶段(总体设计、详细设计总体设计、详细设计)、编码阶段和测试阶段;、编码阶段和测试阶段;运行期即维护阶段。各阶段的工作按顺序开展。运行期即维护阶段。各阶段的工作按顺序开展。图图4-1是这种软件生存周期的模型示意图,由于其形状似多是这种软件生存周期的模型示意图,由于其形状似多级瀑布,常称为级瀑布,常称为“瀑布模型瀑布模型”。 软件技术基础软件技术基础软件工程软件工程4.2 问题定义与可行性研究问题定义与可行性研究 1问题定义问题定义 问题定义阶段的

13、任务是要确定软件系统所要解决问题定义阶段的任务是要确定软件系统所要解决的任务。的任务。分析人员在与用户和部门负责人交流之后,分析人员在与用户和部门负责人交流之后,应提出关于问题性质、工程目标和规模的书面报告,应提出关于问题性质、工程目标和规模的书面报告,即软件系统目标与范围的说明。即软件系统目标与范围的说明。 为了成功地完成问题定义阶段的任务,需要硬件人为了成功地完成问题定义阶段的任务,需要硬件人员和软件人员的共同参与,这一阶段是软件生存周期员和软件人员的共同参与,这一阶段是软件生存周期中较短的阶段。中较短的阶段。 软件技术基础软件技术基础软件工程软件工程 2可行性研究可行性研究 1) 可行性

14、研究的任务可行性研究的任务 可行性研究的目的在于用最小的代价确定在问题定可行性研究的目的在于用最小的代价确定在问题定义阶段确定的系统目标和规模是否现实,所确定的问义阶段确定的系统目标和规模是否现实,所确定的问题是否可以解决,系统方案在经济上、技术上和操作题是否可以解决,系统方案在经济上、技术上和操作上是否可以接受。上是否可以接受。 可行性研究着重考虑以下几个方面:可行性研究着重考虑以下几个方面: 经济可行性。经济可行性。估计开发费用以及新系统可能带来估计开发费用以及新系统可能带来的收益,将两者进行权衡,看结果是否可以接受。的收益,将两者进行权衡,看结果是否可以接受。 软件技术基础软件技术基础软

15、件工程软件工程 技术可行性。技术可行性。对要求的功能、性能以及限制条对要求的功能、性能以及限制条件进行分析,看是否能够做成一个可接受的系统。所件进行分析,看是否能够做成一个可接受的系统。所考虑的因素通常还应包括开发的风险,是否能够得到考虑的因素通常还应包括开发的风险,是否能够得到需要的软件和硬件资源,以及一个熟练的有能力的开需要的软件和硬件资源,以及一个熟练的有能力的开发队伍,另外与系统开发有关的技术是否足以支持系发队伍,另外与系统开发有关的技术是否足以支持系统的研制。技术可行性的估计,需要有经验的人员去统的研制。技术可行性的估计,需要有经验的人员去完成。完成。 操作可行性。操作可行性。判断系

16、统的操作方式在该用户组判断系统的操作方式在该用户组织内是否可行。织内是否可行。软件技术基础软件技术基础软件工程软件工程 2) 推荐方案推荐方案 根据可行性研究结果要做出的决定是:是否继续根据可行性研究结果要做出的决定是:是否继续按预定目标进行开发。按预定目标进行开发。可行性分析人员必须清楚地表可行性分析人员必须清楚地表明他对这个关键性决定的建议。如果认为值得继续进明他对这个关键性决定的建议。如果认为值得继续进行这项开发工程,则应提供一种最好的解决方案,并行这项开发工程,则应提供一种最好的解决方案,并说明理由。说明理由。软件技术基础软件技术基础软件工程软件工程 3) 软件开发计划软件开发计划 分

17、析人员应该为推荐的系统草拟一份软件开发计分析人员应该为推荐的系统草拟一份软件开发计划。划。软件开发计划是根据用户提出的功能性要求,开软件开发计划是根据用户提出的功能性要求,开发时间和费用的限制而制定的,它要说明该项目需要发时间和费用的限制而制定的,它要说明该项目需要的硬件资源和软件资源,需要的开发人员的层次和数的硬件资源和软件资源,需要的开发人员的层次和数量,项目开发费用的估算,开发进度的安排等。量,项目开发费用的估算,开发进度的安排等。 软件开发计划的阅读者可以包括软件主管部门、用软件开发计划的阅读者可以包括软件主管部门、用户和技术人员。所确定的成本与进度可供主管部门复户和技术人员。所确定的

18、成本与进度可供主管部门复审。软件开发计划同时也给出了整个软件生存周期的审。软件开发计划同时也给出了整个软件生存周期的基本预算和进度安排。基本预算和进度安排。软件技术基础软件技术基础软件工程软件工程4.3 软件的需求分析软件的需求分析 4.3.1 需求分析概述需求分析概述 软件的需求分析是开发期的第一个阶段。这个阶段的软件的需求分析是开发期的第一个阶段。这个阶段的基本任务是:用户和分析人员双方共同来理解系统的需求,基本任务是:用户和分析人员双方共同来理解系统的需求,并将共同理解形成一份文件,即软件需求说明书。并将共同理解形成一份文件,即软件需求说明书。该阶段该阶段是面向用户问题的,它主要是对用户

19、的业务活动进行分析,是面向用户问题的,它主要是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该明确在用户的业务环境中软件系统应该“做什么做什么”。软件技术基础软件技术基础软件工程软件工程 需求分析是一项重要的工作,也是困难的工作。该阶需求分析是一项重要的工作,也是困难的工作。该阶段是用户与软件人员双方讨论协商的阶段,由用户提出问段是用户与软件人员双方讨论协商的阶段,由用户提出问题,软件开发人员给出问题的解答。用户的业务活动和业题,软件开发人员给出问题的解答。用户的业务活动和业务环境对软件开发人员来说是不熟悉的,要想在短期内搞务环境对软件开发人员来说是不熟悉的,要想在短期内搞清楚是不

20、太可能的;用户只熟悉本身的业务活动和业务环清楚是不太可能的;用户只熟悉本身的业务活动和业务环境,不熟悉计算机技术。由于这两方面人员缺乏共同的语境,不熟悉计算机技术。由于这两方面人员缺乏共同的语言,开发人员往往急于求成,于是在未明确软件系统应该言,开发人员往往急于求成,于是在未明确软件系统应该“做什么做什么”的情况下,就开始进行设计、编程,而用户则的情况下,就开始进行设计、编程,而用户则不清楚软件人员在设计怎样的一个系统,直至系统完成交不清楚软件人员在设计怎样的一个系统,直至系统完成交付用户之后,才发现它不符合要求,但这为时已晚,这类付用户之后,才发现它不符合要求,但这为时已晚,这类教训国内外都

21、不少见。教训国内外都不少见。用户与开发人员无共同语言,很难用户与开发人员无共同语言,很难进行交流,这是需求分析阶段的特点之一。进行交流,这是需求分析阶段的特点之一。 软件技术基础软件技术基础软件工程软件工程 对于一个大型而复杂的软件系统,用户也很难精对于一个大型而复杂的软件系统,用户也很难精确完整地提出它的功能要求,只有经过多次长时间的确完整地提出它的功能要求,只有经过多次长时间的讨论才逐步精确、完善。讨论才逐步精确、完善。有时进入到设计、编码阶段有时进入到设计、编码阶段才能明确,更有甚者,到开发后期还在提新的要求。才能明确,更有甚者,到开发后期还在提新的要求。这无疑给软件开发带来困难。这是需

22、求分析阶段的特这无疑给软件开发带来困难。这是需求分析阶段的特点之二。点之二。 需求分析对整个开发阶段都具有重大的影响,它需求分析对整个开发阶段都具有重大的影响,它是软件开发的基础,一旦需求分析出现错误,将导致是软件开发的基础,一旦需求分析出现错误,将导致整个软件开发的失败。整个软件开发的失败。如果在需求分析产生一个错误,如果在需求分析产生一个错误,这个错误发现越晚,则花的代价越高。这是需求分析这个错误发现越晚,则花的代价越高。这是需求分析的特点之三。的特点之三。软件技术基础软件技术基础软件工程软件工程 需求分析的任务需求分析的任务是理解和表达用户的要求。用户是理解和表达用户的要求。用户的要求包

23、括软件系统的范围、功能、性能、限制和约的要求包括软件系统的范围、功能、性能、限制和约束。范围是指软件的规模有多大,处理的对象及性质束。范围是指软件的规模有多大,处理的对象及性质是什么;功能是指能做什么样的加工和处理,如数据是什么;功能是指能做什么样的加工和处理,如数据录入、查询、统计分析、打印报表等;性能是指处理录入、查询、统计分析、打印报表等;性能是指处理数据量的多少、系统响应时间、查询速度、数据的精数据量的多少、系统响应时间、查询速度、数据的精度、系统工作可靠性等;限制和约束是指开发费用、度、系统工作可靠性等;限制和约束是指开发费用、开发周期、可使用的资源等。其中功能要求是基本的,开发周期

24、、可使用的资源等。其中功能要求是基本的,它又包括数据要求和处理要求两个方面。它又包括数据要求和处理要求两个方面。软件技术基础软件技术基础软件工程软件工程 需求分析是在系统分析员主持下,由用户和软件需求分析是在系统分析员主持下,由用户和软件开发人员参加。开发人员参加。参加需求分析的用户人员应有三个层参加需求分析的用户人员应有三个层次,即企业负责人,各部门负责人,具体工作人员。次,即企业负责人,各部门负责人,具体工作人员。他们提供的情况在需求分析阶段都应认真收集和考虑。他们提供的情况在需求分析阶段都应认真收集和考虑。 需求分析的过程需求分析的过程。首先召开调查会与上述三个层。首先召开调查会与上述三

25、个层次的用户人员讨论,了解收集业务过程和业务环境,次的用户人员讨论,了解收集业务过程和业务环境,然后收集与各业务有关的资料、报表、记录等文字或然后收集与各业务有关的资料、报表、记录等文字或图表材料,还应到现场去参观了解。这种调查研究应图表材料,还应到现场去参观了解。这种调查研究应反复进行几次,直到把用户要求的功能、性能都搞清反复进行几次,直到把用户要求的功能、性能都搞清楚为止。然后对用户的要求进行分析、理解,最后用楚为止。然后对用户的要求进行分析、理解,最后用文档形式把用户要求的功能、性能表达出来,也就是文档形式把用户要求的功能、性能表达出来,也就是编写需求说明书。编写需求说明书。软件技术基础

26、软件技术基础软件工程软件工程 需求说明书主要有三个作用:作为用户和软件开需求说明书主要有三个作用:作为用户和软件开发人员之间的合同;作为开发人员进行设计和编程的发人员之间的合同;作为开发人员进行设计和编程的根据;作为软件开发完成后验收的依据。根据;作为软件开发完成后验收的依据。 编写需求说明书时,应该完整、一致、精确、无编写需求说明书时,应该完整、一致、精确、无二义性,同时又要简明、易懂、易修改。它越精确,二义性,同时又要简明、易懂、易修改。它越精确,以后出现错误、混淆、反复的可能性就越小。如以后出现错误、混淆、反复的可能性就越小。如“系系统查询等待时间很短统查询等待时间很短”等词语,是含糊不

27、清的描述,等词语,是含糊不清的描述,验收时无法检查,而验收时无法检查,而“查询等待时间不超过查询等待时间不超过5秒秒”就是就是精确的描述,验收时就可检查是否达到这个要求。精确的描述,验收时就可检查是否达到这个要求。软件技术基础软件技术基础软件工程软件工程 需求说明书最终要得到用户的认可,所以用户要需求说明书最终要得到用户的认可,所以用户要能看得懂,并且还能发现和指出其中的错误。由于用能看得懂,并且还能发现和指出其中的错误。由于用户往往不是一个人,而是企业中各个部门的若干人,户往往不是一个人,而是企业中各个部门的若干人,他们可能提出相互冲突的要求,这就需要协调和解决他们可能提出相互冲突的要求,这

28、就需要协调和解决这些冲突,在需求说明书中用户要求的应该是一致的、这些冲突,在需求说明书中用户要求的应该是一致的、无二义性的。无二义性的。 需求说明书包括的内容和书写参考格式如下:需求说明书包括的内容和书写参考格式如下:软件技术基础软件技术基础软件工程软件工程一、概述一、概述二、数据描述二、数据描述 数据流图数据流图 数据字典数据字典 系统接口说明系统接口说明 内部接口内部接口三、功能描述三、功能描述 功能功能 处理说明处理说明 设计的限制设计的限制软件技术基础软件技术基础软件工程软件工程四、性能描述四、性能描述 性能参数性能参数 测试种类测试种类 预期的软件响应预期的软件响应 应考虑的特殊问题

29、应考虑的特殊问题五、参考文献目录五、参考文献目录六、附录六、附录软件技术基础软件技术基础软件工程软件工程 概述是从系统的角度描述软件的目的和任务。概述是从系统的角度描述软件的目的和任务。 数据描述是对软件系统所必须解决的问题做出的数据描述是对软件系统所必须解决的问题做出的详细说明。详细说明。 功能描述中描述了为解决用户问题所需要的每一功能描述中描述了为解决用户问题所需要的每一项功能的过程细节。对每一项功能要给出处理说明和项功能的过程细节。对每一项功能要给出处理说明和在设计时需要考虑的限制条件。在设计时需要考虑的限制条件。软件技术基础软件技术基础软件工程软件工程 在性能描述中说明系统应达到的性能

30、和应该满足在性能描述中说明系统应达到的性能和应该满足的条件,以及测试的方法和标准,预期的软件响应和的条件,以及测试的方法和标准,预期的软件响应和可能需要考虑的特殊问题。可能需要考虑的特殊问题。 参考文献目录中应包括与该软件有关的全部参考参考文献目录中应包括与该软件有关的全部参考文献,其中包括前期的其它文档、技术参考资料、产文献,其中包括前期的其它文档、技术参考资料、产品目录手册以及标准等。品目录手册以及标准等。 附录部分包括一些补充资料,如列表数据、算法附录部分包括一些补充资料,如列表数据、算法的详细说明、框图、图表和其它材料。的详细说明、框图、图表和其它材料。软件技术基础软件技术基础软件工程

31、软件工程 4.3.2 结构化分析方法结构化分析方法 结构化分析结构化分析(SA,Structured Analysis)方法是一种方法是一种简单实用、使用很广的方法。简单实用、使用很广的方法。SA方法与设计阶段的方法与设计阶段的SD方法联合使用,能够较好地实现一个软件系统的研制。方法联合使用,能够较好地实现一个软件系统的研制。软件技术基础软件技术基础软件工程软件工程 SA方法的基本思想和步骤是采用方法的基本思想和步骤是采用“分解分解”和和“抽抽象象”的基本手段,自顶向下逐层分解,使分解工作有的基本手段,自顶向下逐层分解,使分解工作有条不紊地进行,使复杂的问题有效地被控制。如图条不紊地进行,使复

32、杂的问题有效地被控制。如图4-2所示,系统所示,系统A很复杂,为了理解它,可以将它分解成很复杂,为了理解它,可以将它分解成1,2,3几个子系统;如果子系统几个子系统;如果子系统1和和2仍然很复杂,把它仍然很复杂,把它们再分解成们再分解成1.1,1.2,等子系统,如此继续下去,直等子系统,如此继续下去,直到子系统足够简单,能够清楚地被理解和表达为止。到子系统足够简单,能够清楚地被理解和表达为止。软件技术基础软件技术基础软件工程软件工程132A1.11.31.22.12.2图4-2 分解和抽象 软件技术基础软件技术基础软件工程软件工程 逐层分解体现了抽象的原则,使人们不至于纠缠逐层分解体现了抽象的

33、原则,使人们不至于纠缠于具体细节而是有控制地逐步地了解更多的细节,直于具体细节而是有控制地逐步地了解更多的细节,直至最详细的内容。至最详细的内容。 SA方法在表达问题时尽可能用图形的方法,因为方法在表达问题时尽可能用图形的方法,因为图形比较形象、直观,容易理解。用图形比较形象、直观,容易理解。用SA方法来描述软方法来描述软件将要处理的信息时,使用数据流图和数据字典等描件将要处理的信息时,使用数据流图和数据字典等描述工具。数据流图表示了软件的信息流向和信息的加述工具。数据流图表示了软件的信息流向和信息的加工,而数据字典是对这些信息和加工进行更详细的描工,而数据字典是对这些信息和加工进行更详细的描

34、述。还可以使用结构化语言、判定表、判定树对信息述。还可以使用结构化语言、判定表、判定树对信息加工的加工逻辑进行描述。加工的加工逻辑进行描述。软件技术基础软件技术基础软件工程软件工程 使用使用SA方法进行软件需求分析时,可按如下步骤进行:方法进行软件需求分析时,可按如下步骤进行: (1) 建立当前系统的物理模型。即理解当前的现实环境,建立当前系统的物理模型。即理解当前的现实环境,获得当前系统的物理模型。当前系统的物理模型就是现实获得当前系统的物理模型。当前系统的物理模型就是现实环境的真实写照,在理解了当前系统是怎样做的情况下,环境的真实写照,在理解了当前系统是怎样做的情况下,用数据流图等形式将现

35、实环境表达出来。用数据流图等形式将现实环境表达出来。 (2) 建立当前系统的逻辑模型。通过对物理模型的分析,建立当前系统的逻辑模型。通过对物理模型的分析,找到本质性的因素,抽象出当前系统的功能和性能,建立找到本质性的因素,抽象出当前系统的功能和性能,建立当前系统的逻辑模型。当前系统的逻辑模型。软件技术基础软件技术基础软件工程软件工程 (3) 建立目标系统的逻辑模型。首先要清楚所建立建立目标系统的逻辑模型。首先要清楚所建立的目标系统的功能,进一步分析与当前系统逻辑模型的目标系统的功能,进一步分析与当前系统逻辑模型的差别,将当前系统的数据流图分成两部分,一部分的差别,将当前系统的数据流图分成两部分

36、,一部分是与目标系统相同的部分,另一部分是与目标系统不是与目标系统相同的部分,另一部分是与目标系统不同的即变化的部分。将变化的部分重新分析和设计,同的即变化的部分。将变化的部分重新分析和设计,建立一个目标系统的逻辑模型。建立一个目标系统的逻辑模型。软件技术基础软件技术基础软件工程软件工程 (4) 为目标系统的逻辑模型作补充。为了对一个软为目标系统的逻辑模型作补充。为了对一个软件系统作出完整的说明,需对已得到的结果作一些补件系统作出完整的说明,需对已得到的结果作一些补充。如说明目标系统的人机边界,即确定系统的范围。充。如说明目标系统的人机边界,即确定系统的范围。还要说明系统逻辑模型中未详细考虑的

37、一些细节问题,还要说明系统逻辑模型中未详细考虑的一些细节问题,如出错处理,系统如何启动和结束,系统输入输出格如出错处理,系统如何启动和结束,系统输入输出格式,系统性能方面的其它要求式,系统性能方面的其它要求(如响应时间、存储容量如响应时间、存储容量)等等。等等。软件技术基础软件技术基础软件工程软件工程 4.3.3 数据流图数据流图 数据流图是描述系统中数据流程的图形工具,它数据流图是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出以及把逻辑输标识了一个系统的逻辑输入和逻辑输出以及把逻辑输入转换为逻辑输出所需要的加工。入转换为逻辑输出所需要的加工。 1数据流图的组成数据流图的组

38、成 数据流图由四种基本成分组成,如图数据流图由四种基本成分组成,如图4-3所示:所示:软件技术基础软件技术基础软件工程软件工程P加工数据流数据存储源点终点XFS图图4-3 数据流图的基本成分数据流图的基本成分软件技术基础软件技术基础软件工程软件工程(1) 数据流数据流用箭头表示,箭头旁边用文字加以标记;用箭头表示,箭头旁边用文字加以标记;(2) 加工加工用圆圈表示,圆圈内用文字加以标记;用圆圈表示,圆圈内用文字加以标记;(3) 数据存储数据存储用双线表示,双线旁边用文字加以标记;用双线表示,双线旁边用文字加以标记;(4) 数据的源点和终点数据的源点和终点用方框表示,方框内用文字加用方框表示,方

39、框内用文字加以标记。以标记。软件技术基础软件技术基础软件工程软件工程 四种基本成分的作用和组成:四种基本成分的作用和组成: (1) 数据流。数据流。它是一条流水线,在这条流水线上有它是一条流水线,在这条流水线上有一组由一定成分组成的数据在流动。如图一组由一定成分组成的数据在流动。如图4-4中登记表中登记表由姓名、性别、出生日期、籍贯、毕业学校、党团员由姓名、性别、出生日期、籍贯、毕业学校、党团员等组成。等组成。 数据流的流向由箭头方向指出,可从加工流向加数据流的流向由箭头方向指出,可从加工流向加工,也可以从加工流向数据存储或从数据存储流向加工,也可以从加工流向数据存储或从数据存储流向加工,也可

40、以从源点流向加工或从加工流向终点。每条工,也可以从源点流向加工或从加工流向终点。每条数据流均有一个合适的名字,表明数据流的含义,但数据流均有一个合适的名字,表明数据流的含义,但流入或流出数据存储的数据流可以不命名。流入或流出数据存储的数据流可以不命名。 软件技术基础软件技术基础软件工程软件工程 (2) 加工。加工。它是对数据进行的操作。每个加工除了它是对数据进行的操作。每个加工除了命名外,还有一个编号,说明这个加工在层次分解中命名外,还有一个编号,说明这个加工在层次分解中的位置。的位置。 (3) 数据存储。数据存储。它是数据流在加工过程中产生的临它是数据流在加工过程中产生的临时文件或加工过程中

41、需要查找的信息。数据流反映了时文件或加工过程中需要查找的信息。数据流反映了系统中流动的数据,表现出动态数据的特征;数据存系统中流动的数据,表现出动态数据的特征;数据存储反映了系统中静止的数据,表现出静态数据的特征。储反映了系统中静止的数据,表现出静态数据的特征。软件技术基础软件技术基础软件工程软件工程 (4) 源点和终点。源点和终点。它表示系统中数据的来龙去脉,它表示系统中数据的来龙去脉,通常存于系统之外的人和组织之中。源点和终点的表通常存于系统之外的人和组织之中。源点和终点的表达不必很严格,它只是起到注释作用,补充说明系统达不必很严格,它只是起到注释作用,补充说明系统与其它外界环境的联系。与

42、其它外界环境的联系。 图图4-4中的学生档案管理系统,说明了数据流图是如中的学生档案管理系统,说明了数据流图是如何由四种基本成分组成。何由四种基本成分组成。软件技术基础软件技术基础软件工程软件工程学生学生科各系处建档修改统计学生档案文件登记表修改信息统计要求报表查询条件查询结果查询图图4-4 学生档案管理系统数据流图学生档案管理系统数据流图软件技术基础软件技术基础软件工程软件工程 2数据流图的结构数据流图的结构 一个实际的软件系统是非常复杂的,为了描述它一个实际的软件系统是非常复杂的,为了描述它们的信息流向和加工,用一套分层的数据流图来描述,们的信息流向和加工,用一套分层的数据流图来描述,有顶

43、层、中间层、层底之分。有顶层、中间层、层底之分。 (1) 顶层。决定系统的范围,决定输入输出数据流,顶层。决定系统的范围,决定输入输出数据流,它说明系统的边界,把整个系统的功能抽象为一个加它说明系统的边界,把整个系统的功能抽象为一个加工。顶层数据流图只有一张,如图工。顶层数据流图只有一张,如图4-5所示。所示。软件技术基础软件技术基础软件工程软件工程图4-5 顶层数据流图加工输入输出软件技术基础软件技术基础软件工程软件工程 (2) 中间层。顶层之下是若干中间层,某一中间层中间层。顶层之下是若干中间层,某一中间层既是它上一层加工的分解结果,又是它下一层若干加既是它上一层加工的分解结果,又是它下一

44、层若干加工的抽象,即它又可进一步分解。工的抽象,即它又可进一步分解。 (3) 层底。若一张数据流图的加工不能进一步分解,层底。若一张数据流图的加工不能进一步分解,这张数据流图就是底层的数据流图。故底层数据流图这张数据流图就是底层的数据流图。故底层数据流图的加工是由基本加工构成的,所谓基本加工是指不能的加工是由基本加工构成的,所谓基本加工是指不能再进行分解的加工。再进行分解的加工。软件技术基础软件技术基础软件工程软件工程 3分层数据流图的画法分层数据流图的画法 画分层数据流图时,应根据分解和抽象的原则自画分层数据流图时,应根据分解和抽象的原则自顶向下逐层分解画出。在画各层数据流图时,要注意顶向下

45、逐层分解画出。在画各层数据流图时,要注意父图与子图的平衡,各层数据流图及其加工的编号和父图与子图的平衡,各层数据流图及其加工的编号和数据守恒问题。数据守恒问题。 (1) 父图与子图的平衡。在分层数据流图直接相邻父图与子图的平衡。在分层数据流图直接相邻的两层中,上层是下层的父图,下层是上层的子图。的两层中,上层是下层的父图,下层是上层的子图。一般来说,父图中有几个加工,下层就有几个子图,一般来说,父图中有几个加工,下层就有几个子图,但子图的个数也可以少于父图中加工个数,即父图中但子图的个数也可以少于父图中加工个数,即父图中有些加工可能是基本加工,它就没有子图。有些加工可能是基本加工,它就没有子图

46、。软件技术基础软件技术基础软件工程软件工程 父图中某个加工的输入输出数据流应该同相应的父图中某个加工的输入输出数据流应该同相应的子图的输入输出流的数目相同,分层数据流图的这种子图的输入输出流的数目相同,分层数据流图的这种特性称为父图与子图的平衡。特性称为父图与子图的平衡。 (2) 子图的编号规则。子图的编号即为父图相应加子图的编号规则。子图的编号即为父图相应加工的编号;子图中加工的编号由子图号、小数点、局工的编号;子图中加工的编号由子图号、小数点、局部号构成。顶层只有一张,只有一个加工,不必编号。部号构成。顶层只有一张,只有一个加工,不必编号。第一层子图的编号为第一层子图的编号为0,图中加工的

47、编号为,图中加工的编号为0.1,0.2,通常简化为,通常简化为1,2,。对应的子图编号为。对应的子图编号为1图,图,2图,图,这是第二层数据流图的编号,该层图中,这是第二层数据流图的编号,该层图中加工的编号为加工的编号为1.1,1.2,2.1,2.1,。这样可以。这样可以根据子图编号中小数点个数来确定该子图在哪一层上。根据子图编号中小数点个数来确定该子图在哪一层上。软件技术基础软件技术基础软件工程软件工程 (3) 数据守恒。所谓数据守恒是指加工的输入输出数据守恒。所谓数据守恒是指加工的输入输出数据流是否匹配,即一个加工既有输入数据流又有输数据流是否匹配,即一个加工既有输入数据流又有输出数据流。

48、出数据流。 4完善数据流图完善数据流图 画出了分层数据流图后,应进一步完善,提高数据画出了分层数据流图后,应进一步完善,提高数据流图的可理解性。流图的可理解性。软件技术基础软件技术基础软件工程软件工程 在对加工进行分解时,应注意分解的均匀性,即在对加工进行分解时,应注意分解的均匀性,即分解为大小均匀的几部分,应避免不均匀的分解,即分解为大小均匀的几部分,应避免不均匀的分解,即在某一张数据流图中,某些加工已是基本加工,而另在某一张数据流图中,某些加工已是基本加工,而另一些加工还可以进一步分解为好几层,这时应重新分一些加工还可以进一步分解为好几层,这时应重新分解。一个加工一次分解为多少个子加工为好

49、?经验证解。一个加工一次分解为多少个子加工为好?经验证明不超过明不超过7个为宜。分解过少,可能有较多的层次,分个为宜。分解过少,可能有较多的层次,分解过多,使人难以理解。一般分解应是自然的,概念解过多,使人难以理解。一般分解应是自然的,概念上是合理的,清晰的。若一张子图上的所有加工都是上是合理的,清晰的。若一张子图上的所有加工都是不可再分解的基本加工,这时分解过程就可结束了。不可再分解的基本加工,这时分解过程就可结束了。软件技术基础软件技术基础软件工程软件工程 4.3.4 数据字典数据字典 数据流图描述软件系统的信息流程和加工,但并数据流图描述软件系统的信息流程和加工,但并没有对各个成分进行详

50、细说明,没有对各个成分进行详细说明,SA方法使用数据字典方法使用数据字典对这些成分进行详细说明。数据流图中的数据流名、对这些成分进行详细说明。数据流图中的数据流名、数据存储名、数据项名、基本加工名的严格定义的集数据存储名、数据项名、基本加工名的严格定义的集合构成了数据字典。数据字典是合构成了数据字典。数据字典是SA方法重要工具之一,方法重要工具之一,与数据流图配套,缺一不可。数据流图中的非基本加与数据流图配套,缺一不可。数据流图中的非基本加工不必描述,它们是基本加工的抽象,可用基本加工工不必描述,它们是基本加工的抽象,可用基本加工的组合来说明,源点终点也不必在数据字典中描述。的组合来说明,源点

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(软件工程-课件.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|