第11章软件生产的方法与工具_第1页
第11章软件生产的方法与工具_第2页
第11章软件生产的方法与工具_第3页
第11章软件生产的方法与工具_第4页
第11章软件生产的方法与工具_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

11.2软件开发工具的新发展第11章软件生产的方法与工具11.1传统的结构化方法与工具

上页下页末页首页11.1.1结构化分析11.1.2结构化设计

结束11.1传统的结构化方法与工具

第11章软件生产的方法与工具11.1.3结构化编程11.1.4其他图示工具11.1.5结构化方法的局限性上页下页末页首页结束11.1.1结构化分析☆数据流图用四种符号来描述数据流入、流出一个系统和在系统内被转换的过程。(1)外部实体:用方框表示的数据来源和终点。(2)数据存储:用开口的矩形表示数据要被保存在那儿。(3)处理过程:用圆角的矩形表示对输入数据的加工处理。(4)数据流:用带箭头的线条表示数据在处理过程、数据存储和外部实体之间的移动。☆数据字典定义了数据流图中的数据流和数据存储的内容,使系统开发者能准确地知道每个数据流和数据存储中具体包含了哪些数据。☆处理过程说明描述最底层的数据流图的每个处理过程中的处理逻辑,描述了如何将输入的数据流加工成输出的数据流。

上页下页末页首页结束

DFD示例——学生选课系统上页下页末页首页结束11.1.2结构化设计结构化设计是一种自上而下逐层展开的设计方法。它包括一整套规则和技巧,通过增加程序的清晰性和简明性来达到减少编程、调试和维护工作量的目的。设计时首先考虑主要的功能,然后将主要功能分解成下层的子功能,再对子功能进行分解直至最底层。如果做过结构化的系统分析,分析的结果——结构化说明书——就可以成为结构化设计的依据。

结构图示例——学生管理系统前两层上页下页末页首页结束11.1.3结构化编程☆结构化编程是结构化设计方法在编程中的延伸,同结构化设计一样,也遵循模块化和自顶向下的原则。结构化编程还通过让控制尽量简明的方式来组织和编写程序,减少甚至消除程序中向前和向后的跳转,达到使程序更加容易理解和更加容易修改的目的。☆结构化设计产生的结构图中,每个方框代表了一个复合程序模块,它可以分解成多个模块,每个模块只完成一个或很少几个功能。最好每个模块都能相互独立。互相连接时,尽量使每个模块只有一个入口和出口。共享数据的模块也应该尽量地减少。☆模块之间不应该有隐含的关联,那样会引起“波纹效应”——一个模块的修改会影响到其他模块产生意外的结果。

上页下页末页首页结束11.1.4其他图示工具☆业务流程图用共同约定的简单符号直观地记述业务活动的过程,不仅可以描述“数据”的流程,也可以同时描述“物流”和人的活动,与专业性很强的“DFD”图相比,更容易为用户所理解,所以在系统分析中常作为同用户交流的工具。

业务流程图示例上页下页末页首页结束☆系统流程图描述系统中数据的流动。它用不同的符号和流线,重点描述数据输入、输出和处理的关系,还能表示出数据的存储载体,常常用于系统的物理设计。

系统流程图示例——学生选课系统上页下页末页首页结束11.1.5结构化方法的局限性☆结构化方法是一种线性化的方法。分析、设计与编程每一阶段都要在上一阶段完成之后才能开始。在长达数年的开发过程中,组织中不可避免的变化要求系统不断做出修改,这些修改都必须依次通过分析、设计与编程各个阶段。进入20世纪90年代后,组织中业务变化越来越频繁,引起修改量越来越大,开发成本迅速上升。这常常导致严格的结构化方法在整个开发过程中不能贯彻始终。☆结构化方法本身也有一些弱点:它是面向过程的方法。它的侧重点在于数据转换过程,而不是数据本身。人们现在已经认识到,数据的处理过程是不稳定的、变化的,而数据本身却相对地比较稳定,也更有价值。一个部门产生的数据可以供给许多部门共享,只是它们各自对数据的处理方式不同而已

上页下页末页首页11.2.1面向对象的软件开发11.2.2计算机辅助软件工程结束11.2软件开发工具的新发展第11章软件生产的方法与工具11.2.3软件再造工程

