第一章软件工程5培训课件

上传人:youn****329 文档编号:271165233 上传时间:2022-03-28 格式:PPT 页数:53 大小:356.50KB
返回 下载 相关 举报
第一章软件工程5培训课件_第1页
第1页 / 共53页
第一章软件工程5培训课件_第2页
第2页 / 共53页
第一章软件工程5培训课件_第3页
第3页 / 共53页
第一章软件工程5培训课件_第4页
第4页 / 共53页
第一章软件工程5培训课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第一章软件工程5培训课件》由会员分享,可在线阅读,更多相关《第一章软件工程5培训课件(53页珍藏版)》请在金锄头文库上搜索。

1、4 4 软件总体设计(概要设计)软件总体设计(概要设计) 在需求分析阶段我们了解到软件系统 “做什么?”的问题,在软件总体设计这个环节,将解决“概略地说,系统如何实现的问题?”。总体设计又称概要设计或初步设计,总体设计阶段的工作任务主要是将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。4.1 4.1 总体设计的过程总体设计的过程1)设想供选择的方案 在总体设计阶段,分析员应该考虑各种可能

2、的实现方案,并从中选择出最佳的方案。2) 选择合理的方案 应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成低成本、中等成本和高成本本的三种方案。在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。 对每个合理的方案分析员都应该准备下列四份资料: (1) (1)系统流程图;系统流程图; (2) (2)组成系统的物理元素清单;组成系统的物理元素清单; (3) (3)成本、效益分析;成本、效益分析; (4) (4)实现这个系统的进度计划。实现这个系统的进度计划。3 3)推荐最佳方案)推荐最佳方案

3、 分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。 用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审批。在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段结构设计。5 5)设计软软件结构)设计软软件结构 通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能。最下层的模块完成最具体的功能。

4、6 6)数据库设计)数据库设计7 7)制定测试计划制定测试计划 包括测试策略,测试方案,预期的测试结果,测试进度计划等等。8 8)书写文档书写文档 应用文档来记录中设计的结果,常用的文档有:系统说明书、用户手册、测试计划详细的实现计划以及数据库设计结果。9 9)审查和复审审查和复审4.2 4.2 软件设计的概念和原理软件设计的概念和原理1 1)模块化模块化 模块是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能满足问

5、题的要求。2 2)抽象)抽象 人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。3 3)信息隐蔽和局部化)信息隐蔽和局部化4 4)模块独立)模块独立 模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定于功能,并且和其他模

6、块之间的关系很简单。 有利于程序的开发;有利于程序的测试与维有利于程序的开发;有利于程序的测试与维护。护。(1)耦合 耦合是对一个软件结构内不同模块之间互连程度的度量。(2) 内聚 内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。4.3 4.3 图形工具图形工具1) 1) 层次图和层次图和HIPOHIPO图图 层次图用来描述软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。 层次图很适合在自顶向下设计软件的过程中使用。 HIPO图是美国IBM公司发明的“层次图加输入

7、处理输出图”的英文缩写。为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方柜都加了编号。HIPO图2) 2) 结构图结构图 结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方柜代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。因为按照惯例总是图中位干上方的方框代表的模块调用下方的模块,即使不用箭头也不会产生二义性,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。5 5 详细设计详细设计 详细设计阶段的根本目标详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对

8、目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。5.1 5.1 结构化程序设计结构化程序设计 结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。使用结构程序设计技术主要有下述一些好处:(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率; (2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解; (3)不使用Go To语句仅使用单入口单出口的控制结构。使得程序的静态结构和它的动态执行情况比较一致; (4)控

9、制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式,因此源程序清晰流畅,易读易懂而且容易测试;(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大;(6)程序的逻辑结构清晰,有利于程序正确性证明。5.2 5.2 详细设计的工具详细设计的工具 描述程序处理过程的工具称为详细设计的工具,它们可以分为图形、表格和语言三类。1)程序流程图 程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法。程序流程图的主要缺点如下:(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构;(2)程序流程图中用箭

10、头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;(3)程序流程图不易表示数据结构。2 2)N-SN-S图(盒图)图(盒图)特点:(1)功能域(即一个特定控制结构的作用域)明确,可以从盒固上一眼就看出来;(2)不能任意转移控制;(3)很容易确定局部和全程数据的作用域;(4)很容易表现嵌套关系,也可以表示模块的层次结构。3) 3) PAD(Problem Analysis Diagram)PAD(Problem Analysis Diagram)图图用二维树形结构的图来表示程序的控制流用二维树形结构的图来表示程序的控制流 优点:(1)使用表示结构化控制结构的PA

