软件工程讲义0课件3

PPT
  • 阅读 36 次
  • 下载 0 次
  • 页数 94 页
  • 大小 750.524 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件工程讲义0课件3
可在后台配置第一页与第二页中间广告代码
软件工程讲义0课件3
可在后台配置第二页与第三页中间广告代码
软件工程讲义0课件3
可在后台配置第三页与第四页中间广告代码
软件工程讲义0课件3
软件工程讲义0课件3
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 94
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】软件工程讲义0课件3.ppt,共(94)页,750.524 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45025.html

以下为本文档部分文字说明:

软件工程1软件工程第三章软件设计3.1软件设计的概念3.2功能独立性3.3结构化设计方法3.4过程设计清华大学计算机系殷人昆软件工程23.1软件设计的概念软件设计的基本目标是用比较抽象概括的方式确定

目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。从技术观点来看,软件设计包括数据设计、体系结构设计、接口设计、过程设计。数据设计将实体关系图中描述的对象和关系,以及数据字典中描述的详细数

据内容转化为数据结构的定义。软件工程3体系结构设计定义软件系统各主要成份之间的关系。接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。过程设计则是把结构成份转

换成软件的过程性描述。软件工程4将分析模型转换为设计数据字典数据流图实体关系图状态转换图加工规格说明控制规格说明数据对象描述过程设计接口设计体系结构设计数据设计软件工程5从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设

计将软件需求转化为软件体系结构确定系统级接口全局数据结构或数据库模式。详细设计确立每个模块的实现算法和局部数据结构用适当方法表示算法和数据结构的细节软件工程6软件设计是后续开发步骤及软件维护工作

的基础。如果没有设计,只能建立一个不稳定的系统结构。设计编码测试维护测试编码维护有软件设计没有软件设计软件工程7软件设计既是过程又是模型。设计过程是一系列的迭代步骤,使设计人员能够描述目标系统的各个侧面。

设计模型首先描述目标系统的整体架构,然后逐步细化架构得到构造每个细节的指导原则,从而得到系统的一系列不同的视图。良好的设计原则可为设计过程导航。衡量设计过程的技术原则:①设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。衡量软

件设计的原则软件工程8①对于开发者和未来的维护者而言,设计必须是可读的、可理解的,使得将来易于编程、易于测试、易于维护。②设计应该给出软件的全貌,包括从实现角度可看到的数据、功能、行为。衡量设计模型的技术原则①设计模型应该是一个分层结构。该结构:使用可识别的设计模

式搭建系统结构。用显示良好设计特征的构件构成。可以用演化的方式实现。②设计应当模块化。软件工程9③设计应当包含数据、体系结构、接口和构件(模块)的清晰的视图。④设计应当根据将要实现的对象和数据模式导出

合适的数据结构。⑤设计应当建立具有独立功能特征的构件。⑥设计应当建立能够降低模块与外部环境之间复杂连接的接口。⑦设计模型应当通过使用软件需求信息所驱动的可重复的方法导出。Davis的软件设计原则①设计应具有可跟踪性,能回溯到软件需求;软

件工程10②设计不必每次都从头做起,可以复用已有的设计模式和数据模式。③设计应当缩小软件与现实世界中问题的“智力距离”,尽量逼近问题领域的结构;④设计应具有一致性和集成性。整个系统应具有统一的风格和格式,具有良好的接口。⑤设计结果应能适应未来可能的变更;⑥设

计不是编码,编码也不是设计。设计模型的抽象级别比源代码高。在编码级别上唯一的设计决策是补充一些实现细节。软件工程11⑦设计应具有容错性和异常处理能力。对于异常数据、事件、操作条件等能够平滑处理。⑧在建立设计方案时就

应能评估设计质量,而不是在系统编码之后。⑨应坚持设计评审,减少概念性(语义性)的错误。1)设计应遵循抽象化的原则,包含数据抽象和过程抽象。软件设计的主要手段软件工程12过程抽象是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。数据抽象是指采