上页下页末页首页结束11.2.1面向对象的软件开发1.面向对象方法的优势☆由于对象可以重复用,面向对象的软件开发方法就能直接引用可重用的构件,以节省编写软件的时间和费用。当然,如果没有建立起可利用的对象类库,人们是不会见到什么效果的。☆面向对象的软件开发还导致了其他方法上的变革。一旦对象库建立起来,设计及程序编写工作通常在系统分析文档未完成时便可进行。从理论上讲,只要系统的规格要求制定出来,设计与编程工作就可以同时着手进行。开发者(用户和信息系统专业人员)使用快速原型法设计系统。设计完成后的原型将包括大量的完整系统所需的程序。☆面向对象的方法应该加强用户在编程工作中的参与。用户会感到对象较以前的结构化工具(例如,设计图表)更加容易理解,在运用时更加自然。除此之外,原型的迭代修改主要是依靠用户,这也使用户在设计甚至编程工作中处于核心地位。

上页下页末页首页结束2.运用面向对象技术的障碍☆虽然对面向对象技术及编程工具的培训需求越来越大,但面向对象的软件开发技术仍处于不成熟阶段,要让大多数公司采用,还需要做大量的验证。尽管人们曾提出过几种面向对象方法,但目前还没有公认的标准。许多公司在试用这种方法时犹豫不决,还因为这需要人员的广泛培训并抛弃原有的传统方法。管理部门已意识到,完全转变到面向对象开发方法需要一个很长的阶段。多数公司在现有的结构化系统中投资巨大,这些系统必须继续维持,直到它们到了该淘汰的时候为止。☆运用面向对象的方法还需要开发许多新的技术。原先用以存储结构化数据定义及程序代码的数据字典已不适用于面向对象的编程,应设计出新的面向对象的数据字典。

上页下页末页首页结束11.2.2计算机辅助软件工程1.CASE工具☆计算机辅助软件工程CASE,有时也被称为计算机辅助系统工程,是一种使系统开发得以自动化的工具,目的是减少重复工作量。☆CASE工具提供了自动绘图功能,用以产生图表、流程图,并支持屏幕及报表生成器、数据字典、高效报表工具、分析校验工具及代码和文档生成器。☆CASE工具一般是通过以下几种途径来提高生产率和质量的。●支持一种标准的开发方法和设计原则,使设计和整个开发过程更具有整体性。●改进用户和技术专家之间的交流,以使大型开发团体和软件工程能更有效地协调。●通过设计库将系统设计的各个部分组织并联系在一起,对其进行快速处理。●自动消除分析与设计中的冗余及错误。

上页下页末页首页结束

CASE工具的组成上页下页末页首页结束2.CASE工具实例☆CASE工具是根据其在系统开发过程中是支持前期工作还是后期工作来进行分类的。前期CASE工具侧重于获取系统开发初期的分析及设计信息,能自动生成数据流图、结构图、实体-关系图以及系统的其他规格说明,以便在编码前可以方便地对它们进行修改。☆后期CASE工具用于代码的编写、检测及维护工作,包括文本编辑器、语法测试器、编译器、交叉引用生成器、联接器、符号调试器、可执行文件生成器、代码生成器和应用程序生成器。☆许多CASE工具自动将数据与要用到它们的过程相连。☆CASE工具包的一个核心部分是信息储存库,它存储了系统分析员在项目开发中定义的所有信息。上页下页末页首页结束3.应用CASE面临的挑战☆现在还很难明确说出应用CASE方法能使生产效率提高多少。一些研究结果发现,CASE工具能够提高生产效率,而另一些研究却指出,CASE工具不但对生产效率的提高没多大影响,相反对系统的质量还会产生负作用。这一问题仍然处于混然不清的状态,因为软件开发过程中效率的提高一直难以衡量和量化。☆尽管CASE工具在系统开发的一些方面提供了便利,它能够加快分析和设计的速度,利于重新设计,但它并不能做到系统设计的自动化,并且无法使业务上的需要自然而然地得到满足。☆CASE工具提供了一系列的节省劳动力的开发工具,使软件开发达到了自动化。但实际上,实行自动化的软件开发过程是由一种特定的开发方法决定的。

上页下页末页首页结束11.2.3软件再造工程☆软件再造工程是一种更新早期软件的技术。☆软件再造工程包括3个步骤:逆向工程、对设计及软件规格进行修改和正向工程。逆向工程需要从现有的系统中提取其中隐含的业务运作规程。早期的、非结构化的系统没有结构化的技术文档对系统所支持的业务功能做清楚的说明,它们也缺少系统设计以及程序编制方面的文档。逆向工程工具能读取并分析现有系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论