软件工程复习重点_第1页
软件工程复习重点_第2页
软件工程复习重点_第3页
软件工程复习重点_第4页
软件工程复习重点_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、三大块内容:软件危机与软件工程传统软件开发方法面向对象方法一、软件危机与软件工程:软件、软件危机、软件生存期、软件开发模型、软件管理1、 、 软件: 软件是能够完成预定功能和性能的可执行的计算机程序+ 使程序正常运行所需要的数据+ 描述软件开发过程及其管理、程序的操作和使用的有关文档。文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通信与交流、管理与维护、用户服务2、 软件危机a) 表现:软件成本高、难于控制开发进度、软件工作量估计困难、软件质量低、软件修改维护困难b) 原因:需求问题(描述不精确、理解不一致)、管理问题、方法和工具问题、软件本身的特点3、 软件生存期:a) 三个

2、时期:定义时期(软件计划、需求分析) 开发时期(软件设计、编码实现、测试) 使用和维护时期(维护)b) 六个阶段:软件计划需求分析设计 编码 测试 使用与维护c) 生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点(利于尽早发现错误,如阶段文档、评审)4、 软件开发模型a) 瀑布模型:文档驱动i. 阶段划分、分而治之、控制开发过程的复杂性ii. 自顶向下、由抽象到具体,顺序进行优点:规范管理开发过程、文档驱动缺点:初期系统的需求难以完全确定、文档驱动、周期长b) 原型模型:i. 针对:软件开发初期需求难以确定ii. 基本思想:快速建立原型,完善用户需求iii. 优点:用户参与

3、、快速iv. 缺点:快速弱功能、对开发环境要求高c) 螺旋模型(风险驱动)d) 增量模型(模块、功能驱动)e) 迭代模型f) 喷泉模型5、 软件管理a) 区别于其他工业产品生产管理的特点b) 主要内容:开发计划与进度管理、文档管理、人员组织管理、成本管理、质量管理、传统软件工程方法:a) 软件计划i. 问题定义ii. 可行性研究1. 经济可行性2. 技术可行性3. 法律可行性b) 需求分析i. 结构化分析SAii. 面向数据流的分析方法1. DFD 四个组成部分(表示方法、命名)2. DFD 作图:需求描述DFD3. 层次分解法(保持父图和其子图的平衡)4. 数据字典(符号)c) 软件设计i.

4、 总体设计1. 模块独立性:高内聚2. 作用域是控制域的子集3. 单入单出4. 规模、深度、宽度、扇入、扇出适当ii. 传统设计方法1. 面向数据流的设计方法(数据流图)a) 结构化设计SD- 对应有 SD 结构化需求分析、SP 结构化实现b) DFD 软件结构(层次图)i. 变换设计ii. 事务设计c) 优缺点2. 面向数据结构的设计方法a) Jackson 方法b) Jackson 图i. 三种元素间的逻辑关系:顺序、选择、重复ii. 可描述两种数据结构:数据结构、程序结构c) 思想:数据结构与程序处理过程相互转换d) 步骤: I/O DS 对应关系Program Structure 细化

5、求精e) 优缺点:i. 数据入手ii. 简化数据处理程序的设计iii. 模块与独立性原则没有给予应有的重视iv. 求提供对复杂系统设计过程的支持3. Parnas 方法iii. 详细设计1. 结构化程序设计SPa) 高效率-良结构b) 三种基本控制结构、单入单出2. 过程设计的工具d) 实现 /编码i. 语言1. 功能等价2. 描述问题方便性有差异a) 例如: OOPL- 非 OOPLii. 程序设计风格e) 软件测试i. 目标ii. 方法1. 正确性证明2. 静态测试3. 动态测试a) 黑盒(功能)测试i. 等价类划分ii. 边界值分析iii. 错误推测b) 白盒(结构)测试i. 语句覆盖i