用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。2.设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。将软件体系结构自顶向下,对过程细节和数据细节从抽象到具体,逐层细化,直到用编程语言的语句能够实现

为止。软件工程134)设计应当遵循模块化的原则。每个模块可独立地开发、测试,最后组装成完整的程序。其出发点是本着将一种复杂问题“分而治之”的原则。其目的是使程序的结构清晰,容易阅读、理解、测试、修改。Meyer的良

好模块设计方法的标准a)模块可分解性可将系统按问题/子问题分解的原则分解成系统的模块层次结构;b)模块可组装性可利用已有的设计构件组装成新系统,不必一切从头开始。软件工程14c)模块可理解性一个模块可不参考其他模块而被理解;d)模块连续性对软件需求

的一些微小变更只导致对某个模块的修改而整个系统不用大动;e)模块保护将模块内出现异常情况的影响范围限制在模块内部;5)设计应遵循信息隐蔽的原则。Patnas主张在开发时,将每个程序的成分隐藏在模块内,定义每一个模块时尽可能少地显露其内部的处理。软件工程15每个模块的实现

细节对于其它模块是隐蔽的,将来修改软件时偶然引入错误所造成的影响就可以局限在一个或几个模块内部,不致波及到软件的其它部分。在可预见将来可能修改的场合,信息隐蔽可以提高软件的可修改性、可测试性和可移植性。软件工程163.2功能独立性功

能独立性是抽象、模块化和信息隐蔽的直接产物。如果一个模块能够独立于其他模块被编程、测试和修改,则该模块具有功能独立性。1978年Myers提出用两个准则来度量功能独立性,即模块间的耦合和模块的内聚。内聚性:内聚是一个模块内部各个元素彼此结合的紧密程度的度

量。耦合性:耦合是模块间互相连接的紧密程度的度量,它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。软件工程17非直接数据标记控制外部公共内容耦合耦合耦合耦合耦合耦合耦合耦合性功能独立性模块间的耦合模块之间耦

合性越强,功能独立性越差,这样形成的模块结构界面不好。软件工程18非直接耦合(NondirectCoupling)两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。非直接耦

合的模块独立性最强。主模块ABCEFGXYZ软件工程19数据耦合(DataCoupling)一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。p0(x0,y0)p1(x1,y1

)数据耦合LINE(x0,y0,x1,y1)软件工程20标记耦合(StampCoupling)一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。p0(x0,y0)p1(x1,y1)标记耦合LINE(p0,p1)软件工程21控制耦合(C

ontrolCoupling)如果一个模块通过传送开关、标志、名字等控制参数,明显地控制选择另一模块的功能,就是控制耦合。FlagFlagf1f2fn软件工程22外部耦合(ExternalCoupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过

参数表传递该全局变量的信息,则称之为外部耦合。公共耦合(CommonCoupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。软件工程23公共耦合的复杂

程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。common公共数据区ABcommon公共数据区AB松散的公共耦合紧密的公共耦合软件工程24如果发生下列情形,模块之间就是内容耦合:一个模块直接访问另一个模块的内部数据;一个

模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只可能出现在汇编语言中);一个模块有多个入口。内容耦合(ContentCoupling)软件工程25cAB进入另一模块内部模块代码重叠ABentr

y1……entry2……模块多个入口软件工程26模块内聚巧合逻辑时间过程通信信息功能内聚内聚内聚内聚内聚内聚内聚内聚性功能独立性模块内聚性越强,功能独立性越好,对于形成的模块结构有比较好的作用。要求模块结构达到高内聚,低耦合。软件工

程27一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。功能内聚模块的功能独立性最强。功能内聚(FunctionalCoh

esion)软件工程28这种模块完成多个功能,各个功能相互独立但都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个

信息内聚的模块。信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。信息内聚(InformationalCohesion)软件工程29初始化插入删除查找修改符号表软件工程30如果一个模块内各功能部分都使用了相同的输入

数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。模块内各个功能是紧密相连的。通信内聚(CommunicationCohesion)软件工程31打印检验结果读文件文件计算A计算B合并

修改文件新文件加工记录软件工程32使用流程图做为工具设计程序时,如果流程图太大,可以把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。

过程内聚(ProceduralCohesion)软件工程33时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如,初始化模块和终止模块就是时间内聚模块。时间内聚(ClassicalCohesion)软件工程34

这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。写一个记录读一个记录判定调用模块被调用模块逻辑内聚(LogicalCohesion)软件工程35当几个模块内正好有一段代码是相同的,将它们抽取出来形成单独的模块,即巧合内聚模块

。这种模块没有独立功能,各部分之间没有联系,或联系很松散。巧合内聚(CoincidentalCohesion)ABCMSTOREREC()TONREADMASTERFILEADD1TOx……软件工程36结构化设计(structureddesign,SD)是一种面向数据流的设计方法

,它可以与SA方法衔接。结构化设计是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。该方法实施的要点是:1)首先研究、分析和审查数据流图。从软件3.3结构化设计方法软件工

