《现代软件工程》.ppt
《《现代软件工程》.ppt》由会员分享,可在线阅读,更多相关《《现代软件工程》.ppt(45页珍藏版)》请在麦多课文档分享上搜索。
1、现代软件工程,第一部分 软件工程的基本问题综述,从软件到软件工程:进入一个新的境界-1 生命周期:软件工程的基本思路-2 技术与方法:软件工程的基本过程-3 软件企业的现代软件工程实践-4,第一章 现代软件工程概述,第一部分 现代软件工程的基本概念,第三章 软件工程的技术与方法面向过程的分析和设计方法-3.1 面向数据的分析和设计方法-3.2 面向对象的分析和设计方法-3.3 软件工程的工具和环境-3.4,软件开发方法是软件工程的一个组成部分,在软件工程早期,是软件工程的核心内容 软件开发方法主要指: 开发步骤(每一步相应的目标、要求和结果) 开发工具和技术(采用的分析和设计工具和技术) 开发
2、的结果与形式(使用的文档和符号) 开发过程和方案的评价标准 软件开发方法的提出和逐步完善,是软件从作坊到“工程化”生产的重要转变 传统软件工程经历了以下一些开发方法的演变: 面向过程的分析和设计方法 面向数据的分析和设计方法 面向对象的分析和设计方法,3.1 面向过程的分析和设计方法,结构化程序的特征: 控制结构仅由顺序、选择和重复(或称为迭代)等结构复合而成; 可以自底向上地逐步抽象,最终抽象成一个函数型结点; 每个结点(控制流程图中的一个结点)都有单一入口与单一的出口,从出口到入口,都存在一条经过该结点的路径。 所以,结构化程序的编写,是抽象问题的逐步展开过程,结构化程序的阅读,是问题的逐
3、步抽象的过程,结构化程序设计倡导的原则: 遵行结构化程序设计的约定; 保持良好的程序书写风格; 按照一定的书写格式(如:缩进、排列、注解等)。,结构化分析与设计的来源:结构化程序设计 结构化程序设计的一个直接的研究结果,是要开发“模块化(函数过程)”的系统,从而导致面向过程的系统分析、设计方法的产生。 模块化系统设计: 模块化的主要思想,是对整个系统进行分解,分解成若干功能独立、能分别设计、编程和测试的模块,程序员可分工完成; 开发一个模块,并不需要知道其他模块的内部结构和编程细节; 模块之间的接口应尽量简洁、明确,模块应尽可能彼此隔离。 对模块的要求: 具有相对独立性,对系统的修改可限制在对
4、个别模块的修改上,而不会影响系统的其他模块、也不会影响系统的质量; 具有可读性,每个模块的含义、职责是明确的、接口关系是清晰的、从而降低了系统的复杂性,阅读和理解都比较方便; 具有易验证性,每个模块的正确实现,可以保证系统的正确。 模块化程序设计研究“内聚与偶合度”问题,有7种内聚和7种偶合。,3.1 面向过程的分析和设计方法,程序的模块化,很自然的导致对系统结构的结构化要求:系统结构是指:系统内各组成要素之间的相互联系、相互作用的框架。 结构化方法就是:强调系统结构的合理性。 结构化设计方法的原则是: 分解和抽样; 模块的独立性; 信息屏蔽等。 针对系统不同阶段,结构化方法有: 结构化设计
5、结构化编程 结构化测试等,3.1 面向过程的分析和设计方法,Parnas方法最早的软件开发方法是由D. Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。 Yourdon方法 1978年,E.Yourdon和L.L.Constan-
6、tine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年Tom DeMarco对此方法作了进一步的完善。 Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。,3.1 面向过程的分析和设计方法,传统软件工程把软件的生命周期定义为6个阶段:问题定义与可行性
7、研究、需求分析、软件设计、编码、测试、运行与维护问题定义与可行性研究 是指系统分析员通过对系统实际用户、使用管理部门、相关部门及人员进行的实际调查,搞清楚“问题”的背景、目的是什么?然后,据此提出关于“问题”的性质、工程目标、规模、相关联系等项目的基本情况,进行可行性分析,编制开发计划。在问题定义和分析阶段,结构化分析方法为系统分析人员,给出了一组帮助分析以产生功能规约的原理和技术。这组技术最早是从IBM的输入-加工-输出(IPO)开始、以后发展为层次IPO(HIPO),是80年代最流行的方法。,3.1 面向过程的分析和设计方法,结构化分析的主要技术有: 数据流图和控制流图技术:层次方框图、W
8、arnier图、IPO图 数据字典 结构化语言PDL(过程设计语言) 判定表和判定树等结构化分析的步骤是: 分析当前情况,做出反映当前物理模型的数据流图; 推导出等价的逻辑模型的数据流图; 设计新的逻辑系统,生成数据字典和基元描述; 建立人机接口界面,提出可供选择的目标系统的物理模型数据流图; 确定各种方案的成本和风险,据此对各种方案进行分析; 选择一种方案; 建立完整的需求规约。,3.1 面向过程的分析和设计方法,层次化模型结构图,3.1 面向过程的分析和设计方法,描述工具:结构化英语 由简单的陈述句,判断语句,循环语句复合而成。 可使用IFENDIF、DO CASEENDCASE、DO W
9、HILEENDDO等关键字。,IF customer does more than $50,000 buesinessTHEN IF the customer wasnt in debt to us the last 3 monthsTHEN discount is 15%ELSE (was in debt to us)IF customer has been with us for more than 20 yearsTHEN discount is 10%ELSE (20 year OR less) SO discount is 5%ELSE (customer dose $ 50,000
10、 OR less) SO discount is nil,3.1 面向过程的分析和设计方法,描述工具:决策树 用图形方式(树型)描述加工逻辑。通常用来描述根据不同条件及其取值来选择的处理过程。,3.1 面向过程的分析和设计方法,判断表 变量表判断表,3.1 面向过程的分析和设计方法,算法描述语言方法 流程图 伪码,3.1 面向过程的分析和设计方法,软件设计包括概要设计和详细设计二个阶段: 在概要设计(总体设计)阶段,开发人员要回答需求分析中获得的系统目标,如何去实现,这个问题。(1)概要设计要体现对需求的完整实现; (2)概要设计要保证与需求的一致性;(3)概要设计能够达到向需求的反向可追踪;
11、(4)概要设计关注对系统结构设计的逻辑性、合理性和可扩展性;传统软件工程提出了很多设计方法,最主要的的面向结构的设计方法结构设计(SD)等。在详细设计阶段,是对概要设计进行细化,回答如何具体实现系统目标的问题。详细设计是面向具体程序编码,重点是编码规范。传统软件工程开发了HIPO(层次图加输入/输出处理)、结构图、PDL(过程设计语言)等工具。,3.1 面向过程的分析和设计方法,结构化设计给出一组帮助设计人员在模块层次上区分设计质量的原理与技术,它通常与结构化分析衔接起来使用。 结构化设计以数据流图为基础,得到软件模块结构 结构化设计方法适用于变换型和事务型结构的目标系统 在整个设计过程中,从
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 软件工程 PPT