6、i. 判定覆盖iii. 条件覆盖iv. 判定 条件覆盖精品资料v.条件组合覆盖iii. 步骤f) 软件维护i. 四种类型1. 校正性2. 适应性3. 完善性4. 预防性ii. 提高可维护性的措施(Object-oriented Method)a) OOM 与 CM 对比:区别 优点i. 思维方式iv. 稳定性ii. 可重用性v.可维护性iii. 大型软件b) OOSE 方法i. 三个阶段、五个模型、ii. USE CASE精品资料第二章传统软件工程方法:软件计划具体任务:项目定义、可行性分析、软件计划其中:可行性分析:1、 、 可行性研究实质:可行性研究试一次大大压缩和简化了的系统分析和设计过

7、程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程。2、 主要内容:a) 经济可行性:资金有无落实、成本 效益分析b) 技术可行性:开发的风险、资源的有效性、技术方案c) 操作可行性:用户组织内的管理制度、人员素质、操作方式等是否可行。d) 法律及社会可行性e) 开发方案的选择:折衷手段权衡。3、 可行性研究的主要步骤:a) 复查系统规模b) 研究正在使用的旧系统c) 导出高层逻辑模型d) 重新定义问题e) 导出多种解法f) 推荐行动方针g) 草拟开发计划h) 书写文档并提交审查系统流程图(物理建模工具):会读、读懂。精品资料符号nt用娟然喉解翻燃明曲工卿忤,虬 sm.晒摘群i处和口

8、给4出舒舒或片出.1个广洲稗骐博设 购居.0魄出出海.噂品一都介我用艇一加州 莪通常而7上0Mm艇转朋T国忘由版图赫4锄褴牌挈触转,蟒悔标方三Io文档通8要亍用刃前已也可表手即I门登棉人期混jMM期任何楼的联机存髭且能谥善.较费过 有量存脸件害.尸于L J能智利串出.也球拜宓抽上的文件蝴胤t_)於CRT提酬类施可用洋必畸七也可曜人尺窘世一1ATUXd代飕的则虱迪如职表心立轴人工品加国也会局居上会C相防排件更做能行端懈居MM金包端逋管椅路威糙路腌黄雷数据流图:概述?描绘系统的逻辑模型的工具? DFD: Data Flow Diagram?描绘信息流和数据从输入移动到输出的过程中所经受的变换数据从

9、哪里来,到哪里去,经过怎样的处理,保存在哪里?没有任何具体的物理部件,只是描绘数据在软件中流动和被处理的逻辑过程。是系统逻辑功能的图形表?是分析员和用户沟通的工具是后期设计的出发点数据源点/终 点处理 数据存储数据流数据A和B同时输入才能 变换成数据C数据A变换成B和C数据A城出或A fll B同 时输入变换成C数据A变换成B或C.或B 和C只有故据A或只有数据B (但不能A、B同时)输入时变换成C力推A变换成R喊C,但不 能变换成H和CDFD的绘制一般采用自顶向下、逐步细化的方法,主要步骤如下:明确系统界面。识别出那些不受系统控制但又影响系统运行的外部环境。绘制基本系统模型。基本系统模型由若

10、干源点、终点和一个基本处理组成,表明系统对数据加工变换的基本功能。逐层细化基本系统模型得到功能级 DFD和详细DFD。下面即分层数据流图。假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序, 表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。从问题描述中提取数据流图的四种成分。首先考虑数据的源点和终点:? “采购部每天需要一张定货报表”? “通过放在仓库中的CRT终端把事务