程37的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。2)然后根据数据流图确定数据处理的类型。典型的类型有两种:变换型和事务型。针对两种不同类型分别进行分析处理。3)由数据流图推导出系统的初始结构图。4)利用一些启发式原则改进系统初始结构图,直到得到符合要求的结构图为止。5)修改

和补充数据字典。6)制定测试计划。软件工程38在系统结构图中的模块传入模块─从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。传出模块─从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。变换模块─它从上级模块取

得数据,进行特定的处理,转换成其它形式,再传送回上级模块。软件工程39协调模块─对所有下属模块进行协调和管理的模块。传入模块AA传出模块DD变换模块AB协调模块AABB软件工程40系统结构图的基本符号模块调用数据控制信息转接符号系统结构

图的基本符号选择(判断)重复软件工程41模块调用示例(a)调用(b)判断调用(c)循环调用软件工程42数据:模块之间传送的数据用带空心圆的箭头表示,并在旁边标上数据名。控制信息:控制信息与数据的主要区别是前者只反映数据的某种状态。模块间的数

据传递AB(a)xyz查职工简历读人事文件(b)职工号简历数据无此职工软件工程43数据处理的类型在需求分析阶段,面向数据流的SA方法产生数据流图DFD。在软件设计阶段,面向数据流的SD方法将DFD

转换成程序结构图。数据处理即为在DFD中从系统的输入数据流到系统的输出数据流所经历的一连串连续变换。数据处理的类型分为变换流型与事务流型。软件工程44变换流数据沿着输入通路进入系统,经过一系列数据变换,将数据的外部形式转换成对应的内部表示,然后通过变换中心(也称主加工)处理

,再沿着输出通路转换成外部形式离开系统。具有这种特性的数据流称为变换流。变换流型DFD可以分成:输入+变换中心(主加工)+输出输入数据C变换数据CD输出数据D软件工程45相应于取得数据、变换数据、给出数据,变换流型系统结构图由输入、

变换中心和输出等三部分组成。主模块B变换成C输入B输出CA变换成B输入AC变换成D输出DAABBBCCCDD软件工程46事务流数据沿着输入通路到达一个事务中心,事务中心根据输入数据(即事务)的类型在若干个动作(称为活动流)中选择一个来执行,这种数据流也称为事务流。事务流有明显的事务中心,

各活动流以事务中心为起点呈辐射状流出。在事务流型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务(活动流)处理模块执行。各事务处理模块并列。软件工程47事务中心分派模块输出结果事务1输入作业信息事务2事务3事务4作业信息作业信息结果结果操作1操作2操作3操作4操作5操

作6细节1细节2细节3细节4细节5细节6软件工程48变换分析变换分析从变换流型的数据流图导出系统结构图.步骤1.重画数据流图;2.区分有效(逻辑)输入、有效(逻辑)输出和变换中心部分;3.进行一级分解,设计模块结构的顶层和第一层模块;4.进行二级分解,设计输入、输出和中心变换部分

