第1章软件工程学技巧.pptx

第1章 软件工程学概述;1. 关于软件危机 与计算机硬件技术快速发展不协调的是计算机软件的开发和维护过程中遇到的一系列严重的问题。;典型表现: 1)对软件开发成本和进度的估计常常很不准确; 2)用户对完成的软件系统不满意的现象经常发生; 3)软件产品的质量往往靠不住; 4)软件常常是不可维护的; 5)软件通常没有适当的文档资料; 6)软件成本在计算机系统总成本中所占的比例逐年上升; 7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。 ;软件危机的实质: 如何开发软件,以满足对软件日益增长的需求? 如何维护数量不断膨胀的已有软件?;2. 为什么会产生软件危机;软件开发成本不同阶段的代价图;组织管理上:按照工程管理模式。强调组织良好、管理严密、协同配合。《软件项目管理》 开发方法上:已有成功技术和方法——《软件工程学》 开发工具上:充分利用辅助开发工具,降低繁琐重复的工作量——《软件工程支撑环境》;4. 什么是软件工程(学)?;正规定义:软件工程学是研究如何应用工程的技术、方法和工具进行软件开发、维护和软件管理的一门交叉学科。 方法:怎样做?完成软件开发各项任务的技术。 工具:怎样高效地做?软件支撑环境。 过程:怎样按部就班地做?规定完成各项任务的工作步骤和框架。 ;5. 软件工程学的基本思想;6. 软件工程学的两种开发方法 传统的生命周期法(结构化) 面向对象的方法 ;(1)生命周期法或结构化方法 基本思想:按照时间先后,把复杂问题分阶段处理,自顶向下、逐步求精,使得每个阶段处理的问题都较容易。 ;生命周期法 方法:结构化。 工具:集成化开发界面。CASE等。 过程步骤:3个时期8个步骤,原型、瀑布模型等。 ;什么是软件生命周期?软件从提交到最终被淘汰的存在期即其生命周期。主要包括定义、开发和维护三个时期,每个时期又划分若干个阶段。;软件生命周期开发步骤 ;16;结构化方法(Structure Method): 1)结构化分析方法(SA); 2)结构化设计方法(SD); 3)结构化分析与设计技术(SADT) 4)JACKSON方法 5)WARNIER方法;结构化方法要点是自顶向下、逐步求精、模块化设计、结构化编码。 结构化分析以数据流图、数据字典、结构化语言、判定表、判定树等图形表达为主要手段,注重开发方法的结构合理性和系统的结构合理性。 结构化设计以模块化、抽象、逐层分解求精、保持模块独立为准则来设计软件的模块架构。 结构化编码实现以先全局,后局部,先整体,后细节,先抽象,后具体,逐步求精,编制出来的程序具有清晰的逻辑层次结构,容易阅读、理解、修改和维护。尽量采用三种基本代码结构——顺序、选择和循环结构 ;(2)面向对象的开发方法 模拟人类认识世界的方法和过程,把数据和对数据的操作结合起来,通过定义类、封装、对象、继承和消息通信实现便于维护的软件体。;面向对象方法的几个要素: 类(Class) 对象(Object) 继承(派生)。 封装 多态 接口 委托(代理) 事件;面向对象方法具有如下4个要点: 把对象(Object)作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分解取代传统方法的功能分解。 把所有对象划分为类(Class):每个类定义了一组数据和一组操作。 按照父类(基类)和子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。子类能够继承。 对象彼此间仅能通过发送消息互相联系。对象是数据处理的主体,具有封装性特点。 面向对象方法降低了软件开发的复杂性,简化了开发与维护、 提高了软件的可理解性和重用性。 ;方法:面向对象 工具:集成化开发界面 过程步骤:迭代式开发,喷泉模型 ;1)适用于实时事物处理系统的有限状态机方法(FSM); 2)适用于并发软件系统的PETRI网方法; 3)以数学概念和理论为基础的形式化方法,如 SDC公司的形式化开发方法FDM (Formal Development Methodology) IBM公司的维也纳开发方法VDM (Vienna Development Method ) ;8 软件过程;(1)瀑布模型;1)顺序依赖性:前面未完成,后面不能开始,后面的正确取决于前面不出错。;2)推迟实现:前期工作未达成之前,不急于开始后期工作。;3)质量保证:强调文档及文档评审的重要性,实质是早发现的重要性。;优点: 带有严格规定的强迫性的规范方法。 围绕文档保质量。;改进的瀑布模型 带“反馈环路”;(2)快速原型模型;优点: 速度快,风险低 边用边改,减少返工 交互验证,及时获得经验;快速流程对应开发过程;(3)增量模型(渐增模型

文档评论(0)

1亿VIP精品文档

相关文档