11、报告给定货系统”可知:采购员是终点仓库管理员是源点接下来考虑处理:? “采购部每天需要一张定货报表”-采购部需要报表? “零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。”-事务的后果是改变库存量可知:产生报表是一个处理处理事务是另一个处理最后考虑数据流和数据存储:?系统把定货报表送给采购部-定货报表?事务需要从仓库送到系统中-事务-需把事务数据存储起来产生报表和处理事务在时间上不匹配,当某种零件的库存数量少于库存量临界值时就应该再次定货,而每天打印一次定货报表-需把定货信息存储起来可知:定货报表、事务是数据流(数据流如报表包含零件编号零件名称、定货数量、目前价格、主要

12、供应者和次要供应者等信息。事务包含零件编号、库存清单、定货信息是数据存储基本系统模型:1仓库 L务 定货管理员1r系境1/功能数据流图:注意符号事务类型、数量等。)定货报袅 1采1耨息二间定首旅足1)为数据流(或数据存储)命名?名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分?不要使用空洞的、缺乏具体含义的名字(如“数据、”“信息” “输入”之类?如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的2 )为处理命名?通常先为数据流命名,然后再为与之相关联的处理命名,体现了人类习惯的“由表及里”的思考过程 ?名字应该反映整个处理的功能?

13、 名字最好由一个具体的及物动词,加上一个具体的宾语组成。? 通常名字中仅包括一个动词? 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解应注意的问题1 )是数据流不是控制流画数据流不是控制流;数据流图反映系统“做什么”, 不反映“如何做”, 因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。2 )一般不画物质流数据流反映的是能用计算机处理的数据,并不是实物,因此系统的数据流图上一般不要画物质流。3 )加工的画法每个加工至少有一个输入数据数据流图的用途:1 )建立新系统逻辑模型的工具2)作为与用户和开发人员交流信息的工具3)作为分析、设计乃至

14、维护的依据数据字典:概念? 数据字典是关于数据的信息的集合DD: Data Dictionary ?是对DFD中包含的所有元素的定义的集合?在分析、设计和维护过程中供查阅用内容1)数据流2)数据流分量(即数据元素)3)数据存储4)处理(IPO图或PDL更加方便)一一是对上述四类元素的定义具体信息?名字一一数据、控制项、数据存储或外部实体的主要名称?别名一一该元素等价的其他名字,尽量减少(例如作?使用地点与方式一一使用数据或控制项的处理的列表,以及使用这些对象的方式为处理的输入,从处理输出,作为数据存储,作为外部实体 )?内容描述一一描述数据或控制项内容的符号?更充信息一一关于数据类型、预置值、

15、限制等的其他信息复杂数据一般由数据项按顺序,选择,重复、可选的方式组 成.进行描述时,使用下列符号:符号含义举例被定义为,+与x-a+b,闽卜或x=a, b- x=|a|b或 m“Jn意复x=(a« x=3aj8()可选基本数据元素* 连结符“=1.95、数据字典的实现名字工定货报表别名定贵值息描述,每天一次送给采陶员的帚要定 贷的整件表定义:定黄报襄-零件,号4零件名称 +定货敷量+目前优格+主要供应者一次 要供应者位JL搐出到打印机名字,零件鲂号别名工描述:唯一地标识库存清单中一个辖 定零件的关看域定义I零件坳号总字符) 8位置:定货报表定费信息阵存清单事善名字;定货数量 别用:

16、定货信直描述某个零件一次定货的数量定义:定贷敷,3数字5位JL定货报表定货僖息软件项目的量化估算成本估算&工作量估算工程进度安排行成本估算阶段成本估算甘特图:历史悠久、应用广泛的进度计划工具进度安排的任务网络图优点:简单,能动态地反映开发进展缺点:难以反映多个任务间的逻辑关系第三章传统软件工程方法:需求分析需求分析1 目标和任务2 需求获取技术3 需求内容4 需求建模方法需求分析任务问题分析需求描述需求评审需求建模方法1. 面向数据流的分析方法2. 面向对象的分析方法3. 面向数据结构的分析方法需求工程的任务需求开发包含四个过程:需求获取、需求整理与分析、需求定义、需求验证。需求分析的

17、具体任务:需求获取、确定和分析需求、开发原型系统、编写 SRS 、 需求验证、变更管理、修正计划软件需求及需求的分类软件需求:以一种清晰、简洁、一致且无二义性的方式,描述用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,是在开发过程中对系统的约束。(表达做什么而不描述如何做。)Requirement is the Basics of Quality , 软件需求的作用: 分理解现实中的业务问题,并作为软件设计的基础;为软件项目的成本、时间、风险估计提供准确的依据; 少开发工作量,避免将时间与资源浪费在设计与实现错误的需求上; 通提供需求文档和需求基线,来有效的管理系统演化与变更; 为

