软件制造工程

上传人:j****9 文档编号:57315546 上传时间:2018-10-20 格式:PPT 页数:103 大小:225.50KB
返回 下载 相关 举报
软件制造工程_第1页
第1页 / 共103页
软件制造工程_第2页
第2页 / 共103页
软件制造工程_第3页
第3页 / 共103页
软件制造工程_第4页
第4页 / 共103页
软件制造工程_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《软件制造工程》由会员分享,可在线阅读,更多相关《软件制造工程(103页珍藏版)》请在金锄头文库上搜索。

1、软件制造工程,第三章 编程工程,3.1.1 编程工程的定义,编程工程就是用程序设计语言把程序设计的结果和过程翻译为在计算机相应环境下可运行的软件产品,把系统工程师按照用户需求设计出来的系统构架变为真正可运行的软件系统的工程。,3.1.1 编程工程的定义,编程工程的作业内容详细地划分为制定工作标准,制定编码基准,理解设计书,程序编码,自查,送上级系统工程师审查,修改以及进行单元测试等若干步骤,,3.1.1 编程工程的定义,编程工程的作业流程 见P12 图2.3,3.1.2 易读易懂的程序,结构化编程以前,以个人为中心的编程作业 程序的规模逐渐扩大 ,产生了组织行为的软件开发,而且产生了对过去开发

2、的程序进行修改后再利用的需求 Goto语句的使用 能够把猛一看很大的很复杂的程序用单纯的方法分解,分解后的一块一块的程序也都很单纯,这就是“易读易懂的程序”。,3.2 结构化编程,结构化开发-结构化分析、结构化设计和结构化编程三个阶段,3.2.1 结构化开发过程,3.2.1 结构化开发过程,1、结构化分析 结构化分析方法的核心是沿数据流程图自顶向下、逐步求精,是最经典的面向数据流的需求分析方法。结构化分析方法使用系统流程图、数据流程图、数据字典、ER图、处理说明等工具来描述系统的功能需求、数据需求、运行需求和系统扩充需求。该方法广泛应用于银行,证券,商务处理,生产管理等大中型信息管理系统的需求

3、分析过程。,3.2.1 结构化开发过程,在软件系统开发的初期阶段,首先要对用户的现行业务运行系统进行调查和现状分析,把握用户对新的开发系统的要求和希望,从用户提供的基本信息中,整理出开发系统目的和可能实现的功能范围,设计出新系统的数据流程图(DFD:Data Flow Diagram),显示屏幕关连图和功能概要说明书。,3.2.1 结构化开发过程,2、结构化设计 结构化设计方法通常也叫做面向数据流的设计、面向行为的设计。结构化设计方法是以需求分析阶段获得的新系统的数据流程图(DFD)和显示屏幕关连图为基础,通过一系列映射,自顶向下,逐步细化,把它们变换为具体的程序概要结构图和屏幕设计式样,把一

4、个个复杂的问题分解细化为由多个功能模块组成的具有层次结构的软件系统。,3.2.1 结构化开发过程,3、结构化程序制造 结构化程序制造由结构化程序设计和结构化程序编码组成,它以外部设计和内部设计过程中获得的软件结构图及其相关设计资料为基础,采用自顶向下,逐步细化的方法,把一个个模块的功能逐步分解,细化为一系列具体的步骤,作出结构化程序设计说明书,程序员再按照程序设计说明书和系统设计的相关资料,把一步步的处理说明翻译成一系列用某种程序设计语言编写的程序代码。,3.2.2 系统分析和系统设计的成果文档与编程的关系,结构化分析、设计的成果文档 系统功能概要说明书 程序名称一览表业务处理概要图(ER图)