11、D符号所设计出来的程序必然是结构化程序;(2)PAD图所描绘的程序结构十分清晰;(3)用PAD图表现程序逻辑,易读、易懂、易记;(4)容易将PAD图转换成高级语言源程序;(5)即可用于表示程序逻辑,也可用于描绘数据结构;(6)PAD固的符号支持自顶向下、逐步求精方法的使用。4) 4) 判定表判定表 当算法中包含多重嵌套的条件选择多重嵌套的条件选择时。用程序流程图、盒图、PAD图都不易清楚地描述。然而判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。 一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对

12、应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。 假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的动作(算法)。4) 4) 判定树判定树 判定表虽然能清晰地表示复杂的条件组合与应他的动作之间的对应关系,但其含义却不是一眼就能看出来的。 判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之

13、间的对应关系。5) 5) 模块开发文件夹模块开发文件夹 随着详细设计过程的进展,和每个软件模块有关的文档资料的数量也不断增长。模块开发文件夹是组织和保存在软件开发过程中不断产生出来的文档资料的一种有效方法,用这种方法保存和管理文档既方便又容易查阅。 每个开发文件夹中包含一个(或多个)模块的全部文档,文件夹的封皮上列出工程项目的名称、模块名字、程序员姓名、完成的日期、修改的日期、源程序行数、目标代码长度、对模块的简要描述、以及设计、编码、单元测试和集成测试等阶段的起止时间(预计的时间和实际时间)等等。6 6 编码编码 目前,人和计算机通信仍然必须使用人工设计的语言,即程序设计语言。所谓编码就是把

14、软件设计的结果翻译成计算机可以“理解”的形式用某种程序设计语言书写的程序。1) 1) 语言的选择语言的选择 为了使程序容易测试和维护,以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准。 但是在选择语言时,除了考虑理想的标准,还得实际情况。重要的实用标准有:(1)系统用户的要求;(2)可以使用的编译程序;(3)可以得到的软件工具;(4)工程规模;(5)程序员的知识;(6

15、)软件可移植性要求;(7)软件的应用领域。 总之,编程语言将在不同程度上影响生产效率和代码质量,不同的项目,不同的开发团队可能选择不同的编程语言。排名编程语言比例1Java22.267%2C18.361%3C+10.804%5(visual)Basic7.582%7C#3.279%13VB.NET0.874%几种常用编程语言的使用概率排名表几种常用编程语言的使用概率排名表(由 TIOBE Programming Community 2005年10月统计)几种主要语言说明:()JavaJava是一种面向对象的编程语言,语法结构与+类似,由Sun Microsystems公司开发,1995年正式发

16、布。Java在虚拟机上运行,通过为不同的平台提供虚拟机,实现Java跨平台的特性。()CC是由Bell Labs在上个世纪70年代开发的一种高级语言,最初用于设计和实现UNIX操作系统。C语言既具有高级语言的特性,又具有低级语言的特性。()+ +是在C的基础上发展起来的一种面向对象的高级语言,由Bjarne Stroustrup开发,1985年正式发布。C+提供了类、多态、异常处理、模版、标准类库等功能。()Visual Basic Visual Basic是Microsoft在Basic基础上设计的一种面向对象、可视化的编程语言,由于Windows桌面应用程序的开发与Web应用程序。()C#C#是Microsoft于2000年发布的一种面向对象的编程语言,语法与Java类似,是.NET平台上的主流编程语言。)编码技术)编码技术()编码标准()编码标准遵循规范化的源代码布局和命名规范,可以创建可读性好、易于理解的代码。()代码布局()代码布局代码的布局不影响程序的执行速度、内存使用以及对用户可见的属性。但好的代码布局使代码容易理解,维护性好。代码布局应遵循的基本原则:代码布局能够正确地

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

当前位置:首页 > 高等教育 > 大学课件

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