18、顾客与开发团队之间正式合同的一部分; 最终的验收测试提供标准和依据需求的分类:业务需求业务需求指导需求获取用户需求转化用户需求为系统需求系统需求前四个为原始问题空间、后面系统需求为解决方案空间。业 务 需 求 (Business Requirements) : 客 户 对 于 系 统 的 高 层 次 目 标 要 求 (highlevelobjectives) ,定义了项目的远景 和 范畴 (vision and scope)1、 、 业务:属于哪类业务范畴?应完成什么功能?为何目的?2、 客户:软件为谁服务?目标客户是谁?3、 特性:区别于其他竞争产品的特性是什么?4、 价值:价值体现在那些方

19、面?5、 优先级:功能特性的优先级次序是什么?用户需求(User Requirements) : 从用户角度描述的系统功能需求与非功能需求,通常只涉及系统的外部行为而不涉及内部特性。系统需求(System Requirements, SR) : 系统应该提供的功能或服务,通常涉及用户或外部系统与该系统之间的交互,不考虑系统内部的实现细节系统需求的类型分:功能性需求: 描述了系统与其实现环境之间的交互。环境包括用户和任何其他与该系统进行交互的外部系统。功能需求可以以不同的详细程度反复编写和细化功能需求描述应该完整而且一致和准确完整性意味着用户所需的所有的服务应该全部给出描述一致性意味着需求描述不

20、能前后矛盾准确性是指需求不能出现模糊和二义性的地方非功能性需求:描述了不直接关联到系统功能行为的系统的方方面面。从各个角度对系统的约束和限制,反映了客户对软件系统质量和性能的额外要求,如响应时间、数据精度、可靠性等。可用性(Usability): 是一种用户可以学会的操作、输入准备、解释一个系统或者构件输出的状况。可靠性(Reliability): 是系统或构件在给定时间内、指定条件下,完成其要求功能的能力。性能 (Performance): 需求要考虑系统的定量属性,比如响应时间,吞吐量、 有效性和准确性。可支持性(Supportability): 需求关注于在进行部署后系统的变化状况,比如

21、包括可适配性、可维护性、可移植性等。需求获取技术略需求分析:分析方法结构化分析方法SA核心思想是模块化,自顶向下逐步求精对系统进行分析。使用多个需求分析视图,建立系统的数据、功能和行为模型数据流图DFD加工说明PSPEC数据字典DD状态迁移图STD关联图E-R 图面向对象分析方法OOA核心思想是利用OO 的概念和方法对软件需求建造模型,以使用户需求逐步精确化、一致化、完全化。结构化分析建模(与 SA 区分),就是面向数据流的分析方法结构化分析方法是一种传统的系统建模技术,它提出来一组提高软件结构合理性的准则。结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的

22、、称为结构化说明书的目标文档需求规格说明书。结构化分析方法的要点是:面对数据流的分解和抽象;把复杂问题自顶向下逐层分解结构化分析建模数据模型盘据对象播述实体关系图数据字典数据流图置模型1111.控制趣格说明状态转换图行为模型分折篌型其中,只要求数据流图和数据字典。DFD是描绘系统逻辑模型的常用图形工具。它描绘了信息流和数据从输入端移动到输出端 的过程中所经受的变换。在DFD中没有具体的物理元素,只是描述信息在系统中的流动、处理和存储的逻辑过程, 表明系统必须完成的基本逻辑功能。DFD中只有四种元素,不包括任何有关物理实现的细节,所以,绝大多数用户可以理解和评价它。DFD是分析和设计的工具。模型