5、 公共子程序设计说明书显示屏幕关连 图程序功能结构图屏幕设计式样书 程序设计说明书数据库设计说明书 程序处理追加功能说明书代码设计说明书 模块功能的定义说明书输入输出文件设计说明书 输入数据检查说明书,3.2.2 系统分析和系统设计的成果文档与编程的关系,在进行程序编码工作的初期,程序员首先要获取系统功能概要说明书、业务处理概要图(DFD图或者ER图)、显示屏幕关连图和程序名称一览表,理解开发系统的目的、整体要素和各个子系统的处理要求。,3.2.2 系统分析和系统设计的成果文档与编程的关系,程序编码的主要依据是程序设计说明书,在编写程序代码之前,程序员首先要确认自己所要编制的程序名称,获取该程

6、序的程序设计说明书,理解该程序的程序功能概要和各个模块的详细处理说明,确定该程序所要使用的屏幕和报表的名称,数据库表和输入输出文件的名称,以及调用公共子程序的名称,找出所有相关的设计资料,充分理解程序设计说明书的内容,若有疑问或不明白的地方,要提出问题,与系统设计人员进行交流确认。,3.2.2 系统分析和系统设计的成果文档与编程的关系,在正确理解程序设计说明书的基础上,构思出结构化程序的框架,必要时作出程序处理流程图。使用C语言或者其它语言编写程序代码时,还要获取相关文件和DB的格式定义代码(*.h)或COPY句,确认各个数据项目的变量名称。需要调用公共子程序时,要获得公共子程序的代码或者可执

7、行文件,做好输入输出参数的设置和返回值的判断处理。,3.2.2 系统分析和系统设计的成果文档与编程的关系,在编写程序代码之前,还需要获得编码测试基准、共通处理说明书和代码设计说明书、获取相应的例子程序,在正确理解编码测试基准的基础上,进行程序编码和编码完成后的单元测试,一定不要在程序编码测试完成以后,再回过头来对照编程基准和共通处理说明书,检查修改与基准不一致的地方,那样既增加了作业时间又不能保证程序质量。,3.2.3 结构化编码,程序代码的质量与软件系统外部设计和内部设计的质量直接相关,同时,程序设计语言的特性和程序员的编码水平,程序代码的可读性,可维护性,可靠性,可测试性都是直接影响程序质

8、量的因素。,3.2.2 系统分析和系统设计的成果文档与编程的关系,在进行组合测试之前,需要获取系统功能概要说明书、数据流程图、编码测试基准和共通处理说明书,把握各个子系统的处理流程和各个程序单元之间的接口,确保实现整个系统的设计功能,3.2.3 结构化编码,结构化编码采用自顶向下,逐步细化的方法,先全局,后局部,先整体,后细节,先抽象,后具体,逐步求精,编制出来的程序具有清晰的逻辑层次结构,容易阅读、理解、修改和维护,可以提高软件质量,提高软件开发的成功率和生产性。结构化编码过程中,要遵循以下几个主要的原则:,3.2.3 结构化编码, 尽可能使用语言提供的基本控制结构,顺序结构、选择结构和重复

9、结构。 选用的控制结构只准许有一个入口和一个出口。 利用程序内部函数,把程序组织成容易识别的内部函数模块,每个模块只有一个入口或一个出口,一般不超过200行。 复杂结构应该用基本控制结构组合或嵌套来实现。 尽可能减少GOTO语句的使用,一般限制用到以下两种情况: 把控制转移到出错处理。 把控制转移到函数模块结束,3.2.3 结构化编码,大量采用GOTO语句实现控制路径,会使程序路径变得复杂而且混乱,但有时完全不用GOTO语句,可能会增加程序实现的复杂度。例如,在查找结束时、文件访问结束时或出现错误情况要从循环中转出时,使用GOTO语句会使程序更加清晰易懂。所以,应该加以限制地使用GOTO语句。

10、,3.2.3 结构化编码,例如,使用C语言编写下面的一个小程序,目的是打印出A,B,C三个数据中的最小数,如图3.2给出了程序流程图。 程序段1、程序段2 比较,3.2.3 结构化编码,结构化程序编码就是按照结构化程序设计说明书,从程序的控制结构入手,自顶向下,逐步细化,把一个个模块的功能逐步分解,细化为一系列具体的步骤。,3.2.3 结构化编码,在结构化程序的实现方法中,有两种常用的基本方法,第一是BREAK处理(见图3.3),第二是MATCHING处理(见图3.5),3.2.3 结构化编码,BREAK方法的处理概要如下,处理流程见图3.4: 按关键字项目值的升序读入输入文件的记录,把关键字