的中、下层模块。软件工程491.重画数据流图(平铺)为了建立系统结构,将数据流图平铺开来,物理输入画在左侧,物理输出画在右侧。如果一个外部实体既是物理输入又是物理输出,则两侧都要画出它。ABBCEGGHDFCDEABCDEFGH物理输入物理

输出软件工程502.确定逻辑输入、逻辑输出和变换中心部分变换中心是程序的核心功能,它的输入是逻辑输入,它的输出为逻辑输出。变换中心ABBCEGGHDFCDEABCDEFGH物理输入物理输出逻辑输入逻辑输出软件工程513.第一级分解:设计模块结构的顶层

和第一层顶层模块:其功能就是整个系统的功能;输入控制模块:接收所有的输入数据;变换控制模块:实现输入到输出的变换;输出控制模块:产生所有的输出数据。顶层模块变换控制输出控制输入控制软件工程52变换中心ABBCEGGHDFCDEABCDEFGH物理输入物理输出逻辑输入逻辑输出主

模块BC输入C输出D输出ECCD,EDE逻辑输入变换中心逻辑输出软件工程534.第二级分解:设计中、下层模块输入控制模块的分解:从变换中心的边界开始,沿着各输入通路,把输入通路上的每个加工映射成输入控制模块的一个低层模块。输出控

制模块的分解:从变换中心的边界开始,沿着各输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。变换控制模块的分解:变换控制模块通常没有通用的分解方法,应根据数据流图中变换部分的实际情况进行设计。软件工程54输出HGHABBCEGGHDFCD,EABCDEFGH物理输入

物理输出主模块CD,E输入C输出D输出ECCD,EDE输入BBBCBC输入AABABA输出GEG输出FDFDFFEGGGHH软件工程55输出HGHABBCEGGHDFCD,EABCDEFGH物理输入物理输出主模块CD,E输入C输出D输出EC

CD,EDE输入BBBCBC输入AABABA输出GEG输出FDFDFFEGGGHH软件工程56事务分析事务分析是从事务流型数据流图导出系统结构图。步骤:1.确定事务中心和每条活动流的流特性2.将事务流型数据流图映射成

高层的系统结构3.进一步分解软件工程571.确定事务中心和各活动流的流特性右图为事务流型DFD的一般形式。事务中心(图中的T):位于活动流的起点,活动流从该点成辐射状流出。活动流:可为变换流可为事务流事务流型的DFD的

组成:输入流+事务中心+若干条活动流T输入流事务流活动流软件工程58右图为事务流型DFD的高层结构形式。顶层模块:其功能就是整个系统的功能。接收模块:接收输入数据。分派模块:调度模块,控制下层的所有活动模块。事务模块:对应活动流,是该活动流映射成的。2.将事务流型DFD映射成高层

系统结构…顶层模块分派接收事务1事务2事务n软件工程593.进一步分解接收模块:类同于变换分析中输入控制模块的分解。活动流模块:根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。软件工程60模块设计的原则在选择模块设计的次序时,必须对

一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。使用“黑盒”技术:在设计当前模块时,先把该模块的所有下层模块定义成“黑盒”,在设计中利用它们时暂不考虑其内部结构和实现。在这一

步定义好的“黑盒”,在下一步就可以对它们进行设计和加工。最后,全部“黑盒”的内容和结构应完全被确定。软件工程61在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图质量。模块划分时,一个模块

的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。如果出现以下情况,就停止模块分解:模块不能再细分为明显的子任务;分解成用户提供的模块或库函数;模块接口是输入输出设备传送的信息;模块不宜再分解得过小。软件工程62

变换分析是软件系统结构设计的主要方法。一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。软件工程63abdpqrsbac1d分

