




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件制造工程程序设计全文共128页,当前为第1页。软件制造工程程序设计全文共128页,当前为第2页。程序设计概述
__程序设计在软件开发中的位置软件工程管理规划阶段需求分析A开发阶段内部设计B外部设计移植、安装、维护移植安装维护HD程序设计·制造E组合测试F系统测试G运行测试以内部设计书为基础,对程序单元内的功能模块进行分割和功能模块的功能处理给予说明,作出程序设计书。按照程序设计书进行程序编码。按照程序设计书进行程序单元测试。C软件制造工程程序设计全文共128页,当前为第3页。程序设计概述_概念概要设计又称为总体设计或外部设计,详细设计又称为过程设计或内部设计。程序设计程序设计是以详细设计为基础,对程序单元内的功能模块进行细化,对功能模块的功能处理要求和实现方法给予说明,并作出程序设计书。程序设计的结果将是编程工程和测试工程的主要依据。近年来,由于很多应用系统在开发周期短、开发成本低的条件下进行设计,常常把详细设计和程序设计的阶段合为一体。软件制造工程程序设计全文共128页,当前为第4页。程序设计概述_作业流程及描述D1开发准备工作D1.1详细设计成果物的确认D1.1.1确认详细设计成果物D1.2制定工作计划D1.2.1制定工作计划D1.3检查工作计划D1.3.1检查工作计划在进行程序设计·制造作业之前,要确认详细设计的成果物。为了进行程序设计·制造的进度管理和项目运营管理,要作出项目开发体制表和详细的日程计划表(中、小日程表)
对于制定的工作计划,要进行检查,确认作业内容。软件制造工程程序设计全文共128页,当前为第5页。程序设计概述_作业流程及描述D2程序设计D2.1程序设计D2.1.1模块划分D2.1.2模块功能设计工作区变量定义D2.1.3模块逻辑设计D2.1.4D2.2程序设计检查D2.2.1程序设计检查以详细设计中确认的程序单元为基础,对程序单元内的功能模块进行分割处理。对程序功能结构图中的功能处理给与说明。
定义程序中使用的公用变量和重要变量。设计各个模块的处理内容及其算法。对程序设计说明书进行检查,作出程序设计检查结果报告。软件制造工程程序设计全文共128页,当前为第6页。程序设计概述–作业流程及描述D3程序编码D3.1程序编码D3.1.1程序编码D3.1.2编译连接D3.2程序代码检查D3.2.1程序代码检查以程序设计说明书为基础,按照选定的语言和编码规则,进行各个程序单元(模块)的代码编制。对程序代码进行编译,修改语法错误,生成可以执行的目标程序。进行程序逻辑和规范化检查。软件制造工程程序设计全文共128页,当前为第7页。程序设计概述–作业流程及描述D4程序单元测试D4.1程序单元测试的准备D4.1.1设定测试项目按照程序设计说明书写出程序测试项目表(PCL),对设定的测试项目进行检查,填写质量汇总数据表。D4.1.3作出测试数据按照程序测试项目表,做出要使用的测试数据,设定好相关的数据库表及其文件中的数据。D4.2组合测试环境的再度确认D4.2.1组合测试环境的确认D4.3程序单元测试的实施D4.3.1程序单元测试实施程序单元测试过程中发生问题时,要填写B票(问题处理表),如果问题的原因是由于设计书所产生的情况下,要通知修改程序设计说明书。D4.1.2测试项目检查为进入下一个测试工程阶段,而对组合测试环境再度确认,以做好组合测试准备。软件制造工程程序设计全文共128页,当前为第8页。程序设计概述–作业流程及描述D5开发结束工作D5.1确认程序测试的质量状况D5.1.1程序单元测试报告把各种反映程序质量的数据收集起来,填写到质量数据汇总表中,作为能否转入下一个测试工程进行测试的依据。软件制造工程程序设计全文共128页,当前为第9页。程序设计概述_工作用表质量数据汇总表D5开发结束工作问题处理票(B票)简单问题处理票质量数据汇总表(程序单元)程序单元测试项目表(矩阵型)程序单元测试项目表D4程序单元测试问题记录一览表检查记录表模块功能的定义说明书工作缓冲区格式定义表程序追加处理说明书程序功能结构图D2程序设计问题记录一览表检查记录表开发体制表工作计划表(小日程表)工作计划表(中日程表)基本/详细设计作业内容检查表(确认基本/详细设计的成果物)D1`开发准备工作工作用表名称作业阶段软件制造工程程序设计全文共128页,当前为第10页。程序设计原理设计的原则:
(l)分解—协调的原则。
(2)信息隐蔽,抽象的原则,即上层模块只规定下层模块做什么和所属模块间的协调关系,但不规定怎么做,以保证模块的相对独立性和内部结构的合理性,使得模块与模块之间层次分明,易于理解,易于实施,易于维护。软件制造工程程序设计全文共128页,当前为第11页。程序设计原理设计的原则:
(3)自顶向下原则:首先抓住总的功能目标,然后逐层分解,即先确定上层模块的功能,再确定下层模块的功能。
(4)一致性原则:要保证整个软件设计过程中具有统一的规范,统一的标准,统一的文件模式等等。
(5)面向用户的原则,每个模块必须功能明确,接口明确,坚决消除多重功能和无用接口。软件制造工程程序设计全文共128页,当前为第12页。程序设计的一个重要课题就是模块划分和模块设计,把开发的软件系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这种功能设计所包括的内容有:采用某种设计原理和方法,将一个复杂的系统按功能划分为成模块的层次结构;确定每个模块的功能,建立与已确定的软件需求的对应关系;确定模块间的调用关系;确定模块间的接口,设计接口的信息结构;评估模块划分的质量及导出模块结构的规则。程序设计原理软件制造工程程序设计全文共128页,当前为第13页。1、模块化模块的概念在软件的体系结构中,模块是可组合、分解和更换的单元。程序设计单元都被看成为“模块”,所谓模块就是程序对象的有名字的集合,例如,过程、函数、子程序、宏等。模块化模块化是把程序划分成若干个独立的模块,每个模块完成一个特定的子功能。程序设计原理软件制造工程程序设计全文共128页,当前为第14页。模块具有以下几种基本属性:接口:指模块的输入与输出;功能:指模块实现什么功能;逻辑:描述内部如何实现要求的功能所需的数据和处理流程;状态:指该模块的运行环境,即模块的调用与被调用关系。功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。程序设计原理软件制造工程程序设计全文共128页,当前为第15页。模块的概念一个模块的规模应当取决于它的功能和用途。
应减少接口的代价,提高模块的独立性。
模块的独立性可以由两个定性标准度量,这两个标准分别称为聚合和耦合。程序设计原理软件制造工程程序设计全文共128页,当前为第16页。成本(工作量)软件成本接口成本最小区域成本/模块模块数M程序设计原理软件制造工程程序设计全文共128页,当前为第17页。2、抽象与逐步求精抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素。通过抽象,可以确定组成软件的过程实体。程序设计原理软件制造工程程序设计全文共128页,当前为第18页。抽象软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采用过程化的方法。在从概要设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低抽象层次。
程序设计原理软件制造工程程序设计全文共128页,当前为第19页。2、抽象与逐步求精逐步求精是一种先总体,后局部的思维原则,先抓住主要问题并给予解决,然后分阶段逐步深入考虑问题的细节,也就是逐层分解,分而治之的方法。程序设计原理软件制造工程程序设计全文共128页,当前为第20页。3、信息隐蔽“为了得到最好的一组模块,应该怎样分解软件呢?”信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。“隐蔽”意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。程序设计原理软件制造工程程序设计全文共128页,当前为第21页。在一节不和谐的课堂里,老师叹气道:“要是坐在后排聊天的同学能象中间打牌的同学那么安静,就不会影响到前排睡觉的同学。”这个故事告诉我们,如果不想让坏事传播开来,就应该把坏事隐藏起来,“家丑不可外扬”就是这个道理。为了尽量避免某个模块的行为去干扰同一系统中的其它模块,在设计模块时就要注意信息隐藏。应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。程序设计原理软件制造工程程序设计全文共128页,当前为第22页。4、模块独立性模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。用两个定性的度量标准耦合性(coupling)和内聚性(cohesion)来衡量模块的独立性。
程序设计原理软件制造工程程序设计全文共128页,当前为第23页。4、模块独立性(1)耦合性(coupling)耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。程序设计原理软件制造工程程序设计全文共128页,当前为第24页。耦合按从弱到强的顺序可分为以下七种类型:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、共通耦合、内容耦合。按上述顺序,耦合性逐渐升高,模块独立性逐渐降低。程序设计原理软件制造工程程序设计全文共128页,当前为第25页。软件制造工程程序设计全文共128页,当前为第26页。
非直接耦合(NondirectCoupling)
两个模块之间没有直接关系,它们之间的联系完是通过主模块的控制和调用来实现的。非直接耦合的模块独立性最强。软件制造工程程序设计全文共128页,当前为第27页。数据耦合(DataCoupling)
一个模块访问另一个模块时,彼此之间是通过简单数据参数
(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。举例:
floatB(floatw){//计算水费
….}软件制造工程程序设计全文共128页,当前为第28页。标记耦合(StampCoupling)
一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。举例:
floatB(structFeee){//计算水费
….}structFee{floatw;//水的用量
floath;//房子的面积}软件制造工程程序设计全文共128页,当前为第29页。控制耦合(ControlCoupling)
如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。软件制造工程程序设计全文共128页,当前为第30页。外部耦合(ExternalCoupling)
模块之间通过指定的外部设备、通信协议等环境因素耦合在一起,则称之为外部耦合。公共耦合(CommonCoupling)
若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。软件制造工程程序设计全文共128页,当前为第31页。内容耦合(ContentCoupling)
如果发生下列情形,两个模块之间就发生了内容耦合
(1)一个模块直接访问另一个模块的内部数据;
(2)一个模块不通过正常入口转到另一模块内部;
(3)两个模块有一部分程序代码重迭(只可能出现在汇编语言中);软件制造工程程序设计全文共128页,当前为第32页。内容耦合举例:intc;A(int*a,int*b){c=*a;*a=*b;*b=c;}B(…){c=d;//访问了A的内部数据}软件制造工程程序设计全文共128页,当前为第33页。原则:
尽量使用数据耦合和标记耦合,少用控制耦合,限制外部耦合和公共耦合的范围,完全不用内容耦合。软件制造工程程序设计全文共128页,当前为第34页。4、模块独立性(2)内聚性内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。程序设计原理软件制造工程程序设计全文共128页,当前为第35页。4、模块独立性(2)内聚性内聚按强度从低到高共分七级:巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。内聚性逐渐加强,功能趋于单一,模块独立性也逐渐加强。
程序设计原理软件制造工程程序设计全文共128页,当前为第36页。(2)内聚4、模块独立性软件制造工程程序设计全文共128页,当前为第37页。功能内聚(FunctionalCohesion)
模块中的所有成员都是为了实现某一单一功能。比如根据生日计算雇员年龄的子程序就是功能内聚性的,因为它只完成一项工作,而且完成得很好。
软件制造工程程序设计全文共128页,当前为第38页。信息内聚(顺序内聚)
(InformationalCohesion)
一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序进行。例:假设有一个按给出的生日计算雇员年龄、退休时间的子程序,如果它是利用所计算的年龄来确定雇员将要退休的时间,那么它就具有顺序内聚性。软件制造工程程序设计全文共128页,当前为第39页。通信内聚(CommunicationCohesion)
模块内所有处理元素都在同一个数据结构上的操作。在一个模块中,两个操作只是使用相同数据,而不存在其它任何联系时产生的。比如,在GetNameAndChangePhoneNumber()这个子程序中,如果Name和PhoneNumber是放在同一个用户记录中的,那么这个子程序就是通讯内聚性。软件制造工程程序设计全文共128页,当前为第40页。过程内聚(ProceduralCohesion)
使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。软件制造工程程序设计全文共128页,当前为第41页。时间内聚(ClassicalCohesion)
时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。软件制造工程程序设计全文共128页,当前为第42页。逻辑内聚(LogicalCohesion)
这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。软件制造工程程序设计全文共128页,当前为第43页。巧合内聚(CoincidentalCohesion)
巧合内聚(偶然内聚)。当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。软件制造工程程序设计全文共128页,当前为第44页。
事实上,确定内聚的精确级别是不必要的,重要的是尽量争取高内聚和识别低内聚。软件制造工程程序设计全文共128页,当前为第45页。模块化的设计原则
(1)改进软件结构提高模块独立性(2)模块规模应该适中(3)保持适当的扇入和扇出(4)模块的作用范围应在控制范围之内(5)力争降低模块接口的复杂程度(6)设计单入口单出口的模块(7)模块功能应该可以预测以上启发式规则多数是经验数据,对改进设计,提高软件质量,有重要的参考价值
模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第46页。例:若其中B、C、D之间存在内容耦合,可将它们合并为一个模块BCD,若E、F中有一个公共的子功能,可将该子功能独立成一个模块。ABCDEFABCDE′F′E′F′模块化设计的启发式原则(1)改进软件结构提高模块独立性软件制造工程程序设计全文共128页,当前为第47页。(2)模块规模应该适中经验表明,模块的规模要在一页以内,模块的总行数最好在30~60行,这种规模易于阅读和理解。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小模块太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销,不值得单独存在,可以把它合并到上级模块中去。由于种种原因如功能和用途的约束,一个模块可能会大于一页,要以不影响程序的清晰为前提。模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第48页。(3)保持适当的扇入和扇出一个模块的扇入表示有多少个模块直接调用它,一个模块的扇出表该模块控制的其它模块的数量,深度表示软件结构中控制的层数。经验表明,一个设计得好的典型系统平均扇出通常是3或4(扇出的上限通常是5~9)。模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第49页。(3)保持适当的扇入和扇出扇出扇入深度模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第50页。软件制造工程程序设计全文共128页,当前为第51页。(4)模块的作用范围应在控制范围之内一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第52页。(5)力争降低模块接口的复杂程度模块接口复杂是软件发生错误的一个主要原因,应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致(即看起来传递的数据之间没有联系)是低内聚的表现,应该重新分析这个模块的独立性。模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第53页。(6)设计单入口单出口的模块
不要使模块间出现内容耦合;从顶部进入模块并且从底部退出,软件比较容易理解,因此也比较容易维护。模块化设计的启发式原则软件制造工程程序设计全文共128页,当前为第54页。模块化设计的启发式原则(7)模块功能应该可以预测如果将一个模块看做黑盒子,就是说,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。软件制造工程程序设计全文共128页,当前为第55页。模块化设计的启发式原则(7)模块功能应该可以预测具有内部状态的模块,其输出不仅与输入有关,而且还取决于模块的当前状态,其功能是不可预测的,这就增加了模块的测试和维护难度,这条原则不是绝对的,如对于实时系统来说,针对不定时的输入,系统状态要不断发生变化,这种变化又直接影响下一个输入引起的输出。对于这种不可避免的情况,要引起充分注意,要将相应模块做特殊处理。无论测试还是维护都把模块状态作为一个重要影响因素来考虑软件制造工程程序设计全文共128页,当前为第56页。intcount(ints){intsum=0;for(inti=1;i<=s;i++){sum+=i;}returnsum;}此模块功能可以预测吗?Y软件制造工程程序设计全文共128页,当前为第57页。intcount(ints){staticintsum=0;for(inti=1;i<=s;i++){sum+=i;}returnsum;}此模块功能可以预测吗?N软件制造工程程序设计全文共128页,当前为第58页。结构化设计的基本思想是把需求和求解的方法分离,把相关信息(数据结构和算法)集中在一个模块中,和其它模块隔离,外界不能随便访问这个模块的内部信息,在这种模式中,程序设计的首要任务是划分模块,数据则隐蔽在模块中。程序设计方法_结构化方法软件制造工程程序设计全文共128页,当前为第59页。程序设计方法_结构化方法结构化程序设计的内容使用三种控制结构,有效地限制使用goto语句自顶向下,逐步求精的设计方法软件制造工程程序设计全文共128页,当前为第60页。程序设计方法_结构化方法fgcfgcf(c)(a)(b)I=?f1f2f3fn123n(d)fcT(e)软件制造工程程序设计全文共128页,当前为第61页。逐步细化的例子
例1
在一组数中找出其中的最大数解:第一步:1输入一组数2找出一个最大数3输出最大数第二步:2.1任取一个数,假设它是最大数2.2将该数与其余各数逐一比较;2.3若发现有任何大于该一假设的最大数,即取而代之第三步:1.1输入一个数组;2.1.1令“最大数”=数组的第一个元素;2.2.1从第二个元素至最末的一个元素依次做:2.3.1如果新元素>”最大数”则“最大数”=新元素;3.1输出“最大数”软件制造工程程序设计全文共128页,当前为第62页。自顶向下,逐步求精方法的优点符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查,验证程序正确性。软件制造工程程序设计全文共128页,当前为第63页。结构化程序设计工具流程图盒图(N-S图)问题分析图(PAD图)HIPO图判定表判定树过程设计语言
(PDL)软件制造工程程序设计全文共128页,当前为第64页。程序设计方法_结构化工具流程图处理用四方形图表示条件判断用菱形图表示用连接线把这些图形连接起来表示处理的流程
软件制造工程程序设计全文共128页,当前为第65页。程序流程图使用五种基本控制结构软件制造工程程序设计全文共128页,当前为第66页。例2
例1(在一组数中找出其中的最大数)的流程图MAX=A(1)J=2J<=N?MAX<A(J)MAX=A(J)J=J+1FFT入口出口软件制造工程程序设计全文共128页,当前为第67页。程序设计方法_结构化工具盒图(N-S图)
盒图是Nassi和Shneiderman提出来的,又称N-S图,没有箭头,不允许随意转移。在NS图中,每个“处理步骤”是用一个盒子表示的,所谓“处理步骤”可以是语句或语句序列。需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图在一页纸上能容纳得下,由于只能从上边进入盒子然后从下边走出,除此之外没有其他的入口和出口,所以,NS图限制了随意的控制转移,
保证了程序的良好结构。软件制造工程程序设计全文共128页,当前为第68页。盒图(N-S图)五种基本控制结构由五种图形构件表示。软件制造工程程序设计全文共128页,当前为第69页。例3
例1的N-S图MAX=A(1)FORJ=2TONMAX<A(J)TFMAX=A(J)软件制造工程程序设计全文共128页,当前为第70页。程序设计方法_结构化工具PAD图
PAD图是日本日立公司于1973年发明的,指问题分析图(ProblemAnalysisDiagram),它是一种自左往右展开的二维树型结构。
控制流程为自上而下、从左到右的执行。由机器自动通过走树的办法生成相应的源代码,大大提高了软件的生产率。软件制造工程程序设计全文共128页,当前为第71页。
PAD也设置了五种基本控制结构的图式,并允许递归使用。软件制造工程程序设计全文共128页,当前为第72页。程序设计方法_结构化工具
软件制造工程程序设计全文共128页,当前为第73页。程序设计方法_结构化工具例:1求A、B、C三个数中的最大值。软件制造工程程序设计全文共128页,当前为第74页。程序设计方法_结构化工具例:2猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?软件制造工程程序设计全文共128页,当前为第75页。程序设计方法_结构化工具例:2软件制造工程程序设计全文共128页,当前为第76页。程序设计方法_结构化工具HIPO图(层次图加输入/处理/输出图)
HIPO图由下面三部分组成:H(分层)图。即以方框形式表示程序的主要功能、次要功能及其与模块间的关系。总览IPO(Input-Process-Output)图。为H图提供输入变量表、处理功能表和输出变量表。详细IPO图。为底层模块提供输入变量表、处理功能表和输出变量表。
软件制造工程程序设计全文共128页,当前为第77页。程序设计方法_结构化工具HIPO图(层次图加输入/处理/输出图)
HIPO图是一种图解式设计工具。在概要设计、详细设计、程序设计、测试和维护的不同阶段,都可以使用HIPO图对设计进行描述
软件制造工程程序设计全文共128页,当前为第78页。例学生成绩管理系统的H图学生成绩管理系统1学生基本成绩登录2学生平均成绩计算3班级平均成绩计算4学生成绩表生成1.1初期处理1.2输入处理1.3删除软件制造工程程序设计全文共128页,当前为第79页。程序设计方法_结构化工具班级号、学号学生姓名语、数、外成绩输入显示处理DB存在检查处理输出DB显示处理显示处理输入数据检查DB登录学生基本成绩表班级号、学号学生姓名语、数、外成绩错误信息不存在存在正确不正确HIPO图(层次图加输入/处理/输出图)软件制造工程程序设计全文共128页,当前为第80页。程序设计方法_结构化工具判定表在许多软件设计中,常常需要设计一个模块,根据多种条件的复杂组合,选择执行相应的动作,这种设计过程用判定表表示比较合适。判定表可作为输入数据,被直接读入机器,由“表驱动”算法程序自动处理,判定表的第一行是规则号,每一列对应一条处理规则,它根据不同的条件组合选择执行相应的动作。为了能表示出总的控制流程,单单用这个工具是不行的,还需加上其他信息。通常,判定表可以有效地用来作为其他详细设计工具的补充。软件制造工程程序设计全文共128页,当前为第81页。程序设计方法_结构化工具判定表判定表采用以下步骤进行处理:列出与一个具体过程(或)有关的所有处理;列出过程执行期间的所有条件(或所有判断);将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合;将右部每一纵列规定为一个处理规则。软件制造工程程序设计全文共128页,当前为第82页。程序设计方法_结构化工具判定表举例1软件制造工程程序设计全文共128页,当前为第83页。程序设计方法_结构化工具判定表举例2
某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客每公斤收费比正常乘客少一半。软件制造工程程序设计全文共128页,当前为第84页。程序设计方法_结构化工具判定表举例2软件制造工程程序设计全文共128页,当前为第85页。程序设计方法_结构化工具判定树判定树是判定表的变种,能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的优点是:由于是一种图形表示,形式简单,不需任何说明,易看出含义,易于掌握和使用。缺点是:简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多。软件制造工程程序设计全文共128页,当前为第86页。程序设计方法_结构化工具判定树举例思考:将行李重量作为最后一个分支,将会是几片叶子
答案:16片叶子
软件制造工程程序设计全文共128页,当前为第87页。程序设计方法_结构化工具过程设计语言(PDL,ProcessDesignLanguage)是一个笼统的名字,由许多种不同的过程设计语言。过程设计语言用于描述模块中算法和加工的具体细节,以便在开发人员之间比较精确的进行交流。过程设计语言的外层语法描述结构,采用与一般编程语言类似的确定的关键字,内层语法描述操作,可以采用任意的自然语句(如:英语、汉语)由于过程设计语言与程序很相似,也称为伪程序,或伪码(PseudoCode)。但它仅仅是对算法的一种描述,是不可执行的。软件制造工程程序设计全文共128页,当前为第88页。程序设计方法_结构化工具过程设计语言(PDL)PDL的优点:(1)可以作为注释直接插在源程序中间。这样做能促使维护人员在修改程序代码的同时也相应地修改PDL注释,因此有助于保持文档和程序的一致性,提高了文档的质量。(2)可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。(3)已经有自动处理程序存在,而且可以自动由PDL生成程序代码。软件制造工程程序设计全文共128页,当前为第89页。程序设计方法_结构化工具过程设计语言(PDL)PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。
软件制造工程程序设计全文共128页,当前为第90页。例1的PDL描述:输入一个数组A;令MAX=A的第一个元素;DOFOR从A的第二个元素到最末的一个元素
IF这个元素的值>MAXthen
令MAX=这个元素的值;
ENDIFENDDO打印最大值MAX;
外层语法DOFOR-ENDDO,IF-THEN-ENDIF是确定的,内层语法是不确定的。软件制造工程程序设计全文共128页,当前为第91页。程序设计方法_结构化工具过程设计语言(PDL,ProcessDesignLanguage)例:统计空格seq打开文件读入字符串Totalsum=0程序体iteruntil文件结束……程序体end打印总数seq打印出空格总数打印总数end关闭文件停止统计空格end
顺序结构:AseqBlock1Block2Block3Aend选择结构:Aselectcond1Block1Aorcond2Block2Aorcond3Block3Aend重复结构:AiteruntilcondBlock1AendAiterwhilecondBlock1Aend
软件制造工程程序设计全文共128页,当前为第92页。程序设计方法_面向对象的程序设计面向对象的方法开始也只是着眼于编程,后来才形成了从分析、设计到编程、测试与维护一整套的软件工程体系,即产生了面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)软件制造工程程序设计全文共128页,当前为第93页。程序设计方法_面向对象的程序设计面向对象程序设计的特征面向对象的程序设计将计算看作是一个系统的开发过程,系统由对象组成,经历一连串的状态变化以完成计算任务。面向对象程序的基础构件是对象和类,从程序设计角度来看,对象是一种不信赖于外界的模块,对应着存储器的一块被划分的区域。它包含数据,在逻辑上包含作用于这些数据的过程,这些过程称为方法。
软件制造工程程序设计全文共128页,当前为第94页。程序设计方法_面向对象的程序设计面向对象程序设计的特征面向对象程序设计的基本机制是继承性、消息和方法,还有在特定方面提供更为专门的、灵活的机制,如重置、多态等。软件制造工程程序设计全文共128页,当前为第95页。程序设计方法_面向对象的程序设计结构化程序设计就是把内部设计中的功能模块的设计、功能模块间接口的设计、数据库的定义等详细化的设计过程。而面向对象开发时,在OOD阶段已把各个类直到接口(方法)都已定义,程序设计的对象就如同结构化程序设计一样就是进行类内部处理的详细化设计。软件制造工程程序设计全文共128页,当前为第96页。程序设计书的构成和理解《程序设计书主要内容》(交互式处理)○程序处理概要图○程序概要说明书○程序功能结构图○程序追加处理说明书○工作缓冲区格式定义表○模块功能定义书○模块功能定义书(补充)○输入数据检查处理说明书〈参照以下基本设计资料〉○屏幕设计说明书○报表/文件输出编辑说明书○DB设计说明书○共通处理设计说明书○公共子程序设计说明书程序设计书软件制造工程程序设计全文共128页,当前为第97页。程序设计书的构成和理解程序处理概要图是内部设计阶段的成果文档,是程序设计阶段的输入,他是程序设计书的重要内容,主要描述该程序单元的处理概要,输入输出文件和屏幕、报表的关连图,给出了与该程序相关的文件ID、文件名称、屏幕ID、名称、报表名称等。软件制造工程程序设计全文共128页,当前为第98页。程序设计书的构成和理解程序处理概要说明书也是内部设计阶段的成果文档,是程序设计阶段的输入,是程序设计书的重要内容,它对于程序处理概要图中的程序处理概要进行展开,给出了程序的各个功能模块的处理概要说明,小型的或简单的程序可以从程序功能概要说明书入手编写代码。软件制造工程程序设计全文共128页,当前为第99页。程序设计书的构成和理解程序功能结构图是程序设计阶段的成果文档,它是程序结构设计的图形结果,在开发周期短,程序设计时间不足的情况下,程序功能结构图可以省略。有程序功能结构图的情况下,要注意编写的程序结构是否实现了程序功能结构图的要求。软件制造工程程序设计全文共128页,当前为第100页。程序设计书的构成和理解程序追加处理说明书是在程序概要说明书的基础上,对程序设计阶段所增加的功能进行补充说明。在程序编码之前,一定要注意确认程序追加处理说明书的功能是否能够实现,有无设计上的问题或文字上的疏漏。软件制造工程程序设计全文共128页,当前为第101页。程序设计书的构成和理解
工作缓冲区格式定义表给出了程序中使用的主要工作缓冲区和变量的命名、类型、长度、初期值和编辑方法等说明。在理解工作缓冲区格式定义表中的各个变量的定义时,一定要对照相关的程序设计书的内容。软件制造工程程序设计全文共128页,当前为第102页。程序设计书的构成和理解
模块功能定义书是在程序处理概要说明书的基础上对于每个程序模块的实现方法进行了详细的说明,对于复杂的程序单元,一定要注意理解各个模块功能定义书的详细处理说明。对于程序设计阶段补充的功能模块和个别模块的补充功能,在模块功能定义书(补充)中给出了详细说明。软件制造工程程序设计全文共128页,当前为第103页。程序设计书的构成和理解
输入数据检查处理说明书主要说明屏幕输入项目的检查条件,所有登录到数据库的数据都必须通过屏幕输入检查处理,以保证用户数据的完整性和一致性。软件制造工程程序设计全文共128页,当前为第104页。DB/文件设计说明书是内部设计阶段的成果文档,是程序设计阶段的输入。主要描述该程序中所使用的数据库表/文件的存储格式和各字段名的变量定义。程序设计书的构成和理解软件制造工程程序设计全文共128页,当前为第105页。程序设计实例系统概要说明:本案例是一个学生成绩管理子系统。它包含学生基本成绩登录、学生平均成绩计算、班级平均成绩计算、学生成绩表生成等4个程序模块
软件制造工程程序设计全文共128页,当前为第106页。程序设计实例基本成绩登录画面学生成绩管理子系统学生基本成绩文件学生平均成绩计算(XSCJP001)学生基本成绩文件学生平均成绩文件学生成绩表生成(XSCJP003)班级平均成绩计算(XSCJP002)学生基本成绩文件班级平均成绩文件学生平均成绩文件学生基本成绩文件学生成绩表文件学生基本成绩登录(XSCJP000)软件制造工程程序设计全文共128页,当前为第107页。程序设计实例开发准备确认基本/详细设计的成果物;制定工作计划,作出开发计划中日程表和开发计划小日程表;确立开发体制(开发人员的构成和组织体制);检查所制定的工作计划和工作内容软件制造工程程序设计全文共128页,当前为第108页。程序设计实例程序设计“学生成绩管理系统流程图”的处理要求,该系统由四个处理模块构成,它们是:①学生基本成绩登录;②学生平均成绩计算;③班级平均成绩计算;④学生成绩表生成。
软件制造工程程序设计全文共128页,当前为第109页。学生基本成绩登录的程序设计书①程序处理概要图:说明学生基本成绩登录处理的目的和处理概要;(详见工作用表D3.1.1)②程序处理概要说明书:说明学生基本成绩登录处理时的初期处理设计,数据登录处理要求和登录结束处理要求;(详见工作表D3.1.2)③程序功能结构图:描述学生基本成绩登录处理的处理逻辑;(详见工作用表D3.1.3)④模块功能定义书:描述在“保存”按钮按下时的基本处理功能和在“取消”按钮按下时的基本处理功能;(详见工作用表D3.1.4)软件制造工程程序设计全文共128页,当前为第110页。⑤模块功能定义书(补充):进一步补充输入数据编辑方法的处理功能;(详见工作用表D3.1.5);⑥输入数据检查说明书:详细说明输入数据的检查内容及处理要求,以保证输入数据的合法性和有效性;(详见工作用表D3.1.6)⑦窗体设计说明书:这是面向用户的实际窗显示设计。(详见工作用表D3.1.7和D3.1.8)⑧数据库/文件格式定义表:学生基本成绩表的文件结构定义(详见工作用表D3.1.10)软件制造工程程序设计全文共128页,当前为第111页。团队开发与协作团队的含义构成团队的重要要素团队与群体团队的类型软件团队的组织形式软件制造工程程序设计全文共128页,当前为第112页。团队团队的含义:
团队是由员工和管理人员组成的一个共同体,该共同体合理利用每一个成员的知识和技能协同工作,解决问题,达到共同的目标软件制造工程程序设计全文共128页,当前为第113页。团队构成团队的重要要素目标(知道要向何处去)
人(人员的能力如何,技能是否互补,人员的经验如何)团队的定位(团队在企业中处于什么位置,由谁选择和决定团队的成员,团队最终应对谁负责,团队采取什么方式激励下属;作为成员在团队中扮演什么角色?是订计划还是具体实施或评估
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个性化定制哺乳期离婚财产分割及子女抚养协议
- 髋臼股骨撞击症课件
- 书中故事:故事情节和人物给我的启示
- 公司员工休假要求
- 职业教育学习环境改善方案
- 农学中的农村环境卫生管理政策实施实况调研
- 购物中心O2O电子商务平台设计与实现
- 职业教育实践教学总结
- 领导者团队管理技能授课
- 2025浙江金华市城投集团选聘中层管理人员拟聘(第一批)笔试历年参考题库附带答案详解
- 2025年时事政治考试116题及参考答案
- 工伤认定申请证人证言模板
- 红细胞检验的临床应用
- 2024届江西省南昌市高三上学期零模物理试题【含答案解析】
- 南京理工大学介绍课件模板
- 高中物理听评课记录表
- 2025届天津市春季高考升学考试全真模拟试卷(一)英语(无答案)
- 电磁感应现象及应用课件
- 桥门式起重机吊装作业应急预案
- 甲油胶行业报告
- 《基于模型的系统工程(MBSE)及MWORKS实践》全套教学课件
评论
0/150
提交评论