11、项目的值存入工作变量中。 关键字项目的值相同时,进行统计处理(或者其他处理)。 关键字项目的值发生了变化(BREAK)的时候,把变化前(BREAK BEFOR)的关键字项目值和统计结果输出到文件中(或者其他处理),用变化后(BREAK AFTER)的关键字项目值替换变化前的关键字项目值。,3.2.3 结构化编码, 读入输入文件的下一条记录,把关键字项目的值存入变化后的工作变量中。 继续进行上述至的处理,直至文件读入结束。,3.2.3 结构化编码,前提条件是:在进行BREAK处理之前,输入文件必须是已经按照关键字项目值进行排序(升序或者降序)处理好的。,3.2.3 结构化编码,MATCHING方

12、法处理概要说明如下,处理流程如图3.6所示。 按关键字项目值的升序读入基础文件的记录,把关键字项目的值存入基础KEY工作变量中。 按关键字项目值的升序读入事务文件的记录,把关键字项目的值存入事务KEY工作变量中。 基础KEY的值与事务KEY值相等时,把事务文件的数据编辑输出到文件中。读入事务文件的下一条记录,把关键字值存入事务KEY。,3.2.3 结构化编码, 基础KEY的值大于事务KEY值的时候,把事务KEY的值写到错误信息文件中。读入事务文件的下一条记录,把关键字值存入事务KEY。 基础KEY的值小于事务KEY值的时候,读入基础文件的下一条记录,把关键字值存入基础KEY。 继续进行上述至的

13、处理,直至文件读入结束。1:1的匹配处理的情况下,上述处理读入事务文件的同时,还要读入基础文件,3.2.3 结构化编码,前提条件是:在进行MATCHING处理之前,输入文件必须是已经按照关键字项目的值进行排序(升序或者降序)处理好的。,3.3.1 什么是面向对象,面向对象(object-oriented或object-orientation)不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。,3.3.1 什么是面向对象,概括地说,面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出

14、发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。面向对象方法强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相差较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。,3.3.1 什么是面向对象,自80年代末期到90年代,面向对象的方法与技术向着软件生命周期的前期阶段发展,即:人们对面向对象方法的研究与运用,不再局限

15、于编程阶段,而是从系统分析和系统设计阶段就开始采用面向对象方法。这标志着面向对象方法已经发展成一种完整的方法论和系统化的技术体系,3.3.1 什么是面向对象,面向对象的方法与技术发展到软件生命周期的前期阶段有着更为深刻的意义。因为面向对象方法的本质,就是主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的系统能够映射问题域,即:系统中的对象以及对象之间的关系能够如实地反映问题域中固有事物及其关系。这恰恰是从分析和设计阶段入手才能根本解决的问题。,3.3.2 面向对象的软件工程方法,面向对象的软件工程方法是面向对象方法在软件工程领

16、域的全面运用。它包括面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护(OOSM)等主要内容。,3.3.2 面向对象的软件工程方法,软件开发是对问题求解的过程。按照软件工程学对软件生命周期的划分,软件开发过程包括分析、设计、编程、测试和维护等主要阶段。从认识论的角度看,整个软件开发过程又可归结为两项主要活动,即:人们对所要解决的问题及其相关事物的认识和基于这种认识所进行地描述。,3.3.2 面向对象的软件工程方法,粗略地划分认识与描述,可以把分析与设计看作对问题及其解决方案的认识,把编程看作对解决方案的描述。细致地划分,则分析和设计阶段本身也包括描述,即按一定的软件开发模型中分析及设计阶段的表示方法,产生分析文档和设计文档;编程阶段也包括一定的认识和理解活动,特别是在传统的软件开发方法中,分析文档和设计文档不能很好地映射问题域,程序员在书写程序之前,往往需要在分析、设计文档的帮助下,对程序所要描述的事物进行再认识。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号