23、图形工具描述附加文档核心数据字典使用或产生的所有数据对象数据建模实体关系图数据对象间关系数据对象描述功能建模麴曙添图数据移动怎样被转换变换数据漆的功能加工规格说明行为建模状态转换图系统行为模式(状态)不同状态间转换的方式控制规格说明实体关系图一E-R图数据流图-DFD图状态转换图一STD图投战B氐DFD组成成分:(2)命名数据流(数据存储) 表格、单据名称 代表性数据名称 使于理解的名称错误命名控制流实物加工/处理顶层:软件项目名动宾结构 错误命名意义空洞的动诃(计算,处理,加工)(3)层次分解法父图一子图平衡父图一子图不平衡(4)加工分解原则a) 1加工W子加工b) 按问题的逻辑特性分解c)

24、 尽量少分解层次d)分解均匀模型中还需要描述数据是如何被加工处理的:1、结构化语言 2、判定表3、判定树条件名取值符号取值数m年聆年他21 2年好26年配2bC -丫Lml=3件期另女M Ffn2=2婚姻未婚 已婚S Em3*-2提取问题中的条件;年的、 标出条件的取值性别、婚姻.判定表:13457gl年龄CCcYYYLL性别1MMFMMFM婚姻SE一SE41保险JNB类保检JJJ,类保 附V海外保 险 ,Vq男性确保保险塾W 一年游。工-214年修。后年龄26 B类保Bfc判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用未婚T类保险且嵌外收费已妁一B类保龄且,外收费未婚T类

25、保修已*D类保险L年龄Cl f类保随收薮外收费女性一1年龄21 A类保险目指出以下描述的需求描述的问题?m 备注20123 t6;2a;2lappi选呗2太限制I不礼F以后加修改.可就护系统应表现出良好的相应速度0忤展差+序需常向戟II亍眼制.,岩 艰利发拽3HMJH曲计的自由境id Mf旧货的莉哧,总设”的事和卜件.5平卷的定工不需确* %转用来网试系统必须用菜单驱动。6年匕验吐,难以割戊的需家*在数据录入界面,应该有10个按钮。系统运行时占用的内存不得超过256KB。电梯应平稳运行。即使系统崩溃,也不能丝毫损坏用户数据.第四传统软件工程方法:软件设计中的总体设计。软件设计两个阶段:概要设计

26、详细设计作用: SE 核心过程软件设计阶段的任务从工程管理的角度,分为总体设计阶段和详细设计阶段;技术的角度,分体系结构设计、数据设计、接口设计和过程设计总体设计分两个阶段: 系统设计阶段确定系统的具体实现方案。 结构设计阶段确定软件结构确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。总体设计的重要性:总体设计是软件开发过程中一个非常重要的阶段。可以肯定,如果软件系统没有经过认真细致的总体设计,就直接考虑它的算法或直接编写源程序,这个系统的质量就很难保证。许多软件就是因为结构上的问题,使得它经常发生故障,而且很难维护结构化分析与结构化设计的关系THE ANALYSIS MODE

27、LTHE DESIGN MODEL什么是好的软件设计软件质量评价标准:定性评价:用户角度:达到需求、界面友好、简单易学开发人员角度:良结构、易测试、易维护、可移植定量评价:软件度量宏观标准:可靠性良软件结构文档齐全软件结构软件的各个组成部分之间的关系的表示,决定了整个系统的结构和质量扇出:直接由一个块所控制的块数扇入:直接调用它的上级块数目深度:控制的总层数宽度:跨度最宽层的跨度数模块化依据:复杂程度工作量模块重要特征:1 .抽象:忽略细节,分层理解问题,自顶向下层层细化。2 .信息隐藏细节隐藏可理解性修改副作用小错误副作用小模块独立性度量:耦合一块间联系内聚一块内联系耦合零耦合:块间无任何连

28、接数据耦合:两模块通过参数交换信息,只交换数据。控制耦合:传递的信息有控制信息(有时以数据形式出现)公共环境耦合:两个多个模块通过一个公共数据环境相互作用问题:海公共部分的改动将影响所有调用它的模块弟公共部分的数据存取无法控制温 复杂程度随耦合模块的个数增加而增加内容耦合:一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中) 一个模块有多个入口耦合度与软件结构原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。内聚高内聚意味着松耦合,内聚更重要偶然内聚逻辑内聚 时间内聚 过程内聚 通信内聚