派模块事务控制qrs接受通路p软件工程641.模块功能完善化一个完整的模块应当有以下几部分:执行规定的功能的部分;出错处理的部分。当模块不能完成规定的功能时,必须回送出错标志,出现例外情况的原因。如果需要返回数据给它的调用者,在完成数据加

工或结束时,应当给它的调用者返回一个状态码。改进系统结构的启发式原则软件工程652.消除重复功能,改善软件结构完全相似:在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。局部相似:找出其相同部分,分离出去,重新

定义成一个独立的下一层模块。还可以与它的上级模块合并。软件工程66R1R2XY相似部分R1R2XYR1+R2XYX+R1Y+R2R1Y+R2X不可取开关太多软件工程673.模块的作用范围应在控制范围之内模块的控制范围包括它本身及其所有的从属模块。模块的作用范

围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的结构是不简单的。软件工程684.尽可能减少高扇出结构如果一个模块的扇出数过大,就意味着该模块过分复杂

,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。PPP1P2软件工程695.避免或减少使用病态联接a.直接病态联接b.公共数据域病态联接c.通信模块病态联接ABcommonABTABLEITAB

ABxxxx(a)直接病态联接(b)公共数据域病态联接(c)通信模块病态联接软件工程706.模块的大小要适中。7.设计功能可预测的模块一个功能可预测的模块,不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。但是,如果模块内部蕴藏有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。

对于这种模块,如果调用者不小心使用,其结果将不可预测。软件工程71保存当前标记恢复“以前”标记标记?标记?功能不可预测的模块软件工程72在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。对每个模块规定的功能以及算法的设计,给出适当的算法

描述:图形工具:程序流程图,N-S,PAD,HIPO表格工具:判定表语言工具:PDL,HIPO3.5过程设计(详细设计)软件工程73程序流程图ABABPA1P=1A2=2An=nTSPFFSPT顺序型选择型先判断重复型后判断重复型多分

支选择型软件工程74gabfx1x4x5x6x2x3入口hijcde出口流程图示例FFFFFTTTTTswitchdo-whiledo-whilewhile-do=1=2=3软件工程75N-S图ABPFTABPFTAwhile-doPAdo-whilePAP=1=2…=nA1A2…An顺序

型选择型(1)选择型(2)先判断重复型后判断重复型多分支选择型软件工程76N-S图(盒图)示例do-whilex6abx1TTFFx2x4f=1=2=3gido-whilex5hdecwhile-dox6j软件工程77问题分析图(PAD)S1SA1A2AnPP

P=1=2=nwhilePSSS1S2S2untilP选择型顺序型多分支选择型先判断重复型后判断重复型软件工程78PAD示例while-dox3bfgx1ado-whilex6jx4do-whilex5hicdex2=1=2=3软

件工程79PDL(ProgramDesignLanguage)PDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。伪码的语法规则分为“外语法”和“内语法”。PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的

内语法可使用自然语言的词汇。软件工程80示例:拼词检查程序PROCEDUREspellcheckBEGIN--*splitdocumentintosinglewordsLOOPgetnextwordaddwordtowordlistinsortorderEX

ITWHENallwordsprocessedENDLOOP--*lookupwordsindictionaryLOOPgetwordfromwordlist软件工程81IFwordnotindictionaryTHEN--*displaywordsnotindictionaryd

isplaywordpromptonuserterminalIFuserresponsesayswordOKTHENaddwordtogoodwordlistELSEaddwordtobadwordlistENDIFENDIFEXITWHENa

llwordsprocessedENDLOOP软件工程82--*createanewwordsdictionarydictionary:=mergedictionaryandgoodwordlistENDspellcheck为了区别关键字,规定关键字一律大写,其它单词一律小写。

内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。软件工程83判定表决策表用于表示程序的静态逻辑在决策表中的条件部分给出所有的两分

支判断的列表,动作部分给出相应的处理要求将程序流程图中的多分支判断都改成两分支判断软件工程84gabfx1x6x7x8x2x5入口hijcde出口FFFFFTTTTTswitchdo-whiledo-whilewhile-dox3x4FF

