版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传统软件工程方法李宣东南京大学计算机科学与技术系主要内容传统软件工程方法面向对象软件工程(统一建模语言UML)软件过程、管理与质量传统软件工程方法问题定义需求分析概要设计详细设计编码测试维护基本概念软件计算机系统中的程序及其有关文件。程序计算任务中的处理对象和处理规则的描述。文件为了便于了解程序所需的资料说明。基本概念软件的作用用户与硬件的接口计算机系统的指挥者计算机系统结构设计的重要依据基本概念软件的发展过程第一阶段:从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现之前(1946-1956);第二阶段:从实用的高级程序设计语言出现到软件工程出现之前(1956-1968);第三阶段:软件工程(1968-)。基本概念软件的分类:系统软件支撑软件应用软件基本概念软件危机供求关系失调开发费用失控,进度拖延可靠性差难以维护基本概念产生软件危机的原因(软件本身的特点)软件开发进展情况较难衡量软件开发质量难以评价管理和控制软件开发过程相当困难软件没有“磨损”概念,软件维护通常意味着该进或修改原来的设计基本概念产生软件危机的原因(软件开发人员的错误观点)“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”“所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”基本概念念软件工程程应用计算算机科学学、数学学及管理理科学等等原理,,以工程程化原则则、方法法解决软软件问题题的工程程。其中中,计算算机科学学、数学学用于构构造模型型与算法法,工程程科学用用于制定定规范、、设计范范型、降降低成本本及确定定权衡,,管理科科学用于于计划、、资源、、质量、、成本等等管理。。基本概念念软件工程程的基本本内容::软件设计计方法论论软件工具具软件工程程标准和和规范软件工程程管理软件工程程理论基本概念念软件工程程的基本本原理::严格按照照计划进进行管理理坚持进行行阶段评评审实行严格格的产品品控制采用现代代的程序序技术结果要能能清晰地地审计开发小组组人员素素质要好好,数量量不宜多多要承认不不断改善善软件工工程实践践的必要要性基本概念念软件生存存期(过过程)模模型:软件生存存期是软软件产品品或系统统一系列列相关活活动的全全周期。。从形成成概念开开始,经经过研制制,交付付使用,,在使用用中不断断增补修修订,直直到最后后被淘汰汰,让位位于新的的软件产产品的过过程。对对软件生生存期的的不同划划分,形形成了不不同的软软件生存存期模型型。基本概念念瀑布式软软件生存存期模型型强调阶段段的划分分及其顺序序性、各各阶段工工作及其文档档的完备备性,是是一种严严格线性性的、按阶段顺顺序的、、逐步细细化的开开发模式式。定义分析设计编码测试维护基本概念念瀑布式软软件生存存期模型型把软件件开发过过程划分分成若干干阶段,,每个阶阶段的任任务相对对独立,,便于不不同人员员分工协协作,从从而降低低了整个个软件开开发工程程的困难难程度。。在软件件生存期期的每个个阶段都都采用科科学的管管理技术术和良好好的方法法与技术术,而且且每个阶阶段结束束之前,,都从技技术和管管理两个个角度进进行严格格的审查查,经确确认之后后才开始始下一阶阶段的工工作。基本概念念瀑布式模模型的特特点:结构简单单明了;;历史较较长、应应用面广广泛、为为广大软软件工作作者所熟熟悉;已已有与之之配套的的一组十十分成熟熟的开发发方法和和丰富的的支撑工工具。确定了需需求分析析的绝对对重要性性,但是是在实践践中要想想获得完完善的需需求说明明是非常常困难的的;反馈馈信息慢慢。基本概念念软件质量量要素::正确性::软件产产品准确确执行软软件规格格说明中中所规定定的能力力。健壮性::在异常常条件下下软件仍仍能运行行的能力力。可靠性::软件在在给定的的时间内内和规定定的环境境条件下下,按规规格说明明的规定定成功地地运行的的概率。。可靠性性理解为为正确性性和健壮壮性之和和。问题定义义问题定义义的关键键任务是是确切地地定义用用户要求求解决的的问题,,也就是是确定问问题的性性质、工工程的目目标和规规模。可行性研研究对软件进进行分析析与估算算确定软件件作用范范围问题定义义可行性研研究:经济可行行性技术可行行性法律可行行性不同的方方案问题定义义对软件进进行分析析与估算算:确定软件件的范围围估算完成成软件开开发任务务所需的的资源估算软件件的成本本估算和安安排软件件开发项项目的进进度问题定义义确定软件件的作用用范围::详细描述述软件的的任务和和具体的的要求,,抱括软软件的功功能、性性能、接接口和可可靠性等等四个方方面的内内容。问题定义义软件计划划:范围(研研制的目目标,主主要功能能,其他他特性,,开发概概况)资源(人人力资源源、硬件件资源、、软件资资源、可可用性资资源窗口口)成本进度安排排需求分析析软件需求求分析是是软件生生存期的的一个重重要阶段段,是软软件开发发项目得得以成功功的基础础。其最最根本的的任务是是确定为为了满足足用户的的需要软软件系统统必须做做什么。。软件需求求分析是是一个不不断发现现和决定定的过程程,在此此过程中中,软件件开发者者和软件件申请者者(用户户)同样样起着重重要的作作用。在需求分分析与说说明过程程中,需需要大量量交换意意见,其其间充满满着传错错信息和和发生误误解的可可能性::“我知道道你相信信你明白白了你认认为我所所说的是是什么,,但是我我不能肯肯定你是是否意识识到你听听到的并并不是我我所指的的意思......”。需求分析析软件需求求分析实实现以下下几个目目标:给出软件件系统的的数据流流程图与与数据结结构,构构造一个个完全的的系统逻逻辑模型型;提出详细细的功能能说明确确定设计计限定条条件,规规定性能能要求;;密切与用用户的联联系,使使用户明明确自己己的任务务,以便便实现上上述两项项目标。。需求分析析软件需求求分析包包括的工工作:问题的认认识需求分析析人员通通过频繁繁与用户户联系,,充分理理解用户户提出的的每一个个功能与与性能要要求,从从软件系系统特征征、软件件开发全全过程以以及软件件计划给给出的资资源和时时间约束束,来确确定软件件开发的的总策略略。评价与综合需求分析人员员必须求得数数据的流程和和数据结构,,评价优缺点点;结合用户户要求,修改改现行的系统统,提出新系系统的功能,,加以细化;;提出软件的的约束条件、、响应时间、、存储条件等等。需求分析软件需求分析析包括的工作作:建立需求说明明书软件需求说明明书包含软件件功能、性能能、接口、有有效性和逻辑辑模型的描述述。为了证实实软件能否被被成功实现就就要规定相应应的检验标准准,这些标准准在软件开发发期间将作为为测试的依据据。复审由软件开发人人员和用户共共同对需求说说明书进行严严格的审查。。需求分析软件需求分析析人员应该具具备的特征::善于领会一些些抽象的概念念,重新整理理使之成为各各种逻辑成分分,并根据各各种逻辑成分分综合出问题题的解决办法法;善于从各种相相互冲突或混混淆的原始资资料中吸取恰恰当的论据;;能够理解用户户的环境及领领域知识;需求分析软件需求分析析人员应该具具备的特征::具备把系统的的硬件和软件件部分应用于于用户环境的的能力;具备良好的书书面和口头形形式进行讨论论和交换意见见的能力;具有“既能看看到树木,又又能看到森林林”的能力。。需求分析基本系统模型型:软件系统的全全部功能被表表示成一个单单一的信息变变换过程:软件系统输入1输入2输入n输出n输出2输出1......需求分析需求分析信息信息流程信息结构出来的是什么么进去的是什么么中间如何变换换单个元件是什什么怎样把它们安安置在一起一组元件合在在一起分类各组元件之间间的关系需求分析结构化分析方方法(SA))SA方法采用用“抽象”和和“分解”两两个基本手段段,用抽象模模型的概念,,按照软件内内部数据传递递、变换关系系,由顶向下下逐层分解,,直到找到满满足功能需要要的所有可实实现的软件元元素为止。SA方法采用用“分解”的的方式来理解解一个复杂系系统,“分解解”需要有描描述手段,数数据流程图就就是作为描述述信息流程和和分解的手段段而引入的。。需求分析数据流程图::表示外部实体体,代表数据据源和数据池池。表示加工,代代表接收输入入,经过变换换,继而产生生输出的处理理过程。表示数据流,,代表数据的的流向和路径径。表示数据存储储,代表系统统加工的数据据所存储的地地方。需求分析数据流程图的的特点:可以表示任何何一个系统((人工的、自自动的、或混混合的)中的的数据流程;;每个表示加工工的圆圈可能能需要进一步步分解以求得得对问题的全全面理解;着重强调的是是数据流程而而不是控制流流程。需求分析例:病员监视视系统病员监视系统病员护士护士病员病病历基本模模型病情信信号报告警告信信号病历数数据请求提提出报报告需求分分析本地监视中央监视报告产生更新病历护士护士病员病员病病历病员的的病情情界限限警告信信号病员数数据请求报报告经过整整理后后的病病员数数据病情信信号需求分分析分解解病情情信信号号整理理病病员员数据据检查查是是否超超出出界限限产生生警警告告信号号时钟钟整理理后后的的病病员员数据据日期期时时间间病员员病病情情界界限限体温温血压压脉搏搏病员员数数据据警告告信信号号需求求分分析析推导导数数据据流流程程图图的的简简单单准准则则::第一一层层数数据据流流程程图图应应当当是是基基本本的的系系统统模模型型;;应当当仔仔细细说说明明原原始始的的输输入入/输输出出文文件件;;所有有箭箭头头和和圆圆圈圈均均应应当当加加上上标标注注((使使用用有有意意义义的的名名字字));;必须保持持信息的的连续性性;每次只加加工一个个圆圈。。需求分析析数据字典典数据流程程图中,,所有的的图形元元素都进进行了命命名,所所有名字字的定义义集中起起来就构构成一本本数据字字典。数据字字典最最重要要的用用途是是作为为分析析阶段段的工工具。。在数数据字字典中中建立立的一一组严严密一一致的的定义义有助助于改改进分分析员员和用用户之之间的的通信信,因因此将将消除除许多多可能能的误误解。。对数数据的的这一一系列列严密密一致致的定定义也也有助助于改改进在在不同同的开开发人人员之之间或或者不不同开开发小小组之之间的的通信信。如如果要要求所所有开开发人人员都都根据据公共共的数数据字字典描描述数数据或或设计计模块块,则则能避避免许许多麻麻烦的的接口口问题题。需求分分析信息结结构信息结结构是是各个个数据据成分分之间间逻辑辑关系系的一一种表表示方方法。。数据结结构决决定信信息的的组织织、存存取方方法、、结合合性程程度以以及不不同的的处理理方案案。典型的的数据据结构构包括括标量量项、、顺序序向量量、n维空空间、、链接接表等等。需求分分析分层数数据结结构表表示法法:分层框框图Warnier图需求分分析分层框框图分层框框图把把信息息用多多层方方框按按照树树形结结构组组织起起来。。在结结构的的顶层层,用用一个个方框框代表表整个个结构构。下下面各各层由由表示示不同同信息息类别别的方方框组组成,,它们们可以以看成成是上上一层层方框框的子子集。。在该该图的的最低低一层层,每每个框框包含含单独独的数数据实实体。。需求分分析XX公公司销销售产产品计算机机软件件计算机机服务务计算机机硬件件存储器器备件处理机机应用系统软件服服务培训操作系系统编译程程序工具编辑程序测试驱驱动程序序设计辅辅助工具具............................需求分分析Warnier图Warnier图把把信息表示示成一种树树形数据结结构。可以以规定某些些信息种类类或信息量量是重复性性的,也可可以说明在在某一种类类中信息是是有条件出出现的。需求分析计算机系统统系统软件应用软件操作系统((P1)编译程序((P2)工具具编辑辑(P3)测试驱动((P4)设计辅助((P5)需求分析软件需求说说明书1.概述述2.信息息描述(1)数数据流程图图(2)数数据字典(3)数数据结构(4)系系统接口说说明(5)内内部接口需求分析软件需求说说明书3.功能能说明(1)功功能(2)处处理说明(3)设计的限制制4.检验验标准(1)性性能界限(2)测测试种类(3)预预期的软件件响应(4)应应考虑的特特殊问题5.参考考文献6.附录录需求分析初步的用户户手册当确定了人人机交互作作用的软件件需求后,,准备一份份初步的用用户手册是是作为对所所要求文件件的补充往往往是有用用的,这种种手册将起起到两个作作用:手册的准备备迫使分析析人员从用用户的角度度来看待软软件,从而而及早考虑虑接口方面面的人机环环境工程。。用户可以审审查一个明明确描述人人机接口的的实际文件件。需求分析软件需求说说明的审查查审查需求的的一致性审查需求的的现实性审查需求的的完整性和和有效性需求分析软件需求说说明审查中中的问题::所规定的软软件目标和和任务与系系统的目标标和任务相相符合吗??与所有系统统成分的重重要接口都都已被描述述了吗?研制项目的的数据流程程图、数据据字典、数数据结构充充分确定了了吗?图表都清楚楚吗?每个个图表在不不加补充说说明的情况况下能被理理解吗?主要功能在在规定的范范围之内吗吗?每一种种功能被充充分说明了了吗?需求分析软件需求说说明审查中中的问题::设计的限制制条件是现现实的吗??开发的技术术风险是什什么?考虑过软件件需求的其其他方案吗吗?检验标准是是否详细??他们能否否确认系统统是成功的的?有无遗漏、、重复或不不一致的地地方?用户是否审审查了初步步的用户手手册?软件计划中中的估算是是否需要修修改?需求分析用于软件需需求分析的的工具概要设计软件设计是是把软件需需求变为软软件的具体体方案软件设计包包括两个阶阶段:概要要设计和详详细设计概要设计根根据软件需需求所确定定的信息流流程或信息息结构,导导出软件的的总体表示示----软件结构构或程序过过程概要设计软件结构:软件结构是是一种层次次化的表示示,其指出出了由需求求分析隐含含地确定的的某一问题题的软件解解法的各个个元素(称称之为模块块)之间的的相互控制制关系软件结构的的演变从确确定问题开开始,当该该问题的每每个部分用用一个或多多个软件加加以解决以以后,整个个问题的解解也就有了了概要设计P3P1P2P4P5S1S2S3S4S5概要设计软件结构的的度量和术术语:深度:表示示控制的层层数。宽度:表示示控制(同同一层次))总跨度。。扇出数:指由由一模块直接接控制的其他他模块的数目目。扇入数:指有有多少个模块块直接控制一一个给定的模模块。上级模块下级模块概要设计程序过程:程序过程是用用于描述每个个模块的操作作细节,是关关于模块算法法的详细描述述,它应当包包括处理的顺顺序、精确的的判定位置、、重复的操作作以及数据组组织和结构等等。概要设计模块:模块是数据说说明、可执行行语句等程序序对象的集合合,是单独命命名的并且可可以通过名字字来访问,例例如过程、函函数、子程序序、宏、modula等。概要设计模块化:软件被划分成成独立命名和和可独立访问问的被称作模模块的构件,,每个模块完完成一个子功功能,它们集集成到一起满满足问题需求求。概要设计模块化论据::C(x)定义义为问题x的的感知复杂性性E(x)定义义为解决问题题x所需要的的工作量对p1和p2两个问题,,若C(p1)>C(p2),,则E(p1)>E(p2)C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)概要设计软件总成本集成成本成本/模块模块数量成本或工作量量最小成本区域域M概要设计实现模块化的的手段:抽象:抽出事事物的本质特特性而暂时不不考虑它们的的细节。信息隐蔽:应应该这样设计计和确定模块块,使得一个个模块内包含含的信息(过过程和数据))对于不需要要这些信息的的模块来说,,是不可访问问的。概要要设设计计模块块独独立立性性::模块块独独立立是是指指开开发发具具有有独独立立功功能能而而且且和和其其它它模模块块之之间间没没有有过过多多的的相相互互作作用用的的模模块块。。模块块独独立立的的意意义义::功能能分分割割,,简简化化接接口口,,易易于于多多人人合合作作开开发发同同一一软软件件;;独立的模模块易于于测试和和维护。。概要设计计模块独立立程度的的衡量标标准:耦合性::对一个个软件结结构内不不同模块块间互连连程度的的度量。。内聚性::标志一一个模块块内各个个处理元元素彼此此结合的的紧密程程度,理理想的内内聚模块块只做一一件事情情。概要设计计耦合分类类:无任何连连接:两两个模块块中的每每一个都都能独立立地工作作而不需需要另一一个的存存在(最最低耦合合)。数据耦合合:两个个模块彼彼此通过过参数交交换信息息,且交交换的仅仅仅是数数据(低低耦合))。控制耦合合:两个个模块之之间传递递的信息息有控制制成分((中耦合合)。概要设计计耦合分类类:公共环境境耦合::两个或或多个模模块通过过一个公公共环境境相互作作用:1.一一个个存数数据,,一个个取数数据((低耦耦合));2.都都存存取数数据((低--中中之间间)。。内容耦耦合::1.一一个个模块块访问问另一一个模模块的的内部部数据据;2.两两个个模块块有一一部分分程序序代码码重叠叠;3.一一个个模块块不通通过正正常入入口而而转移移的另另一个个的内内部;;4.一一个个模块块有多多个入入口((意味味着该该模块块有多多个功功能))。概要设设计内聚分分类::偶然内内聚::一组组任务务关系系松散散(低低)逻辑内内聚::一组组任务务在逻逻辑上上同属属一类类,例例如均均为输输出((低))时间内内聚::一组组任务务必须须在同同一段段时间间内执执行((低))概要设设计内聚分分类::信息内内聚::模块块内所所有元元素都都引用用相同同的输输入或或输出出数据据集合合(中中)顺序内内聚::模块块中的的每个个元素素都是是与同同一功功能紧紧密相相关,,一个个元素素的输输出是是下一一个元元素的的输入入(高高)功能内内聚::一个个模块块完成成一个个且仅仅完成成一个个功能能(高高)概要设设计关于耦耦合性性和内内聚性性的设设计原原则::力争尽尽可能能弱的的耦合合性::尽量量使用用数据据耦合合,少少用控控制耦耦合,,限制制公共共环境境耦合合的范范围,,完全全不用用内容容耦合合力争尽尽可能能高的的内聚聚性::力争争尽可可能高高的内内聚性性,并并能识识别出出低内内聚性性概要设设计概要设设计的的启发发式准准则::改进软软件结结构,,提高高模块块独立立性模块规规模应应该适适中((最好好能写写在一一页纸纸上))大模块块分解解不充充分;;小模模块使使用开开销大大,接接口复复杂。。尽量减减少高高扇出出结构构的数数目,,随着着深度度的增增加争争取更更多的的扇入入扇出过过大意意味着着模块块过分分复杂杂,需需要控控制和和协调调过多多的下下级模模块。。一般般来说说,顶顶层扇扇出高高,中中间扇扇出少少,低低层高高扇入入。概要设设计概要设设计的的启发发式准准则::模块的作用用范围保持持在该模块块的控制范范围内模块的作用用范围是指指该模块中中一个判断断所影响的的所有其它它模块;模模块的控制制范围指该该模块本身身以及所有有直接或间间接从属于于它的模块块。力争降低模模块接口的的复杂程度度模块接口的的复杂性是是引起软件件错误的一一个主要原原因。接口口设计应该该使得信息息传递简单单并且与模模块的功能能一致。概要设计概要设计的的启发式准准则:设计单入口口单出口的的模块避免内容耦耦合,易于于理解和维维护。模块的功能能应该可以以预测相同的输入入应该有相相同的输出出,否则难难以理解、、测试和维维护。概要设计设计方法::逐步精化----自自顶向下设设计方法结构化程序序设计结构化程序序设计的基基础建立在在三种能够够构成结构构化程序的的逻辑构造造(顺序,,选择,重重复)上。。面向数据的的设计方法法面向数据流流的设计面向数据结结构的设计计面向对象象的设计计方法概要设计计面向数据据流的设设计:面向数据据流的设设计方法法把信息息流映射射成软件件结构信息流的的类型决决定了映映射的方方法信息流有有两种类类型:变换流事务流概要设计计变换流::信息沿输输入通路路进入系系统,同同时由外外部形式式变换成成内部形形式。进进入系统统的信息息通过变变换中心心,经过过加工处处理以后后再沿着着输出通通路变换换成外部部形式离离开系统统。概要设计计信息外部表示示内部表示示时间输入流输出流变换中心心概要设计计事务流::事务流的的特点是是数据沿沿着接收收通路把把外部世世界的信信息转换换成一个个事务项项,然后后,计算算该事务务项的值值,根据据它的值值激励起起多条活活动通路路中的一一条数据据流。发发出多条条通路的的信息流流中枢被被称为““事务中中心”。。概要设计计T事务事务中心心活动通路路概要设计计变换型分分析第1步复复查基基本系统统模型。。第2步复复查并并精化数数据流图图。第3步确确定数数据流图图具有变变换特性性还是事事务特性性。第4步确确定输输入流和和输出流流的边界界,从而而孤立出出变换中中心。概要设计计变换型分分析第5步完完成““第一级级分解””。软件结构构代表对对控制的的自顶向向下的分分配,所所谓分解解就是分分配控制制的过程程。对于变换流,,数据图将被被映射成一个个特殊的软件件结构,这个个结构控制输输入、变换和和输出信息等等处理过程::位于软件结结构最顶层的的控制模块Cm协调下述从属属的控制功能能:(1)输入信信息处理控制制模块Ca,,协调对所有有输入数据的的接收;(2)变换中中心控制模块块Ct,管理理对内部形式式的数据的所所有操作;(3)输出信信息控制模块块Ce,协调调输出信息的的产生过程。。概要设计CmCtCaCe概要设计变换型分析第6步完完成“第第二级分解””。把数据流图中中的每一个处处理映射成软软件结构中一一个适当的模模块:从变换换中心的边界界开始沿着输输入通路向外外移动,把输输入通路中每每个处理映射射成软件结构构中Ca控制制下的一个低低层模块;然然后沿输出通通路向外移动动,把输出通通路中每个处处理映射成直直接或间接受受Ce控制的的一个低层模模块;最后把把变换中心内内的每个处理理映射成受Ct控制的一一个模块。第7步使使用设计计度量和启发发式规则对得得到的软件结结构进一步精精化。概要设计BCDACmCaBCAD概要设计事务型分析第1步复复查基本本系统模型。。第2步复复查并精精化数据流图图。第3步确确定数据据流图具有变变换特性还是是事务特性。。第4步确确定事务务中心和每个个活动通路的的流程特征。。概要设计事务型分析第5步把把数据流流图映射成一一个适合于事事务处理的软软件结构。第6步对对事务中中心的结构和和每个活动通通路的结构进进行分解、合合并和改进。。第7步使使用设计计度量和启发发式规则对得得到的软件结结构进一步精精化。概要设计DGFE总控E调度DGA-CTLB-CTLC-CTLF接收通路C通路B通路A通路概要设计面向数据结构构的设计:面向数据结构构的设计方法法用信息结构构导出程序过过程面向数据结构构的设计过程程分为如下几几步:(1)分析数数据结构的特特性;(2)用一些些基本类型((如:顺序,,选择和重复复)来描述数数据;(3)把数据据结构表示映映射成软件的的控制层次;;(4)利用一一组规则改进进软件的层次次结构;(5)最后得得到软件的过过程性描述。。概要设计Jackson方法Jackson方法的精精髓在于:应应该把问题分分解成仅用三三种结构化形形式(顺序,,选择和重复复)来表示的的层次结构。。Jackson方法包括括一种数据结结构符号和一一组映射或转转换步骤。概要设计Jackson图(数据据结构符号)):AAAC#D#B*CDB#B顺序重复选择AseqdoB;doC;doD;AendAiterdoB;AendAselectdoB;AordoC;AordoD;Aend概要设设计Jackson图的的特点点:便于表表示层层次结结构,,而且且是对对结构构进行行自顶顶向下下分解解的有有力工工具;;形象象直直观观,,可可读读性性好好;;既能能表表示示数数据据结结构构,,又又能能表表示示程程序序结结构构。。概要要设设计计建立立程程序序结结构构例1::设设计计一一个个打打印印表表格格的的程程序序。。表表格格如如下下::姓名名年龄类别状态这里类别别可以是是“教师师”或““学生””两种。。“状态态”一项项,如果果是教师则则印出他他的“工工龄”,,如果是是学生则则印出他他的年级级。概要设计计表格表头表体行*姓名年龄类别状态工龄年级概要设计计产生表格格产生表头头产生表体体产生行*产生工龄龄#产生年级级#产生姓名名产生年龄龄产生类别别产生状态态概要设计计建立程序序结构例2:仓仓库中存存放了多多种零件件,每种种零件的的每次变变动(收收到或发发出)都都有一张张卡片作作出记录录,库存存管理系系统每月月要根据据这些卡卡片打印印一张月月报表,,列出各各种零件件在这个个月中库库存量的的净变化化。概要设计零件组*卡片*发#收#月报表表头表体行*输入文件概要设计根据输入文件件产生月报表表产生表头产生表体从零件组产生生行*处理文件产生行处理卡片*处理发#处理收#概要设计Jackson方法的基基本步骤:(1)分析并并确定输入数数据和输出数数据的逻辑结结构,并用Jackson图描述这这些数据结构构;(2)找出输输入数据和输输出数据结构构中有对应关关系的数据单单元。所谓对对应关系是指指有直接的因因果关系,在在程序中可以以同时处理的的数据单元((对于重复出出现的数据单单元必须重复复的次数相同同才可能有对对应关系);;概要设计Jackson方法的基基本步骤:(3)用下述述三条规则从从描述数据结结构的Jackson图导出描述程程序结构的Jackson图:第一,为每对对有对应关系系的数据单元元,按照它们们在数据结构构图中的层次次在程序结构构图的相应层层次画一个处处理框(注意意,若这对数数据单元在输输入数据结构构和输出数据据结构中所处处的层次不同同,则和它们们对应的处理理框在程序结结构图中所处处的层次与它它们之中在数数据结构图中中层次低的那那个对应);;第二,根据输输入数据结构构中剩余的每每个数据单元元所处的层次次,在程序结结构图中的相相应层次分别别为它们画上上对应的处理理框;第三,根据输输出数据结构构中剩余的每每个数据单元元所处的层次次,在程序结结构图中的相相应层次分别别为它们画上上对应的处理理框。概要设计Jackson方法法的基本步步骤:(4)列出出所有操作作和条件((包括分支支条件和循循环结束条条件),并并且把它们们分配到程程序结构图图的适当位位置。(5)用伪伪码标示程程序。概要设计例:输入一一个文件FIPT,,此文件只只包含三种种记录类型型T1、T2和T3,现在要要对该文件件作如下处处理:(1)统计计出现的第第一个T1类型的记记录前的记记录总数((计数A));(2)显示示第一个T1类型的的记录;(3)显示示最后一个个记录,最最后一个记记录是在第第一个T1类型的记记录后的第第一个T2类型的记记录;(4)计算算第一个T1类型的的记录后的的记录批数数(一批记记录指一串串连续的T1类型的的记录或一一串连续的的T3类型型的记录(((计数B);(5)统计计在第一个个T1类型型的记录后后出现的T1类型记记录的总数数(计数C));(6)计算算在第一个个T1类型型的记录后后的T3类类型记录的的批数(计计数D)。。概要设计FIPT前缀批数数部部分分T2非T1*批*T1批批#T3批批#T1*T3*第一一个个T1概要要设设计计处理理FIPT处理理前缀缀处理理批数数部部分分处理理T2处理理非T1*处理理批*处理理T1批批#处理理T3批批#处理理T1*处理理T3*处理理第第一一个T1概要要设设计计列出出所所有有的的操操作作::(1))CA::=0((2))CB::=0((3))CC::=0((4))CD::=0(5))CA::=CA+1((6))CB::=CB+1((7))CC::=CC+1(8))CD::=CD+1((9))显显示示第第一一个个T1记记录录(10))显显示示最最后后一一个个T1记记录录(11))显显示示所所有有计计数数器器的的内内容容(12))打打开开FIPT文文件件(13)关闭闭FIPT文文件(14)终止止运行(15)读FIPT文件件记录概要设计处理FIPT12151处理前缀处理非T1*处理第一个T1234批数部分处理T2111314处理批*处理批部分51015915515处理T1批#处理T3批#处理T1*处理T3体处理T3*315715概要设计设计方法比较较:没有一种方法法能够适用于于所有的应用用领域;设计“优劣程程度”的评定定标准,大都都建立在不可可证明的假设设的基础之上上;“设计”首先先是解决问题题的活动,而而解决问题的的过程和办法法是因人而异异的;方法是重要的的,但只有在在支撑环境中中运用它们才才能得到成功功。详细设计详细设计是给给出软件结构构中各模块的的内部过程描描述模块的内部过过程描述也就就是模块内部部的算法设计计详细设计也既既是要导出一一种算法设计计表示,由此此可以直接而而简单地导出出程序代码详细设计详细设计的逻逻辑基础:使用结构化构构造(即用顺顺序、选择和和重复三种程程序结构)表表示程序过程程,降低程序序的复杂性,,从而提高可可靠性、易测测试性和易维维护性。详细设计详细设计工具具对软件开发人人员来说,提提高软件开发发效率对软件测试和和维护人员来来说,提供摆摆脱繁琐的程程序代码,了了解模块程序序结构的途径径详细设计详细设计工具具:图形工具将过程细节用用图来表示,,在图中,逻逻辑结构用具具体的图形表表示列表工具利用表来表示示过程细节,,表列出了各各种操作和相相应的条件语言工具用类语言(伪伪码)表示过过程的细节,,很接近编程程语言详细设计图形工具:流程图方块图PAD图详细设计流程图方框表示处理理步菱形表示逻辑辑判断箭头表示控制制流注意:用流程程图表示过程程细节时,要要注意不要乱乱用箭头,否否则会使结构构不清晰详细设计S1C4C5C3C2C1S2S3S4S5NYNYNNNYYY详细设计流程图的主要要缺点:流程图本质上上不是逐步求求精的好工具具,它诱使程程序员过早地地考虑程序的的控制流程,,而不去考虑虑程序的全局局结构。流程图中用箭箭头代表控制制流,因此程程序员不受任任何约束,可可以完全不顾顾结构程序设设计的精神,,随意转移控控制。流程图不易表表示数据结构构。详细设计方块图(N-S图)研制方块图的的目的是:既既要制定一种种图形工具,,又不允许它它违反结构化化原则。方块图具有以以下特点:(1)功能域域(即某一具具体构造的功功能范围)有有明确的规定定,并且很只只观地从图形形表示中看出出来;(2)想随意意分支或转移移是不可能的的;(3)局部数数据和全程数数据的作用域域可以很容易易确定;(4)容易表表示出递归结结构。详细设计第一个任务第二个任务第三个任务条件FTELSE部分THEN部分CASE条件件值1值2…...值nCASE1部分A循环条件Do-While部分Do-Until部分循环条件调用子程序A循环顺序IF-THEN-ELSE分支CASE分支支详细设计C1C4C5NYS1S4S2S3S5NNYYC2C3详细设计PAD图(ProblemAnalysisDiagram)P1P2P2P1PnP2P1...X=L1L2LnC顺序选择CASE型选选择详细设计WHILECUNTILCPP循环语句标号定义def详细设计P1P3P2P5P4P2P6P10P8UNTILC3P7UNTILC2P9defCC1详细设计WHILEC1UNTILC4S5S3S1S2S4C2C3C5详细设计PAD图的特特点:使用表示结构构化控制结构构的PAD符符号所设计出出的程序必然然是结构化程程序。PAD图所描描述的程序结结构十分清晰晰,图中最左左面的竖线是是程序的主线线,即第一层层结构,随着着程序层次的的增加,PAD图逐渐向向右延伸,每每增加一个层层次,图形向向右扩展一条条竖线,PAD图中的竖竖线的总条数数就是程序的的层次数。详细设设计PAD图的的特点点:用PAD图图表现现程序序逻辑辑,易易读、、易懂懂、易易记,,PAD图图是二二维树树形结结构的的图形形,程程序从从图中中最左左竖线线上端端的结结点开开始执执行,,自上上而下下,从从左向向右顺顺序执执行,,遍历历所有有结点点。容易将将PAD图图转换换成高高级语语言源源程序序,这这种转转换可可用软软件工工具自自动完完成。。详细设设计PAD图的的特点点:既可以以用于于表示示程序序逻辑辑,也也可用用于描描述数数据结结构。。PAD图的的符号号具有有支持持自顶顶向下下、逐逐步求求精方方法的的作用用。开开始时时设计计者可可以定定义一一个抽抽象的的程序序,随随着设设计工工作的的深入入而用用def符符号逐逐步增增加细细节,,直至至完成成详细细设计计。详细设设计语言工工具--PDL(ProgramDesignLanguage)PDL具有严严格的的关键键字外外部语语法,,用于于定义义控制制结构构和数数据结结构;;另一一方面面,PDL表示示实际际操作作和条条件的的内容容语法法通常常又是是灵活活自由由的以以便可可以适适应各各种工工程项项目的的需要要。一般说说来PDL是一一种“混合合”语语言,,它使使用一一种语语言((通常常是某某种自自然语语言))的词词汇,,同时时却使使用另另一种种语言言(某某种结结构化化的程程序设设计语语言))的语语法。。详细设设计PDL应当当具有有以下下特征征:关键字字应有有固定定语法法,以以便提提供全全部结结构化化构造造、数数据说说明和和模块块化特特性,,并且且使结结构清清晰和和易读读性好好;一种自自然语语言的的自由由文法法,用用来描描述处处理特特点;;应有数数据说说明机机制,,应该该包括括既简简单的的数据据结构构(标标量与与数组组),,又包包括复复杂的的数据据结构构(链链表或或层次次结构构);;应有子子程序序定义义与调调用方方法,,用来来表示示各种种方式式的接接口描描述。。详细设设计设计工工具应应具有有的属属性::模块性性、简简明性性、便便于编编辑、、机器器可读读性、、易维护护性、、强行行结构构化、、自动动处理理、数据表表示、、逻辑辑验证证、编编程能能力详细设计计软件设计计说明书书1.范范围(1)系系统的目目标和作作为系统统元素的的软件的的作用;;(2)硬硬件、软软件与人人机接口口;(3)主主要的软软件功能能;(4)外外部定义义的数据据库;(5)主主要的设设计约束束与限制制。详细设计计软件设计计说明书书2.参参考文档档(1)现现有的软软件文档档;(2)系系统文档档;(3)外外购产品品文档((硬件或或软件));(4)技技术参考考资料。。详细设计计软件设计计说明书书3.设设计说明明(1)数数据说明明信息流的的复审信信息结构构的复审审(2)导导出的软软件结构构(3)结结构内的的接口详细设计计软件设计计说明书书4.模模块(对对每一个个模块))(1)处理理说明(2))接接口口说说明明(3))设设计计语语言言((或或其其他他))的的说说明明(4))使使用用的的模模块块(5))数数据据的的组组织织(6))注注解解详细细设设计计软件件设设计计说说明明书书5.文文件件结结构构和和全全程程数数据据(1))外外部部文文件件结结构构逻辑辑结结构构逻逻辑辑记记录录说说明明存存取取方方法法(2))全全程程数数据据(3))文文件件和和数数据据的的交交叉叉引引用用6.需需求求与与模模块块的的对对照照表表详细细设设计计软件件设设计计说说明明书书7.测测试试的的准准备备测试试大大纲纲组组装装策策略略专专门门的的考考虑虑8.装装配配专门门的的程程序序覆覆盖盖考考虑虑转转录录考考虑虑9.专专门门注注解解10.附附录录详细细设设计计设计计的的复复审审软件件的的设设计计由由管管理理方方面面的的代代表表、、技技术术开开发发方方面面的的代代表表和和其其他他有有关关人人员员((诸诸如如用用户户、、质质量量保保障障和和软软件件支支持持者者等等))共共同同进进行行复复审审。。对设设计计进进行行复复审审的的明明显显好好处处是是可可以以比比较较早早地地发发现现软软件件的的缺缺陷陷,,从从而而可可以以使使每每个个缺缺陷陷在在进进行行编编程程、、测测试试和和交交付付之之前前予予以以纠纠正正,,从从而而显显著著地地降降低低随随后后的的开开发发阶阶段段和和维维护护阶阶段段的的费费用用。。设计计复复审审包包括括正正规规的的审审查查、、非非正正规规的的审审查查和和检检查查三三种种方方式式。。详细细设设计计设计计复复审审的的标标准准::易追追溯溯性性该该软软件件设设计计包包括括了了软软件件需需求求规规格格说说明明的的所所有有要要求求了了吗吗??该该软软件件的的每每个个部部件件与与某某个个具具体体的的软软件件要要求求有有关关吗吗??风险险实实现现该该设设计计会会有有很很大大风风险险吗吗??也也就就是是说说,,没没有有技技术术性性的的突突破破该该设设计计也也能能完完成成吗吗??实用性性该该软软件对对软件件要求求所确确定的的问题题是一一种实实用的的解决决办法法吗??易维护护性该该设计计是否否将导导致一一个便便于维维护的的系统统?质量该该设计计具备备一个个“好好”的的软件件应有有的质质量特特征吗吗?接口外外部和和内部部的接接口已已经规规定得得足够够明确确了吗吗?技术清清晰度度该该设设计的的表达达方式式是否否使它它便于于转化化成程程序??选择方方案考考虑了了其他他设计计方案案了吗吗?采采用什什么标标准来来选择择最后后方案案呢??限制软软件限限制是是否现现实??与要要求相相符合合吗??某些具体的的问题该该软软件便于人人控制机器器吗?便于于测试吗??与其他系系统部分相相适应吗??有足够的的文档吗??详细设计正规的复审审通常是为了了评价软件件的结构和和接口;这种类型的的复审的特特点在于::设计人员员和复审人人员都要认认真的准备备;有相当当多的复审审者参加,,他们对该该软件研制制项目有不不同程度的的兴趣;管理方面和和技术方面面站得高,,视野开阔阔;提供正式的的设计文档档;由通知到开开会的时间间间隔至少少有两个星星期。详细设计非正规的复复审所谓非正规规的复审指指的是从临临时通知的的碰头会到到有关同事事参加的比比较有组织织的复审这这整个范围围而言的,,一般由通通知到开会会的时间间间隔只有二二至三天。。详细设计设计的检查查检查具有正正规的复审审和非正规规的复审两两方面的特特点;从复审的形形式与内容容上看,检检查方法是是相当正规规的--有有专门的职职责、活动动安排、交交付的文档档、核对表表以及管理理办法等等等,一切都都是事先规规定好的;;然而,涉及及到的人员员以及他们们的相互联联系则是比比较随便的的,通常都都以小组进进行活动。。编码码程序设计语语言的性能能和程序的的编码风格格,在很大大程度上影影响着软件件的质量和和维护性能能。程序设计语语言性能的的讨论程序设计语语言的分类类与选择程序编码风风格编码码程序设计语语言性能的的讨论软件心理学学观点(1)一致致性:表示示语言使用用符号的兼兼容程度、、约束条件件及语法和和语义上的的例外等等等。(2)歧义义性:歧义义性导致程程序员对程程序理解的的混乱。(3)简洁洁性:对用用该语言编编程的程序序员必须记记忆的信息息量的衡量量。(4)局部部性和线性性:人们的的记忆和辨辨别能力分分为联想和和顺序两个个方面。联联想能使我我们整体地地记住和辨辨别某件东东西。顺序序记忆能从从回忆序列列中找出一一个元素。。局部性是是语言的联联想性;线线性是语言言的顺序性性。编码码程序设计计语言性性能的讨讨论工程观点点(1)使使设计易易于代码码翻译;;(2)编编译程序序的功效效;(3)源源代码的的可移植植性;(4)开开发工具具的可利利用性;;(5)源源代码的的可维护护性。技术性能能观点(1)复复杂数据据结构((2)实实时系统统((3)特特殊应用用领域编码码程序设计计语言的的分类(按语言言抽象级级别分类类)低级语言言:机器器语言,,汇编语语言高级语言言:与机机器无关关,实现现性语言言甚高级语语言:高高抽象级级,有用用以描述述功能的的成分编码码程序设计计语言的的分类(按应用用领域分分类)通用语言言专用语言言编码码程序设计计语言的的分类(按语言言成分性性质分类类)顺序语言言:只含含顺序成成分并发语言言:含有有并发成成分分布式语言::考虑了分布布式计算要求求网络语言:考考虑了网络计计算要求编码码程序设计语言言的分类(按作用方式式分类)命令式语言::不论其描述述“做什么””还是“怎样样做”,相应应描述的组成成部分是命令令式的,先做做什么、后做做什么都规定定好了明确的的次序。作用式语言::从相应的描描述中不能明明显看出其组组成部分执行行的先后次序序。编码码程序设计语言言的分类(按描述级别别分类)功能性语言设计性语言实现性语言编码码程序设计语言言的分类(按模拟客观观世界的角度度分类)对象式语言((面向对象语语言)非对象式语言言编码码程序设计语言言的分类(按其它方式式分类)函数式语言逻辑式语言编码码一般而言,衡衡量某种程序序语言是否适适合于特定的的项目,应考考虑下面一些些因素:应用领域算法和计算复复杂性软件运行环境境用户需求中中关于性能能方面的需需要数据结构的的复杂性软件开发人人员的知识识水平可用的编译译系统编码码编码风格在在很大程度度上影响着着程序的易易读性、易易测试性和和易维护性性,鉴于软软件的绝大大部分成本本消耗在测测试和维护护阶段,提提倡好的编编码风格,,努力提高高易测试性性和易维护护性极其重重要。好的编码风风格是在不不影响性能能的前提下下,有效地地编排和组组织程序,,以提高易易读性和易易维护性。。编码码为了编制出出清晰、紧紧凑、高效效的程序,,一般应依依次考虑下下列原则::(1)编制制易于修改改和维护的的代码(2)编制制易于测试试的代码(3)必须须将编程和和编文档的的工作统一一起来(4)编程程中采用统统一的标准准和约定,,降低程序序复杂性(5))限限定定每每一一层层的的副副作作用用,,减减少少耦耦合合度度(6))尽尽可可能能地地复复用用编码码编码码风风格格包包括括以以下下三三个个方方面面::代码码文文件件数据据说说明明语句句结结构构编码码代码码文文件件恰当当的的标标识识符符适当的注注解序言性注注解功功能性性注解良好的程程序视觉觉组织编码码数据说明明的简单单原则::数据说明明的次序序应该标标准化;;当多个变变量同时时被说明明时,应应当按字字母顺序序排列这这些变量量;若设计时时使用了了一个复复杂的数数据结构构,则应应该用注注解说明明用程序序设计语语言实现现它的特特点和方方法。编码码语句结构构要保持持尽可能能的简单单,应遵遵循以下下原则::程序要清清晰直观观,不要要过于巧巧妙;用一定的的原则指指导控制制结构的的使用;;(1)不不用空THEN语句;;(2)避避免THEN--IF结构形形式;(3)不不要嵌套套太深;;(4)避避免不必必要的转转移;(5)有有原则地地使用GOTO;(6)采采用标准准的结构构形式弥弥补语言言的不足足。使用括号号清晰地地表示逻逻辑表达达式和算算术表达达式;利用加加空白白或易易读的的符号号来清清晰地地表示示语句句的内内容;;心理换换位““如果果这个个程序序不是是我写写的,,我能能看懂懂它吗吗?””编码码程序交交互部部分的的设计计指导导原则则:把计算算机的的内部部特性性掩盖盖起来来不让让用户户看到到;使程序序穿上上“防防弹衣衣”,,即保保证程程序不不会被被用户户所破破坏,,用户户不可可能使使程序序走向向不正正常的的结束束;如果用用户的的请求求会产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于夫妻双方离婚协议书
- 土地租赁合同双方协议书七篇
- 2025无财产离婚协议书
- 面神经炎病因介绍
- 错构瘤病因介绍
- 荨麻疹病因介绍
- 11化学中考真题汇编《氧气的性质》及答案
- (2024)乳制品加工项目可行性研究报告写作范本(一)
- 2024-2025学年人教版八年级英语上学期期末真题 专题01 单项选择(安徽专用)
- 2023年耐磨剂项目融资计划书
- GB/T 27692-2011高炉用酸性铁球团矿
- 整套教学课件《中级财务会计》
- 中国当代文学专题汇集
- 廉洁教育培训-廉洁从业-快乐人生课件
- 基坑开挖、土方回填危险源辨识及风险分级评价清单
- 超星尔雅学习通《九型人格之职场心理(中国九型人格导师协会)》章节测试含答案
- 《注册建造师执业工程规模标准》
- 豁免知情同意申请表【模板】
- 奥运会的历史课件
- 医学高级职称评审答辩报告PPT模板
- 铝型材挤压车间操作流程
评论
0/150
提交评论