29、 顺序内聚 功能内聚内聚度与软件结构软件模块分解的过程:业务域分解/问题域分解领域专家,企业战略;系统 子系统业务功能域分解服务,资源;子系统拆分为多个服务技术域分解功能需求和非功能需求,当前IT技术;业务域和业务功能域分解出的元素进行整合在模块分解时,要注意以下几点:低耦合高内聚:“从弱耦合入手,切断联系”层次性:先业务后技术,循序渐进正交原则:相互独立,职责没有重叠抽象原则稳定性原则复用性原则度量(迭代演化面向对象)软件度量度量测量估算软件度量软件复杂性度量规模 文本复杂性控制结构的复杂性软件可靠性度量系统故障率软件修复与软件有效性软件可靠性估算软件设计的启发规则1 . 提高模块独立性松耦

30、合,高内聚增加内聚,减少耦合2 .模块规模适中3 .深度/宽度/扇入/扇出适当4 . 作用域在控制域内控制域:模块本身以及所有直接或间接从属于它的模块的集合作用域:受该模块内一个判定影响的所有模块的集合M的控制域 =M, A, B, C)If Hag Then B Eke CA的作用域=B,C修改软件结构判断点上移 受影响块下移5 .降低接口的复杂程度接口复杂可能表明模块的独立性差接口复杂或不一致(看起来传递的数据间无联系),是紧耦合或低内聚的征兆6 、单出单入,避免内容耦合7 、模块功能可预测相同输入必产生相同输出模块中使用全局变量可能导致不可预测软件结构划分方式水平划分按主要功能定义模块结

31、构的各分支顶层控制模块,下层输入、处理、输出三个分支优点:功能分离,易修改扩充缺点:模块接口传递数据多,信息流的整体控制复杂化垂直划分自顶向下逐层分布工作顶层模块控制,低层模块实际处理优点:对低层模块的修改不易引起副作用便于将来的维护软件系统设计技术面向数据流(DFD) 的设计方法面向数据结构的设计方法原型法结构化设计(Structured Design, SD )基于模块化、自顶向下求精、结构化程序设计技术基础上发展起来面向数据流的设计方法数据流图映射到软件结构用启发式规则对结构进行细化面向数据流的设计方法(结构化设计SD)软件结构设计中的图形工具层次图(H图)系统结构图;Hierarchy