FTTT无多分支判断结构软件工程851234567891011121314x1TTTTTFFFFFFFFFx2-----TTTFFFFFFx3--------TTFFFFx4----------TTFFx5-----TFF------x6TTTFF---------x7TFF-------

----x8-TFTF-TFTFTFTFaYYYYYYYYYYYYYYbYYYYYYYYYYYYYYc-----Y--------d--------YY----e----------YY--fYYYYY---------g---YY---------h---YY---------i

YYY-----------j--Y-Y--Y-Y-Y-Y软件工程86HIPO图HIPO是1976年由IBM公司提出来的,图既是在开发过程中的表达工具,又是开发文档的编制工具。HIPO图采用功能框图和PDL来描述程序逻辑,它由两部分组成:层次图(H图)和IPO图。层次

图给出程序的层次关系,IPO图为程序各部分提供具体的工作细节。软件工程87层次图(H图)表明各个功能的隶属关系。它是自顶向下逐层分解得到的。最高一层是整个系统的名称和系统的概括功能说明;第二层把系统功能展开,分成几个框;第二层功能进一步分解,就得到了第三层、第四层,…,直到最后一层

。每个框内都应有一个名字,用以标识它的功能。还应有一个编号,以记录它所在的层次及在该层次的位置。层次图(H图)软件工程88盘存/销售系统1.0.0销售处理1.1.0盘存处理1.2.0计算销售记录1.1.1产生销售报表1.1.2核对顾客

赊欠的金额1.1.3检查库存数量1.2.1产生发货单、装运单1.2.2顾客付款收据1.2.3产生盘存报表1.2.3盘存/销售系统的层次图软件工程89编号说明1.0.0销售/盘存处理框图1.1.0顾客订单检查,核对顾

客赊欠金额,产生销售报表1.1.1用工作文件的盘存项目号,对顾客订单进行核对和排序1.1.2以地区和人员为单位,编制销售报表,计算销售佣金1.1.3检验顾客赊欠金额,计算折扣,确定支付项目1.2.0处理顾客盘存管理报表,顾客付款收帐,处

理发货、包装、托运小说明软件工程90IPO图IPO图为层次图中每一功能框详细地指明输入(I)、处理(P)及输出(O)。通常,IPO图有固定格式,处理操作部分总是列在中间,输入和输出部分分别在其左边和右边。由于某些细节很难在一张IPO图中表达清楚,常常把IPO

图又分为两部分:概括的称为概要图(overviewdiagram)具体的称为详细图(detaildiagram)。软件工程91概要IPO图用于表达对一个系统,或对其中某一子系统功能的概略表达,指明完成某一功能框规定的功能时需要哪些输入,哪些操作和哪些输出。详细IPO图详细表

明输入、处理、输出三者之间的关系。输入和输出应是确定的文件和记录,或是文件和记录中的字段,以及具体介质和设备类型,处理框中的操作也应是具体的而不是含糊的,调用子程序时应标明子程序名。软件工程92对应H图上1.1.0框的概要IPO图销售事务记录顾客赊欠金额文件退回订单文件后

备订单文件退回订单无效订单特殊处理订单工作文件销售报表计算销售事务记录,产生排序的工作文件1.1.1按地区及销售人员,产生销售报表,计算销售手续费1.1.2核对顾客赊欠金额,计算应付款项1.1.31.1.0输入Input输出Output处理Process软件工程931.

1.2销售报表1.以销售地区和销售人员的销售额排序2.准备销售报表地区销售总计人员销售总计计算佣金交易文件SORT系统提供的子例程销售数据排序文件对应于H图1.1.2框的详细IPO图从1.1.1框来到1.1.3框去软件

工程94改进的IPO图格式IPO图系统:模块:编号:作者:日期:被调用:调用:输出:输入:处理:局部数据元素:注释:

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?