32、描述软件结构,而非数据结构矩形框:模块连线:调用关系,而非组成关系系统结构图图例;口用n工系统I &恤匕叫(储宗 逑一1而除赢改鼻表HIPO 图=H 图+IPO 表H 图 + IPO 图(Input-process-output Diagram )在H图中,除最顶层方框外,在每一个方框内加上一个编号,编号次序依次为:1.0,2.0,;2.1,2.2,;3.1,3.2 对于H图中的每一个方框,有一张IPO图描述这个方框所代表模块的处理过程租I国中"力方僵相对应,甘一/1匹图描绘捷木方框代表的嚷地的处 理过程.H1F0图中的母张对用内都应该明显地标配它所描培的模块在 H图中的螭号

33、,以性脂踪醉逮个锲跳在软件结构中的位置-结构图-模块联系图1 .结构图是软件结构设计的另一种工具,与层次图类似。2 .它在层次图的每一个方框内注明的是模块的名字或主要功能。3 .方框之间的直线表示模块的调用关系。4 .用带注解的箭头表示模块调用过程中传递的信息确定系箝中每小程序是由年两椎块机成(Th一 -以及这x梗埃相互同的关系【例】结构图博人编辑输入结果格式化H示站果o利用层次图和iro网或rm中的信息可以得到模块科用抖传递的信息即贴构图,仅用于检查设计的正事柱和横块独立性*o姑构图一般不入文档。基于数据流(SD )的设计方法又称为结构化设计方法;目标:给出设计软件结构的一个系统化途径;作用

34、:该方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构 图。另注:通过结构化分析来得到 DFD , SA是结构化需求分析、SD是结构化设计、SP是结构 化实现数据流的类型:变换流、事务流、混合型1.变换流:所有信息都可以归结为变换流变换流参看图形,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流具有这些特征时,这种信息流称为变换流。变换型的软件结构图2.事务流:当信息流具有明显的“事务中心”时,可归结为事务流输入通路到达一个处理 T ,这个处理根据输入数据的类型在若干个动作序列

35、中选出一个来执 行。这种“以事务为中心的”的数据流,称为“事务流”。T称为事务中心接收输入数据;分析每个事务以确定它的类型;根据事务类型选取一条活动通路事务型软件结构图3.混合型,兼具两种特征。面向数据流方法的设计过程精化数据流图区分事务中心和区分输入和数据接收通路输出分支映射成事务结构映射成变换结构用启发式设计规则精化收件结构“Get it to work, then make it fast/'事务设计)导出接口描述和全程数据结构变裳设计、I详细设计定要重点看总体设计部分后面的P140左右的例题第五传统软件工程方法:软件设计中的详细设计详细设计的任务结构化程序设计详细设计的工具面向

36、数据结构设计人机界面设计详细设计说明书程序复杂性的度量详细设计的任务:1. 用伪代码、图或表等工具描绘 每个 模块的算法流程。2. 确定每个模块的局部数据结构 、数据库的物理结构、模块间的接口和输入输出数据3. 为每个模块设计测试用例,使得编码阶段对具体模块的调试测试更加方便4. 编写详细设计说明书结构化程序设计(SP 结构化实现,与结构化设计SA 区分 )a) 高效率-良结构b) 三种基本控制结构、单入单出程序代码仅使用 顺序、选择和循环这三种基本的控制结构进行连接,且每个代码块只有一个 入口和一个出口 ,只在检测错误和退出循环处使用非基本结构技术。详细设计的工具图形描述程序流程图(PFC)

37、趋势是使用的人越来越少。优点:直观清晰、广泛易学缺点:不能逐步求精,不易表示数据结构,随意转移控制造成非结构化盒图(N-S)本质上的改进是没有箭头,不能随意转移控制。SequentialSelectiveCall subroutinePAD图THENELSESequentialSelectiveo语句标号LoopsCaseDefinitionN-S图与PAD的转换PADPAD图优点:本质上的改进是层次清晰。结构化程序结构清晰表现程序逻辑,易读、易懂、易记描绘数据结构支持自顶向下、逐步求精方法的使用PAD图高级程序设计语言表格描述判定表判定树语言描述过程设计语言PDL/伪码优点:可作注释直接插在

38、源程序中、编辑简单、PDL codes缺点:不如“图”直观、复杂条件一不如判定表清晰、简单面向数据结构的设计方法JSD法:将Jackson方法用于大系统设计时会出现复杂的难以对付的结构冲突。Jackson 图顺序结构AFbB. C、口3中元本时序判成.选择结构每十元嬴只出班;匕 出现次用依次为乐 a d根据条件人是B或C或口中的芟个n根据:c. D右上用的小画土重复结构JB*AlhBlhfllN't LNN)九必 汴口 月心后卜向力。号优点便于表示层次结构,结构的自顶向下分解,直观,可读性好数据入手简化数据处理程序的设计既能表示数据结构,也能表示程序结构 缺点没有表示条件,不易直接把图翻译成程序,斜线不易打印模块与独立性原则没有给予应有的重视求提供对复杂系统设计过程的支持改进的Jackson图照序结构选舞结构注:顺序结构中的B、C. D中任个 都不辞是选抒册现或重曳出现的元素可选结构重复结构表示A成者是元素B或者不出现Jackson 方法1 .画数据结构的 Jackson图2 .找输入一输

温馨提示

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

评论

0/150

提交评论